Hey Rob, I had planed on writing a longer message to the list but, having just started a new gig, time is severely lacking. Also, it seems it'll be at least 2-3 weeks (thank Apple store ship times) before I get a chance to test anything on Mavericks. Here's what I can tell you so far: * MacRuby integration with Xcode relies on rb-nibtool, but the Xcode team has repeatedly signaled (not so subtly) that they are not interested in keeping this shim working. * Replacing the GC is semi-problematic because it would require not only tracking Ruby objects (which we could do relatively easily with something like a Boehm collector plugged in to MacRuby), but also tracking when to retain/release any Obj-C objects that get used from Ruby. * Even keeping around the OSS version of libauto is insufficient as more system frameworks get replaced with updated versions that are not built against libauto (i.e. we can recompile/relink MacRuby, but not CoreFoundation.framework, etc.). * The ARC-style memory management that RubyMotion uses relies on autorelease pools, which need to be drained. Usually, there is a top-level pool that gets drained after each runloop cycle but… * ...MacRuby does not, by default, start a runloop spinning. This was an intentional design decision back when it was expected that MacRuby would replace system Ruby on OS X, but now it ends up being a liability for memory management and building UI apps in general. All of this taken together puts MacRuby in a bit of a quirky position. Originally it was intended to replace system Ruby, but that's obviously not going to happen. On top of that, it's inadequate for building high-quality UI apps and the work required to make up the difference is substantial. This work has, consequently, already been done by the team over at HipByte. Yes, you have to pay for RubyMotion. If someone was willing to put in the > 3 man-years of labor that it required to get RubyMotion to where it is today for free, well…then I suppose MacRuby could be fixed up. So far, though, I have not met anyone willing to do this. In summary: MacRuby doesn't have a bright future as "Ruby for OS X" or as "Ruby to build GUI apps". So, it's not so much that people are unwilling/unable to work on MacRuby (though pretty much everyone on the original team has become increasingly time-constrained), but rather that we're not really sure what MacRuby should/could/would become… (Personally, I'd be interested in seeing if some of the original ideas from MacRuby could be adapted to GNUstep, but again time is a very precious commodity of late.) All that said, if getting MacRuby running on Mavericks doesn't take more than 2-3 weekends of spare time, I'll see what I can do. As it stands, the port to a more recent version of llvm is already mostly done on a branch... tl;dr -- If you like building GUI apps with Ruby, RubyMotion is probably your best bet. Transitioning shouldn't be too hard, and the community is very welcoming and more than happy to help. Cheers, Josh On Wednesday, November 6, 2013 at 11:27 PM, rob ista wrote:
Hi All,
indeed the GC is still there on Mavericks and needs to be ‘required’ in Xcode while disabling ARC to avoid a conflict (thanks Steve). So far so good. I guess I had too many probe at the same time :). The malfunctioning again of the IB in Xcode5 with the outlets can be solved with the earlier published workaround of an accompanying ObjC Class.h file next to the MacRuby Class.rb file. It’s a bit additional work to create and maintain but we’re talking about a few minutes here so that should not be a problem unless you have to maintain many many classes with outlets. Obviously the rb-nibtool is not called or not working anymore even when properly installed.
What is a bigger problem is that not all objects seem to be created at run-time resulting in no-method errors (e.g. with gems) and sometimes not connected outlets in delegate classes or unresolved IB-action methods. Pretty weird. The same sources compile and run fine on SL-L-ML . For me it’s difficult to trace why and where this happens so hopefully an expert can shine a light on this. Very simple apps run fine, bigger ones with just more classes and stuff crash.
I am moving back to ML and keep may be a little "play machine” on a separate disk with Mavericks. I am tooooo happy with my MacRuby apps :) … May be moving to RubyMotion after all. I will test it at least soon. Laurent deserves the support and its not that much money :).
cheers, Rob
On 05 Nov 2013, at 19:55, macruby-devel-request@lists.macosforge.org (mailto:macruby-devel-request@lists.macosforge.org) wrote:
Send MacRuby-devel mailing list submissions to macruby-devel@lists.macosforge.org (mailto:macruby-devel@lists.macosforge.org)
To subscribe or unsubscribe via the World Wide Web, visit https://lists.macosforge.org/mailman/listinfo/macruby-devel or, via email, send a message with subject or body 'help' to macruby-devel-request@lists.macosforge.org (mailto:macruby-devel-request@lists.macosforge.org)
You can reach the person managing the list at macruby-devel-owner@lists.macosforge.org (mailto:macruby-devel-owner@lists.macosforge.org)
When replying, please edit your Subject line so it is more specific than "Re: Contents of MacRuby-devel digest..."
Today's Topics:
1. MacRuby on Mavericks (Robert Carl Rice) 2. Re: MacRuby on Mavericks (Mark Villacampa) 3. Re: MacRuby on Mavericks (Robert Carl Rice) 4. Re: MacRuby on Mavericks (Stephen Horne)
----------------------------------------------------------------------
Message: 1 Date: Mon, 4 Nov 2013 22:02:58 -0500 From: Robert Carl Rice <rice.audio@pobox.com (mailto:rice.audio@pobox.com)> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org (mailto:macruby-devel@lists.macosforge.org)> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <9EA268FC-55D6-4F3E-8372-D2B831D588B0@pobox.com (mailto:9EA268FC-55D6-4F3E-8372-D2B831D588B0@pobox.com)> Content-Type: text/plain; charset=us-ascii
Hi,
Nice that I sparked some discussion.
One of the reasons that I continued to write MacRuby script even though Xcode was giving me the warning that GC was deprecated is that I suspect that was a mostly a political move to appease the egos of the IOS and ARC guys and also to encourage programmers to write more efficient code. Even if Apple is determined not to support GC on the mobile devices, there is probable no really good technical reason to remove the capability for desktop apps. So I would have been surprised if Apple had removed GC in Mavericks and I still would be surprised if Apple does that anytime soon, if they do that at all.
If would be a mistake, because the relative simplicity of script language programming is what makes it possible for a lonesome programmer such as myself to develop and maintain a couple of relatively large applications. The problem with RubyMotion is that it does an end-run around Xcode and since my apps do lots of initialization using NIB files it may be as much work for me to convert to RubyMotion as it will be to rewrite in objective-C.
I don't have any inside information on Apple's thinking, but I suspect that may be worth the effort to upgrade MacRuby for Mavericks. I'll let you know when I find out if the App Store will still still support MacRuby apps.
Bob Rice
------------------------------
Message: 2 Date: Tue, 5 Nov 2013 09:46:14 +0100 From: Mark Villacampa <markvjal@gmail.com (mailto:markvjal@gmail.com)> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org (mailto:macruby-devel@lists.macosforge.org)> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <EB5CFEA0-0397-442C-B0C9-A3FA3228BCCE@gmail.com (mailto:EB5CFEA0-0397-442C-B0C9-A3FA3228BCCE@gmail.com)> Content-Type: text/plain; charset="us-ascii"
Hey Bob,
Have you seen the IB gem? It let's you use nibs with Rubymotion with minimal changes in your MacRuby code.
Sent from my iPhone
On 05/11/2013, at 04:02, Robert Carl Rice <rice.audio@pobox.com (mailto:rice.audio@pobox.com)> wrote:
Hi,
Nice that I sparked some discussion.
One of the reasons that I continued to write MacRuby script even though Xcode was giving me the warning that GC was deprecated is that I suspect that was a mostly a political move to appease the egos of the IOS and ARC guys and also to encourage programmers to write more efficient code. Even if Apple is determined not to support GC on the mobile devices, there is probable no really good technical reason to remove the capability for desktop apps. So I would have been surprised if Apple had removed GC in Mavericks and I still would be surprised if Apple does that anytime soon, if they do that at all.
If would be a mistake, because the relative simplicity of script language programming is what makes it possible for a lonesome programmer such as myself to develop and maintain a couple of relatively large applications. The problem with RubyMotion is that it does an end-run around Xcode and since my apps do lots of initialization using NIB files it may be as much work for me to convert to RubyMotion as it will be to rewrite in objective-C.
I don't have any inside information on Apple's thinking, but I suspect that may be worth the effort to upgrade MacRuby for Mavericks. I'll let you know when I find out if the App Store will still still support MacRuby apps.
Bob Rice
_______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org (mailto:MacRuby-devel@lists.macosforge.org) https://lists.macosforge.org/mailman/listinfo/macruby-devel