General

Profile

ibylich (Ilya Bylich)

  • Login: ibylich
  • Email: ibylich@gmail.com
  • Registered on: 11/15/2017
  • Last sign in: 09/29/2025

Issues

open closed Total
Assigned issues 0 0 0
Reported issues 0 12 12

Activity

01/27/2022

02:30 PM Ruby Bug #18553 (Closed): Memory leak on compiling method call with kwargs
The following code produces a memory leak:
```ruby
p(foo: 1)
```
It comes from the allocation in `compile.c`:
```c
struct rb_callinfo_kwarg *kw_arg =
rb_xmalloc_mul_add(len, sizeof(VALUE), sizeof(struct rb_ca...
ibylich (Ilya Bylich)

01/26/2022

02:30 PM Ruby Bug #18516: Memory leak on aliasing method to itself
As @nobu mentioned the following code gives no warnings (in verbose mode):
```ruby
class A
def foo; end
alias foo foo;
def foo; end
end
```
but if we stop increment `alias_count` on `alias foo foo` the warning appears (...
ibylich (Ilya Bylich)
01:22 PM Ruby Bug #18516 (Closed): Memory leak on aliasing method to itself
The following code produces a memory leak:
```ruby
class A
1.upto(Float::INFINITY) do |i|
define_method(:"foo_#{i}") {}
alias :"foo_#{i}" :"foo_#{i}"
remove_method :"foo_#{i}"
end
end
```
It is very arti...
ibylich (Ilya Bylich)

12/23/2020

03:57 PM Ruby Bug #17431: paren_nest is not reset in parse.y after "foo.[]= value"
The following patch seems to be the fix:
```
diff --git a/parse.y b/parse.y
index c65a469a..a4f6bcc8 100644
--- a/parse.y
+++ b/parse.y
@@ -9668,6 +9669,7 @@ parser_yylex(struct parser_params *p)
p->lex.paren_nest++;
...
ibylich (Ilya Bylich)
03:44 PM Ruby Bug #17431: paren_nest is not reset in parse.y after "foo.[]= value"
Ok, got an example with lambdas:
```
$ ./miniruby -ce '->(opt = (foo.[]= bar)) do end'
-e:1: syntax error, unexpected `do', expecting `do' for lambda or tLAMBEG
->(opt = (foo.[]= bar)) do end
-e:1: warning: paren_nest = 1
$ ./m...
ibylich (Ilya Bylich)
03:34 PM Ruby Bug #17431 (Closed): paren_nest is not reset in parse.y after "foo.[]= value"
`p->lex.paren_nest` is equal to 1 after the following code:
```ruby
self.[]= foo
```
`paren_nest` is used to differentiate `...` for ranges/forwarded arguments, and so `./miniruby -we 'foo.[]= bar, ...'` gives no `... at EOL, sho...
ibylich (Ilya Bylich)

08/03/2020

10:29 AM Ruby Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
First of all, thanks a lot for your work. This is a huge (and incredibly valuable) addition to Ruby.
I have your branch built locally and I played a lot with it during last few days. I've got a few questions:
1. Multiple ractors us...
ibylich (Ilya Bylich)

06/10/2020

07:03 PM Ruby Bug #16841: Some syntax errors are thrown from compile.c
Thanks for looking into this issue.
> Do you think that will work for your purposes?
Not really. I'm working on the 3d party parser and I was thinking about whether I need to backport these errors. If I'd need it in some other proj...
ibylich (Ilya Bylich)

05/08/2020

11:30 AM Ruby Bug #16841 (Closed): Some syntax errors are thrown from compile.c
`compile.c` has a few places where it raises `SyntaxError`. Because of that `ruby -c`, Ripper and `RubyVM::AbstractSyntaxTree` don't catch them:
```sh
> ruby -vce 'class X; break; end'
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) ...
ibylich (Ilya Bylich)

11/11/2019

06:28 PM Ruby Bug #16343 (Closed): Inconsistent behavior of 'circular argument reference' error
The following code gives a syntax error:
``` ruby
m { |foo = proc { || foo }| }
# => SyntaxError (-e:14: circular argument reference - foo)
```
But this code is valid:
``` ruby
m { |foo = proc { |bar| foo }| }
```
Is it in...
ibylich (Ilya Bylich)

Also available in: Atom