Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Truffle] Dollar underscore issue #2951

Closed
bjfish opened this issue May 18, 2015 · 2 comments
Closed

[Truffle] Dollar underscore issue #2951

bjfish opened this issue May 18, 2015 · 2 comments
Assignees
Milestone

Comments

@bjfish
Copy link
Contributor

bjfish commented May 18, 2015

This blocks the csv library.
Example

while true
  # usually assigned by `gets` in stringio.rb
  # but `gets` does a similar assignment
  # and results in the same error
   test = $_ = nil 
   break unless test
end
puts "Done"

Expected

$ ruby strerr.rb 
Done

Actual

$ ~/Documents/jruby/bin/jruby -X+T -Xtruffle.exceptions.print_java strerr.rb 
Truffle internal error: com.oracle.truffle.api.dsl.UnsupportedSpecializationException: Unexpected values provided for BooleanCastNodeGen@68f44fdb: [org.jruby.truffle.nodes.globals.WrapInThreadLocalNode$1@7fa6e8b1]
com.oracle.truffle.api.dsl.UnsupportedSpecializationException: Unexpected values provided for BooleanCastNodeGen@68f44fdb: [org.jruby.truffle.nodes.globals.WrapInThreadLocalNode$1@7fa6e8b1]
    at com.oracle.truffle.api.dsl.internal.SpecializationNode.unsupported(SpecializationNode.java:480)
    at com.oracle.truffle.api.dsl.internal.SpecializationNode.uninitialized(SpecializationNode.java:397)
    at org.jruby.truffle.nodes.cast.BooleanCastNodeGen$UninitializedNode_.executeBoolean0(BooleanCastNodeGen.java:202)
    at org.jruby.truffle.nodes.cast.BooleanCastNodeGen$BaseNode_.execute(BooleanCastNodeGen.java:105)
    at org.jruby.truffle.nodes.cast.BooleanCastNodeGen$BaseNode_.executeBoolean1(BooleanCastNodeGen.java:109)
    at org.jruby.truffle.nodes.cast.BooleanCastNodeGen.executeBoolean(BooleanCastNodeGen.java:58)
    at org.jruby.truffle.nodes.control.IfNode.execute(IfNode.java:51)
    at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:85)
    at org.jruby.truffle.nodes.control.WhileNode$WhileRepeatingNode.executeRepeating(WhileNode.java:83)
    at com.oracle.truffle.api.impl.DefaultLoopNode.executeLoop(DefaultLoopNode.java:45)
    at org.jruby.truffle.nodes.control.WhileNode.execute(WhileNode.java:47)
    at org.jruby.truffle.nodes.methods.CatchBreakFromCallNode.execute(CatchBreakFromCallNode.java:42)
    at org.jruby.truffle.nodes.RubyNode.executeVoid(RubyNode.java:59)
    at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:82)
    at org.jruby.truffle.nodes.methods.CatchNextNode.execute(CatchNextNode.java:36)
    at org.jruby.truffle.nodes.methods.CatchReturnAsErrorNode.execute(CatchReturnAsErrorNode.java:35)
    at org.jruby.truffle.nodes.methods.CatchRetryAsErrorNode.execute(CatchRetryAsErrorNode.java:32)
    at org.jruby.truffle.nodes.methods.SetMethodDeclarationContext.execute(SetMethodDeclarationContext.java:46)
    at org.jruby.truffle.nodes.control.SequenceNode.execute(SequenceNode.java:85)
    at org.jruby.truffle.nodes.exceptions.TopLevelRaiseHandler.execute(TopLevelRaiseHandler.java:33)
    at org.jruby.truffle.nodes.RubyRootNode.execute(RubyRootNode.java:57)
    at com.oracle.truffle.api.impl.DefaultCallTarget.call(DefaultCallTarget.java:76)
    at org.jruby.truffle.runtime.RubyContext.execute(RubyContext.java:349)
    at org.jruby.truffle.runtime.RubyContext.execute(RubyContext.java:338)
    at org.jruby.truffle.runtime.RubyContext.load(RubyContext.java:282)
    at org.jruby.truffle.runtime.RubyContext.execute(RubyContext.java:664)
    at org.jruby.Ruby.runInterpreter(Ruby.java:871)
    at org.jruby.Ruby.runInterpreter(Ruby.java:885)
    at org.jruby.Ruby.runNormally(Ruby.java:757)
    at org.jruby.Ruby.runFromMain(Ruby.java:574)
    at org.jruby.Main.doRunFromMain(Main.java:401)
    at org.jruby.Main.internalRun(Main.java:296)
    at org.jruby.Main.run(Main.java:225)
    at org.jruby.Main.main(Main.java:197)
@bjfish
Copy link
Contributor Author

bjfish commented May 25, 2015

just wanted to ping you @chrisseaton , in case this missed your issue triaging

@chrisseaton chrisseaton self-assigned this May 25, 2015
@chrisseaton
Copy link
Contributor

Fixed in 64e45c0

@chrisseaton chrisseaton added this to the truffle-dev milestone May 25, 2015
eregon added a commit that referenced this issue Jun 5, 2015
ee9abb8 Fix spec title for a Module#name spec.
aa55755 Add spec for Enumerator.new form calling bare each.
f2d4242 Exclude the Europe/Lisbon time zone change on OS X as it seems inaccurate.
b0a5ebc Fix syntax for Ruby 2.0 version for Travis.
402e570 Require at least 2.0.0p598 on Travis.
b5fa5d3 Use a consistent style for literal arrays in Array#concat spec.
8f8fb81 rb_sym2str() is 2.2-only.
0e7a261 Fix core specs for 2.0.0p643.
92a1506 Fix file name for Process::Status#&.
1c55da4 Fix guard for keyword argument spec.
3b9ac9b Do not speculate on identity of keyword-like argument hashes.
b633b06 Adding missing require for FileUtils.
5531d57 Reintroduce Number arg specs for Regexp.new
1574a22 use already defined methods from the fixture class
c265a11 implement specs for comparing a method defined via define_method and a method defined via def
8448314 ported over jruby's fix for Proc#curry, this closes #2951
914090e Removed timeout from Process.detach specs.
f7500c2 Added spec for Array#concat with shifted start.
31a833f Added stdarg.h include to ruby.h.
92d81b7 Added C-API specs for rb_vsprintf.
873b7aa Added RHASH_SET_IFNONE/rb_hash_set_ifnone
8a49b9c Added rb_sym2str()
bcb70e2 Added rb_hash_lookup2()
fb2bf67 Add specs for cases where timezone used was changed.
7bc8c1b Fixed testing Symbol is a valid constant.
ddd1f8f Add failing spec for prepended module method aliasing.
5d3ce50 Fix Module#public_instance_method for prepended modules.
fcacf19 Use consistent style in prepend specs.
76682f4 Add specs for prepended module method ownership (one failing).
9006ddb Ruby spec for multibyte constant names
104176f Add specs for #3360 (case-when with splatted arrays from variables).
48a30a6 Update Proc#curry specs to include 0-ary lambdas
e0c9464 Updated String#sub/sub! specs for ArgumentError
f3ed63e Enumerator#size specs for Enumerator
0230e29 Enumerator#size specs for Struct
e8cce95 Enumerator#size specs for IO
47a6d4a Enumerator#size specs for ENV
1d24cd9 Specs for Enumerator#size for Dir
459dd14 Specs for Enumerator#size for ARGF
e09c1d6 Updated Enumerator#size specs for String
561f896 Enumerator#size specs for Numeric#step.
3683eff Enumerator#size specs for Kernel#loop.
7f290d1 Update Enumerator#size specs for Integer
9c9a9ab Enumerator#size calculation specs for Range
d3eec29 Enumerator#size calculation specs for Hash
b1c468d New Enumerator#size tests for the Array class.
c9719f1 New Enumerator/Enumerable size calculation tests
61b9654 Extra arg validation tests on each_cons/each_slice
3f4351a Creates enumeratorized shared specs.
585fe5c Remove special case logic for String#slice(<Symbol>) It is okay to remove this special-case logic here because Symbol#to_int no longer exists in Ruby 1.9+, so Symbol-to-Fixnum coercion will fail with TypeError (which matches MRI behavior). Resolves #3335.
a038ec6 refactored Marshal.load specs and updated CI tags
3a7876b Added new Marshal.load spec for object with user-defined _dump
fc96758 Added more Marshal.load specs for objects with user-defined _dumps
b1b521a Fix Array#slice! with length argument for single item arrays
123f35c Add Array#slice! positive length check and spec
c811934 Spec for calling top-level methods in wrapped load
579dc2c Updates spec name.
6079006 Adds specs to Array methods that return an Enumerator. The tests check if the size method on the resulting Enumerator instance returns the correct value.
bb14c39 Adds specs to Enumerable methods that return an Enumerator. The tests check if the size method on the resulting Enumerator instance returns the correct value.
ebf235b Adds NumerousWithSize class to help spec the size method behaviour on Enumerable methods that return an Enumerator.
6414afe Removing each_with_index changes to go into a separate pull request
15322d2 Updating spec name and method name per code review
894171d Fix Fixnum minus Bignum to not assume the result is a Bignum. Resolves #3316
80748d9 Trying to fix each_slice and each_with_index
9dbff60 Added spec for simple Object#inspect result.
f227519 Added spec for Kernel#inspect.
50005d2 Failing spec for String#encode with Emacs-Mule.
f6ffd5f Added spec for a = b = m 1. Closes #3266.
c8b23e5 Fixed Enumerable#flat_map specs.
282810a Added C-API spec for rb_iv_{set, get} with non-ivar name.
9d4866c Basic specs for optional variable assignments.
1adf79a Nuke NetBeans config files.
fba96b3 More specs for String#ascii_only? + String#replace
a214db3 Add failing spec for distinguishing between a vcall and method when missing. (Missing method => NoMethodError, missing vcall => NameError) Demonstrates issue #3101.
f538eb5 Re-removed obsoleted specs.
e6d17ea Added specs for String#scrub with ASCII/BINARY.
657dcdf Added more keyword specs.
f629e3f Added spawn specs for STD{IN, OUT, ERR}.
b4121d8 Add flat_map spec for enumerables that yield multiple values
0edd4ca Adding a missing 'should'
caf25d4 Rely on data file instead of signal file and always write to it.
bcf1fe2 Stop waiting for the daemon as soon as we see the signal file.

git-subtree-dir: spec/ruby
git-subtree-split: ee9abb86f494bb0aac0d1cb6300e48c82c1d087c
@enebo enebo added this to the Non-Release milestone Dec 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants