IronRuby r100 on Mono

WARNING: This is against revision 100. Revision 101 will compile, but
will not run on Mono at the time. I am still working on it. In case
you didn’t know, you can use “svn update -r 100” to “update” to
not-the-latest version.

Stuffs are in the usual place:
http://sparcs.kaist.ac.kr/~tinuviel/download/IronRuby/

patch-mono-r100 consists of four different things:

  1. One-line case-sensitivity patch to Rakefile.
  2. Workaround for long-standing console problem.
  3. Workaround for Mono bug #387040, by changing explicit interface
    implementations to implicit one.
  4. Workaround for Mono bug #387502, by rewriting ?? operator with if
    statement. This is a SVN regression and you don’t need it if you are
    using Mono 1.9.

Links to Mono bugs:
https://bugzilla.novell.com/show_bug.cgi?id=387040
https://bugzilla.novell.com/show_bug.cgi?id=387502

P.S. DLR, IronPython, IronRuby team should create C# compiler test
suite! You guys have the talent!

C<<svn up -r 100 && mono=1 rake compile>> succeeds for me. Tons of
warnings, but I’ve got a working build. Thanks again for the hard
work here, Seo!

[email protected]:/usr/src/svn/rubyforge.org/ironruby/trunk$ cat which ruby && \

echo ‘===’ &&
cat hello.rb &&
echo ‘===’ &&
ruby hello.rb
#!/bin/bash

. $HOME/.devenv
IRON_RUBY=/usr/src/svn/rubyforge.org/ironruby/trunk/build/mono_debug/
ir.exe
exec mono $IRON_RUBY “$*”

def sayHi( name )
puts “Hello, %s!” % String( name )
end

sayHi( “C.J.” )

Hello, C.J.!

Cheers,

C.J.

Thanks Seo! I’m working with Marek to make Mono play nice with r101 :slight_smile:

On May 6, 2008, at 8:15 PM, Sanghyeon S. wrote:

P.S. DLR, IronPython, IronRuby team should create C# compiler test
suite! You guys have the talent!

This might duplicate effort. There is already an open C# compiler
test suite here:

http://anonsvn.mono-project.com/viewcvs/trunk/mcs/tests/

BTW, I’m adding a patch to this suite to catch the bug in https://
bugzilla.novell.com/show_bug.cgi
?id=387040 - it is in code review now.



Did you download the sources into your home drive. It looks like you
need to navigate into the folder where you downloaded the ironruby
source and then call rake :slight_smile:

I am attempting to build r100 on Mono on my Mac and getting an error I
have
not seen before. I have followed the instructions and used the provided
patch. Here is what I get:

rbazinet: ~$ rake --trace compile mono=1
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb,
Rakefile.rb)
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:2143:in
raw_load_rakefile' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1897:inload_rakefile’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
standard_exception_handling' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1896:inload_rakefile’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1880:in run' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:instandard_exception_handling’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in run' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/bin/rake:31 /usr/bin/rake:19:inload’
/usr/bin/rake:19

Is this just some dumb I am missing?

Thanks,
Rob B.

Yes, the source is on my home drive in a subdir named IronRuby, and yes,
I
navigated to the folder.

Thanks.

-Rob

On Thu, May 8, 2008 at 10:54 PM, Ivan Porto C.
[email protected]

This happens to me sometimes but isn’t related to ironruby in my case.

if you do ls Rake* does something show up? Rake is complaining about
the fact that it can’t find its instruction set (Rakefile). From the
output I see, it doesn’t even start to build

I merely suggested navigating to the folder because of he prompt I see

rbazinet:~$ which would indicate you tried to run the rake command in
your home drive instead of in
rbazinet:~/ironruby $

But of course I’m making the assumption that your prompt indicates in
which folder you are.

ok looks like you need the gem pathname2

sudo gem install pathname2 (might be pathname my memory fails me)

Ivan, I wanted to see if you were paying attention…yes, what I sent
over
shows the command from the WRONG directory. I was in that directory and
just used the command history to run the command so I could send it over
to
the group. The command is failing and I am sending the right one now.
You
can see I am not nuts, just copying and pasting the wrong info.

So, here it is:

rbazinet: ~/ironruby$ rake compile mono=1
(in /Users/rbazinet/ironruby)
rake aborted!
Could not find RubyGem pathname2 (>= 0)
/Users/rbazinet/ironruby/rakefile:5
(See full trace by running task with --trace)
rbazinet: ~/ironruby$ rake --trace compile mono=1
(in /Users/rbazinet/ironruby)
rake aborted!
Could not find RubyGem pathname2 (>= 0)
/Library/Ruby/Site/1.8/rubygems.rb:523:in report_activate_error' /Library/Ruby/Site/1.8/rubygems.rb:131:inactivate’
/Library/Ruby/Site/1.8/rubygems.rb:49:in gem' /Users/rbazinet/ironruby/rakefile:5 /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:2149:inload’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:2149:in
raw_load_rakefile' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1897:inload_rakefile’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:in
standard_exception_handling' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1896:inload_rakefile’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1880:in run' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1948:instandard_exception_handling’
/Library/Ruby/Gems/1.8/gems/rake-0.8.1/lib/rake.rb:1878:in run' /Library/Ruby/Gems/1.8/gems/rake-0.8.1/bin/rake:31 /usr/bin/rake:19:inload’
/usr/bin/rake:19

Does this make more sense??

Thanks,
Rob

On Thu, May 8, 2008 at 11:06 PM, Ivan Porto C.
[email protected]

I usually put mono=1 before the call to rake, but I haven’t tried
building on my darwin box yet… I’ll try it now and see what happens…

Yeah, that was that error. I was reading it as not needing a gem but
the
gem reporting an error in the path.

I am now getting an error where it can find system.dll. I saw some
postings
on here about that and pkg-config. I installed Mono from the OSX
package
installer. I would expect these things to be set correctly. Is this a
wrong assumption? Should I have installed from source instead?

What is the correct setting if using the Mono package installer?

Thanks,
Rob

On Thu, May 8, 2008 at 11:26 PM, Ivan Porto C.
[email protected]

On 5/9/08, C.J. Adams-Collier [email protected] wrote:

Same problem here…

I got a successful compilation by replacing line 161 of context.rb and
hardcoding mono lib base directory just like this:

libdir = “/Library/Frameworks/Mono.framework/Versions/1.9.1/lib/”

instead of the original:

libdir = IO.popen(‘pkg-config --variable=libdir mono’).read.strip

It’s just a quick and dirty hack, but it works. Mono is not registered
with pkg-config using the official dmg installer:

[email protected]:/ $ pkg-config --list-all | grep mono
[email protected]:/ $

You can add the following to your ~/.bash_profile (or equivalent):

export
PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Libraries/pkgconfig/"

That did it for me.

Tobias

2008/5/9 Daniele A. [email protected]:

Same problem here…

I grabbed ruby from here:

http://rubyosx.rubyforge.org/

I got the 1.9 mono dist from mono-project.org

I installed the missing gem module:

$ sudo gem install -b pathname

then tried to build:

[email protected]:/usr/src/svn/rubyforge.org/ironruby/trunk$ mono=1 rake –
trace compile
(in /usr/src/svn/rubyforge.org/ironruby/trunk)
** Invoke compile (first_time)
** Invoke happy (first_time)
** Execute happy
** Invoke clean_build (first_time)
** Invoke happy
** Execute clean_build
** Invoke compile_dlr (first_time)
** Invoke clean_build
** Execute compile_dlr
rake aborted!
cannot resolve path System.dll
./context.rb:90:in resolve_framework_path' ./context.rb:89:ineach’
./context.rb:89:in resolve_framework_path' ./context.rb:130:inresolve_framework_path’
./context.rb:405:in resolve_framework_path' ./context.rb:420:inreferences’
./context.rb:418:in each' ./context.rb:418:inreferences’
./context.rb:434:in compile' ./context.rb:432:inchdir’
./context.rb:432:in compile' /usr/src/svn/rubyforge.org/ironruby/trunk/rakefile:137 ./context.rb:578:ininstance_eval’
./context.rb:578:in source_context' /usr/src/svn/rubyforge.org/ironruby/trunk/rakefile:135 /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:incall’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in
execute' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:ineach’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:392:in
execute' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:362:ininvoke’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in
synchronize' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:ininvoke’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:369:in
invoke_prerequisites' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1003:ineach’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1003:in send' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1003:ineach’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:368:in
invoke_prerequisites' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:361:ininvoke’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:in
synchronize' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:355:ininvoke’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:ineach’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1739:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:instandard_exception_handling’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1733:in
top_level' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1711:inrun’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1761:in
standard_exception_handling' /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/lib/rake.rb:1708:inrun’
/usr/local/lib/ruby/gems/1.8/gems/rake-0.7.3/bin/rake:7
/usr/local/bin/rake:16:in `load’
/usr/local/bin/rake:16

[email protected]:/usr/src/svn/rubyforge.org/ironruby/trunk$ MONO_PATH=
$MONO_PATH:/Library/Frameworks/Mono.framework/Versions/1.9/lib/mono/
2.1/ mono=1 rake compile(in /usr/src/svn/rubyforge.org/ironruby/trunk)
rake aborted!
cannot resolve path System.dll
/usr/src/svn/rubyforge.org/ironruby/trunk/rakefile:137
(See full trace by running task with --trace)

Ah yes, work perfectly. Actually both the solution syou and Daniele
worked
great.

Thanks.

-Rob

On Sat, May 10, 2008 at 7:36 AM, Tobias H. Michaelsen <

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs