Alan Wu
Alan Wu
Currently, impossible intersections are turned into `T.noreturn` ```ruby extend(T::Sig) sig {params(a: T.all(TrueClass, FalseClass)).void} def superposition(a) end superposition(5) # Integer(5) doesn't match T.noreturn for argument a ``` https://sorbet.run/#extend(T%3A%3ASig)%0A%0Asig%20%7Bparams(a%3A%20T.all(TrueClass%2C%20FalseClass)).void%7D%0Adef%20superposition(a)%0Aend%0A%0Asuperposition(5)%0A I think this...
This makes make delete target files if the recipe fails mid way, like when make itself is interrupted. This mostly helps development since it protects against corrupt builds that need...
This test is derived from the test above it. If I run the test in a shell loop on a debug build it eventually trips the following assert: Assertion Failed:...
Here is a review of the argument setup details in `gen_send_iseq()` cause I think there is room for simplification, both in terms of generator code and generated code. It's not...
The current `opt_setinlinecache` implementation invalidates the block for the corresponding `opt_getinlinecache`, and one could make `opt_setinlinecache` run by setting any constant. Apps that use `Module#const_set` at runtime will leak memory...
```ruby class Foo def test TEST end end Bar1 = Foo.clone Bar1::TEST = 1 p Bar1.new.test # 1 on MRI 2.4.x ~ 3.0.0, NameError on TruffleRuby 21.0.0 ```
This is a backport PR for https://bugs.ruby-lang.org/issues/20209 When we landed the singleton class fix on master, it revealed some unrelated panics with tailcalls which destabilized CI. So I'm making a...
On a benchmark we have using `hexapdf`, TruffleRuby seems to have speed that becomes more and more variable the longer one lets the benchmark run. Also, memory usage seems to...
These are new instructions added in https://github.com/ruby/ruby/pull/9721 and https://github.com/ruby/ruby/pull/9726 we should probably be using since they save allocations.