Activity
From 08/14/2020 to 08/20/2020
08/20/2020
- 05:10 PM Revision 6ba038af (git): * 2020-08-21 [ci skip]
-
05:09 PM Revision 51525557 (git): Partial compliance with doc/method_documentation.rdoc in string.c (#3436)
- Removes references to *-convertible thingies.
-
02:48 PM Feature #16986: Anonymous Struct literal
- ko1 (Koichi Sasada) wrote in #note-34:
> how about `%struct{a: 1, b: 2}` (and `%value{...}` if needed)?
> ...
I like it! IMO, it's one of the most "natural to read" options and is undoubtedly easier to write than `Struct.new(:a, :b, :c... -
02:03 PM Feature #17127 (Open): Some TrueClass methods are faster if implemented in Ruby
- Some TrueClass methods are faster if implemented in Ruby code.
like this.
```ruby
class TrueClass
def to_s
"true".freeze
end
alias_method :inspect, :to_s
def |(bool)
true
end
end
```
benchmark f... -
01:46 PM Feature #16786: Light-weight scheduler for improved concurrency.
- > About raw fds, I don't think we necessarily need to deprecate C APIs, the conversion fd->IO could be done in C (when calling the scheduler) or Ruby code (in the scheduler).
The latest PR does it in C, and it's implementation detail ... -
01:38 PM Feature #16786: Light-weight scheduler for improved concurrency.
- Here is new PR:
https://github.com/ruby/ruby/pull/3434
> [NEED TO CHANGE] doc/fiber.rdoc
We will update it.
> ...
Removed. However, I would like to add, that if we do not have some kind of support for finding blocking behaviour in Ru... -
01:41 PM Bug #17124: Wrong "ambiguous first argument" warning
- I hadn't thought of `method /a /x` or `method /a /<newline>other_method`, indeed.
This warning is only there when there is ambiguity between two divisions and a regexp literal, right?
If so, could we reword the warning to "ambiguit... -
09:41 AM Bug #17124: Wrong "ambiguous first argument" warning
- In your example, `/[a-z]` looks very likely a regexp because of `[`, but how about `/a`?
Or `match? /(a` ...lines... `)/x`?
There are many possibilities. -
12:34 PM Revision 1d1e36fa (git): Partial compliance with doc/method_documentation.rdoc in hash.c (#3432)
- Removes references to *-convertible thingies.
-
12:00 PM Revision dfda2f73 (git): Promote find to default gems
-
08:14 AM Bug #17126: String#gsub fails to escape single quote for shell
- Got it. I missed that completely in the documentation, thinking it wasn't related to our use of `\'`.
Thanks a lot for explaining and for supporting the Ruby programming language in the open-source community. -
07:44 AM Bug #17052: Ruby with LTO enabled has issues with SIGSEGV handler
- vo.x (Vit Ondruch) wrote in #note-4:
> Thank you for the investigation. There is a whole thread on Fedora devel mailing list:
> ...
This is the link:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/messag... -
07:43 AM Bug #17052: Ruby with LTO enabled has issues with SIGSEGV handler
- Thank you for the investigation. There is a whole thread on Fedora devel mailing list:
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/OAD6BEN6UMVIXAEI5EDS5COUYFSPNLZN/
I have posted results of yo... -
03:53 AM Bug #17052: Ruby with LTO enabled has issues with SIGSEGV handler
- Meanwhile it can not be a bad idea for us to avoid SEGV even when DWARF is broken.
-
03:52 AM Bug #17052 (Third Party's Issue): Ruby with LTO enabled has issues with SIGSEGV handler
- Yes I can reproduce this on my machine.
```
% LC_ALL=C gdb --args ./miniruby -e'Process.kill("SIGSEGV",$$)'
GNU gdb (Ubuntu 8.2-0ubuntu1~18.04) 8.2
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version ... -
04:24 AM Revision 6509652c (git): Skip irb/test_history on Windows too
-
03:39 AM Revision 8a40e9b5 (git): Promote set to default gems
-
03:21 AM Bug #16680: Symlink folder in $LOAD_PATH does not work with autoload
- nobu (Nobuyoshi Nakada) wrote in #note-6:
> I can't reproduce it with the master.
> ...
Cool, good news, so, it was fixed on our master, right?
08/19/2020
- 11:32 PM Revision eae7aef0 (git): [DOC] Improve Hash's doc for missing keys
- 11:32 PM Revision a586ccf2 (git): [DOC] Improve and simplify key egality documentation for Hash
-
09:26 PM Revision 63d213eb (git): Partial compliance with doc/method_documentation.rdoc (#3431)
- Removes references to *-convertible thingies.
-
08:39 PM Bug #10222: require_relative and require should be compatible with each other when symlinks are used
- I recently encountered this issue on v2.7.1, when symlinked directories were included in the $RUBYLIB environment variable. I was not experiencing the issue on v2.5.1 with the exact same setup however. Has the bug regressed, or was $RUBY...
-
08:37 PM Bug #14373: Methods with more than 32 keyword arguments with default values have some of the arguments set to default despite being passed in.
- I recently confirmed this bug still exists on the most recent 2.5 release, 2.5.8. Was this fix ever backported to the 2.5 branch?
-
07:05 PM Feature #16986: Anonymous Struct literal
- how about `%struct{a: 1, b: 2}` (and `%value{...}` if needed)?
(znz-san's idea and it seems nice) -
05:57 PM Bug #17126 (Closed): String#gsub fails to escape single quote for shell
- `\'` means something special in a sub/gsub replacement string, see the documentation for details: https://docs.ruby-lang.org/en/2.7.0/String.html#method-i-gsub
As the documentation explains, use four backslashes:
```ruby
puts "Hel... -
03:24 PM Bug #17126 (Closed): String#gsub fails to escape single quote for shell
- Hi, I don't know if I'm misunderstanding how `String#gsub` works, but I encountered an issue in the Ruby "git" gem with escaping single quotes for shell, which I fixed and [contributed back](https://github.com/ruby-git/ruby-git/pull/480)...
-
05:52 PM Feature #17122: Add category to Warning#warn
- mame (Yusuke Endoh) wrote in #note-10:
> My another idea is to call `Warning.warn_deprecated` or `Warning.warn_experimental` before the general `Warning.warn`.
I prefer this approach unless we decide to add categories for all warnings. -
04:31 PM Feature #17122: Add category to Warning#warn
- I've added this ticket to the next dev-meeting agenda.
@byroot Yes, an arity check would work.
My another idea is to call `Warning.warn_deprecated` or `Warning.warn_experimental` before the general `Warning.warn`. I'm not sure if ... -
08:27 AM Feature #17122: Add category to Warning#warn
- I'd like to second this feature request. We used the same workflow in Shopify, and still have a bunch of regexps today to raise on deprecations that would break on 2.8. Having a simple category symbol would make all this much easier.
... -
04:05 AM Feature #17122: Add category to Warning#warn
- Hi Eileen,
First of all, thank you not only for contributing to Ruby but also for working hard on keyword argument separation for GitHub code base!
I think that this feature is reasonable, but I concern its compatibility.
```
m... -
04:26 PM Misc #17041: DevelopersMeeting20200831Japan
- * [Feature #17122] Add category to Warning#warn (mame)
* I'd like to hear opinions from the committers -
05:15 AM Misc #17041: DevelopersMeeting20200831Japan
* [Feature #17125] Remove `Thread.exclusive` (znz)
* `Thread.exclusive` is deprecated since 2.3.-
03:19 PM Bug #17020 (Closed): ObjectSpace.trace_object_allocations_stop raises if called before trace_object_allocations_start
- I merged. Thanks for the patch
-
03:18 PM Bug #17020: ObjectSpace.trace_object_allocations_stop raises if called before trace_object_allocations_start
- I can't close, but this is fixed in a74df67244199d1fd1f7a20b49dd5a096d2a13a2
-
03:13 PM Revision a74df672 (git): Fix ObjectSpace.trace_object_allocations_stop to not raise if the tracepoint were not initialized
- 03:09 PM Revision 7d01d881 (git): * 2020-08-20 [ci skip]
-
03:08 PM Revision aaf0e33c (git): register_fstring: avoid duping the passed string when possible
- If the passed string is frozen, bare and not shared, then there
is no need to duplicate it.
Ref: 4ab69ebbd7cef8539f687e1f948845d076461dc6
Ref: https://bugs.ruby-lang.org/issues/11386 -
11:08 AM Bug #16820: LEGAL is out of sync
- >racc.gemspec says s.licenses = ["MIT"].
It's my mistake. It should be use "Ruby" license. I fixed at https://github.com/ruby/racc/commit/f600effadaec9e389fc336309021640c565c7232.
> ...
racc uses Ruby license now. If some files sho... -
04:31 AM Bug #16820: LEGAL is out of sync
- Great! I have also updated LEGAL in https://github.com/ruby/ruby/pull/3082
The situation is much better than before now. Thank you. -
10:36 AM Revision 7f0ea205 (git): Added did_you_mean entry because did_you_mean uses MIT license
-
10:35 AM Revision 5b04e236 (git): [ruby/racc] Fixed the licenses field of gemspec
- https://github.com/ruby/racc/commit/a1aeecff03
-
10:15 AM Revision f81811fc (git): Skip Editline for history tests of IRB
- Because Editline erases all histories in Readline::HISTORY when
Readline.readline is called. -
06:12 AM Feature #17125: Remove Thread.exclusive
- Here you are: https://github.com/ruby/ruby/pull/3424/commits/f762b2952976905bc658df799890b0e9b61d558f
-
05:13 AM Feature #17125 (Closed): Remove Thread.exclusive
- `Thread.exclusive` is deprecated since 2.3.
```
% docker run -it --rm rubylang/all-ruby env ALL_RUBY_SINCE=ruby-1.8 ./all-ruby -r thread -e 'Thread.exclusive{}'
ruby-1.8.0
...
ruby-2.3.0-preview1
ruby-2.3.0-preview2 Thread.excl... -
06:10 AM Revision 8cc5f74f (git): RHASH_EMPTY_P: convert into an inline function
-
06:10 AM Revision 99093e16 (git): RHASH_TBL: is now ext-only
- It seems almost no internal codes use RHASH_TBL any longer. Why not
just eliminate it entirely, so that the macro can be purely ext-only. -
05:30 AM Revision d2eeb836 (git): tool/update-deps -fix
-
05:30 AM Revision 6649677e (git): ROBJECT_IV_INDEX_TBL: convert into an inline function
- Former ROBJECT_IV_INDEX_TBL macro included RCLASS_IV_INDEX_TBL, which is
not disclosed to extension libraies. The macro was kind of broken. Why
not just deprecate it, and convert the internal use into an inline
function. -
04:03 AM Revision e2c2283a (git): Skip irb/test_history on Solaris
-
02:57 AM Revision 7226f762 (git): Reset object allocation trace information
- Compaction makes collisions in the weak map more likely. For now, clear
the tracing information before the test run so we get accurate results -
02:18 AM Revision e939a5c2 (git): Use "in" and "out" options of "system" instead of "replace_stdio"
-
02:10 AM Revision 7a58ee9b (git): Update references when tracing allocations
- The allocation tracing code keeps essentially a weak reference to
objects that have been allocated (storing the allocation information
along with the weak ref). Compacting the heap would break references in
this weak map, so the wrong v... - 12:46 AM Revision 371c051c (git): * 2020-08-19 [ci skip]
-
12:42 AM Revision ca6868a4 (git): Do "write" to temp stdin before "reopen"
08/18/2020
-
08:02 PM Bug #17124 (Closed): Wrong "ambiguous first argument" warning
- ```sh
$ ruby -v -e "x='a'; x.match? /[a-z]/"
ruby 2.8.0dev (2020-07-30T14:07:06Z master 352895b751) [x86_64-darwin18]
-e:1: warning: ambiguous first argument; put parentheses or a space even after `/' operator
```
There is no `/` ... -
07:04 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:
> ...
As Aaron mentioned, categories already have warnings. My use-case is for deprecations, but that d... -
06:57 PM Bug #17023: How to prevent String memory to be relocated in ruby-ffi
- larskanis (Lars Kanis) wrote in #note-19:
> @tenderlovemaking The issue in FFI is still unsolved. Could you please have a look at the questions above? Or may I open a new issue for discussion?
Hi Lars,
Sorry I totally missed your ... -
06:14 PM Bug #17023: How to prevent String memory to be relocated in ruby-ffi
- @tenderlovemaking The issue in FFI is still unsolved. Could you please have a look at the questions above? Or may I open a new issue for discussion?
-
05:05 PM Feature #16986: Anonymous Struct literal
- Issue #16122 gave me this idea:
I we already had `Struct::Value`, then I think it would make a lot of sense to allow the following syntax:
`%v{ a: 1, b: 2, c: 3 }` **v** short for Struct.**V**alue => immutable: true, enumerable: fa... -
04:05 PM Feature #17059: epoll as the backend of IO.select on Linux
- Yes. I was just figured out that the scheduler is an example in the tests, where the real scheduler is designed to be separated from the ruby-core.
-
09:09 AM Feature #17059: epoll as the backend of IO.select on Linux
- In other words I don't think we need to have selectors in Ruby core.
That's part of the beauty of this new scheduler API: it lets you implement it in various way, including how do you want to wait for IO. -
09:07 AM Feature #17059: epoll as the backend of IO.select on Linux
- dsh0416 (Delton Ding) wrote in #note-16:
> I would try to use these methods to deal with the registration then, and replace the `IO.select` in the `Scheduler#run` for performance.
Where do you see `IO.select` in the `Scheduler`?
Her... -
02:32 PM Revision bed6b720 (git): test/irb/test_history.rb: prevent warnings
- ```
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:16:
warning: assigned but unused variable - result_output
/home/chkbuild/chkbuild/tmp/build/20200818T123003Z/ruby/test/irb/test_history.rb:34:
warning: ... -
02:07 PM Feature #16786: Light-weight scheduler for improved concurrency.
- Regarding naming, based on what we discussed I think these are good candidates:
* `Scheduler#wait_io`, `Scheduler#wait_fiber`
* `Fiber.schedule { ... }` (instead of just `Fiber { }` which confuses many about the semantics)
About raw... -
08:02 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Thanks @ko1, we will prepare an update taking into consideration your feedback and the ongoing discussions.
-
04:48 AM Feature #16786: Light-weight scheduler for improved concurrency.
- Nobu and I reviewed spec and implementation.
There are several topics.
## [NEED TO CHANGE] doc/fiber.rdoc
The file name is `fiber`, but almost describe about the fiber scheduler.
Changing the file name into fiber_scheduler or des... -
12:43 PM Revision 6767a9ef (git): Lounch external process on Windows correctly
-
11:30 AM Bug #16820: LEGAL is out of sync
- I fixed the licenses field in the default gems at https://github.com/ruby/ruby/commit/8fb02b7a97
-
11:26 AM Revision d3b2c1a1 (git): Fixed the invalid SPDX identifier on gemspec
-
11:26 AM Revision 8fb02b7a (git): Update the license for the default gems to dual licenses
-
11:26 AM Revision 0bb8bd76 (git): Added the missing licenses field to some default gems
-
11:26 AM Revision a1148699 (git): Fixed the attribute name for multiple licenses.
-
11:10 AM Revision 4f697bcf (git): Strip trailing spaces [ci skip]
-
11:06 AM Revision 01b6c520 (git): [ruby/irb] Change the way the IRB is invoked as an external process
- https://github.com/ruby/irb/commit/f4bcdf4375
-
10:10 AM Revision 172d44e8 (git): [ruby/reline] Add require 'rbconfig' to use RbConfig
- https://github.com/ruby/reline/commit/4a0d32a3d0
-
10:09 AM Revision f2435c15 (git): [ruby/reline] Get rid of loading pathname unnecessarily
- https://github.com/ruby/reline/commit/9bd54b7f1c
-
10:09 AM Revision d1b06229 (git): [ruby/reline] Use the standard SPDX ID for license in gemspec
- It is better to use SPDX ID for license field:
https://guides.rubygems.org/specification-reference/#license=
ref: https://spdx.org/licenses/Ruby.html
https://github.com/ruby/reline/commit/8468a727e5 -
10:08 AM Revision ad24eaab (git): [ruby/reline] Remove duplicated line of code
- Co-authored-by: Quentin Sabah <quentin.sabah@gmail.com>
https://github.com/ruby/reline/commit/5526e9f7ee -
10:08 AM Revision 80a7358c (git): [ruby/reline] Keep original characters in inputrc
- https://github.com/ruby/reline/commit/96583c6336
-
10:08 AM Revision 44b24ab4 (git): [ruby/reline] Support mode icon
- Co-authored-by: aycabta <aycabta@gmail.com>
https://github.com/ruby/reline/commit/067b618123 -
10:08 AM Revision 0bc748db (git): [ruby/reline] Call #start_terminal after generating temporary inputrc
- because inputrc will be read when starting up
https://github.com/ruby/reline/commit/0a30464385 -
10:08 AM Revision 568615d3 (git): [ruby/reline] Use single quotes for non-expanded string literals
- https://github.com/ruby/reline/commit/3bf7c7d722
-
10:07 AM Revision f0e6ecec (git): [ruby/reline] Use temporary dir with yamatanooroti test
- https://github.com/ruby/reline/commit/8d7df88e98
-
10:04 AM Revision 215fe547 (git): [ruby/reline] Check Errno::EIO
- Catch Errno::EIO what will be occurred if the console terminates I/O before
Reline finishes rendering.
https://github.com/ruby/reline/commit/e51eaa6d43 - 10:03 AM Revision f0d3d4fe (git): [ruby/reline] Add home/end mapping for urxvt and relatives
- https://github.com/ruby/reline/commit/c30b293f1c
-
09:01 AM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
- Could the feature index track that both `.rb` and `.so` have been loaded and if so short-circuit the search?
It would still do a search every time if only the .so is loaded (like currently), but it seems features which only exist as `... -
03:06 AM Bug #15856: Performance of redundant `Kernel.require` is slow when many gems are activated
- Idempotency is a property of an operation within a system. `require` may be idempotent, its particular use is not. You mean redundant, not idempotent.
-
05:38 AM Revision a30dea58 (git): [ruby/irb] Support shortening lambda notetion for nesting level of prompt
- https://github.com/ruby/irb/commit/f1a775af47
-
05:38 AM Revision 43c648c8 (git): [ruby/irb] Support shortening lambda notation
- https://github.com/ruby/irb/commit/8e3f81d428
-
05:38 AM Revision b3f84b4a (git): [ruby/irb] Expand path to run separated test correctly
- https://github.com/ruby/irb/commit/be2937abd5
-
05:38 AM Revision 7fa86de1 (git): [ruby/irb] Workaround a bug of ruby-mode.el
- https://github.com/ruby/irb/commit/6dfd59400d
-
05:38 AM Revision 82d4da78 (git): [ruby/irb] Yet another unnecessary readline
- https://github.com/ruby/irb/commit/933841af11
-
05:38 AM Revision 0fcbd072 (git): [ruby/irb] Directly check if the method is available instead of version
- https://github.com/ruby/irb/commit/3ea9fd9ed0
-
05:38 AM Revision 6aa786b8 (git): [ruby/irb] Get rid of loading readline unnecessarily
- https://github.com/ruby/irb/commit/420e7d2270
-
05:38 AM Revision d32229e3 (git): [ruby/irb] Prefer require_relative to load the files in this library
- https://github.com/ruby/irb/commit/0ac3bc7296
-
05:38 AM Revision a388e255 (git): [ruby/irb] Add require 'irb' to test separately
- https://github.com/ruby/irb/commit/9e4423b6e1
-
05:38 AM Revision 126e1fc2 (git): [ruby/irb] Make history infinite if set SAVE_HISTORY to negative
- https://github.com/ruby/irb/commit/824473e880
-
05:38 AM Revision ef498a01 (git): [ruby/irb] Suppress crash when bignum is set to SAVE_HISTORY
- https://github.com/ruby/irb/commit/5044eb2730
-
05:38 AM Revision 1359da6e (git): [ruby/irb] Add tests about IRB history
- https://github.com/ruby/irb/commit/82efd370eb
-
05:38 AM Revision 6f0ef83d (git): [ruby/irb] Symbol.all_symbols was adopted by Ruby 1.8.0 or later
- https://github.com/ruby/irb/commit/71ba754e8e
-
05:38 AM Revision 5474007d (git): [ruby/irb] Support oneline method definition
- https://github.com/ruby/irb/commit/826ae909c9
-
05:36 AM Revision 70121757 (git): test/fiber/test_backtrace.rb: prevent a warning
- ```
/home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/test/fiber/test_backtrace.rb:9:
warning: ambiguous first argument; put parentheses or a space even after
`/' operator
/home/chkbuild/chkbuild/tmp/build/20200818T033004Z/ruby/tes...
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...