Skip to content

Disabling fixnum cache breaks racc JRuby implementation #5401

@presidentbeef

Description

@presidentbeef

Environment

  • jruby 9.2.0.0 (2.5.0) 2018-05-24 81156a8 Java HotSpot(TM) 64-Bit Server VM 10.0.1+10 on 10.0.1+10 +jit [darwin-x86_64]
  • Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
  • ruby_parser 3.11.0

Expected Behavior

This program should work fine and exit normally:

require 'ruby_parser'

RubyParser.new.parse 'x'

when run with

jruby -Xfixnum.cache=false test.rb

Actual Behavior

Actual output:

$ jruby -Xfixnum.cache=false test.rb
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jnr.posix.JavaLibCHelper$ReflectiveAccess to method sun.nio.ch.SelChImpl.getFD()
WARNING: Please consider reporting this to the maintainers of jnr.posix.JavaLibCHelper$ReflectiveAccess
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
TypeError: no implicit conversion of nil into Integer
  _racc_do_parse_c at com/headius/racc/Cparse.java:709
          do_parse at /Users/jcollin/.rvm/rubies/jruby-9.2.0.0/lib/ruby/stdlib/racc/parser.rb:264
  block in process at /Users/jcollin/.rvm/gems/jruby-9.2.0.0@brakeman/gems/ruby_parser-3.11.0/lib/ruby_parser_extras.rb:1082
           timeout at org/jruby/ext/timeout/Timeout.java:149
           timeout at org/jruby/ext/timeout/Timeout.java:122
           timeout at org/jruby/ext/timeout/Timeout.java:117
           process at /Users/jcollin/.rvm/gems/jruby-9.2.0.0@brakeman/gems/ruby_parser-3.11.0/lib/ruby_parser_extras.rb:1070
  block in process at /Users/jcollin/.rvm/gems/jruby-9.2.0.0@brakeman/gems/ruby_parser-3.11.0/lib/ruby_parser.rb:31
              each at org/jruby/RubyArray.java:1801
           process at /Users/jcollin/.rvm/gems/jruby-9.2.0.0@brakeman/gems/ruby_parser-3.11.0/lib/ruby_parser.rb:28
            <main> at test.rb:3

Noticed while attempting to test Brakeman with Graal per http://blog.headius.com/2018/07/running-jruby-on-graal-jit.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions