Charles Oliver Nutter

Results 310 issues of Charles Oliver Nutter

JRuby supports configuring many of the standard Ruby command-line arguments using JVM properties, such as for when embedding JRuby in an environment that does not have a command-line available. Unfortunately,...

This could be a big problem. Whenever an object defines a new instance variable, we store a name/offset mapping for that variable on the nearest concrete class. In the case...

core

This optimizes the common case of respond_to? with a literal symbol. When the method is "naturally" respond_to? => true then that result can be cached behind the usual guards. This...

This is the beginning of passing keyword arguments directly on the stack, without a transient RubyHash object to carry them. The first pass of this work plumbs the keywords directly...

### Discussed in https://github.com/jruby/jruby/discussions/8839 As discovered by @sathish-krishnamurthy in #8839, gems that are supposed to be "bundled" in JRuby (preinstalled as normal gems that can be fully uninstalled) are actually...

In Java 15, the MethodHandles.Lookup class gained the ability to define [hidden classes](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/invoke/MethodHandles.Lookup.html#defineHiddenClass(byte%5B%5D,boolean,java.lang.invoke.MethodHandles.Lookup.ClassOption...)) By using this feature for our one-shot classloaded classes, like JIT methods, we should be able to...

When running with the Prism parser and our compiler for it, a complex sequence of lonely-operator calls appears to be handled improperly. ```ruby def foo re = /\G((?-mix:(?-mix:(?-mix:[[\x01-\x7f]&&[^[\r\n]]])|(?-mix:[\xC2-\xDF](?-mix:[\x80-\xBF]))|(?-mix:(?-mix:\xE0[\xA0-\xBF](?-mix:[\x80-\xBF]))|(?-mix:\xED[\x80-\x9F](?-mix:[\x80-\xBF]))|(?-mix:[\xE1-\xEC][\x80-\xBF][\x80-\xBF])|(?-mix:[\xEE-\xEF][\x80-\xBF][\x80-\xBF]))|(?-mix:(?-mix:[\xF1-\xF3][\x80-\xBF][\x80-\xBF][\x80-\xBF])|(?-mix:\xF0[\x90-\xBF][\x80-\xBF][\x80-\xBF])|(?-mix:\xF4[\x80-\x8F][\x80-\xBF][\x80-\xBF])))+))/n str =...

Just a few tweaks based on some recent profiling of JRuby 10, both doing a simple hello world `jruby -e gets` and spinning up JRuby instances in a tight loop.

While investigating some HexaPDF test failures, I also played around with the benchmark used by the YJIT team: https://github.com/Shopify/yjit-bench/tree/main/benchmarks/hexapdf The performance on JRuby is unusually slow, so I'm guessing something...

This is an extension of the existing mechanism for reification of Ruby classes, allowing us to use normal Java fields for either instance or internal variables. The logic here is...