Activity
From 09/09/2022 to 09/15/2022
09/15/2022
-
11:07 PM Bug #19005 (Closed): Ruby interpreter compiled XCode 14 cannot build some native gems on macOS
- This seems related to https://bugs.ruby-lang.org/issues/18912 and https://bugs.ruby-lang.org/issues/18981 .
Steps to reproduce:
1. Upgrade to XCode 14.
2. Compile a new Ruby interpreter. I used the version provided in https://gith... -
07:23 PM Feature #18776: Object Shapes
- # Summary
The implementation has been updated to solve some performance problems and simplify both source code and generated code.
The performance of this branch against multiple benchmarks, including microbenchmarks, RailsBench an... - 02:14 PM Revision cc7f6fe7 (git): YJIT should die if we compile on Aarch64 with no instruction cache clear available (#6380)
- YJIT should die if we compile on ARM64 with no icache clear available
-
02:12 PM Revision 64a02032 (git): Add asm comments to make disasm more readable (#6377)
-
01:36 PM Misc #18977: DevMeeting-2022-09-22
- - [Bug #18978] Unexpected behaviour in Time.utc and Time.local when 8 arguments are passed in (peterzhu2118)
- Passing 8 arguments causes both the 7th (microseconds) and 8th arguments to be ignored.
- The behaviour is undocumente... -
03:26 AM Misc #18977: DevMeeting-2022-09-22
- * [Bug #18960] Module#using raises RuntimeError when called at toplevel from wrapped script (shioyama)
* @jeremyevans0 mentioned this, but I think this is a bug based on common reading of the wrap argument to load.
* See also context... -
01:28 PM Bug #18995: IO#set_encoding sometimes set an IO's internal encoding to the default external encoding
- Can anyone confirm that this is a bug and not a misunderstanding? It looks like the changes to fix this will require a fair bit of refactoring, and there don't yet appear to be any tests around the various cases for arguments to `IO#set...
-
01:16 PM Feature #18885: End of boot advisory API for RubyVM
- So I wrote a reproduction script to showcase the effect of constant caches on Copy on Write performance:
```ruby
class MemInfo
def initialize(pid = "self")
@info = parse(File.read("/proc/#{pid}/smaps_rollup"))
end
def... -
11:21 AM Feature #16946: Add an `intersperse` method
- Just came across this while attempting to see if there was an elegant way to do this. My use case is that I want to generate an array with separator elements -- specifically, I want to generate a nested array of "cellable" objects in Pra...
-
05:49 AM Revision 68a5b0f0 (git): [rubygems/rubygems] Mask the file mode when extracting files
- When extracting files from the tarball, a mode is retrieved from
the header. Occasionally you'll encounter a gem that was packaged
on a system whose permission bits result in a value that is larger
than the value that File.chmod will all... -
05:48 AM Revision bf72afa7 (git): Remove warning for old TLS version connection
- RubyGems.org already has refused connection requests using older than
TLS 1.2. -
03:50 AM Revision 6b2b9e00 (git): [rubygems/rubygems] Also added x86_64-darwin-21
- https://github.com/rubygems/rubygems/commit/c03e7e1564
-
03:50 AM Revision ec0d9a6a (git): [rubygems/rubygems] Added arm64-darwin-22 to lockfiles for testing
- https://github.com/rubygems/rubygems/commit/d7956e9ce5
-
03:19 AM Feature #10320: require into module
- The `wrap` option to `load` has recently been expanded to allow passing a module instead of a boolean (https://bugs.ruby-lang.org/issues/6210) (thanks @jeremyevans0)! This opens the door to new approaches to this problem.
I think there ... -
01:25 AM Revision d152ac67 (git): Make CodeQL ignore syntax_suggest because of the performance problem
- https://github.com/github/codeql/discussions/10120#discussioncomment-3485880
-
01:03 AM Feature #12084: `Class#instance`
- matz (Yukihiro Matsumoto) wrote in #note-6:
> * `attached_object` is better, at least for singleton classes. But there's still no real-world use-case.
I recently ran into a real-world use-case inside one of the gems I maintain and I ... -
12:39 AM Revision aecb57ce (git): Fix style on vm_ivar benchmarks (#6379)
09/14/2022
-
11:25 PM Revision 752ae81e (git): [ruby/irb] Refine assertion for failures
- https://github.com/ruby/irb/commit/fd047512b3
-
11:25 PM Revision ae2e8d36 (git): [ruby/irb] `Dir.mktmpdir` creates a directory including the process ID
- https://github.com/ruby/irb/commit/a15f68ffdb
-
10:18 PM Bug #18983: Range#size for beginless Range is not nil.
- Nevermind. Build failed.
-
08:50 PM Revision 513a11b4 (git): Add vm_ivar get, get_unitialized, and lazy_set benchmarks
-
08:22 PM Misc #18977: DevMeeting-2022-09-22
- * [Bug #18960] Module#using raises RuntimeError when called at toplevel from wrapped script (jeremyevans0)
* Do we want to support this? I think since #using is permitted at top level and inside a module, we should.
* [Bug #18919] R... -
08:15 PM Revision f98d6d3f (git): YJIT: Implement specialized respond_to? (#6363)
- * Add rb_callable_method_entry_or_negative
* YJIT: Implement specialized respond_to?
This implements a specialized respond_to? in YJIT.
* Update yjit/src/codegen.rs
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> -
04:38 PM Revision d5cdc2ed (git): [TravisCI] The source of YAML is no longer bundled
-
04:38 PM Revision fb2e9053 (git): [TravisCI] Make gems/src directory writable
- 03:32 PM Revision 0953ea64 (git): * 2022-09-15 [ci skip]
-
03:31 PM Revision b6a9e683 (git): Add noarch-fake.rb target
- `yes-fake` depends on it when `arch=noarch` is given, but the rule to
generate it from fake.rb.in is ignored now. - 02:32 PM Revision 758a1d73 (git): Initial support for VM_CALL_ARGS_SPLAT (#6341)
- * Initial support for VM_CALL_ARGS_SPLAT
This implements support for calls with splat (*) for some methods. In
benchmarks this made very little difference for most benchmarks, but a
large difference for binarytrees. Looking at side exit... -
02:27 PM Revision 8f37e9c9 (git): YJIT: Add Opnd#with_num_bits to use only 8 bits (#6359)
- * YJIT: Add Opnd#sub_opnd to use only 8 bits
* Add with_num_bits and let arm64_split use it
* Add another assertion to with_num_bits
* Use only with_num_bits - 02:14 PM Revision 2e25b85a (git): configure.ac: Apply suggestions from code review in #6366
- Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
-
02:10 PM Revision 960db13c (git): Reuse `opt_arg_append` function
-
01:21 PM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
- > Some users even decided to disable it completely because the colors are unreadable to them. I have also seen people sharing tips for disabling this feature: [example](https://twitter.com/sdogruyol/status/1538512030449254400).
JFYI, I'... - 01:17 PM Revision f512df73 (git): configure.ac: Add --with-gmp-dir (#6366)
- Add the `--with-gmp-dir` to specify the prefix directory of GMP.
The`--without-gmp` option is preserved for convenience. It can
be used to force to reject using GMP even if the `--with-gmp-dir`
option is specified. -
12:24 PM Revision 075df960 (git): Add comments to touch libyjit
-
12:24 PM Revision e1a9d884 (git): Touch libyjit.a which may be still old due to the cache
-
12:24 PM Revision f2429f0a (git): Expand dependency for `$(YJIT_LIBS)`
- Currently, miniruby is rebuild **always** when yjit is enabled, even
if nothing is changed. -
11:12 AM Bug #18914: Segmentation fault during Ruby test suite execution
- I believe this error is a problem of the Fiddle gem, as according to FFI upstream, when process forks with allocated FFI Closures on SELinux systems, the Parent and Child process need to coordinate on memory usage see my comment on the F...
-
08:30 AM Revision d66b29cc (git): Add link to how to build Ruby
-
02:27 AM Revision 2e324b64 (git): Manage paths for bundler tests
-
02:27 AM Revision 035978d7 (git): Pass job-server FDs to bundler tests
-
02:27 AM Revision c428fc0e (git): -undefined dynamic_lookup is obsolete
-
02:24 AM Revision c28a4e03 (git): Replace "Fixes"/"Fixed" in commit logs as well as vcs.rb [ci skip]
- Use the same regexp to replace "(#NNNN)" and "GH-NNNN" style
references in vcs.rb, too. -
02:14 AM Revision f863bc50 (git): [ruby/irb] Fix the error when LC_MESSAGES config value is nil
- https://github.com/ruby/irb/commit/6bbde84369
-
01:53 AM Feature #18571: Removed the bundled sources from release package after Ruby 3.2
- commit:e4f5296f065110fa83eb450d3a861253e76e534f removed them.
-
01:42 AM Revision e2b47b83 (git): configure.ac: Manage OPT_DIR better (#6367)
- * Check rpath flag earlier
* Manage OPT_DIR at once -
01:15 AM Revision 9299db49 (git): [ruby/irb] Fix history file saving with concurrent irb sessions when history file doesn't exist
- If history file didn't exist when irb was started, @loaded_history_mtime
would be nil. However, if the history file didn't exist before, but it
exists when saving history, that means the history file was modified,
and we should handle i...
09/13/2022
- 10:21 PM Revision b876230e (git): * 2022-09-14 [ci skip]
-
10:21 PM Revision 6a78ae2f (git): Remove CODEOWNERS to switch to auto-request-review (#6365)
- * Remove CODEOWNERS to switch to auto-request-review
* Random change to test reviews
* Revert "Random change to test reviews"
This reverts commit 814b10d062d82d953019ea4afadc3f8fcf638379. - 06:44 AM Revision 316b44df (git): Add GMP support for mswin
-
01:48 AM Revision 391eebfe (git): Increase the timeout for make all on MinGW
- https://github.com/ruby/ruby/actions/runs/3041702828/jobs/4899106526#step:14:1219
-
01:38 AM Revision 2e21fef6 (git): Drop synchronized event
- because it doesn't seem to be working. It's a bit annoying that
synchronized doesn't work, but in many cases, opened and
ready_for_review should be enough. As a last resort, you could
close/reopen it.
Also, the token scope needs to be p... -
01:24 AM Revision 64cd0970 (git): Tweak the glob for auto_request_review
-
01:18 AM Revision 9179f666 (git): Configure auto_request_review for YJIT team
- We need to use pull_request_target instead of pull_request to use secrets.
pull_request_target seems to be executed from the default branch, so
pushing this to master to test this. - 12:25 AM Revision bc8bbd23 (git): * 2022-09-13 [ci skip]
-
12:25 AM Revision fcf861a1 (git): Try latest debug.gem
09/12/2022
-
01:23 PM Feature #18949: Deprecate and remove replicate and dummy encodings
- In https://github.com/ruby/ruby/pull/6323 I managed to replace all usages of `rb_define_dummy_encoding()` by just `rb_raise(rb_eArgError, "unknown encoding name - %s", name);`, and all tests pass.
Feedback/review appreciated. -
12:05 PM Feature #18949 (Open): Deprecate and remove replicate and dummy encodings
- Done:
* Deprecate Encoding#replicate
* Remove get_actual_encoding() and the dynamic endian detection for dummy UTF-16/UTF-32 (https://github.com/ruby/ruby/pull/6322)
Still to do:
* Limit the number of dynamic encodings defined by rb_def... -
12:02 PM Feature #18949 (Closed): Deprecate and remove replicate and dummy encodings
- Applied in changeset commit:git|6525b6f760ccd9612c9546b0313ab1c7e4af5e66.
----------
Remove get_actual_encoding() and the dynamic endian detection for dummy UTF-16/UTF-32
* And simplify callers of get_actual_encoding().
* See [Feature ... -
01:13 PM Revision 2aa8edae (git): [rubygems/rubygems] Deduplicate results just once
- Instead of checking for uniqueness for every spec.
https://github.com/rubygems/rubygems/commit/97d28c9665 -
01:13 PM Revision 75d90cc8 (git): [rubygems/rubygems] Use a single hash to keep track of prereleases
- https://github.com/rubygems/rubygems/commit/9d7bd177b0
-
01:13 PM Revision 03d19627 (git): [rubygems/rubygems] Remove unnecessary sorting
- Already done by the gem version promoter.
https://github.com/rubygems/rubygems/commit/aae2cc9fe0 -
01:13 PM Revision dce73c86 (git): [rubygems/rubygems] Simplify instantiating the gem version promoter
- https://github.com/rubygems/rubygems/commit/c4e2737f2c
-
01:13 PM Revision 6a21d196 (git): [rubygems/rubygems] Let specs be sorted just once by the gem version promoter
- https://github.com/rubygems/rubygems/commit/3cea25a39d
-
01:13 PM Revision 8d2bcc88 (git): [rubygems/rubygems] This sorting seems unnecessary too
- https://github.com/rubygems/rubygems/commit/823cb1fef9
-
01:13 PM Revision a4860e04 (git): [rubygems/rubygems] Remove unnecessary spec sorting
- Specs in a SpecSet with the same name are only sorted by platform
priority when they are read. No need to sort everything eagerly.
https://github.com/rubygems/rubygems/commit/aeafff52df -
12:59 PM Revision acc61cbf (git): Add NEWS entry for the previous commit
-
12:02 PM Revision 6525b6f7 (git): Remove get_actual_encoding() and the dynamic endian detection for dummy UTF-16/UTF-32
- * And simplify callers of get_actual_encoding().
* See [Feature #18949].
* See https://github.com/ruby/ruby/pull/6322#issuecomment-1242758474 -
10:53 AM Revision ed029e9b (git): Autoconf 2.70 or AC_PROG_CC_C99 for earlier is checking for C99
- It is no longer necessary to add it to `CFLAGS`/`CPPFLAGS` later.
Furthermore, as `CPPFLAGS` is used also with C++ compiler, the option
particular to C such as `-std=gnu99` results in an error. -
07:24 AM Bug #18938: Backport cf7d07570f50ef9c16007019afcff11ba6500d70
- @nagachika it's my fault. For backporting purpose `cf7d07570f50ef9c16007019afcff11ba6500d70` alone should be backported and `c6aa65430fbb94651f4d15e2a976f59b5475ca19` should be ignored.
09/11/2022
-
10:50 PM Revision 89077b4c (git): Add comments for some peephole optimizations [ci skip]
- 10:48 PM Revision 6f8267b7 (git): * 2022-09-12 [ci skip]
-
10:47 PM Revision 9205b8c8 (git): Revert "defs/gmake.mk: no _FORTIFY_SOURCE unless optimization"
- This reverts commit b8c376cb9d91854fd40f6e06f07773404899b54f, as it
seems no longer needed probably. -
02:08 PM Bug #18880 (Closed): IO#sysread on Windows does not validate arguments
- Applied in changeset commit:git|684353fc03afd6e7c887b65bd18f0b3aeb98101c.
----------
[Win32] Negative length `IO#sysread`
Raise `ArgumentError` in `IO#sysread` on Windows when given a negative
length.
Fixes [Bug #18880] -
02:08 PM Revision 684353fc (git): [Win32] Negative length `IO#sysread`
- Raise `ArgumentError` in `IO#sysread` on Windows when given a negative
length.
Fixes [Bug #18880] -
10:45 AM Feature #18798: `UnboundMethod#==` with inherited classes
- This would be really helpful for checking if a class has redefined a method inherited form a superclass.
As an example, I’m working on a compiler that replaces certain method calls with their inlined expected behaviour from an abstrac... -
10:30 AM Misc #18977: DevMeeting-2022-09-22
- * [Feature #18798] `UnboundMethod#==` with inherited classes (eregon)
* OK to change `UnboundMethod#==` to check if same method definition (and ignore from which class `instance_method` was used on)? If yes, what about `UnboundMethod#e... -
07:13 AM Feature #12354 (Closed): PKey::EC Can't output public key pem when private key exists
- openssl v2.2 added OpenSSL::PKey::PKey#public_to_pem and #public_to_der for this purpose.
https://github.com/ruby/openssl/pull/297
Ruby 3.0 includes v2.2 by default. -
06:58 AM Bug #18763 (Closed): The configure option “--with-openssl-dir” has lower precedence than pkg-config
- Upstream issue for this bug: https://github.com/ruby/openssl/pull/486
Yes. This is resolved by openssl gem releases 2.1.4/2.2.2/3.0.1. Backporting is requested in #18999. -
06:39 AM Revision 472e7b85 (git): MJIT: Use the built-in PACK_MAP
- 106744107b made this possible.
-
06:30 AM Revision 10674410 (git): [ruby/fiddle] Fix PACK_MAP for unsigned types (https://github.com/ruby/fiddle/pull/110)
- https://github.com/ruby/fiddle/commit/4a71246645ccff001292c9d80b855b2ef5bf06c1
-
02:54 AM Feature #16122: Data: simple immutable value object
- zverok (Victor Shepelev) wrote in #note-68:
> Pull request: https://github.com/ruby/ruby/pull/6353
Very nice.
I don't think `keyword_init` and "naming as the first argument"
features are needed for new `Data`. So, I guess that s... -
02:49 AM Feature #18951: Object#with to set and restore attributes around a block
- This idea is very similar to Algebraic effects, which dry-rb has a variant on:
https://dry-rb.org/gems/dry-effects/main/
I would personally like the `with` variant myself, granting that it is a bit vague, but is also in line with w... -
02:34 AM Feature #18951: Object#with to set and restore attributes around a block
- It would be super nice to somehow support `ENV` as well, since it is super common pattern in test suites.
-
01:14 AM Revision 7232f264 (git): Remove -j from MinGW test-all
- MinGW CI has been crashing too often. Now that we don't have slow test_mjit in MinGW, I'd like to see if not using parallel test workers fixes the problem.
-
12:09 AM Revision aa8a3b23 (git): MJIT: Do not hang after forking with threads
- First, rb_mjit_fork should call rb_thread_atfork to stop threads after
fork in the child process. Unfortunately, we cannot use rb_fork_ruby to
prevent this kind of mistakes because MJIT needs special handling of
waiting_pid and mjit_paus...
09/10/2022
-
09:46 PM Bug #18880: IO#sysread on Windows does not validate arguments
- I submitted PR https://github.com/ruby/ruby/pull/6354 with a simple fix. I don't have a Windows system to test with though, so I couldn't verify that it works.
-
06:14 PM Feature #18949 (Open): Deprecate and remove replicate and dummy encodings
-
05:03 PM Feature #18949 (Closed): Deprecate and remove replicate and dummy encodings
- Applied in changeset commit:git|14bcf69c9c36875c7956d0ec8c04bfeaec514dd1.
----------
Deprecate Encoding#replicate
* See [Feature #18949]. -
05:46 PM Bug #19004 (Closed): Complex can be nested by Complex.polar
- `Complex.polar` with one argument can return a "nested" Complex instance, whose real part is also a Complex one.
```ruby
puts RUBY_DESCRIPTION
# ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux]
p Complex.polar(1+0i)
... - 05:03 PM Revision c22a6685 (git): * 2022-09-11 [ci skip]
-
05:02 PM Revision 14bcf69c (git): Deprecate Encoding#replicate
- * See [Feature #18949].
-
04:41 PM Feature #16122: Data: simple immutable value object
- Indeed, that's what I meant. Alright, I guess we need to support positional arguments too then.
Because that's implemented in the subclass `.new` it should be possible to optimize it pretty well. -
02:12 PM Feature #16122: Data: simple immutable value object
- > Regarding creating a new Data subclass instance, I wonder if we should support both positional and kwargs, or if we should only support keyword arguments
Am I understanding correctly that you propose to only leave `Measure.new(amoun... -
02:04 PM Feature #16122: Data: simple immutable value object
- zverok (Victor Shepelev) wrote in #note-70:
> I am not sure whether we have a C-level API for passing keyword args one-by-one, not by packing to Hash and unpacking back?.. My C-foo might be not strong enough for defining specialized ini... -
01:55 PM Feature #16122: Data: simple immutable value object
- @Eregon Yeah, those are valuable observations!
The specialized `initialize` also looks more reasonable to me, actually, but I followed what the `Struct` does so far.
I am not sure whether we have a C-level API for passing keyword... -
01:46 PM Feature #16122: Data: simple immutable value object
- Looks good to me.
Regarding overriding `initialize` and calling `super`, that would not work if we define an optimized `initialize` instance method on the subclass by Data.define (it would result in NoMethodError or the slower generic... -
12:35 PM Feature #16122: Data: simple immutable value object
- Pull request: https://github.com/ruby/ruby/pull/6353
Copying from its description:
Example docs rendering: [Data](https://zverok.space/ruby-rdoc/Data.html)
Design and implementation decisions made:
**1. The "define data object method... -
11:08 AM Feature #16122: Data: simple immutable value object
- Agreed with @k0kubun. Also `Class.define` wouldn't make it clear it defines a data class and creates Data (subclass) instances.
-
01:24 PM Feature #19001: Data: Add #to_h symmetric to constructor with keyword args [Follow-on to #16122 Data: simple immutable value object]
- There isn't any need for this ticket as a separate request, as far as I am concerned.
It works in the initial implementation of data already as submitted in https://bugs.ruby-lang.org/issues/16122#note-68, and even works with ol' good S... -
12:32 PM Revision f6411795 (git): [win32] Set proper `NULLCMD` in rbconfig.rb [ci skip]
-
12:31 PM Bug #18998: Kernel#Integer does not convert SimpleDelegator object expectly
- > it would be best if you defined #to_int on your delegator
I've tried this approach but it was failed because `base` and `exception` arguments cannot be passed to `#to_i` method on my delegator.
Therefore, I've overridden `Kernel#In... -
11:50 AM Revision c7225971 (git): [MSWin] Get rid of single quotes in sed command lines
- GnuWin32 sed strips only double quotes, but not single quotes, and
dies:
```
sed: -e expression #1, char 1: unknown command: `''
``` -
11:14 AM Revision 92b907d1 (git): Enable deprecation warnings for test-all
- * So deprecated methods/constants/functions are dealt with early,
instead of many tests breaking suddenly when removing a deprecated
method/constant/function.
* Follows https://bugs.ruby-lang.org/issues/17591 -
07:54 AM Revision 9581248c (git): merge revision(s) b7577b4d9e0fd92522fc30e10fe712e245adee8c:
- The tzdata 2022c removed Amsterdam Mean Time
---
spec/ruby/core/time/shared/local.rb | 2 ++
1 file changed, 2 insertions(+) -
07:13 AM Bug #18936: Backport 261753249996d46e00c2549fff2527816bf387db
- ruby_3_1 4508901fbd8825cc8d9aaf535b5201ade17a8392 merged revision(s) 261753249996d46e00c2549fff2527816bf387db.
-
07:12 AM Bug #18990: Pattern matching unexpectedly raises "duplicated key name" error
- ruby_3_1 163947f4dc031bb5e619ae64ad4a6a02f8885717 merged revision(s) db0e0dad1171456253ebd899e7e878823923d3d8.
-
07:12 AM Bug #18938: Backport cf7d07570f50ef9c16007019afcff11ba6500d70
- I tried to backport cf7d07570f50ef9c16007019afcff11ba6500d70 and c6aa65430fbb94651f4d15e2a976f59b5475ca19 into ruby_3_1 branch, but the test `test_utf8_method_names` failed. Maybe some more changesets are needed. I will investigate it fu...
-
07:04 AM Revision 4508901f (git): merge revision(s) 261753249996d46e00c2549fff2527816bf387db: [Backport #18936]
- Free cached mark stack chunks when freeing objspace
Cached mark stack chunks should also be freed when freeing objspace.
---
gc.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-) -
07:00 AM Revision 163947f4 (git): merge revision(s) db0e0dad1171456253ebd899e7e878823923d3d8: [Backport #18990]
- Fix unexpected "duplicated key name" error in paren-less one line
pattern matching
[Bug #18990]
---
parse.y | 16 ++++++++++++----
test/ruby/test_pattern_matching.rb |... -
03:29 AM Revision 5e39b3b8 (git): YJIT: Branch directly when nil? is known from types
-
03:29 AM Revision d3191843 (git): YJIT: Branch directly when truthyness is known
-
12:32 AM Revision 79f50b9d (git): Using is_broken_string function
-
12:32 AM Revision 51830188 (git): Fix parallel build on MINGW
- When the build is running with a base ruby then generating `x64-ucrt-ruby320.rc`
could fail due to a missing dependency to `x64-mingw-ucrt-fake.rb`.
This commit adds this dependency.
A failing build looks like so:
```
generating x64-min...
09/09/2022
-
11:06 PM Feature #16122: Data: simple immutable value object
- shugo (Shugo Maeda) wrote in #note-65:
> why not use Class.define to return a new immutable Struct-like class?
Given that Matz is also thinking about introducing `Struct.define`, if we do the immutable one with `Class.define`, we'd n... -
09:26 PM Feature #16122: Data: simple immutable value object
- If we choose `define` instead of `new`, why not use Class.define to return a new immutable Struct-like class?
* The name Data doesn't imply immutability, so Class.define is OK too.
* It's clearer that Class.define returns a class.
-
10:41 PM Revision 5b5c627d (git): YJIT: eliminate redundant mov in csel/cmov on x86 (#6348)
- * Eliminate redundant mov in csel/cmov. Translate mov reg,0 into xor
* Fix x86 asm test
* Remove dbg!()
* xor optimization unsound because it resets flags -
10:14 PM Bug #18998: Kernel#Integer does not convert SimpleDelegator object expectly
- > My thought is that Integer method should convert a Delegator object like when a String is given.
I don't think it would be advisable for `Kernel#Integer` to know about `Delegator`. `Delegator` is just a class from the stdlib, you co... -
05:10 PM Bug #18998: Kernel#Integer does not convert SimpleDelegator object expectly
- Thank you for your reply.
I understood that there is no documented specification and the current implementation.
How should Integer method behave for this case?
My thought is that Integer method should convert a Delegator object lik... -
08:44 PM Feature #12354: PKey::EC Can't output public key pem when private key exists
- If you're linked against OpenSSL >= 3, the workarounds suggested here don't seem to work any longer because a pkey is not allowed to be modified:
```
Failure/Error: pub.public_key = SIGNING_KEY.public_key
OpenSSL::PKey::PKeyError:... - 03:38 PM Revision 2a08a39d (git): * 2022-09-10 [ci skip]
-
03:37 PM Revision 848037ca (git): Better offsets (#6315)
- * Introduce InstructionOffset for AArch64
There are a lot of instructions on AArch64 where we take an offset
from PC in terms of the number of instructions. This is for loading
a value relative to the PC or for jumping.
We were usually... -
10:38 AM Revision b350053a (git): [rubygems/rubygems] Fix resolution on non-musl platforms
- Gems without specific platform were being preferred over matching
platform specific gems.
https://github.com/rubygems/rubygems/commit/37b95b9159 -
09:58 AM Revision cfe10e48 (git): [DOC] Update `Struct#new` behavior with `keyword_init: true`
-
09:17 AM Bug #19003 (Rejected): TracePoint behavior inconsistency in 3.2.0-preview2
- This is kind of continuation of my previous report about global/local TP processing (#18730).
Sample script:
```rb
def foo
return 1
end
puts RubyVM::InstructionSequence.of(method :foo).disasm
def step_over
TracePoint.ne... -
07:03 AM Revision aff6534e (git): Avoid unnecessary copying when removing the leading part of a string
- Remove the superfluous str_modify_keep_cr() call from rb_str_update().
It ends up calling either rb_str_drop_bytes() or rb_str_splice_0(),
which already does checks if necessary.
The extra call makes the string "independent". This is no... -
06:47 AM Revision 9faa9ced (git): Support sub-library in builtin-loader
- Previously, it was supported in prelude.c, but has not followed up the
builtin-loader system. -
06:19 AM Revision 56e5210c (git): More robust macro parser (#6343)
- I want to use more complicated macros with MJIT. For example:
```
# define SHAPE_MASK (((unsigned int)1 << SHAPE_BITS) - 1)
```
This commit adds a simple recursive descent parser that produces an AST
and a small visitor that convert... -
05:23 AM Revision be560332 (git): Move RDoc `--`/`++` directives to comments
-
05:20 AM Revision 2dcaeb75 (git): Built-in function table sentinels do not need names
-
05:16 AM Bug #18990: Pattern matching unexpectedly raises "duplicated key name" error
- @zeke
Thanks for reporting. -
05:06 AM Bug #18990 (Closed): Pattern matching unexpectedly raises "duplicated key name" error
- Applied in changeset commit:git|db0e0dad1171456253ebd899e7e878823923d3d8.
----------
Fix unexpected "duplicated key name" error in paren-less one line pattern matching
[Bug #18990] -
05:00 AM Revision db0e0dad (git): Fix unexpected "duplicated key name" error in paren-less one line pattern matching
- [Bug #18990]
-
02:36 AM Revision 59eadf3d (git): Ignore EACCES on Windows
-
01:47 AM Feature #19002: Explicit splat for enumerator kwarg blocks
- I also had
``` ruby
module Enumerable
def **(proc) = each { |arg| proc[**arg] }
end
ary.map ** ->(foo:, bar:) { foo+bar } #=> [143, 222]
```
which is kinda fun, but not so readable.
-
01:12 AM Feature #19002 (Open): Explicit splat for enumerator kwarg blocks
- I'm renovating some 2.x-era code that relied heavily on autosplat for block kwargs. As we all know, this throws an ArgumentError in Ruby 3:
``` ruby
ary = [
{ foo: 42, bar: 101 },
{ foo: 99, bar: 123 }
]
ary.map { |foo:, ba...