Activity
From 04/28/2024 to 05/04/2024
05/04/2024
-
04:37 PM Bug #20471: Problem creating a file on a windows share and copy it afterwards
- budiljak (Benjamin Udiljak) wrote:
> I also tried `f.fsync` , `f.fdatasync` , `f.flush`, but it didn't help.
Have you tried `sleep 1` (or more seconds) after the `File.open` block?
-
02:59 PM Bug #20471 (Open): Problem creating a file on a windows share and copy it afterwards
- Hi,
in my Rails application I have the requirement to create a file and copy it to another place on the same windows share. But if I write the file with `File` class and try to copy it with `FileUtils.cp` it hangs indefinitely withou... -
04:31 PM Revision b181ba74 (git): [ruby/prism] Use `version: 3.3.1` against `Translation::Parser`
- Follow up https://github.com/ruby/prism/pull/2760.
This PR updates the `Translation::Parser` to use version 3.3.1 when the version 3.3 is specified.
The Parser gem is structured to support the latest patch versions, hence this aligns wi... -
03:45 PM Feature #20469: Add a JSON addition for Enumerator::ArithmeticSequence
- I just realized I filed my PR in the wrong place since JSON is a gem. (Sorry for the noise.) I closed the previous PR and opened one in the JSON gem repo. https://github.com/flori/json/pull/583
-
11:29 AM Bug #20468: Segfault on safe navigation in for target
- Agree with @Eregon. The code should be more or less equivalent to:
```ruby
for temp in [1, 2, 3]
foo&.bar = temp
end
```
...which is totally valid and `foo&.bar =` is a no-op (semantically). -
10:35 AM Bug #20468: Segfault on safe navigation in for target
- IOW I think the segfault could be fixed here without changing what is valid syntax.
And given this segfault probably affects older versions too there it seems better to fix the segfault than to change syntax. -
10:34 AM Bug #20468: Segfault on safe navigation in for target
- Given `for foo.bar in []; end` is valid and does `for.bar = element`,
I think `for foo&.bar in []; end` could simply do `for&.bar = element` which is the same as `for.bar = element unless foo.nil?` (`NIL_P(foo)` to be precise).
Chang... -
08:49 AM Bug #20468: Segfault on safe navigation in for target
- I found that a `for` loop variable is looser than I expected.
Not only a safe navigation call, even a constant can be used.
I don't think a constant is useful as a loop variable that is expected to be re-assigned.
https://github.com... -
03:52 AM Bug #20468: Segfault on safe navigation in for target
- Hmmm, may be possible to interpret that code like as `foo&.then {|recv| for recv.bar in []; end}`.
Just an idea. -
03:50 AM Bug #20468: Segfault on safe navigation in for target
- I can't imagine what it should do when `foo == nil`.
Should be a syntax error probably? -
09:03 AM Revision 96710a31 (git): [ruby/irb] Change debug test workaround only enabled when output is
- tty
(https://github.com/ruby/irb/pull/949)
https://github.com/ruby/irb/commit/3f231b8622 -
03:32 AM Revision bd42f089 (git): [ruby/irb] Improve help message for no meta commands
- (https://github.com/ruby/irb/pull/948)
* Remove unnecessary code from command tests
* Improve help message for no meta commands
1. Add placeholder values for both command category and description
2. Update help command's output to giv... -
03:22 AM Revision fb2ea708 (git): [ruby/irb] Use flag instead of caller for `debug`'s binding.irb
- check
(https://github.com/ruby/irb/pull/947)
https://github.com/ruby/irb/commit/4a4d7a4279 -
02:59 AM Revision cf74ff71 (git): Change return value of `gets` function to be `rb_parser_string_t *` instead of `VALUE`
- This change reduces parser's dependency on ruby object.
05/03/2024
-
10:08 PM Revision a510175e (git): [ruby/irb] Avoid raising errors while running help for custom
- commands
(https://github.com/ruby/irb/pull/944)
* Avoid raising errors while running help for custom commands
Raising an error from the help command is not a pleasure for the
end user, even if the command does not define any attributes... -
09:34 PM Revision 70db150f (git): [ruby/irb] Fix typos in test/irb/command/test_custom_command.rb
- (https://github.com/ruby/irb/pull/945)
https://github.com/ruby/irb/commit/f2b5fc192f -
07:35 PM Misc #20436: DevMeeting at RubyKaigi 2024
- * [Feature #20470] Extract Ruby's Garbage Collector (peterzhu2118)
* Splits GC into two files `gc.c` and `gc_impl.c`.
* `gc.c` only contains code not specific to Ruby GC.
* `gc_impl.c` contains the implementation of Ruby's GC.
... -
07:30 PM Feature #20470 (Closed): Extract Ruby's Garbage Collector
- # Extract Ruby's Garbage Collector
## Background
As described in [[Feature #20351]](https://bugs.ruby-lang.org/issues/20351), we are working on the ability to plug alternative garbage collector implementations into Ruby. Our goal i... -
07:14 PM Revision d4a6d0c1 (git): [ruby/prism] Prism::Location#adjoin
- https://github.com/ruby/prism/commit/a298db68e3
-
07:11 PM Feature #20469 (Third Party's Issue): Add a JSON addition for Enumerator::ArithmeticSequence
- There's a JSON addition for `Range` but one wasn't added for `Enumerator::ArithmeticSequence` when it was introduced. This little PR adds a JSON addition for ArithmeticSequence for parity with a normal Range. https://github.com/ruby/ruby...
-
06:37 PM Revision 7a49edcf (git): [ruby/prism] Prism::Node#tunnel
- https://github.com/ruby/prism/commit/0bf5d651da
-
06:15 PM Revision c631679b (git): [PRISM] Disallow &. in MLHS
-
06:14 PM Revision 1af2dead (git): [ruby/prism] Disallow *a&.x=0
- https://github.com/ruby/prism/commit/624fdf74bd
- 06:10 PM Revision 4fbb2081 (git): [ruby/prism] Create specialized `ASCIISource` with asciionly optimizations
- https://github.com/ruby/prism/commit/40993166a8
-
06:09 PM Revision 31361aec (git): [ruby/prism] Disallow safe navigation in a call target node
- https://github.com/ruby/prism/commit/b1917adac7
-
05:32 PM Revision 31c69698 (git): [PRISM] Enable passing test for **nil
-
05:32 PM Revision 2368dab1 (git): [ruby/prism] Disallow **nil after keyword parameters
- https://github.com/ruby/prism/commit/5beeae076f
-
05:11 PM Revision 461d6d44 (git): [PRISM] Enable RubyVM tests for prism
-
05:08 PM Bug #20468 (Closed): Segfault on safe navigation in for target
- ```ruby
for foo&.bar in []; end
``` -
05:01 PM Revision 56672c8b (git): [PRISM] Enable passing tests for index expressions
-
05:01 PM Revision 7caeff2b (git): [ruby/prism] Disallow keywords and blocks in index expressions
- https://github.com/ruby/prism/commit/e950dc1e83
-
04:34 PM Revision b6625d38 (git): [DOC] Fix the description about the timing finalizers will be called
-
04:31 PM Bug #20465: parse.y adds an extra empty string to the AST
- mame (Yusuke Endoh) wrote in #note-1:
> How would this be a problem?
> ...
It's not a problem for the compiler (of course), but a problem for the language server use case. Users didn't write `""` there, so consumers of the AST will ha... -
04:15 PM Revision 91485d7d (git): Adjust indent [ci skip]
-
04:02 PM Revision 97654bee (git): [ruby/prism] Remove deprecated #child usage
- https://github.com/ruby/prism/commit/14d9b431e2
-
03:50 PM Bug #20464: Redundant returns are unreachable in coverage
- In that case this can probably be closed.
-
03:26 PM Bug #20464: Redundant returns are unreachable in coverage
- If the parser does not remove the NODE_RETURN, the compiler can detect the line event, so I think it will be automatically fixed. In fact, I tried [nobu's patch](https://github.com/ruby/ruby/pull/10642) and it fixed this problem on my ma...
-
12:23 PM Bug #20464: Redundant returns are unreachable in coverage
- It's a little different. In that one the issue is the parser, in this one the issue is the compiler. Even if the node isn't eliminated from the AST, there will still likely need to be a fix in the compiler.
-
12:04 AM Bug #20464: Redundant returns are unreachable in coverage
- Is this the same issue as #20457?
-
03:49 PM Bug #20467 (Closed): Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
-
01:43 PM Bug #20467: Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
- I've changed it to be the following since https://github.com/ruby/ruby/pull/10716.
```
irb(main):001> Prism.parse(%q(Bar::Foo)).value
=>
@ ProgramNode (location: (1,0)-(1,8))
├── locals: []
└── statements:
@ StatementsNode ... -
03:12 PM Revision 281df1e4 (git): [rubygems/rubygems] Remove `Gem::Specification#mark_version`
- This gets in the middle if we ever start allowing to build as if using a
different RubyGems version than the one being run.
This could be useful to make `gem rebuild` a little more usable, and
it's already done by Bundler specs which al... -
03:11 PM Revision 0948b6a5 (git): [PRISM] Use new constant path structure
-
03:11 PM Revision 5758e456 (git): [ruby/prism] Change ConstantPathNode#child to ConstantPathNode#{name,name_loc}
- This has been requested for a long time, and I'm finally doing it
now. Unfortunately this is a breaking change for all of the APIs.
I've added in a Ruby method for `#child` that is deprecated so that
existing usage doesn't break, but fo... -
01:12 PM Revision 1d51e929 (git): [ruby/prism] Assume eval context for ruby_parser and ripper
- https://github.com/ruby/prism/commit/e4d6984892
-
12:53 PM Revision 32b1dea5 (git): [ruby/prism] Assume an eval context for `Prism::Translation::Parser`
- This is similar to https://github.com/davidwessman/syntax_tree-erb/issues/81 but for RuboCop
The parser gem doesn't support these types of checks,
see https://github.com/whitequark/parser?tab=readme-ov-file#syntax-check-of-block-exits
W... -
12:36 PM Revision 7c029f61 (git): [ruby/prism] Remove generics from sorbet types
- https://github.com/ruby/prism/commit/080d84fd03
-
11:29 AM Bug #20094: Inline while loop behavior changed unexpectedly in 3.3.0
- Indeed:
```
$ ruby -ve '(p 1) while false'
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
$ ruby -ve '(p 1) while false'
ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
1
``` - 10:54 AM Revision c1b11c50 (git): [rubygems/rubygems] Rename credential email to identifier in WebAuthn poller
- https://github.com/rubygems/rubygems/commit/5e3e55f8bc
-
05:49 AM Revision 7662e6fc (git): win32/registry: Shorten with safe navigation operator
-
05:49 AM Revision 491c38bf (git): win32/registry: Make frozen_string_literal true
-
05:49 AM Revision 0b091e66 (git): win32/registry: Refine pack/unpack
- * Use 'J' for HANDLE.
* Use 'Q' for QWORD.
* Define template constants.
* Supply zero bytes in `unpackqw` as well as `unpackdw`.
* Use `String#unpack1`. -
05:47 AM Revision 9f8e87c4 (git): Test for win32/registry.rb
-
03:40 AM Revision 899d9f79 (git): Rename `vast` to `ast_value`
- There is an English word "vast".
This commit changes the name to be more clear name to avoid confusion. -
03:05 AM Revision e1905ca1 (git): Use user defined parameterizing rules `f_optarg(value)`
-
02:46 AM Revision 5409661f (git): Mark the first string element of a regexp as binary if US-ASCII
05/02/2024
-
11:55 PM Bug #20465: parse.y adds an extra empty string to the AST
- How would this be a problem?
I think it intentionally creates the structure to ensure that it returns a new String object. Unlike #20457, there is no lack of information. I don't think it is so inconvenient. -
06:10 PM Bug #20465 (Open): parse.y adds an extra empty string to the AST
- Given this code:
```ruby
t0 = '\\xc1'
"#{t0}"
```
The AST is like this:
```
$ ./miniruby --dump=parsetree test.rb
###########################################################
## Do NOT use this node dump for any purpose oth... -
11:37 PM Bug #20467 (Closed): Prism creates a wrong ConstantReadNode for `Bar::Foo = 42`
- Currently, Prism creates the following AST for `Bar::Foo = 42`
```
irb(main):001> Prism.parse(%q(Bar::Foo = 42)).value
=>
@ ProgramNode (location: (1,0)-(1,13))
├── locals: []
└── statements:
@ StatementsNode (location: (1,0... -
09:32 PM Revision b5cefa79 (git): Fix GC_DEBUG
-
09:32 PM Revision 6d605f1e (git): Move rvalue_overhead out of RVALUE
- Since we cannot read the rvalue_overhead out of the RVALUE anyways (since
it is at the end of the slot), it makes more sense to move it out of
the RVALUE. -
07:16 PM Revision e34c131c (git): [PRISM] Disallow redundant returns from being line events
- 06:33 PM Revision c681af3e (git): Reject empty lines in IRB binding spec
- For that particular spec, the empty lines' presence is not relevant.
So let's remove them to make the spec easier to maintain. - 06:33 PM Revision 945a99e8 (git): Sync IRB 241e061
-
06:28 PM Revision c59abb99 (git): Rename ary_heap_alloc -> ary_heap_alloc_buffer
- To differentiate it from ary_alloc_heap
-
06:13 PM Bug #20466 (Open): Interpolated regular expressions have different encoding than interpolated strings
- When the encoding is set to US-ASCII, interpolated strings can have different encoding than interpolated regular expressions. I think they should have the same encoding:
```ruby
# encoding: US-ASCII
t0 = '\\xc1'
t1 = "#{t0}"
re... -
06:07 PM Bug #20464: Redundant returns are unreachable in coverage
- Just for the record in case this gets updated, this PR for the prism compiler (https://github.com/ruby/ruby/pull/10713) is what we have to do to make it work the same way. (It effectively checks if the return is redundant and if it is, d...
-
06:00 PM Bug #20464 (Open): Redundant returns are unreachable in coverage
- With the following code:
```ruby
def meth_return(a)
return if a
return
end
```
If you run coverage on it, it's not possible for it to hit line 3, because there isn't a line event, because the return node was eliminated fro... -
04:29 PM Revision 0981f030 (git): [PRISM] Enable newline test
- 04:29 PM Revision 0968b462 (git): Update default gems list at 008f2b9b6a8575c4380732f5ac4ee1 [ci skip]
-
04:28 PM Revision 008f2b9b (git): [ruby/reline] Bump version to 0.5.5
- (https://github.com/ruby/reline/pull/696)
https://github.com/ruby/reline/commit/8bf71d0b81 -
04:21 PM Revision 032070d7 (git): [ruby/irb] Add workaround for ruby/debug/test/console/irb_test
- failing with StdioInputMethod
(https://github.com/ruby/irb/pull/943)
https://github.com/ruby/irb/commit/acf3c1816e -
03:27 PM Revision 7c0cf710 (git): [ruby/prism] Node#script_lines and supporting infra
- https://github.com/ruby/prism/commit/cb4a8ab772
-
03:27 PM Revision 398453c3 (git): [PRISM] Fix param names for repeated splats
-
02:41 PM Revision c78cebb4 (git): [ruby/reline] Fix default and additional key bindings vanish bug
- (https://github.com/ruby/reline/pull/697)
https://github.com/ruby/reline/commit/fc9b4d2274 -
02:34 PM Revision 2eefbef2 (git): [PRISM] Enable test_ast.rb
-
02:29 PM Revision 41977ef5 (git): [PRISM] Enable Socket.gethostbyaddr spec
-
02:12 PM Revision e7d20623 (git): Add comments in setproctitle.c
-
02:12 PM Revision 4f69d318 (git): Keep track of the originally allocated environ
- We need to keep a pointer to the originally allocated environ because
adding more environment variables can cause it to be changed to something
else.
For example:
100.times do |i|
ENV["FOO#{i}"] = "1"
end
Causes Valgrind... -
01:11 PM Revision 12cbfd8e (git): Declare as NORETURN
-
12:20 PM Bug #20463 (Closed): Ruby fails to generate warning for require syslog
- It's known issue. see https://bugs.ruby-lang.org/issues/20450#note-9
-
12:17 PM Bug #20463 (Closed): Ruby fails to generate warning for require syslog
- ```
docker run -it ruby:3.3.1 bash
touch Gemfile
bundle
bundle exec ruby -e "require '/usr/local/lib/ruby/3.3.0/x86_64-linux/syslog'"
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:130:in `<': comparison of String with nil failed (Argume... -
09:36 AM Revision a3726c02 (git): Fixed missing support for https://github.com/ruby/ruby/commit/d75bbba255e086d625429d5a1311cc4b4396c296.
-
07:29 AM Bug #19974 (Closed): OpenSSL::PKCS7 generates SegFault when parsing invalid data
- Applied in changeset commit:git|c9aa63a9e06c21566c6fadda5945f04f341e4891.
----------
[ruby/openssl] pkcs7: raise ArgumentError for PKCS7 with no content in PKCS7.new
Fixes [Bug #19974]
[pkuzco: expanded the fix for other content types... -
07:26 AM Revision 55720f37 (git): [ruby/openssl] pkcs7: raise PKCS7Error for PKCS7 without content in PKCS7.read_smime
- [pkuzco: expanded the fix for other content types]
[ky: adjusted formatting and the exception type]
https://github.com/ruby/openssl/commit/07eceb7f63
Co-authored-by: pkuzco <b.naamneh@gmail.com>
Co-authored-by: Kazuki Yamaguchi <k@rhe.jp> -
07:26 AM Revision c9aa63a9 (git): [ruby/openssl] pkcs7: raise ArgumentError for PKCS7 with no content in PKCS7.new
- Fixes [Bug #19974]
[pkuzco: expanded the fix for other content types]
[ky: adjusted formatting and the exception type]
https://github.com/ruby/openssl/commit/27e11f2d1d
Co-authored-by: pkuzco <b.naamneh@gmail.com>
Co-authored-by: Kazu... -
07:26 AM Revision eb6f0000 (git): [ruby/openssl] cipher: fix buffer overflow in Cipher#update
- OpenSSL::Cipher#update currently allocates the output buffer with size
(input data length)+(the block size of the cipher). This is insufficient
for the id-aes{128,192,256}-wrap-pad (AES keywrap with padding) ciphers.
They have a block si... - 07:24 AM Revision d39993a4 (git): [ruby/openssl] Fix performance regression in do_write(s)
- This causes significant performance issues when using large (>10meg) writes
Fix by adjusting the buffer write function to clear the buffer once, rather than
piece by piece, avoiding a case where a large write (in our case, around
70mbyt... -
07:17 AM Revision f5af620c (git): [ruby/openssl] asn1: check error return from i2d_ASN1_TYPE()
- i2d_ASN1_TYPE() is not expected to fail, but the return value should be
checked.
https://github.com/ruby/openssl/commit/21ed3c310e -
06:06 AM Revision eb82ea62 (git): [ruby/reline] Fix prompt width calculation bug. Test with colored
- prompt
(https://github.com/ruby/reline/pull/695)
https://github.com/ruby/reline/commit/24aab01cbc -
06:04 AM Revision ed5a7a59 (git): Use callee side tag specification of parameterizing rules
-
05:50 AM Revision fdf88a2c (git): [ruby/reline] Avoid reading .inputrc repeatedly
- (https://github.com/ruby/reline/pull/694)
https://github.com/ruby/reline/commit/c8d4802a0f -
04:32 AM Revision fcd89bf6 (git): Lrama v0.6.9
-
01:14 AM Revision d22dfce1 (git): Fix memory leak of `rb_ast_t` in parser
- Do not allocate `rb_ast_t` in `ast_alloc` to avoid memory leak.
For example:
10.times do
100_000.times do
eval("")
end
puts `ps -o rss= -p #{$$}`
end
Before:
17568
20960
24096
27808
... -
01:14 AM Revision 5108bed5 (git): Revert "Fix memory leak of rb_ast_t in parser"
- This reverts commit e3bfd25bd2202a172d7709e9a2f7b65b523a132d.
> "Allocate then wrap" is bad, because the "wrapping" itself can fail.
See: https://github.com/ruby/ruby/pull/10618#pullrequestreview-2019294349
05/01/2024
-
11:19 PM Revision f109a83d (git): [PRISM] Fix up error message expectations
-
11:19 PM Revision de6e05da (git): [PRISM] Consolidate handling heredoc terminators
-
11:19 PM Revision ac0f6716 (git): [PRISM] Respect frozen_string_literal option in RubyVM::InstructionSequence.compile
-
11:19 PM Revision 8ea6daa8 (git): [PRISM] Enable passing tests in test_syntax.rb
-
11:19 PM Revision b64fd2f5 (git): [PRISM] Closer error messages on invalid unicode escapes in character literals
-
11:19 PM Revision 1be5ede7 (git): [PRISM] Error message for unterminated heredoc identifier
-
11:19 PM Revision 62f8fb7f (git): [PRISM] Fix unterminated regular expression error message
-
11:19 PM Revision 5d1e4cd2 (git): [PRISM] Better error messages for unwriteable targets
-
11:19 PM Revision 4e8ae5d3 (git): [PRISM] Match unterminated error messages
-
11:03 PM Revision 8e1647c3 (git): [ruby/prism] Support passing version 3.3.1
- https://github.com/ruby/prism/commit/445a0f0d22
-
10:54 PM Bug #20462: Native threads are no longer reused
- In a benchmark of thread creation we see that 3.3 is slower than 3.2
```
jhawthorn@zergling:~ [ruby 3.2.2]
$ time ruby --disable-gems -e '100_000.times { Thread.new{}.join }'
ruby --disable-gems -e '100_000.times { Thread.new{}.j... -
10:45 PM Bug #20462 (Assigned): Native threads are no longer reused
- Ruby used to reuse native threads in order to amortize the cost of making a pthread.
For example this program:
```ruby
ntids = 1000.times.map {
Thread.new {
Thread.current.native_thread_id
}.value
}
p ntids.uniq.len... -
10:04 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- I tested both PR with ol8/ol9 using the attached dockerfile and they both work OK
I'll close my PR in favor of yours as it is more complete regarding the backport. -
05:12 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- It seems a4ad6bd9aac564e93219284c912b26a72f9e82fc is missing.
https://github.com/ruby/ruby/pull/10696 -
04:01 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- I went ahead and created https://github.com/ruby/ruby/pull/10695 to revert the faulty backport
@unak who you mind review it and release the patch version if accepted?
I checked the repro https://github.com/ruby/fiddle/issues/102#is... -
08:57 PM Revision 5cd0abdf (git): [PRISM] Simplify prism error highlighting
-
07:51 PM Revision fc8fb581 (git): [ruby/prism] CRuby error message for trailing underscore in number
- https://github.com/ruby/prism/commit/4e34f236d3
-
07:36 PM Revision d5d2c6ea (git): [PRISM] Enable passing Symbol specs
-
07:02 PM Revision efefe42d (git): [ruby/prism] Add more errors for dynamic constant writes in methods
- https://github.com/ruby/prism/commit/486e4c0367
-
06:49 PM Revision febad5cb (git): Skip Warning.[] spec if mspec is passing warning options
-
04:43 PM Revision 41f8ae1f (git): [ruby/prism] Mark errors for invalid symbols
- https://github.com/ruby/prism/commit/661884c4a3
-
04:34 PM Revision 0fa09c57 (git): [PRISM] Correct encoding for interpolated string literals in regexp
-
04:34 PM Revision cfe7019e (git): [ruby/prism] Match CRuby interpolation semantics
- If a single string that is a static literal is interpolated, it
does not impact whether or not the parent is a static literal. In
this way, if you have something like a regular expression that
interpolates a string literal, it's possible... -
04:34 PM Revision b6fa18fb (git): [PRISM] Properly precheck regexp for encoding issues
-
04:34 PM Revision 1b865096 (git): [PRISM] Support interpolated regexp with encoding modifiers
- 03:20 PM Revision c8bec792 (git): Update default gems list at fef6f5f2e1b89e8726c20c734f84bd [ci skip]
-
03:20 PM Revision fef6f5f2 (git): [ruby/irb] Bump version to v1.13.0
- (https://github.com/ruby/irb/pull/941)
* Bump version to v1.13.0
* Add Documentation category to changelog
https://github.com/ruby/irb/commit/b9b1f35c99 -
03:09 PM Revision 7ef8bb12 (git): Fix memory leak in Ripper.sexp
- rb_ast_dispose does not free the rb_ast_t causing it to be leaked. This
commit changes it to use rb_ast_free instead.
For example:
require "ripper"
10.times do
100_000.times do
Ripper.sexp("")
end
pu... -
03:03 PM Revision e9e41ad6 (git): Fix ruby_mimcalloc size when CALC_EXACT_MALLOC_SIZE
- Should be `sizeof(struct malloc_obj_info) + (num * element)`, not
`num * (sizeof(struct malloc_obj_info) + element)`. -
02:52 PM Revision 77f5301c (git): [ruby/irb] Let IRB::Color.colorable? always return true|false
- (https://github.com/ruby/irb/pull/940)
https://github.com/ruby/irb/commit/0bbe435ffe -
02:23 PM Revision 1000c27d (git): [ruby/irb] Support `IRB.conf[:BACKTRACE_FILTER]`
- (https://github.com/ruby/irb/pull/917)
* Use 'irbtest-' instead if 'irb-' as prefix of test files.
Otherwise IRB would mis-recognize exceptions raised in test files as
exceptions raised in IRB itself.
* Support `IRB.conf[:BACKTRACE_FI... -
02:22 PM Revision 2a978ee0 (git): YJIT: Fix `Struct` accessors not firing tracing events (#10690)
- * YJIT: Fix `Struct` accessors not firing tracing events
Reading and writing to structs should fire `c_call` and `c_return`, but
YJIT wasn't correctly dropping those calls when tracing.
This has been missing since this functionality was... -
01:39 PM Feature #20448: Make coverage event hooking C API public
- Sorry for the delay, I've been considering different APIs and reevaluating Ruzzy's coverage collection. I think I've identified that Ruzzy's current coverage collection mechanism is flawed, so perhaps we should not use that as the goal. ...
-
01:01 PM Revision f4c6479e (git): Fix xfree
- Pointers allocated with `ruby_xmalloc` (`ALLOC` macro) must be freed
with `ruby_xfree`. -
12:54 PM Revision d1f14baf (git): Fix leak reported by Valgrind when setting environment variables
- The call to setenv replaces the string in the environ array, which causes
the original string to be reported as a memory leak.
This commit allocates another copy of environ called alloc_environ that
contains the strings allocated by rub... -
08:46 AM Revision 57eca0a8 (git): Test for memory leak
-
06:53 AM Revision acc76c8c (git): Use user defined parameterizing rules `f_opt(value)`
-
05:50 AM Revision c2832981 (git): Use user defined parameterizing rules `f_kwarg(kw)`
-
04:53 AM Revision 9f7e0d2b (git): Use user defined parameterizing rules `opt_args_tail(tail)`
04/30/2024
- 11:31 PM Revision 0c135966 (git): [ruby/delegate] test: remove needless mu_pp
- It's for minitest. We don't need it with test-unit.
https://github.com/ruby/delegate/commit/447cd43973 -
09:51 PM Bug #20457: Final `return` is eliminated from the AST
- Eregon (Benoit Daloze) wrote in #note-2:
> I want to add for context that naturally Prism already provides this information (and much more) and has a much better API.
> ...
From what I understand, lrama intends to eventually provide th... -
05:57 PM Revision ade22339 (git): YJIT: print msg to stderr when RubyVM::YJIT.disasm not available (#10688)
- * YJIT: print msg to stderr when RubyVM::YJIT.disasm not available
Print a more useful error message when people try to use this
feature without YJIT dev.
Also fix an issue with .gitignore file on macOS
* Update yjit.rb
Co-authored-b... -
05:11 PM Misc #20441 (Closed): Should passing keyword args to method_name(*) be an error?
-
05:09 PM Bug #20454 (Third Party's Issue): IRB echoes excessive input in dumb terminal
- IRB has its own release cycles and bug tracker at https://github.com/ruby/irb/issues
Sorry for the redirection, but please file this issue there. -
05:04 PM Revision bd419a65 (git): Removed unused TICK_TYPE 2
- TICK_TYPE of 2 can never be used because we hard code TICK_TYPE to 1.
-
04:51 PM Revision 614187f8 (git): [ruby/reline] Fix completion dialog position when completed part is
- wordwrapped
(https://github.com/ruby/reline/pull/692)
https://github.com/ruby/reline/commit/2d9acd16fe -
03:34 PM Revision d7ba0fec (git): [rubygems/rubygems] Update lib/rubygems/package.rb
- https://github.com/rubygems/rubygems/commit/c4e75b9f74
-
03:34 PM Revision d950609e (git): [rubygems/rubygems] Add a limit to the size of the metadata and checksums files in a gem package.
- This is to prevent a malicious gem from causing a denial of service by
including a very large metadata or checksums file,
which is then read into memory in its entirety just by opening the gem package.
This is guaranteed to limit the am... -
03:23 PM Revision e0949c3f (git): [ruby/openssl] Remove trailing space in test_ssl.rb
- https://github.com/ruby/openssl/commit/911a31335f
- 03:05 PM Revision 9d75d9f0 (git): [ruby/openssl] Update Cipher#name to match Digest#name explanation
- https://github.com/ruby/openssl/commit/79e6dead6e
- 03:05 PM Revision cc6657e5 (git): [ruby/openssl] Add OpenSSL::Digest.digests to get a list of available digests
- https://github.com/ruby/openssl/commit/08dd3c73b7
-
02:57 PM Revision 1ca4c52b (git): Free unused_block_warning_table when RUBY_FREE_AT_EXIT
- 02:51 PM Revision 368ce075 (git): [ruby/openssl] Further clarification of documentation.
- https://github.com/ruby/openssl/commit/0697f2f8b4
- 02:51 PM Revision f1afae24 (git): [ruby/openssl] More documentation.
- https://github.com/ruby/openssl/commit/c8377eaf8d
- 02:51 PM Revision 1699772a (git): [ruby/openssl] Introduce basic support for `close_read` and `close_write`.
- https://github.com/ruby/openssl/commit/c99d24cee9
-
10:29 AM Revision 8fb430c1 (git): [ruby/irb] Restore MAIN_CONTEXT correctly
- (https://github.com/ruby/irb/pull/937)
https://github.com/ruby/irb/commit/c41f460a70 -
07:45 AM Bug #20426 (Closed): crash on aarch64 linux when using fibers (regression with 3.3)
-
06:40 AM Bug #20461: Unreadable pipe included in the readable IO of IO.select
- Using git bisect, I found that the following commit is the cause of the bug:
https://github.com/ruby/ruby/commit/49a55f28abdcf3dea1f84ec5b59cfbedc37f44bf - 05:02 AM Revision 1c991f3b (git): [ruby/openssl] test_asn1.rb: Remove the assertions of the time string format without second.
- This commit fixes the following errors in the tests.
Because the OpenSSL project changed the code to make the time string format
without second invalid. So, we drop the assertions.
```
1) Error: test_generalizedtime(OpenSSL::TestASN1): ... - 05:02 AM Revision 85863f4d (git): [ruby/net-http] Skip test_session_reuse_but_expire with OpenSSL 3.3
- OpenSSL 3.3.0 9 Apr 2024 is also broken.
Signed-off-by: Xi Ruoyao <xry111@xry111.site>
https://github.com/ruby/net-http/commit/ab525c956d - 02:52 AM Revision 431711a8 (git): Bump ruby/setup-ruby from 1.175.0 to 1.175.1
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.175.0 to 1.175.1.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/70da3bbf44ac06db1b0547ce2acc9380a5... - 01:34 AM Revision 7a8882bc (git): [DOC] Fix typo: Replace `documentatation` with `documentation`
-
12:00 AM Revision 528c4501 (git): Use `rb_parser_string_t *` as `ruby_sourcefile_string`
- This reduces dependency on VALUE.
04/29/2024
-
08:54 PM Revision 0aefd2f7 (git): YJIT: Pass options to ruby/spec with `-T` (#10599)
- We recently found out that `make test-spec` wasn't testing with
`--yjit-call-threshold=1` like the other test suites, and that we need
to use `-T` to pass options to it. -
08:36 PM Revision 470eceff (git): YJIT: Remove CString allocation when using `src_loc!()`
- Since we often take the VM lock as the first thing we do when entering
YJIT, and that needs a `src_loc!()`, this removes a allocation from
that. The main trick here is `concat!(file!(), '\0')` to get a C string
statically baked into the ... -
08:08 PM Revision de0ad3be (git): YJIT: Take VM lock when invalidating
- We need the lock to patch code safely.
This might fix some Ractor related crashes seen on CI. -
07:25 PM Revision adae813c (git): YJIT: Expand codegen for `TrueClass#===` to `FalseClass` and `NilClass` (#10679)
- 06:32 PM Revision 845f2db1 (git): YJIT: Add specialized codegen function for `TrueClass#===` (#10640)
- * YJIT: Add specialized codegen function for `TrueClass#===`
TrueClass#=== is currently number 10 in the most frequent C calls list of the lobsters benchmark.
```
require "benchmark/ips"
def wrap
true === true
true === false
tru... -
06:04 PM Revision e3bfd25b (git): Fix memory leak of rb_ast_t in parser
- ast_alloc uses TypedData_Make_Struct, which allocates a rb_ast_t. But it
is overwritten when we set the DATA_PTR so the original memory is leaked.
For example:
10.times do
100_000.times do
eval("")
end
pu... -
06:04 PM Revision 95d036aa (git): Fix memory leak in ruby_parser
- For example:
10.times do
100_000.times do
eval("")
end
puts `ps -o rss= -p #{$$}`
end
Before:
19872
26480
32848
39504
45904
52672
59200
65760
72128
78496
Afte... -
05:29 PM Feature #15438 (Closed): Threads can't switch faster than TIME_QUANTUM_(NSEC|USEC|MSEC)
- I think this is something we should improve more (I would like even faster switching times), but it does seem possible as of Ruby 3.3 to have threads switch faster than 100ms.
```
def test_switching(priority = 0)
done = false
s... -
05:28 PM Revision d75bbba2 (git): [PRISM] Remove false positive compile warnings for branch coverage
- 01:36 PM Revision 90db9c87 (git): Update default gems list at dbb1ba88ebb5a08ea5a856c8086aa2 [ci skip]
-
01:35 PM Revision dbb1ba88 (git): [ruby/reline] Bump version to 0.5.4
- (https://github.com/ruby/reline/pull/691)
https://github.com/ruby/reline/commit/3f27286a5e -
01:23 PM Revision 814d4b5e (git): [ruby/reline] Input with eof and no newline bugfix
- (https://github.com/ruby/reline/pull/671)
https://github.com/ruby/reline/commit/0d66c335a1 -
12:48 PM Bug #20451: Bad Ruby 3.1.5 backport causes fiddle to fail to build
- Additional information:
From fiddle extconf:
``` ruby
case
when $mswin, $mingw, (libffi_version && (libffi_version <=> [3, 2]) >= 0)
$defs << "-DUSE_FFI_CLOSURE_ALLOC=1"
when (libffi_version && (libffi_version <=> [3, 2]) < 0... -
12:26 PM Revision 4c41203b (git): Remove needless header file include
-
12:08 PM Revision ae701031 (git): [ruby/reline] Completely support full-width characters in
- differential rendering
(https://github.com/ruby/reline/pull/654)
* Add a cut variation of Reline::Unicode.take_range method take_mbchar_range
* Consider fullwidth take_range in differential rendering
https://github.com/ruby/reline/com... -
12:05 PM Revision 018c5717 (git): [ruby/reline] Handle mode condition in inputrc
- (https://github.com/ruby/reline/pull/687)
https://github.com/ruby/reline/commit/bed5fb3d77 -
10:29 AM Revision 435f449b (git): [rubygems/rubygems] Make sure to force latest resolvable version explicitly
- To make sure we can always update to the latest resolvable version for
each gem explicitly requested for update, we first run a full update,
and then add explicit exact requirements to the resolved versions. This
may lead into conflicts,... -
10:29 AM Revision 491195af (git): [rubygems/rubygems] Keep track of gems requested for update explicitly
- https://github.com/rubygems/rubygems/commit/ea43e4c6d7
-
10:29 AM Revision 83933f92 (git): [rubygems/rubygems] No need to reset version promoter here
- Since resolution options don't change.
https://github.com/rubygems/rubygems/commit/5c5aa38c06 -
09:04 AM Revision 53571de8 (git): [rubygems/rubygems] Fix circular require warning
- https://github.com/rubygems/rubygems/commit/241d0aafcd
-
08:57 AM Revision d6cb62a8 (git): [rubygems/rubygems] Show better error when installed gemspecs are unreadable
- https://github.com/rubygems/rubygems/commit/924f87c8a9
-
08:56 AM Revision 68a1867f (git): [rubygems/rubygems] Fix issue with `bundle update` with an out of sync lockfile
- An old platform related bug fix made some existing lockfiles no longer
work because they included invalid platforms. So to make it backwards
compatible, code was added to remove invalid platforms from the lockfile
before resolution. This... - 08:42 AM Revision 6203307f (git): [rubygems/rubygems] Address PR feedback
- https://github.com/rubygems/rubygems/commit/62be097a32
- 08:42 AM Revision 2a683f3f (git): [rubygems/rubygems] Clarify `bundle check` behaviour in docs
- https://github.com/rubygems/rubygems/commit/c438c6db2e
-
06:09 AM Revision 5ed20644 (git): Lrama v0.6.8
-
01:09 AM Revision b7bd55cd (git): suppress -Wold-style-cast warnings
-
01:03 AM Revision 17a0e2ac (git): workaround C++ compile error
- We observe compiler error on FreeBSD. Their stdckdint.h does not
understand C++. This shall be addressed on their side. Unti then we
resport to our own version.
https://rubyci.s3.amazonaws.com/freebsd14/ruby-master/log/20240427T14300...
04/28/2024
-
11:38 PM Revision a6308ca9 (git): ripper: Move DSL line pattern
-
11:38 PM Revision f9cf923a (git): Use user defined parameterizing rules
-
06:59 PM Bug #20094: Inline while loop behavior changed unexpectedly in 3.3.0
- It seems like the bug is still present in Ruby 3.3.1:
```ruby
(p 1) while false # 1
``` -
04:11 PM Feature #18583: Pattern-matching: API for custom unpacking strategies?
- Could the match operator, `=~`, could be used as a general complement to `===`?
Example (following original sketch from @zverok):
``` ruby
class Matcher
def initialize(regexp)
@regexp = regexp
end
def ===(obj)
@regexp.ma... -
08:58 AM Revision 29aaf4ab (git): Remove `ast_new` field from `struct rb_parser_config_struct`
- `ast_new` can be embedded into `rb_ast_new`.
-
04:38 AM Revision 5c3d5c7c (git): Lrama v0.6.7
-
03:08 AM Revision ddd8da4b (git): [Universal parser] Improve AST structure
- This patch moves `ast->node_buffer->config` to `ast->config` aiming to improve readability and maintainability of the source.
## Background
We could not add the `config` field to the `rb_ast_t *` due to the five-word restriction of the... -
12:01 AM Revision 8ad0b2cd (git): Use `' '+` instead of words_sep
-
12:01 AM Feature #18915: New error class: NotImplementedYetError or scope change for NotImplementedError
- nithinbekal (Nithin Bekal) wrote in #note-18:
> > What name candidate do you have?
> ...
I like this as well as `AbstractMethodError`