ryanb / ruby-warrior

Game written in Ruby for learning Ruby.
MIT License
3.83k stars 838 forks source link

Incompatible marshal file format #54

Open hemanth opened 12 years ago

hemanth commented 12 years ago
/home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:31:in `load': incompatible marshal file format (can't be read) (TypeError)
    format version 4.8 required; 254.154 given
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:31:in `decode'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:35:in `load'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/lib/ruby_warrior/game.rb:8:in `start'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/lib/ruby_warrior/runner.rb:17:in `run'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/gems/rubywarrior-0.1.3/bin/rubywarrior:5:in `<top (required)>'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/bin/rubywarrior:19:in `load'
    from /home/hemanth/.rvm/gems/ruby-1.9.2-p290/bin/rubywarrior:19:in `<main>'

$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]

$ uname -a
Linux hemanth-OptiPlex-755 2.6.35-32-generic #65-Ubuntu SMP Tue Jan 24 13:48:14 UTC 2012 i686 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 10.10
Release:    10.10
Codename:   maverick
tensorfields commented 12 years ago

I have the same issue:

/home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:31:in `load': incompatible marshal file format (can't be read) (TypeError)
    format version 4.8 required; 166.186 given
    from /home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:31:in `decode'
    from /home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/lib/ruby_warrior/profile.rb:35:in `load'
    from /home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/lib/ruby_warrior/game.rb:8:in `start'
    from /home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/lib/ruby_warrior/runner.rb:17:in `run'
    from /home/seele/.rbenv/versions/1.9.2-p320/lib/ruby/gems/1.9.1/gems/rubywarrior-0.1.3/bin/rubywarrior:5:in `<top (required)>'
    from /home/seele/.rbenv/versions/1.9.2-p320/bin/rubywarrior:23:in `load'
    from /home/seele/.rbenv/versions/1.9.2-p320/bin/rubywarrior:23:in `<main>'

System Info:

$ ruby -v
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]
$ gem --version
1.8.23
$ gem list rubywarrior

*** LOCAL GEMS ***

rubywarrior (0.1.3)
$ uname -srvmpio
Linux 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:    12.04
Codename:   precise

The error message means that that the object was not serialized; otherwise, the first two bytes would be the format version. For the record, I have the same issue using ruby 1.8.7-p352 and 1.9.2-p290.

mistydemeo commented 12 years ago

This is probably a duplicate of #35 (which I never got around to writing a patch for as I intended to).

ruby-warrior looks for a file named .profile by default, which of course, when called in the home directory, is ordinarily a shell profile and not actually a ruby-warrior profile.

hemanth commented 12 years ago

Ouch! So is it .rwprofile or .rw_profile now? Better way could ~/rw/.profile ??

mistydemeo commented 12 years ago

At the moment neither - I'll actually write that pull request one of these days though, and I think .rw_profile would be better.

If you call ruby-warrior in a directory it will look for the profile there, rather than in your home directory, so if you create an ~/rw directory then that will work in the meanwhile.