Re: [MacRuby-devel] PowerPC build of MacRuby broke

2009-04-12 Thread Rich Morin
At 00:16 +0200 4/12/09, Dömötör Gulyás wrote:
> I think its great to have a PPC nightly, and I really appreciate
> the effort to at least combat regression, as probably one of the
> few people who'd still like to ship PPC/x86 UBs.  Keep it up :)

Setting up the build server and monitoring cron's email is a pretty
minimal effort.  If it helps the MacRuby developers to identify and
resolve PPC problems, the effort will pay off handsomely for me!

In any case, the real kudos go to Laurent and the other developers
who are willing to retain the PPC as a development target.

-r
-- 
http://www.cfcl.com/rdmRich Morin
http://www.cfcl.com/rdm/resume [email protected]
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Technical editing and writing, programming, and web development
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel


[MacRuby-devel] attr_writer style outlets and plain-method actions may not show up in IB when new frameworks are installed

2009-04-12 Thread Pat Maddox
If you've got a simple class like

class MyController
  attr_writer :log

  def draggingEntered(sender)
  end
end

Then log will show up as an outlet in IB, and draggingEntered will be an action.

I installed the iPhone SDK after MacRuby, and all of a sudden those
stopped automatically showing up.  ib_outlet and ib_action continued
to show up fine.  Once I installed MacRuby again, the attr_writer
outlets and plain-method actions automatically appeared in IB again.

I didn't see a wiki for MacRuby...might be useful to put this note
somewhere in the docs in case anyone else runs into this.

btw, I am instantly addicted to MacRuby.  Thanks for such an awesome project.

Pat
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel


[MacRuby-devel] experimental branch: status update

2009-04-12 Thread Laurent Sansonetti
Another week, another status update on the experimental branch!  
Unfortunately, the work done this week was pretty light.


- More work on IO (IO#readlines, IO#each_byte and IO#each_char).

- A better implementation for catch/throw was added.

- Tail-call elimination was introduced. This optimization transforms  
recursive calls into local loops, in order to prevent stack overflows.  
As an example, the following code snippet works on the experimental  
branch, but doesn't on trunk (or the regular Ruby implementation).


$ ./miniruby -e "def f(n); return if n == 0; f(n-1); end; f(100)"

In order to benefit of this optimization, the recursive call must be  
performed at the very end of one of the function's blocks, which means  
the programmer will most likely need to rewrite his algorithms.


- Symbol comparisons (#==, #!= and #===) are now inlined if both  
operands are constants. The bm_vm2_case.rb benchmark is now running  
faster than YARV.


$ ruby b.rb benchmark/bm_vm2_case.rb
benchmark/bm_vm2_case.rb
MacRuby version 0.5 (ruby 1.9.0) [universal-darwin9.5, x86_64]
0.20079
0.202569
0.210689
ruby 1.9.1 (2008-12-28 patchlevel-5000 trunk 21107) [i386-darwin9.5.0]
0.680986
0.676041
0.679767

A funny fact that we discovered during this change was that Ruby 1.9  
does not check if #=== has been overwritten in case symbols are used  
in a case expression. http://redmine.ruby-lang.org/issues/show/1376


- A new JIT compilation strategy was developed, which basically  
compiles methods at the very last moment, right before the runtime  
actually needs them. The strategy is now mostly stable modulo 1 bug  
that I still need to investigate and fix, which is why it is not  
enabled by default. If you want to play with it, you need to enable  
the ROXOR_ULTRA_LAZY_JIT constant in roxor.cpp.


- Vincent started working on a spec regarding 1.9 string encodings!

- The LLVM IR interpreter was investigated in order to interpret  
faster #eval expressions. The result of this investigation has been  
committed and works pretty well with simple expressions, however it is  
not activated by default yet because of limitations when it comes to  
call the VM primitives. We will have to modify the LLVM interpreter a  
little bit in order to fully use it from MacRuby. This will be done in  
the near future.


- The parsing process has been accelerated, principally we are doing  
much less IOs and creating much less temporary objects.


As a result of a few of these changes (lazy JIT + new parsing  
process), IRB starts a little less than 2 times faster on the machine  
I'm using to write this message.


$ time ./miniruby_old -I./lib bin/irb -v
irb 0.9.5(05/04/13)

real0m1.790s
user0m1.586s
sys 0m0.278s

$ time ./miniruby -I./lib bin/irb -v
irb 0.9.5(05/04/13)

real0m0.980s
user0m0.941s
sys 0m0.114s

While this is a good progress, this is still not acceptable and the  
startup time should be decreased by another 50% at the very least.  
Hopefully there are still numerous things that we can do to achieve  
this goal.


Laurent
___
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel