JRuby fails to parse a block under certain circumstances #305

Closed
alex opened this Issue Sep 20, 2012 · 20 comments

Comments

Projects
None yet
7 participants
@alex

alex commented Sep 20, 2012

Code to reproduce is

return [].inject 0 do
end

Note that this also fails under Rubiniux (FWIW):

alex@alex-gaynor-laptop:/tmp$ ruby-1.9.3-p125 t.rb 
t.rb:1:in `<main>': unexpected return (LocalJumpError)
alex@alex-gaynor-laptop:/tmp$ jruby-1.6.7.2 --1.9 t.rb 
SyntaxError: t.rb:1: syntax error, unexpected kDO_BLOCK

return [].inject 0 do
^
alex@alex-gaynor-laptop:/tmp$ rbx-head -X19 t.rb 
An exception occurred running t.rb
    Error trying to compile /tmp/t.rb (Rubinius::CompileError)

Backtrace:
  Rubinius::Compiler.compiler_error at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler/compiler.rbc:13
         Rubinius::Compiler.compile at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler/compiler.rbc:92
  Rubinius::CodeLoader#compile_file at kernel/delta/codeloader.rb:166
     Rubinius::CodeLoader#load_file at kernel/delta/codeloader.rb:138
   Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:63
   Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:109
            Rubinius::Loader#script at kernel/loader.rb:640
              Rubinius::Loader#main at kernel/loader.rb:844

Caused by: undefined method `block=' on an instance of Rubinius::AST::Return. (NoMethodError)

Backtrace:
   Kernel(Rubinius::AST::Return)#block= (method_missing) at kernel/delta/kernel.rb:81
                     Rubinius::Melbourne19#process_iter at /home/alex/.rvm/rubies/rbx-head/runtime/19/melbourne
                                                           /processor.rbc:550
 Rubinius::Melbourne(Rubinius::Melbourne19)#file_to_ast_19 at /home/alex/.rvm/src/rbx-head/lib/ext/melbourne
                                                              /melbourne.cpp
   Rubinius::Melbourne(Rubinius::Melbourne19)#parse_file at /home/alex/.rvm/rubies/rbx-head/runtime/19/melbourne.rbc:84
                   Rubinius::Compiler::FileParser#parse at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler
                                                           /stages.rbc:235
 Rubinius::Compiler::Parser(Rubinius::Compiler::FileParser)#run at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler
                                                                   /stages.rbc:217
                                 Rubinius::Compiler#run at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler
                                                           /compiler.rbc:374
                             Rubinius::Compiler.compile at /home/alex/.rvm/rubies/rbx-head/runtime/19/compiler
                                                           /compiler.rbc:88
                       Rubinius::CodeLoader#compile_file at kernel/delta/codeloader.rb:166
                          Rubinius::CodeLoader#load_file at kernel/delta/codeloader.rb:138
                        Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:63
                        Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:109
                                 Rubinius::Loader#script at kernel/loader.rb:640
                                   Rubinius::Loader#main at kernel/loader.rb:844

@alex

This comment has been minimized.

Show comment Hide comment
@alex

alex Sep 20, 2012

Managed to simplify the test case slightly

return f 0 do
end

alex commented Sep 20, 2012

Managed to simplify the test case slightly

return f 0 do
end
@headius

This comment has been minimized.

Show comment Hide comment
@headius

headius Sep 20, 2012

Member

Yeah, I think this has been reported before. The precedence of "do" is going all the way to return.

Member

headius commented Sep 20, 2012

Yeah, I think this has been reported before. The precedence of "do" is going all the way to return.

@headius

This comment has been minimized.

Show comment Hide comment
@headius

headius Sep 20, 2012

Member

Appears to be working in all modes on master.

The missing LocalJumpError is a known issue.

system ~/projects/jruby $ jruby -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby --1.8 -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-C -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-C --1.8 -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-CIR -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-CIR --1.8 -e "return [1].map do; puts 'here'; end"
here
Member

headius commented Sep 20, 2012

Appears to be working in all modes on master.

The missing LocalJumpError is a known issue.

system ~/projects/jruby $ jruby -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby --1.8 -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-C -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-C --1.8 -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-CIR -e "return [1].map do; puts 'here'; end"
here

system ~/projects/jruby $ jruby -X-CIR --1.8 -e "return [1].map do; puts 'here'; end"
here

@headius headius closed this Sep 20, 2012

@headius headius reopened this Sep 20, 2012

@headius

This comment has been minimized.

Show comment Hide comment
@headius

headius Sep 20, 2012

Member

Oops, my case wasn't the same as yours. Yours still fails.

Member

headius commented Sep 20, 2012

Oops, my case wasn't the same as yours. Yours still fails.

@headius

This comment has been minimized.

Show comment Hide comment
@headius

headius Sep 20, 2012

Member

Ruby 1.8 has the same issue:

system ~/projects/jruby $ ruby-1.8.7-p358 -e "return f 0 do; puts 'here'; end"
-e:1: syntax error, unexpected kDO_BLOCK, expecting $end
return f 0 do; puts 'here'; end
             ^
Member

headius commented Sep 20, 2012

Ruby 1.8 has the same issue:

system ~/projects/jruby $ ruby-1.8.7-p358 -e "return f 0 do; puts 'here'; end"
-e:1: syntax error, unexpected kDO_BLOCK, expecting $end
return f 0 do; puts 'here'; end
             ^
@alex

This comment has been minimized.

Show comment Hide comment
@alex

alex Sep 20, 2012

For reference, rubinius issue is #1917.

alex commented Sep 20, 2012

For reference, rubinius issue is #1917.

@urbanautomaton

This comment has been minimized.

Show comment Hide comment
@urbanautomaton

urbanautomaton Mar 7, 2013

I'm trying to port a relatively large rails app to jruby and am running into this issue (at least, the error is identical). Is there any way to get the parser to show what line of code is causing the error?

(edit: sorry, should've said: jruby 1.7.3)

I'm trying to port a relatively large rails app to jruby and am running into this issue (at least, the error is identical). Is there any way to get the parser to show what line of code is causing the error?

(edit: sorry, should've said: jruby 1.7.3)

@badosu

This comment has been minimized.

Show comment Hide comment
@badosu

badosu May 24, 2013

@urbanautomaton maybe you could run:

grep "return .* do\($\| |\)" -R *

badosu commented May 24, 2013

@urbanautomaton maybe you could run:

grep "return .* do\($\| |\)" -R *

@urbanautomaton

This comment has been minimized.

Show comment Hide comment
@urbanautomaton

urbanautomaton May 29, 2013

Hi @badosu - thanks, in the end I found it in a similar manner. Lurking in an obscure gem dependency, which is why it didn't crop up the first time I looked.

Hi @badosu - thanks, in the end I found it in a similar manner. Lurking in an obscure gem dependency, which is why it didn't crop up the first time I looked.

@enebo enebo closed this in 53710d8 Oct 25, 2013

@enebo

This comment has been minimized.

Show comment Hide comment
@enebo

enebo Oct 25, 2013

Member

Wow. I still don't know why we go down the wrong productions but I did fix it in spite of that. My work-around in the grammar is a hack but a pretty harmless one since the production should never receive nodes like return. If this gets fixed for real then at worst it will unreachable dead code.

Member

enebo commented Oct 25, 2013

Wow. I still don't know why we go down the wrong productions but I did fix it in spite of that. My work-around in the grammar is a hack but a pretty harmless one since the production should never receive nodes like return. If this gets fixed for real then at worst it will unreachable dead code.

@whitequark

This comment has been minimized.

Show comment Hide comment
@whitequark

whitequark Jan 6, 2014

@enebo For the record, you don't go down wrong productions. MRI constructs a similarly weird AST: https://gist.github.com/whitequark/8b526b84b288022e9d46 and invokes all the same productions, as evident by ruby -y.

@enebo For the record, you don't go down wrong productions. MRI constructs a similarly weird AST: https://gist.github.com/whitequark/8b526b84b288022e9d46 and invokes all the same productions, as evident by ruby -y.

@enebo

This comment has been minimized.

Show comment Hide comment
@enebo

enebo Jan 6, 2014

Member

OH!?!?! Well that is a lead worth pursuing. Thanks. I guess I did work around the issue in the end but I would like to make a sane grammar change to make this proper. Especially for jruby-parser, but also for JRuby if for no other reason than not being weird.

Member

enebo commented Jan 6, 2014

OH!?!?! Well that is a lead worth pursuing. Thanks. I guess I did work around the issue in the end but I would like to make a sane grammar change to make this proper. Especially for jruby-parser, but also for JRuby if for no other reason than not being weird.

@whitequark whitequark referenced this issue in seattlerb/ruby_parser Jan 7, 2014

Closed

Return takes a block #140

@whitequark

This comment has been minimized.

Show comment Hide comment
@whitequark

whitequark Jan 7, 2014

@enebo I'm not sure honestly, this restructuring could easily prove very nontrivial (due to cmdarg stack state insanity and general complexity of parser) and make maintenance harder because merging any changes to grammar would require re-examining whether they break this patch.

As much as I love clean grammars, in Parser I decided to just work around this in a reduction rule (similarly to yours).

@enebo I'm not sure honestly, this restructuring could easily prove very nontrivial (due to cmdarg stack state insanity and general complexity of parser) and make maintenance harder because merging any changes to grammar would require re-examining whether they break this patch.

As much as I love clean grammars, in Parser I decided to just work around this in a reduction rule (similarly to yours).

@enebo

This comment has been minimized.

Show comment Hide comment
@enebo

enebo Jan 7, 2014

Member

You are probably right and there are other parser tasks I could work on...

On Mon, Jan 6, 2014 at 11:03 PM, Peter Zotov notifications@github.comwrote:

@enebo https://github.com/enebo I'm not sure honestly, this
restructuring could easily prove very nontrivial (due to cmdarg stack state
insanity and general complexity of parser) and make maintenance harder
because merging any changes to grammar would require re-examining whether
they break this patch.

As much as I love clean grammars, in Parser I decided to just work around
this in a reduction rule (similarly to yours).


Reply to this email directly or view it on GitHubhttps://github.com/jruby/jruby/issues/305#issuecomment-31713701
.

blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com

Member

enebo commented Jan 7, 2014

You are probably right and there are other parser tasks I could work on...

On Mon, Jan 6, 2014 at 11:03 PM, Peter Zotov notifications@github.comwrote:

@enebo https://github.com/enebo I'm not sure honestly, this
restructuring could easily prove very nontrivial (due to cmdarg stack state
insanity and general complexity of parser) and make maintenance harder
because merging any changes to grammar would require re-examining whether
they break this patch.

As much as I love clean grammars, in Parser I decided to just work around
this in a reduction rule (similarly to yours).


Reply to this email directly or view it on GitHubhttps://github.com/jruby/jruby/issues/305#issuecomment-31713701
.

blog: http://blog.enebo.com twitter: tom_enebo
mail: tom.enebo@gmail.com

@chrisseaton

This comment has been minimized.

Show comment Hide comment
@chrisseaton

chrisseaton Oct 2, 2014

Contributor

Why did this issue get closed - it's still there isn't it? That's why this spec is tagged https://github.com/jruby/jruby/blob/master/spec/tags/ruby/language/return_tags.txt#L2.

Contributor

chrisseaton commented Oct 2, 2014

Why did this issue get closed - it's still there isn't it? That's why this spec is tagged https://github.com/jruby/jruby/blob/master/spec/tags/ruby/language/return_tags.txt#L2.

@chrisseaton chrisseaton reopened this Oct 2, 2014

@enebo

This comment has been minimized.

Show comment Hide comment
@enebo

enebo Oct 2, 2014

Member

I had thought I fixed the case in question with the commit. That fix did feel like a hack to me so perhaps some case is still wrong?

Member

enebo commented Oct 2, 2014

I had thought I fixed the case in question with the commit. That fix did feel like a hack to me so perhaps some case is still wrong?

@chrisseaton

This comment has been minimized.

Show comment Hide comment
@chrisseaton

chrisseaton Oct 2, 2014

Contributor

The spec was still tagged, and try this test case (just the spec minimised) before and after my commit above:

class MethodWithBlock
  def method1
    return [2, 3].inject 0 do |a, b|
      a + b
    end
    nil
  end

  def get_ary(count, &blk)
    count.times.to_a do |i|
      blk.call(i) if blk
    end
  end

  def method2
    return get_ary 3 do |i|
    end
    nil
  end
end

p MethodWithBlock.new.method1#.should == 5
p MethodWithBlock.new.method2#.should == [0, 1, 2]

My fix actually looks very similar to yours - I'm not sure what the essential difference is that makes it work.

Contributor

chrisseaton commented Oct 2, 2014

The spec was still tagged, and try this test case (just the spec minimised) before and after my commit above:

class MethodWithBlock
  def method1
    return [2, 3].inject 0 do |a, b|
      a + b
    end
    nil
  end

  def get_ary(count, &blk)
    count.times.to_a do |i|
      blk.call(i) if blk
    end
  end

  def method2
    return get_ary 3 do |i|
    end
    nil
  end
end

p MethodWithBlock.new.method1#.should == 5
p MethodWithBlock.new.method2#.should == [0, 1, 2]

My fix actually looks very similar to yours - I'm not sure what the essential difference is that makes it work.

@enebo

This comment has been minimized.

Show comment Hide comment
@enebo

enebo Oct 2, 2014

Member

Heh. I am happy you fixed it :)

Member

enebo commented Oct 2, 2014

Heh. I am happy you fixed it :)

@chrisseaton

This comment has been minimized.

Show comment Hide comment
@chrisseaton

chrisseaton Oct 2, 2014

Contributor

Yeah, only took an entire day to get one extra passing spec!

Contributor

chrisseaton commented Oct 2, 2014

Yeah, only took an entire day to get one extra passing spec!

@headius

This comment has been minimized.

Show comment Hide comment
@headius

headius Oct 2, 2014

Member

👍

Member

headius commented Oct 2, 2014

👍

enebo added a commit that referenced this issue Oct 3, 2014

eregon added a commit that referenced this issue Oct 29, 2016

Squashed 'spec/ruby/' changes from ae9cea3..a2e5952
a2e5952 Specs for Complex explicitly removing positive? and negative?.
d0c8343 Add spec for backtrace from rescue that only captures $!.
197292f Specs for conditionally-assigned variables accessed in closure.
ad581ab Fix Hash#assoc spec to avoid a CRuby >= 2.2 bug
fe9e1d1 Add spec for Range#include? with Time endpoints.
a0a7642 add more spec for ||= and &&=
f06c18d Spec for passing a block to forms of [] method.
e20cc56 Add spec for EAFNOSUPPORT in udp sockets
767d983 Add UDPSocket.new specs
53466eb Add specs for * and ** coercion of BasicObject types.
f3e2edf Fix typo in socketpair_spec.rb.
a0780cd Fix Socket#socketpair shared spec
048320b Add Socket#socketpair response type spec
5ee05bc This only appears to work on OS X.
1278eb2 Spec for IO#seek > 2^32.
e81f3e5 Fix extra space
a5f6f5e Specs for rb_obj_method_arity.
e990a71 Fix WIN32OLE_METHOD#offset_vtbl spec for 64-bit Windows
aa3697e Split platform-dependent parts in Float#round specs
9d0932f Handle the special case of x64-mingw32 for String#unpack('J') specs
849e1e2 Handle the special case of x64-mingw32 for Array#pack('J') specs
9689d97 Try running on 64-bit Ruby 2.3 on Windows
3a71993 Merge pull request #346 from mjago/fix_encodings
31c3d16 Fix encoding in core/string/shared/codepoints.rb
5191351 Fix encoding in core/string/shared/chars.rb
5213d36 Fix encoding in core/string/scrub_spec.rb
3f70703 Fix encoding in core/string/new_spec.rb
ac1e312 Exclude connect_nonblock raises Errno::EINPROGRESS
25a1538 Merge pull request #344 from mjago/socket_option_on_aix
ba36b85 Merge pull request #345 from mjago/fix_encoding
16b6441 Fix encoding in core/string/gsub_spec.rb
a083778 Fix encoding in core/string/getbyte_spec.rb
769d842 Fix encoding in core/string/fixtures/iso-8859-9-encoding.rb
d5141d5 Fix encoding in core/string/encoding_spec.rb
68d48e7 Fix encoding in core/string/encoding_spec.rb
608140c Fix encoding in core/string/element_set_spec.rb
96ebe46 Avoid use of getsockopt for setsockopt specs on aix
42cfee7 Merge pull request #343 from mjago/fix_encodings
ef14dee Fix encoding in core/string/delete_spec.rb
0325dfb Fix encoding in core/string/count_spec.rb
fc80507 Fix encoding in core/string/comparison_spec.rb
0f1590f Fix encoding in core/regexp/shared/new_ascii.rb
e30e3ab Remove extraneous parenthesis
7ecb1aa Merge pull request #342 from mjago/encoding_fixes
3e60d4c Add back `larger than UTF-8 max codepoints' spec
2c1dd28 Really fix encoding in unicode.rb
b752874 Fix encoding in core/array/pack/shared/unicode.rb
0317231 Merge pull request #341 from mjago/aix_socket_constants
17b07cf Fix encoding in core/array/pack/shared/string.rb
87d371b Fix encoding in core/array/fixtures/encoded_strings.rb
3702273 Fix whitespace
7c0d354 Remove IP_MAX_MEMBERSHIPS check on AIX platform
fa2ec3d Don't check for IPX socket constants on AIX platform
3ea90df Merge pull request #340 from iliabylich/add-more-specs-for-squiggly-heredoc
8fbd1ad More specs for "squiggly" heredoc.
b3b68c7 Merge pull request #339 from mjago/fix_stringscanner_encodings
b21cea4 Fix encoding in stringscanner/shared/get_byte.rb
2964778 Fix encoding in stringscanner/getch_spec.rb
05dbe0e Merge pull request #338 from mjago/fix_unbranch_on_big_endian
201a176 Fix unpack specs with j option on big-endian systems
5605faf Merge pull request #337 from mjago/fix_encodings
c601f85 Fix encodings in core/encoding/replicate_spec.rb
eb1d56d Fix encoding in encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb
26ee43a Accept both possible values for Socket::Option#linger
ff41556 Do not make assumptions on the value of Dir#pos
b4bfa56 Merge pull request #336 from mjago/fix_j_spec_for_big_endian_platforms
864e2e1 Fix specs for Array pack with format J and j specs
151f7c6 Merge pull request #331 from mjago/unpack_option_j_specs
4c8b9b3 Fix encoding/invalid_byte_sequence_error/incomplete_input_spec.rb
626fab3 Fix encoding in encoding/invalid_byte_sequence_error/error_bytes_spec.rb
db30005 Fix encoding in encoding/fixtures/classes.rb
f4b5e0d Fix encoding in encoding/converter/putback_spec.rb
7e99711 Add specs for unpack options J and j
bcb318b Move require to example so unsupported syntax would only fail that example
57c69fc tests squiggly heredoc * See #175 * See [Feature 9098]
ce4eb8f Fix encoding in encoding/converter/primitive_errinfo_spec.rb
ef64e76 Fix encoding in encoding/converter/primitive_convert_spec.rb
8466a28 Fix encoding in encoding/converter/last_error_spec.rb
e0d32ca Fix encoding in encoding/converter/convert_spec.rb
a743e63 Fix encoding in core/string/codepoints_spec.rb
6353bbe Fix encoding in core/string/byteslice_spec.rb
5d1f1cb Revert "Travis: allow ruby-head to fail since it's outdated"
5ec5a10 Array pack with format J and j specs (#320)
6068505 Merge pull request #321 from mjago/fix_encoding_in_recv_spec
fb52aef Fix encoding in recv_spec.rb
96f8e44 Merge pull request #319 from mjago/fix_match_spec_utf8
012827a Fix utf-8 conflicts in Regexp match specs
f3c10d3 Fix magic encoding to avoid utf-8 conflicts
adfb2eb Merge pull request #316 from mjago/avoid_utf8_conflicts_in_io_specs
c6daa63 Fix alignment
044b889 Rename data to write
d259a19 Remove redundant artifact
3a71973 Avoid utf-8 conflicts in IO specs
402b2cb Fix expectation in a zlib spec
bee369d Zlib specs should use binary strings
c77a0e9 Merge pull request #315 from sgarciac/master
1334490 Tests Base64#urlsafe_encode64 and Base64#urlsafe_decode64 * See #175 * See [Feature 10740]
80937d6 Merge pull request #313 from mjago/avoid_utf8_conflicts_with_binary_encoding_in_marshall_specs
6e2efe7 Merge pull request #314 from mjago/fix_utf8_conflict_in_expand_path_spec
4df37ac DRY spec
d96bde0 Fix tests
6d47911 Fix utf-8 conflict in expand_path_spec.rb
7d1e89a Avoid utf8 conflicts in Marshall specs
45f9256 Merge pull request #312 from mjago/avoid_utf8_conflicts_with_binary_encoding_in_digest_specs
1884a0e Avoid utf-8 conflicts in Digest files
c4cabcf Add specs for yielding to a lambda with an Array and the wrong number of arguments
de4fab0 Remove extra encoding comment
c65e5ca Merge pull request #311 from mjago/avoid_problematic_encodings_in_zlib_specs
7b91144 Avoid problematic encodings in Zlib specs
a0a65c7 Fix variable naming style in Thread fixtures
8669cc2 Merge pull request #304 from ruby/fix_parser_warnings
71c4024 Fix most parser warnings (of 317)
bb48acd Fix most parser warnings: the first 200
ddc9372 Remove bad spec potentially changing the global process group
a226ed4 Merge pull request #310 from mjago/remove_problematic_utf_8_encoding
81cbd64 Avoid problematic byte sequence in UTF-8 encoding
292f31f IO#each_codepoint raises an exception at incomplete character before EOF when conversion takes place
94cbe8d SIGTERM is not supported on Windows
2dd2245 Speed up Process.waitpid spec
67f285b Improve spec description from changelog
0c2fe01 Move Hash#inspect specs in the Hash specs
48679fe Fix shared spec name
9a6c6b1 Merge pull request #307 from sgarciac/master
aef521e Hash#inspect doesn't raise error even if its content returns a string which is not compatible with Encoding.default_external as inspected result.
894db53 flatten no longer calls #to_ary method on elements beyond the given level. * See #175 * See [Bug 10748]
8126e53 Add spec for Net::FTP being passive by default from 2.3+
6e58b5f Merge pull request #306 from mjago/setsockopt_spec_test_fail_on_osx
5c232ad getsockopt(2) returns SO_LINGER instead of 1
264f06c Fix most parser warnings: the first 100
2d5aece Fix bad spec: Module#prepend does import constants
309343b Remove usages of eval for common syntax
fc21517 AppVeyor: run only once per PR from the same repo (#305)
0d9b6ff Merge pull request #301 from nobu/suppress-warnings
1c901da Merge pull request #302 from nobu/Enumerable#chunk-without-block
e00328a Update Enumerable#chunk
75fef79 Shadowing variables
c04ce7c Suppress warnings
6852fd4 Simplify guards in pack/unpack for the special case of mingw32 on Windows 64-bit
2fd92c4 Merge pull request #300 from bkutil/test-octal-int-opal
7b19ee9 Spec for Integer("0") parsing as 0
4e37db8 Remove all not_compliant_on and deviates_on guards
66f6ccc Use a simpler limits for spec'ing too big array sizes
5c78608 Remove not_compliant_on :ironruby guards
9e0f660 Remove impl-specific object_id spec
664b4c1 Fixed one TODO
87ae44f Avoid passing RUBY_EXE explicitly
21024e4 Fix link to AppVeyor
7f7430f Mention all types of specs
0099874 Mention being tested in implementation Cis
8a29c71 Update AppVeyor badge
cab9b2f Properly convert an st_index_t to a Fixnum
de08352 Remove trailing spaces
92a66ec Replace tab by spaces
2902648 Remove extra spaces after should/should_not
52e60f4 Merge pull request #299 from backus/conditional-regexp
76f88c1 Add conditional regular expression tests
4ae1346 It seems IO#close_on_exec* was implemented on Windows in MRI 2.3
f5afc1e It seems File::Stat.ino got implemented in MRI 2.3 on Windows
3de35fe Create an empty directory for #zero? specs
d3b01ca skip hanging spec on Windows
9f78b1a Test Ruby 2.3.1 on Windows with AppVeyor
30b9fab Merge pull request #298 from ksss/interrupt
8efd3ef Add spec for inheritance of Interrupt
564a064 Add Interrupt class specs
5309c48 Merge pull request #297 from ksss/signal_exception
a79325b Check a signm value if SignalException rescued
cdd885f Merge pull request #295 from ksss/signame
d416040 Add Signal.signame specs

git-subtree-dir: spec/ruby
git-subtree-split: a2e5952554a7632e5debf0306fbae4e2559b2880
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment