version 1.8.20 does not work on MacRuby #306

Closed
ferrous26 opened this Issue Mar 23, 2012 · 10 comments

Comments

Projects
None yet
3 participants
Contributor

ferrous26 commented Mar 23, 2012

Specification references YAML::PrivateType on line 672. PrivateType is something RubyGems adds to Psych in psych_additions.rb and not to YAML. Since I don't have psych I get a uninitialized constant error.

Owner

evanphx commented Mar 23, 2012

That's not correct because if you have Syck, then it provides YAML::PrivateType. Are you running into this error? Could you gist the backtrace?

Contributor

ferrous26 commented Mar 23, 2012

Trace is here: https://gist.github.com/2172696

If Syck is supposed to have it then I guess this is a MacRuby problem, since it uses libYAML instead of Syck.

Owner

evanphx commented Mar 23, 2012

Ug. Yes, this is specifically a MacRuby problem. I didn't realize they were using yet another yaml engine of their own creation. I'll add a bit more code for this case.

Contributor

ferrous26 commented Mar 23, 2012

Though it would be nice of you to handle this in rubygems, I should point out that MacRuby already has some patches on top of rubygems for other YAML issues.

So maybe those should also be pushed up to rubygems source or this issue should also be handled in the macruby patches for rubygems?

Owner

evanphx commented Mar 23, 2012

If macruby has it's own patches, then when you install 1.8.21, you likely wipe out those patches, making MacRuby potentially not run properly.

Where are the patches that they apply? We should audit them, yes.

Contributor

ferrous26 commented Mar 23, 2012

You can't update rubygems with MacRuby, it has been disabled because there are patches on top of rubygems. This is the full list of patches:

rubygems/commands/update_command.rb
61: # XXX MACRUBY We can't allow people to self-update RubyGems at this point.

rubygems/installer.rb
321: # XXX MACRUBY do not allow executables to be overriden by a different

rubygems/package/tar_input.rb
57: # XXX MACRUBY our Zlib::GzipReader.new can't accept variable length arguments

rubygems/package/tar_writer.rb
43: # XXX MACRUBY mainly because our File.open won't honor 'b'.

rubygems/specification.rb
1948: # XXX MACRUBY our quick_emit is different than syck

Owner

evanphx commented Mar 23, 2012

@ferrous26 For those last 3, it seems like those are bugs in MacRuby that just need to be fixed, yes?

As for the installer one, you should check out how jruby and rubinius handle. They explicitly write the binstubs into a dedicated directory so there is never collision with stubs created by other implementations.

Contributor

ferrous26 commented Mar 23, 2012

@evanphx The tar_reader/tar_writer patches are due to bugs. Wouldn't the YAML patch at the bottom fall under the same category as the initial problem for this issue?

I'll have to look into the binstub suggestion, thank you for the pointer. :)

evanphx was assigned Mar 29, 2012

Owner

evanphx commented Oct 7, 2012

Is this still an issue? Has MacRuby fixed the bugs?

Owner

drbrain commented Nov 27, 2012

I'm assuming this is fixed due to last of updates. Please reopen if it is not fixed.

drbrain closed this Nov 27, 2012

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment