Activity
From 08/11/2020 to 08/17/2020
08/17/2020
-
09:18 PM Feature #16984 (Closed): Remove write barrier exemption for T_ICLASS
- Applied in changeset commit:git|264e4cd04fbcdcb739a1ff9a84e19afe66005cb2.
----------
Remove write barrier exemption for T_ICLASS
Before this commit, iclasses were "shady", or not protected by write
barriers. Because of that, the GC nee... -
09:17 PM Revision 264e4cd0 (git): Remove write barrier exemption for T_ICLASS
- Before this commit, iclasses were "shady", or not protected by write
barriers. Because of that, the GC needs to spend more time marking these
objects than otherwise.
Applications that make heavy use of modules should see reduction in GC... -
06:08 PM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
- So we've been shipping this patch for 8 months now and not seen any bug reports.
Not sure why we haven't seen any issues around sha2/sha256, but either we get sha256 from the openssl api and not digest or that's been working, because we... -
05:37 PM Feature #17059 (Rejected): epoll as the backend of IO.select on Linux
- > Since the scheduler now have other registration control including rb_io_wait_readable and rb_io_wait_writable are introduced in the current Scheduler.
> ...
I'm not sure what is your idea, but at least I reject this ticket because `IO... -
12:00 PM Feature #17059: epoll as the backend of IO.select on Linux
- The benchmark looks good. I've tested with similar code, and it's 46x slower on my machine.
It looks like `epoll` is highly depended on the time that `epoll_ctl` engaged.
Since the scheduler now have other registration control includ... -
09:53 AM Feature #17059: epoll as the backend of IO.select on Linux
- I understand `epoll` will help by introducing new event handling APIs.
But not sure why `IO.select` can improve the performance with `epoll`.
This is my question by first comment and maybe https://bugs.ruby-lang.org/issues/17059#note-1... -
09:49 AM Feature #17059: epoll as the backend of IO.select on Linux
- I want to know the general idea how to use `epoll` for `IO.select` backend.
```C
#include <stdlib.h>
#include <stdio.h>
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/resource.h>
#include <poll.h>
#define N 2000 // 1... -
09:40 AM Feature #17059: epoll as the backend of IO.select on Linux
- I'm unclear how using `epoll` can help for the user calling `IO.select`.
With the API of select(), I'd expect `epoll` is no faster than `select()`.
Regarding the Fiber scheduler, then I think a new event would be needed, calling epoll()... -
07:37 AM Feature #17059: epoll as the backend of IO.select on Linux
- Thanks for advice.
To separate the process of registration and wait is a good idea for performance.
Since even the `select` itself could also take advantages from this,
and simplify the whole I/O multiplexing process. -
05:23 PM Revision bc00e6aa (git): Disable debugging test.
- ```
1) Failure:
TestObjSpace#test_trace_object_allocations [/tmp/ruby/v3/src/trunk-gc_compact/test/objspace/test_objspace.rb:175]:
<nil> expected but was
<"/tmp/ruby/v3/src/trunk-gc_compact/test/objspace/test_objspace.rb">.
```
@tende... - 04:48 PM Revision 1b347534 (git): * 2020-08-18 [ci skip]
-
04:47 PM Revision 971857c3 (git): Fix method name escaping in ObjectSpace.dump
- It's possible to define methods with any name, even if the parser
doesn't support it and it can only be used with ex. send.
This fixes an issue where invalid JSON was output from ObjectSpace.dump
when a method name needed escaping. -
01:57 PM Revision b52a501c (git): Ensure the shortcut cached in the class
- As well as the other places using RCLASS_IV_INDEX_TBL.
`IO#reopen` seems the only case that the class of an object can be
changed. -
01:36 PM Revision 27f7b047 (git): Also escape DEL code
-
01:30 PM Revision 7b4b5e08 (git): Fixed the radix for control chars
-
12:56 PM Feature #16815 (Closed): Implement Fiber#backtrace
- Okay, it was merged.
- 12:56 PM Revision 0a218a97 (git): Expose ec -> backtrace (internal) and use it to implement fiber backtrace.
- See <https://bugs.ruby-lang.org/issues/16815> for more details.
-
11:35 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Proposed updated scheduler interface, including some experimental parts from Mutex proposal:
```ruby
class Scheduler
# Wait for the given file descriptor to match the specified events within
# the specified timeout.
# @parameter e... -
11:09 AM Feature #16786: Light-weight scheduler for improved concurrency.
- ## Mutex Implementation
I wanted to give a brief update on this given that the work is happening on a [separate ticket](https://bugs.ruby-lang.org/issues/16792#change-87084).
@eregon and myself have been working on how to handle Mutex.... -
11:02 AM Feature #16786: Light-weight scheduler for improved concurrency.
- There has been some discussion about the interface of the Scheduler.
## C Interface Exposure
It was largely copied from the existing Ruby and C interfaces where it seemed to make sense. For example `rb_wait_for_single_fd` -> `wait_... - 08:57 AM Revision c45f5ff2 (git): Clarify coroutine implementation license.
- <https://bugs.ruby-lang.org/issues/16805>
-
08:48 AM Misc #16805: Coroutine's license is unclear
- I have merged the license changes as discussed, but we still need to check the license of the code contributed by @ReiOdaira.
-
07:16 AM Feature #16986: Anonymous Struct literal
- nobu (Nobuyoshi Nakada) wrote in #note-31:
> Do you mean `a:` by "two characters"?
> ...
I think he meant the characters `{` and `a` (or even `:`). I think his point is that having them in succession causes a syntax error, which means th... -
06:09 AM Feature #16986: Anonymous Struct literal
- okuramasafumi (Masafumi OKURA) wrote in #note-30:
> What about `?{a: 1, b: 2}`?
> ...
Do you mean `a:` by "two characters"?
As `{` is a punctuation, the `a` cannot be the part of that character literal.
-
05:27 AM Revision a90f29eb (git): procnames-start-lines [ci skip]
-
05:25 AM Revision 352e9232 (git): Revisit "Refactor to reduce "swap" instruction of pattern matching"
- Just moved "case base" after allocating cache space.
-
03:17 AM Feature #16792: Make Mutex held per Fiber instead of per Thread
- I have played around with this and I see the most basic operation is a way to tell the scheduler that a fiber can make progress. We can use a generic approach - in a loop, you may call `Fiber.yield`. When that fiber is ready to proceed (...
- 12:29 AM Revision 86260ee9 (git): * 2020-08-17 [ci skip]
-
12:28 AM Revision 5849309c (git): Revert "Refactor to reduce "swap" instruction of pattern matching"
- This reverts commit 3a4be429b50062122d1616256de38649464d3146.
To fix following warning:
```
compiling ../compile.c
../compile.c:6336:20: warning: variable 'line' is uninitialized when used here [-Wuninitialized]
ADD_INSN(head, line...
08/16/2020
-
11:49 PM Feature #17059: epoll as the backend of IO.select on Linux
- This is a nice idea, and I've considered exposing `wait_select` on the scheduler interface.
I'd suggest we try to go down this route.
The scheduler interface can cache the I/O registration... so in theory it addresses @ko1's concerns. -
09:08 PM Feature #17059: epoll as the backend of IO.select on Linux
- Update the WIP implementation
-
10:24 AM Feature #17059: epoll as the backend of IO.select on Linux
- In general, event handling gems like nio4r could provide a similar `select` interface with multiple backends including select, kqueue and epoll support.
On the side of Ruby meta-programming, this part is easy to be implemented, and coul... -
09:02 AM Feature #17059: epoll as the backend of IO.select on Linux
- @ko1 is not talking about efficiency of epoll in general, but questioning that of your patch.
-
01:12 AM Feature #17059: epoll as the backend of IO.select on Linux
- It should greatly improve the performance.
Advanced registration is a feature of `epoll`,
but the performance is also an important part for it.
The benchmark from libevent shows the performance of epoll and poll or select,
are on a t... -
02:41 PM Revision a73b5cc5 (git): Remove the deprecated override of Kernel#open in open-uri
- This was deprecated in 2.7 to resolve [Misc #15893].
-
09:53 AM Revision 3a4be429 (git): Refactor to reduce "swap" instruction of pattern matching
-
09:39 AM Revision 5c40c88a (git): Adjust sp for `case ... in a: 0 ... end`
-
09:39 AM Revision 691f10dd (git): Adjust sp for `case ... in *, a, * end`
-
09:39 AM Revision 6c407b36 (git): Adjust sp for `case ... in *v end`/`case ... in v1, v2 end`
-
09:39 AM Revision c866d656 (git): Adjust sp for `case ... in v1 ... in v2 end`
-
09:39 AM Revision d5940784 (git): Adjust sp for `case ... in v1, v2 ... end`
-
09:39 AM Revision 2bbb7c3d (git): Adjust sp for `case ... in pat => var ... end`
-
09:39 AM Revision 6bc0c6c1 (git): Adjust sp for `case ... in pat1 | pat2 ... end`
-
09:39 AM Revision 07598624 (git): Adjust sp for pattern matching implicit/explicit "else"
08/15/2020
- 11:43 PM Revision c1e7f0c7 (git): * 2020-08-16 [ci skip]
-
11:43 PM Revision a7bd0ec5 (git): Warn sp overwriting on compile time
-
11:43 PM Revision ac399c2c (git): Show hidden object and TS_BUILTIN for halfbaked insn data
-
04:59 PM Bug #17123 (Third Party's Issue): seg fault with nokogiri and ews
- jreidthompson (Reid Thompson) wrote in #note-2:
> Works fine with libxlm2 v 2.9.9 -
04:47 PM Bug #17123: seg fault with nokogiri and ews
- Works fine with libxlm2 v 2.9.9
-
02:30 AM Bug #17123: seg fault with nokogiri and ews
- libxml2 is 2.9.10
-
02:28 AM Bug #17123 (Third Party's Issue): seg fault with nokogiri and ews
- This is a script that utilizes Ruby-EWS to query an exchange server:
```
$ cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.co... -
03:42 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- Eregon (Benoit Daloze) wrote in #note-18:
> I ran the measurements on both CRuby master and 2.6.6, with `sqlite3` for convenience.
> ...
I ran it using Ruby 2.7.1 on OpenBSD, using the OpenBSD package, which builds with `-O2`. This is ... -
12:23 PM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- I tried on TruffleRuby and there I can't see a significant difference (at least for the noplugin case):
https://gist.github.com/eregon/e552bf55d42ce128a9d89f41d57b637f
TruffleRuby uses inline caches for almost all metaprogramming operat... -
10:54 AM Feature #17055: Allow suppressing uninitialized instance variable and method redefined verbose mode warnings
- I ran the measurements on both CRuby master and 2.6.6, with `sqlite3` for convenience.
I see smaller differences, but also my results are about 6 times faster.
It's still a larger difference than I expect so I'll try to dig deeper.
... -
10:20 AM Feature #15752: A dedicated module for experimental features
- mame (Yusuke Endoh) wrote in #note-21:
> FYI: [Type-profiler](https://github.com/mame/ruby-type-profiler), which I'm developing for an experimental type inference tool for Ruby 3 types, heavily depends upon `RubyVM::InstructionSequence... -
05:17 AM Revision d75433ae (git): [DOC] fixed a missing markup
-
03:39 AM Feature #16815: Implement Fiber#backtrace
- https://github.com/ruby/ruby/pull/3422
-
03:09 AM Revision 4d7818a2 (git): tool/update-deps --fix
-
03:09 AM Revision ff30358d (git): RARRAY_AREF: convert into an inline function
- RARRAY_AREF has been a macro for reasons. We might not be able to
change that for public APIs, but why not relax the situation internally
to make it an inline function.
08/14/2020
- 11:55 PM Revision 72d0f2f0 (git): * 2020-08-15 [ci skip]
-
11:55 PM Revision c84ccf1a (git): Fix links to Dig Methods document (#3421)
- * Fix links to Dig Methods document
* Fix links to Dig Methods document -
05:54 PM Bug #17017: Range#max & Range#minmax incorrectly use Float end as max
- Dan0042 (Daniel DeLorme) wrote in #note-22:
> jeremyevans0 (Jeremy Evans) wrote in #note-18:
> ...
`integer..float` is currently treated as a integer range in all other respects. For example:
```ruby
(1.0..2.1).to_a # TypeError (ca... -
04:09 PM Bug #17017: Range#max & Range#minmax incorrectly use Float end as max
- jeremyevans0 (Jeremy Evans) wrote in #note-18:
> The behavior change in this issue is to fix an obvious bug, which is that `(1..2.1).max` returned `2.1` instead of `2`.
FWIW I consider the previous behavior correct. Intuitively I see... -
03:14 PM Feature #17115: Optimize String#casecmp? for ASCII strings
- In the benchmark you'd need to change the regexp from `/\Afoo\Z/i` to `/\Aconnection\z/i`; if you do so you'll find the regexp performance is similar to `casecmp?`
+1 for special-casing ASCII strings though.
Related: #13750, #14055 -
07:33 AM Revision fee1b98f (git): [DOC] fixed the method name
-
07:12 AM Revision e6580402 (git): RSTRING_LEN was not used
-
05:17 AM Feature #16986: Anonymous Struct literal
- > hoge {{a: 1, b: 2}} is not syntax error. {{a: 1, b: 2}} is block argument.
> ...
Thank you for pointing it out. Obviously it doesn't work.
What about `?{a: 1, b: 2}`?
Question mark (`?`) is not be able to be a method by itself.
Chara... -
02:39 AM Feature #17122: Add category to Warning#warn
- I guess we want to revisit #11588 .
-
01:48 AM Feature #13893: Add Fiber#[] and Fiber#[]= and restore Thread#[] and Thread#[]= to their original behavior
- Just one more potential interface:
```
class Fiber
attr_accessor :my_fiber_local
end
class Thread
attr_accessor :my_thread_local
end
```
To me, this actually seems like it should be the most logical way to add well d...
08/13/2020
-
11:51 PM Revision 4318aba9 (git): re.c: prevent "warning: variable 'n' set but not used"
- by adding MAYBE_UNUSED.
-
09:23 PM Feature #17122: Add category to Warning#warn
- jeremyevans0 (Jeremy Evans) wrote in #note-1:
> I don't think we should add a category keyword if the only usage is for deprecation warnings. If we are going to do this, I think:
> ...
I think we have category symbols already:
* h... -
09:06 PM Feature #17122: Add category to Warning#warn
- I don't think we should add a category keyword if the only usage is for deprecation warnings. If we are going to do this, I think:
* All warning messages emitted by the core and the stdlib should have a category added
* This requir... -
08:42 PM Feature #17122 (Closed): Add category to Warning#warn
- Deprecation warnings and other warnings in Ruby have a category (:deprecated, etc) but those categories aren't exposed or accessible. In the most recent Ruby 2.7 upgrade at GitHub we monkey patched `Warning#warn` to be able to turn warni...
-
06:16 PM Revision 22fd617a (git): Adding doc/dig_methods.rdoc and links to it (#3416)
- Adds a full discussion of #dig, along with links from Array, Hash, Struct, and OpenStruct.
CSV::Table and CSV::Row are over in ruby/csv. I'll get to them soon.
The art to the thing is to figure out how much (or how little) to say at ea... - 05:16 PM Revision cead77d8 (git): * 2020-08-14 [ci skip]
- 05:15 PM Revision 511b55bc (git): Enable arm64 optimizations that exist for power/x86 (#3393)
- * Enable unaligned accesses on arm64
64-bit Arm platforms support unaligned accesses.
Running the string benchmarks this change improves performance
by an average of 1.04x, min .96x, max 1.21x, median 1.01x
* arm64 enable gc optimizat... -
05:10 PM Bug #17120: String#start_with? return wrong result for Regexp patterns containing /\K/
- Patch: https://github.com/ruby/ruby/pull/3417
-
08:17 AM Bug #17120 (Rejected): String#start_with? return wrong result for Regexp patterns containing /\K/
- `String#start_with?` unexpectedly reports true when the pattern Regexp contains `/\K/` (lookbehind) operator and the lookbehind pattern matches the beginning of `self`.
```ruby
"hello".start_with?(/h\Ke/) # => true (unexpected)
```... -
11:56 AM Revision 787cb0fd (git): Replace repeated RSTRING_PTR and RSTRING_LEN with RSTRING_GETMEM
- As now RSTRING_PTR and RSTRING_LEN are functions, they very bother
stepping in/out during debugging. -
11:54 AM Bug #17118 (Closed): String#index and #rindex return wrong result for Regexp patterns containing /\K/
- Applied in changeset commit:git|014a4fda54cb6897ed54ea9c44376db3459fc46e.
----------
rb_str_{index,rindex}_m: Handle /\K/ in pattern
When the pattern Regexp given to String#index and String#rindex
contain a /\K/ (lookbehind) operator, ... -
07:26 AM Bug #17118: String#index and #rindex return wrong result for Regexp patterns containing /\K/
- Patch: https://github.com/ruby/ruby/pull/3414
-
07:21 AM Bug #17118 (Closed): String#index and #rindex return wrong result for Regexp patterns containing /\K/
- When the pattern Regexp given to `String#index` and `String#rindex` contain a `/\K/` (lookbehind) operator, these methods return the position where the beginning of the lookbehind pattern matches, while they are expected to return the po...
-
11:54 AM Revision 014a4fda (git): rb_str_{index,rindex}_m: Handle /\K/ in pattern
- When the pattern Regexp given to String#index and String#rindex
contain a /\K/ (lookbehind) operator, these methods return the
position where the beginning of the lookbehind pattern matches, while
they are expected to return the position... -
11:51 AM Bug #17119 (Closed): String#partition and #rpartition return wrong result for Regexp patterns containing /\K/
- Applied in changeset commit:git|5d71eed1a7f0a70db013de59cd7e95bdca0d5c0e.
----------
rb_str_{partition,rpartition}_m: Handle /\K/ in pattern
When the pattern given to String#partition and String#rpartition
contain a /\K/ (lookbehind) o... -
07:26 AM Bug #17119: String#partition and #rpartition return wrong result for Regexp patterns containing /\K/
- Patch: https://github.com/ruby/ruby/pull/3413
-
07:23 AM Bug #17119 (Closed): String#partition and #rpartition return wrong result for Regexp patterns containing /\K/
- When the Regexp pattern given to `String#partition` and `String#rpartition` contain a `/\K/` (lookbehind) operator, the methods return strings sliced at incorrect positions.
```ruby
# expected -- partitioned at "c" following "b"
"ab... -
11:50 AM Revision 5d71eed1 (git): rb_str_{partition,rpartition}_m: Handle /\K/ in pattern
- When the pattern given to String#partition and String#rpartition
contain a /\K/ (lookbehind) operator, the methods return strings
sliced at incorrect positions.
```
# without patch
"abcdbce".partition(/b\Kc/) # => ["a", "c", "cdbce"]
"... -
09:58 AM Feature #17121: Remove ENV#index
- Sorry, `ENV#index` is will be remove this pull request(https://github.com/ruby/ruby/pull/3412)
-
09:52 AM Feature #17121 (Open): Remove ENV#index
- `ENV#index` is deprecated since `ruby-1.9.0-0`.
So, remove it.
```bash
root@8785b339158a:/all-ruby# env ALL_RUBY_SINCE=ruby-1.8 ./all-ruby -e 'ENV.index("RUBY")'
ruby-1.8.0
...
ruby-1.8.7-p374
ruby-1.9.0-0 -e:1: warn... -
05:56 AM Feature #16986: Anonymous Struct literal
- okuramasafumi (Masafumi OKURA) wrote in #note-27:
> I found that
> ...
Read the error message.
```
$ ruby -e '{{a: 1, b: 2}}'
-e:1: syntax error, unexpected '}', expecting =>
{{a: 1, b: 2}}
^
```
That means `{{`... -
01:14 AM Revision 69b5241c (git): ruby_debug_log: suppress warning
- Old gcc (< 5 maybe?) warns that this variable is not initialized:
debug.c: In function 'ruby_debug_log':
debug.c:441:13: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (r && len <... -
01:14 AM Revision 1f9e25cd (git): MAYBE_UNUSED should just suffice
- This reverts commit c355fa72d4e356378a8b03a67432b52bafcc308b.
08/12/2020
-
09:29 PM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- Just to be clear I am +1 on single return target, as described here: https://github.com/jruby/jruby/issues/6350#issuecomment-669603740
In addition to the confusing (and possibly inefficient) behavior that results from having two possi... -
07:48 PM Feature #16986: Anonymous Struct literal
- okuramasafumi (Masafumi OKURA) wrote in #note-27:
> I found that
> ...
hi.
`hoge {{a: 1, b: 2}}` is not syntax error. `{{a: 1, b: 2}}` is block argument.
```ruby
def hoge(&block)
block.call
end
# OK
hoge {{a: 1, b: 2}}
# => {:a=>1, :... -
05:56 PM Feature #16986: Anonymous Struct literal
- I found that
``` ruby
{{a: 1, b: 2}}
```
is a syntax error and could be a good candidate for this feature. -
06:50 PM Bug #17031 (Open): `Kernel#caller_locations(m, n)` should be optimized
- Reopening this as the commit had to be reverted as CI showed issues in `backtrace_mark`. I can't work on debugging this right away, so someone is welcome to look into fixing this in the meantime.
-
06:03 PM Bug #17031 (Closed): `Kernel#caller_locations(m, n)` should be optimized
- Applied in changeset commit:git|f2d7461e85053cb084e10999b0b8019b0c29e66e.
----------
Improve performance of partial backtraces
Previously, backtrace_each fully populated the rb_backtrace_t with all
backtrace frames, even if caller only... -
07:14 AM Bug #17031: `Kernel#caller_locations(m, n)` should be optimized
- Thank you Jeremy!
Great patch! -
06:43 PM Revision 4fc6cfbe (git): Revert "Improve performance of partial backtraces"
- This reverts commit f2d7461e85053cb084e10999b0b8019b0c29e66e.
Some CI machines are reporting issues with backtrace_mark, so I'm
going to revert this for now. - 06:03 PM Revision 6dfd7ad4 (git): * 2020-08-13 [ci skip]
-
06:03 PM Revision f2d7461e (git): Improve performance of partial backtraces
- Previously, backtrace_each fully populated the rb_backtrace_t with all
backtrace frames, even if caller only requested a partial backtrace
(e.g. Kernel#caller_locations(1, 1)). This changes backtrace_each to
only add the requested frame... -
12:31 PM Feature #17103: Add a :since option to ObjectSpace.dump_all
- @ko1 this parameter allow to do partial heap dumps. e.g. `dump_all(since: 42)`, means to only dump objects of the 42th generation and later. Basically like adding a `if ObjectSpace.allocation_generation(obj) >= 42`.
This would be very... -
07:55 AM Feature #17103: Add a :since option to ObjectSpace.dump_all
- sorry I can't understand the specification.
also https://github.com/ruby/ruby/pull/3368/files doesn't have a doc.
could you explain more?
-
09:47 AM Bug #17117 (Closed): Corruption in ARGF.inplace
-
08:54 AM Revision 166cacc5 (git): Fix corruption in ARGF.inplace
- Extension string stored in `ARGF.inplace` is created using an api
designed for C string constants to create a Ruby string that
points at another Ruby string. When the original string is swept,
the extension string gets corrupted.
Reprod... -
07:38 AM Feature #17059: epoll as the backend of IO.select on Linux
- does it improve the performance?
My understanding is the advantage of `epoll` is advanced registration.
However, `select` wrapping interface can not use it.
I have no experience to use `epoll`, so correct me it is wrong.
Thanks,
... -
07:30 AM Bug #17048: Calling initialize_copy on live modules leads to crashes
- sorry I didn't check all threads, but nobu's patch can close it?
-
07:16 AM Misc #17050 (Feedback): profiler gem
- Sorry for late response.
I have a plan to remake current profile library with recent APIs. -
06:36 AM Feature #13381: [PATCH] Expose rb_fstring and its family to C extensions
- > However that terminology is already used for symbols (rb_str_intern).
Yes. This is why we didn't propose it.
-
06:28 AM Feature #16984: Remove write barrier exemption for T_ICLASS
- sorry I didn't check it.
Thank you, ~10 MB in "B's 250 MiB." is not problem I think.
Could you merge it if you don't have any trouble more?
-
02:42 AM Bug #17108 (Rejected): error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast
- `rb_funcall` expects a list of `VALUE`s after the number of arguments.
I think you'll want to write:
```C
MQ_INT arity = VAL2INT(rb_funcall(val,NS(id_arity),0));
```
or use `rb_funcallv` instead of `rb_funcall`:
```C
MQ_... -
01:02 AM Bug #17113 (Closed): /\K/ in separator for String#split behaves differently than /(?<=)/
- Applied in changeset commit:git|e79cdcf61b0665d8a9bb309a607227de43e95673.
----------
string.c(rb_str_split_m): Handle /\K/ correctly
Use BEG(0) instead of the result of rb_reg_search to handle the cases
when the separator Regexp contai... -
01:01 AM Revision e79cdcf6 (git): string.c(rb_str_split_m): Handle /\K/ correctly
- Use BEG(0) instead of the result of rb_reg_search to handle the cases
when the separator Regexp contains /\K/ (lookbehind) operator.
Fixes [Bug #17113]
08/11/2020
-
08:02 PM Bug #17117 (Closed): Corruption in ARGF.inplace
- Extension string stored in `ARGF.inplace` is created using an api designed for C string constants to create a Ruby string that points at another Ruby string. When the original string is swept, the extension string gets corrupted.
Repr... -
04:10 PM Feature #17116 (Closed): raise ArgumentError in Enumerator#new in no given blocks
- Currently, `Enumerator#new` allows this code (no block given):
```ruby
obj = Object.new
Enumerator.new(obj)
```
with a warning (since ruby-2.0.0-preview2):
```bash
-e:1: warning: Enumerator.new without a block is deprecated;... - 04:02 PM Revision 66efe373 (git): * 2020-08-12 [ci skip]
-
04:01 PM Revision 7930a352 (git): Test out fix for OpenSSL test flakiness
- `OpenSSL::TestX509Store#test_verify` has been failing intermittently on
CI about once a day:
- http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3121244
- http://ci.rvm.jp/results/trunk-random1@phosphorus-docker/3117661
- ht... -
03:57 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- > another reason is avoidance of alias effects
What you've shown is not another reason for freezing.
`a = b = "My string"`
both a and b refer to the same string object regardless of interning/freezing
there's no expectation t... -
06:22 AM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- bughit (bug hit) wrote in #note-11:
> > However in my view what defines a literal, is the use of a specific syntax, so ""
> ...
My understanding is that another reason is avoidance of alias effects. It's easy to write code that when cu... -
03:16 PM Feature #17115 (Open): Optimize String#casecmp? for ASCII strings
- Patch: https://github.com/ruby/ruby/pull/3369
`casecmp?` is a kind of performance trap as it's much slower than using a case insensitive regexp or just `casecmp == 0`.
```
str = "Connection"
cmp = "connection"
Benchmark.ips do |... -
03:14 PM Bug #17114: Float is not properly kept as integer when integer is added without space
- Hello,
my fault. Thank you for clarification.
Best regards,
Tammo
-
02:40 PM Bug #17114: Float is not properly kept as integer when integer is added without space
- Hi, it's not a bug. +-1 is a precision argument.
```
irb> 12.34.floor(-1)
=> 10
irb> 12.34.floor(+1)
=> 12.3
```
take a look at the documentation, it describes this exact behavior well.
https://ruby-doc.org/core-2.7.1/Float.... -
02:38 PM Bug #17114 (Rejected): Float is not properly kept as integer when integer is added without space
- This is expected. `1.0.floor + 1` is parsed as `((1.0).floor).+(1)`. `1.0.floor +1` is parsed as `(1.0).floor(+1)`. This is also true for `-1`, it's just that `((1.0).floor).-(1)` and `(1.0).floor(-1)` are both `0`, since `(floor).flo...
-
02:25 PM Bug #17114 (Rejected): Float is not properly kept as integer when integer is added without space
- Hello dear ruby community,
I observed the following behaviour:
``` ruby
1.0.floor +1 # => 1.0
(1.0).floor +1 # => 1.0
(1.0.floor) +1 # => 2
1.0.floor + 1 # => 2
```
I think this is due to `+1` being taken as an argument to `f... -
01:49 PM Revision 42725e3a (git): Enable s390x invokebuiltin JIT test again
-
10:03 AM Bug #17113: /\K/ in separator for String#split behaves differently than /(?<=)/
- Patch: https://github.com/ruby/ruby/pull/3407
-
09:59 AM Bug #17113 (Closed): /\K/ in separator for String#split behaves differently than /(?<=)/
- When a String is `#split`ted with a pattern containing /\K/ (lookbehind) operator,
the portion that matches the lookbehind pattern will not appear in the result.
```ruby
"abcd".split(/b\Kc/) # => ["a", "d"]
"abcd".split(/(?<=b)c/)... -
09:35 AM Revision 7806b2e2 (git): Use colorize.rb for non-capable terminals
-
09:35 AM Revision 2e7fe3b6 (git): Add default color for each instance
-
08:34 AM Bug #17112: Resolv.getaddress fails with IPv6 link-local addresses
- After some experiments I noticed that changing `use_ipv6?` isn't the whole story.
In `Resolv#each_address` there seems to be a check for IP addresses. In case an IP address is given no actual resolving is performed.
```ruby
if AddressR... -
07:51 AM Revision 5af983af (git): template/prelude.c.tmpl: suppress clang-12 warning
- Clang 12 warns "suspicious concatenation of string literals in an array
initialization", which is rather annoying than useful in this context. -
07:51 AM Revision ef2b785b (git): .github/workflows/compilers.yml: clang-12
- LLVM made release/11.x branch. Its master is now version 12.
-
07:51 AM Revision acd8ee8d (git): tool/prelude.c.tmpl: use RubyVM::CEscape
- Do not repeat yourself.
-
07:51 AM Revision b0eb5aa3 (git): RubyVM::CEscape#rstring2cstr: do not escape '
- A single quote "is representable either by itself or by the escape
sequence", according to ISO/IEC 9899 (checked all versions). So this is
not a bug fix. But the generated output is a bit readable without
backslashes. -
02:43 AM Feature #15281: Speed up Set#intersect with size check.
- Apparently the linked PR has been merged last december 31st.
I note there's no NEWS entry. -
12:23 AM Feature #17000: 2.7.2 turns off deprecation warnings by default
- I think deprecation warnings are necessary if, and only if, a feature or behaviour is going away in the lifespan of the minor (2.x) versions.
I also believe you can make any breaking change without prior warning in a major version (i.... -
12:16 AM Bug #17106: Build ruby 2.6.6 from git source
- 47720e2255f34ecad49763c66a7ea02a55a3f60a will fix the error.
But I don't know if it won't cause a regression.
`ruby_2_7` doesn't have the issue because of b971bad49b95d4c1f68bb2242d4267355f1cd497.