Activity
From 08/09/2020 to 08/15/2020
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.
08/10/2020
-
11:51 PM Bug #16695: Stack consistency error when using the return value
- Maybe there are some potential issues.
```
$ ruby -v -e 'RubyVM::InstructionSequence.compile("def f; return 1 unless true or any; end", peephole_optimization: false).eval'
ruby 2.8.0dev (2020-08-02T03:05:19Z wanabe/master ac69849e49) ... -
11:44 PM Bug #17106 (Closed): Build ruby 2.6.6 from git source
-
01:29 PM Bug #17106: Build ruby 2.6.6 from git source
- mame (Yusuke Endoh) wrote in #note-1:
> Hi,
> ...
Thanks, i'll wait backport. -
07:47 PM Revision d43e99b7 (git): Add Method Documentation Guide (#3399)
- This documents how methods for core classes and classes in the
standard library should be documented.
Co-authored-by: Eric Hodel <drbrain@segment7.net> -
06:51 PM Feature #17104: Do not freeze interpolated strings when using frozen-string-literal
- > However in my view what defines a literal, is the use of a specific syntax, so ""
There is only one reason for freezing literals, to be able to intern them and reduce allocation. In fact the feature is poorly named, after the conseq... -
04:47 PM Feature #17016: Enumerable#accumulate
- nobu (Nobuyoshi Nakada) wrote in #note-30:
> I found a word [traject], means to transport, transmit, or transpose.
> ...
That's an interesting word that I don't know. It looks like it's archaic, so I don't think that it has much meanin... - 04:33 PM Revision 404bff56 (git): * 2020-08-11 [ci skip]
-
04:33 PM Revision c303e21d (git): Enhanced RDoc for Array (#3400)
- Methods:
drop
drop_while
any?
all?
none?
one? -
02:51 PM Bug #17110: String.tr unexpected behaviour with backslash
- Yusuke Endoh, thanks for clearing it up.
-
08:18 AM Bug #17110: String.tr unexpected behaviour with backslash
- ```
p "\\/".tr("/\\\\", "\\\\/") #=> "/\\"
```
Unfortunately it is complicated, but `\` is an escape character of string literal as well as an escape character of `String#tr` format, so it is unavoidable. -
07:09 AM Bug #17110: String.tr unexpected behaviour with backslash
- Is there no way to do change all backslashes to forward slashes and forward slashes to backslashes in the same tr command?
``` ruby
# Should result in "/\\" but instead results in "\\/" (unchanged)
"\\/".tr("\//","\\/")
```
-
05:35 AM Bug #17110 (Rejected): String.tr unexpected behaviour with backslash
- See the document.
> The backslash character `\` can be used to escape `^` or `-` and is otherwise ignored unless it appears at the end of a range or the end of the from_str or to_str:
https://docs.ruby-lang.org/en/2.7.0/String.html#met... -
03:01 AM Bug #17110: String.tr unexpected behaviour with backslash
- ``` ruby
"\\".tr("\\","A") works great, with "\\" becoming "A"
"\\".tr("\\C","AB") should also output "A" but instead outputs "\\"
```
-
03:00 AM Bug #17110 (Rejected): String.tr unexpected behaviour with backslash
- `"\\".tr("\\","A")` works great, with `"\\"` becoming `"A"`.
`"\\".tr("\\C","AB")` should also output `"A"`, but instead outputs `"\\"`. -
01:28 PM Feature #17109 (Rejected): Eliminate the performance impact of operands' order in array's | and &
-
01:28 PM Feature #17109: Eliminate the performance impact of operands' order in array's | and &
- [set.rb](https://github.com/ruby/ruby/blob/master/lib/set.rb) has this optimization for `intersection` and IMHO `Set` should be used explicitly if you expect high-performance Set operations.
-
12:27 PM Feature #17109: Eliminate the performance impact of operands' order in array's | and &
- > > The order is preserved from the original array.
My bad, I missed the comment. In this case, I think the optimisation is not worth a change in the spec. -
08:32 AM Feature #17109: Eliminate the performance impact of operands' order in array's | and &
- I like the idea very much, but very unfortunately, the document of `Array#&` says:
> The order is preserved from the original array.
https://docs.ruby-lang.org/en/2.7.0/Array.html#method-i-26
Personally I agree with you that thi... -
08:12 AM Feature #17109: Eliminate the performance impact of operands' order in array's | and &
- I mean these operations essentially perform Set union and intersection, am I correct? Then the order of the operands doesn't affect the outcome.
-
11:55 AM Bug #17112 (Closed): Resolv.getaddress fails with IPv6 link-local addresses
- I noticed that I cannot resolve any link-local IPv6 address using `Resolv.getaddress`. For example calling `Resolv.getaddress('fe80::eca4:7b00:ecc5:206c%8')` fails with `Resolv::ResolvError`
Resolving any IPv4 address succeedes, as well... -
10:46 AM Revision 0ca6b973 (git): Removed non-ASCII code to suppress warnings by localized compilers
-
10:46 AM Revision 17d869c7 (git): Check if C-sources are US-ASCII
- Encoding of C-sources can not be determined, and non-ASCII code
are often warned by localized compilers. -
08:49 AM Revision 187c164d (git): Suppress unused-variable warning
- `key` is not used outside this assertion.
-
08:47 AM Revision c355fa72 (git): Suppress unused-function warnings
- Calls with a constant argument should be optimized away.
-
08:44 AM Feature #13893: Add Fiber#[] and Fiber#[]= and restore Thread#[] and Thread#[]= to their original behavior
- From #7 actually the checks would be needed in both cases, because one could save the value of `Thread.current.local` and pass it to another `Thread`.
So either `.local` API seems fine to me, but if it's `Fiber.current.local` then `Fi... -
08:40 AM Feature #13893: Add Fiber#[] and Fiber#[]= and restore Thread#[] and Thread#[]= to their original behavior
- One consideration: `Fiber.current` is not available until `require "fiber"`.
So an API based on `Fiber.current` doesn't seem nice while `require "fiber"` is needed (will be NoMethodError + confusion if not required).
I think it would... - 07:36 AM Revision 9260b0ae (git): * 2020-08-10 [ci skip]
-
07:35 AM Revision fac62f09 (git): Adjust indent
-
05:36 AM Feature #17111 (Assigned): Improve performance of Net::HTTPHeader#set_form by 40%
-
04:09 AM Feature #17111 (Assigned): Improve performance of Net::HTTPHeader#set_form by 40%
- ## diff
```diff
diff --git a/lib/net/http/header.rb b/lib/net/http/header.rb
index a8901e7..3f1a008 100644
--- a/lib/net/http/header.rb
+++ b/lib/net/http/header.rb
@@ -475,9 +475,8 @@ def set_form(params, enctype='application/x-...
08/09/2020
-
10:51 PM Feature #17109: Eliminate the performance impact of operands' order in array's | and &
- `a & b` returns different result from `b & a`. `a | b` returns different result from `b | a`. You cannot substitute one with another.
Furthermore, your idea is implementation-dependent.
It does not make sense at all. -
09:52 PM Feature #17109 (Rejected): Eliminate the performance impact of operands' order in array's | and &
- When I do intersection (`a & b`) or union (`a | b`), usually the array in one position is more likely longer than the one in the other position. I always try to remember in what order I should write `a` and` b` for the best performance. ...
-
06:53 PM Misc #17041: DevelopersMeeting20200831Japan
- * [Bug #17105] A single `return` can return to two different places in a proc inside a lambda inside a method (eregon)
* Is current implementation correct? Should it not be a `LocalJumpError` if the surrounding lambda is no longer on ... -
08:19 AM Misc #17041: DevelopersMeeting20200831Japan
- * [Feature #13381] Expose rb_fstring and its family to C extensions
* It's only missing a decision on the names. Could this be discussed again? -
10:41 AM Bug #17105: A single `return` can return to two different places in a proc inside a lambda inside a method
- +1 to @eregon ’s interpretation. Current behaviour is at least very cryptic.
-
10:02 AM Bug #17108: error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast
- tested with latest RUBY -> same warning=error
-
09:43 AM Bug #17108 (Rejected): error: initialization of ‘long unsigned int’ from ‘void *’ makes integer from pointer without a cast
- It seems that the "OPTIMIZATION" macro for "rb_funcall" causes something bad.
```
|| CC rubymsgque_la-misc_ruby.lo
|| .../misc_ruby.c: In function ‘rubymsgque_OtCheckCallable’:
.../misc_ruby.c|430 col 18| error: initializat...