Done, with some benchmarks: http://www.macruby.org/trac/ticket/1204
Mark Rada mr...@marketcircle.com On 2011-03-23, at 5:20 PM, Laurent Sansonetti wrote: > Hi Mark, > > Sorry for the late reply. > > Could you file at ticket and add a link to the changes on github? I will look > into this once we release 0.10. > > Thanks! > Laurent > > On Mar 14, 2011, at 6:58 PM, Mark Rada wrote: > >> On 2011-03-14, at 16:05, Laurent Sansonetti <lsansone...@apple.com> wrote: >> >>> Hi Mark, >>> >>> As macrubyc's compilation logic is essentially spawning several >>> command-line tools, I wonder if calling the logic directly from >>> macruby_deploy is going to bring significant advantages, vs the complexity >>> of splitting macrubyc. >>> >> >> The splitting macrubyc was a low hanging fruit; macrubyc was almost split >> already, so few changes were introduced. I don't think I introduced much >> complexity, and in turn some clutter was separated from the initialization >> process: >> >> - calls to #die were replaced with calls to #raise >> - the option parser was moved out of the compiler class, now >> Compiler#initialize takes a hash of options and just unpacks it >> - most of the extra tool lookups (#locate) were moved to constants so they >> only have to be looked up once >> >>> I think a better strategy would be to optimize what's slow in macrubyc >>> (such as command-line options parsing), >> >> I don't think it's the command line parsing, I thinks it's the spawning of >> new MacRuby processes which will have to JIT the compiler logic over and >> over again for each file. >> >> But I guess a lot of that can be mitigated by compiling the compiler when it >> becomes possible. >> >>> and better include the compilation strategy into Xcode (if possible). >>> >> >> That does sound like a much better idea for macruby_deploy. >> >> However, I am rarely using Xcode to work with MacRuby, and there are other >> places where calling the compiler directly will have benefit, such as a rake >> task or during gem installation. Perhaps I am speaking for a minority in >> these two cases >> >> Sent from my iDevice >> >>> Laurent >>> >>> On Mar 12, 2011, at 5:40 PM, Mark Rada wrote: >>> >>>> Hi, >>>> >>>> I have completed a proof of concept patch for MacRuby where I have split >>>> the UI of macrubyc from the underlying logic so that tools like >>>> macruby_deploy can make use of the compiler without having to spawn a new >>>> macruby process for each file that needs to be compiled. This should also >>>> be beneficial for compiling gems and the standard library. >>>> >>>> After having made this patch, I realized that there are still several >>>> places in the compiler where a new process is spawned to perform part of >>>> the compilation. I'm not really sure how much else can be lib-ified from >>>> the other required components. Overall there are still a few places that I >>>> know I can optimize without much work needed. >>>> >>>> Right now, compile time for ruby files with about 100-200 lines of code is >>>> about 1(+/-0.1) seconds on my MBP. Spawning a new macruby process and >>>> processing the macrubyc options takes about 0.25 seconds; so I think the >>>> patch is still useful in the general case. >>>> >>>> The code for the changes is located in my MacRuby fork on github: >>>> https://github.com/ferrous26/MacRuby/tree/libify-rubyc >>>> >>>> Mark Rada >>>> mr...@marketcircle.com >>>> >>>> _______________________________________________ >>>> MacRuby-devel mailing list >>>> MacRuby-devel@lists.macosforge.org >>>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel >>> >>> _______________________________________________ >>> MacRuby-devel mailing list >>> MacRuby-devel@lists.macosforge.org >>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel >> >> _______________________________________________ >> MacRuby-devel mailing list >> MacRuby-devel@lists.macosforge.org >> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel > > _______________________________________________ > MacRuby-devel mailing list > MacRuby-devel@lists.macosforge.org > http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel