seattlerb / rubyinline

297 stars 42 forks source link

Confusion over name of ".so" file #31

Closed bwilfley closed 11 years ago

bwilfley commented 12 years ago

Hi folks,

Note: I mistakenly filed this at Rubyforge. This new item is per Ryan's instructions. Note2: Issue #27: "RubyInstaller compatibility" apparently describes the same problem. I'm not qualified to supply the fix, so I haven't included any of the details asked for in that issue. Now, on with the show:

I'm attempting to use RubyInLine under windows 7 (64 bit). (Other info below.)

My problem occurs trying to run the example script:

ruby example.rb

I get the following:

ruby example.rb C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in gem_original_require': no such file to load -- c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.so (LoadError) from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:inrequire' from C:/Ruby187/lib/ruby/gems/1.8/gems/RubyInline-3.11.3/lib/inline.rb:519:in load' from C:/Ruby187/lib/ruby/gems/1.8/gems/RubyInline-3.11.3/lib/inline.rb:844:ininline' from example.rb:18

I look in my ~/.ruby_inline\ruby-1.8 directory and I have: a.exe Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.c

Evidently, the .c file is being generated and then compiled. But the file created by the compilation is a.out, not: Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.so

Any thoughts??

Thanks for your help,

Brian

My configuration is as follows: Running Ruby 1.8.7 from the Windows one-click installer: ruby 1.8.7 (2012-10-12 patchlevel 371) [i386-mingw32]

I'm using the "DevKit" from the folks who make the installer. This gives me gcc under the mingw32 environment. Before running these tests I set the DevKit environment with:

devkitvars.bat

Here is the gem environment RubyGems Environment:

zenspider commented 12 years ago

@bwilfley can you rerun with ruby -d so we can see the compile command?

@luislavena can you comment?

bwilfley commented 12 years ago

Here's the output from > ruby -d example.rb

c:\Users\bwilfley\sw\ruby\rubyinline>ruby -d example.rb Exception LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_requi re.rb:36 - no such file to load -- inline RubyInline v 3.11.3 ExceptionErrno::EACCES' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1298 - Permiss ion denied - c:/Users/bwilfley/.ruby_inline/ruby-1.8 Exception Errno::EACCES' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1298 - Permiss ion denied - c:/Users/bwilfley/.ruby_inline/ruby-1.8 ExceptionErrno::EACCES' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1324 - Permiss ion denied - c:/Users/bwilfley/.ruby_inline/ruby-1.8 Exception Errno::ENOTEMPTY' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1298 - Dire ctory not empty - c:/Users/bwilfley/.ruby_inline ExceptionErrno::ENOTEMPTY' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1298 - Dire ctory not empty - c:/Users/bwilfley/.ruby_inline Exception Errno::ENOTEMPTY' at C:/Ruby187/lib/ruby/1.8/fileutils.rb:1324 - Dire ctory not empty - c:/Users/bwilfley/.ruby_inline ExceptionLoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_requi re.rb:36 - no such file to load -- inline/Inline_MyTest_957b1a49e8ad50000ecc5982 fd89874a.so Exception `LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_requi re.rb:63 - no such file to load -- inline/Inline_MyTest_957b1a49e8ad50000ecc5982 fd89874a.so Building c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inline_MyTest_957b1a49e8ad50000 ecc5982fd89874a.so with 'gcc -shared -s -g -O2 -DFD_SETSIZE=256 -I C:/Ruby18 7/lib/ruby/1.8/i386-mingw32 -I C:/Ruby187/include "c:/Users/bwilfley/.ruby_inlin e/ruby-1.8/Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.c" -Wl,--enable-auto -import -LC:/Ruby187/lib -lmsvcrt-ruby18 -L. ' Output:

Built successfully Exception LoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_requi re.rb:36 - no such file to load -- c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inlin e_MyTest_957b1a49e8ad50000ecc5982fd89874a.so ExceptionLoadError' at C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_requi re.rb:63 - no such file to load -- c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inlin e_MyTest_957b1a49e8ad50000ecc5982fd89874a.so C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in gem_original _require': no such file to load -- c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inlin e_MyTest_957b1a49e8ad50000ecc5982fd89874a.so (LoadError) from C:/Ruby187/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in require' from C:/Ruby187/lib/ruby/gems/1.8/gems/RubyInline-3.11.3/lib/inline.rb:5 19:in load' from C:/Ruby187/lib/ruby/gems/1.8/gems/RubyInline-3.11.3/lib/inline.rb:8 44:ininline' from example.rb:18

c:\Users\bwilfley\sw\ruby\rubyinline>

luislavena commented 12 years ago

@bwilfley I don't see the output of the compilation.

Do you have DevKit installed and in the PATH? (run devkitvars.bat from it)

luislavena commented 12 years ago

I only see this:

Building c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inline_MyTest_957b1a49e8ad50000
ecc5982fd89874a.so with 'gcc -shared -s -g -O2 -DFD_SETSIZE=256 -I C:/Ruby18
7/lib/ruby/1.8/i386-mingw32 -I C:/Ruby187/include "c:/Users/bwilfley/.ruby_inlin
e/ruby-1.8/Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.c" -Wl,--enable-auto
-import -LC:/Ruby187/lib -lmsvcrt-ruby18 -L. '
Output:

Built successfully

And is missing the parameter to tell GCC what name the extension will have. No name given to GCC, it will generate a.exe

Please confirm the compiler detail and I'll take a look in a bit.

zenspider commented 12 years ago

On Nov 5, 2012, at 14:46 , Luis Lavena notifications@github.com wrote:

I only see this:

Building c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inline_MyTest_957b1a49e8ad50000 ecc5982fd89874a.so with 'gcc -shared -s -g -O2 -DFD_SETSIZE=256 -I C:/Ruby18 7/lib/ruby/1.8/i386-mingw32 -I C:/Ruby187/include "c:/Users/bwilfley/.ruby_inlin e/ruby-1.8/Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.c" -Wl,--enable-auto -import -LC:/Ruby187/lib -lmsvcrt-ruby18 -L. ' Output:

Built successfully

And is missing the parameter to tell GCC what name the extension will have. No name given to GCC, it will generate a.exe

Please confirm the compiler detail and I'll take a look in a bit.

That is confirmed... I had a patch from someone (I need to go find it) that said that the -o flag wasn't the output-file w/ the MS compilers... maybe I need a stricter test for windows/MS vs posix/gcc?

zenspider commented 12 years ago

On Nov 5, 2012, at 14:46 , Luis Lavena notifications@github.com wrote:

I only see this:

Building c:\Users\bwilfley/.ruby_inline/ruby-1.8/Inline_MyTest_957b1a49e8ad50000 ecc5982fd89874a.so with 'gcc -shared -s -g -O2 -DFD_SETSIZE=256 -I C:/Ruby18 7/lib/ruby/1.8/i386-mingw32 -I C:/Ruby187/include "c:/Users/bwilfley/.ruby_inlin e/ruby-1.8/Inline_MyTest_957b1a49e8ad50000ecc5982fd89874a.c" -Wl,--enable-auto -import -LC:/Ruby187/lib -lmsvcrt-ruby18 -L. ' Output:

Built successfully

And is missing the parameter to tell GCC what name the extension will have. No name given to GCC, it will generate a.exe

Please confirm the compiler detail and I'll take a look in a bit.

double confirmed... it was the last commit. Patch from imperator, so I trusted it implicitly. Please advise.

bwilfley commented 12 years ago

Sorry for the delay. My last post didn't take.

I'm using DevKit. (devkitvars.bat has been run) The version of DevKit is the most recent: from the download DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe

The compiler is GCC. The version is:

gcc --version gcc (tdm-1) 4.5.2 Copyright (C) 2010 Free Software Foundation, Inc. ...

luislavena commented 12 years ago

@zenspider @bwilfley can you guys confirm #32 works for you?

zenspider commented 12 years ago

On Nov 5, 2012, at 15:43 , Luis Lavena notifications@github.com wrote:

@zenspider @bwilfley can you guys confirm #32 works for you?

@imperator ... I need your eyeballs on this

bwilfley commented 12 years ago

With the changes in #32 the .so file is correctly named.

(I now get a different error: Invalid access to memory location. But this is something I've seen in other uses of the DevKit. It is not specific to RubyInLine.)

Thanks for your help.

luislavena commented 12 years ago

@bwilfley re: Invalid access to memory location

Please post any issue with RubyInstaller/DevKit to RubyInstaller group:

https://groups.google.com/forum/?fromgroups#!forum/rubyinstaller

We would love to help and get you a error-free environment.

bwilfley commented 12 years ago

Thanks very much! I appreciate your help.

I'll go to the rubyinstaller forum and let you know what I find.

zenspider commented 11 years ago

No review from @imperator... fuck it. this can't wait longer.

luislavena commented 11 years ago

Thank you @zenspider

:heart: :heart: :heart: