Re: [MacRuby-devel] MacRuby on Mavericks
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 wrote:
Send MacRuby-devel mailing list submissions to 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
You can reach the person managing the list at 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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> 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 https://lists.macosforge.org/mailman/listinfo/macruby-devel
Hi Rob, Thanks for looking into this. The iTunes Store has notified me that my current binaries will be removed from the store for not being compatible with the current OS release. Recoding for either RubyMotion or Objective-C will be a big job and I'm not looking forward to it. PS; the new Xcode renews the warning that Xcode 5 is scheduled to be the last Xcode version to support GC, but I don't see anything that ties version 6 to a scheduled OS update. Bob Rice On Nov 6, 2013, at 4:27 PM, rob ista <rob.ista@me.com> 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 wrote:
Send MacRuby-devel mailing list submissions to 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
You can reach the person managing the list at 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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> 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 https://lists.macosforge.org/mailman/listinfo/macruby-devel
On 11/6/13, 9:00 PM, Robert Carl Rice wrote:
The iTunes Store has notified me that my current binaries will be removed from the store for not being compatible with the current OS release. Recoding for either RubyMotion or Objective-C will be a big job and I'm not looking forward to it.
Can you be more specific about how they are "not compatible"? -- Kevin Walzer Code by Kevin/Mobile Code by Kevin http://www.codebykevin.com http://www.wtmobilesoftware.com
Hi Kevin, No, except that when I tried to upgrade to Mavericks I got undefined class object errors from the MacRuby framework as per Rob Ista's message. Hopefully it's just a load order problem. Bob Rice On Nov 6, 2013, at 9:37 PM, Kevin Walzer <kw@codebykevin.com> wrote:
On 11/6/13, 9:00 PM, Robert Carl Rice wrote:
The iTunes Store has notified me that my current binaries will be removed from the store for not being compatible with the current OS release. Recoding for either RubyMotion or Objective-C will be a big job and I'm not looking forward to it.
Can you be more specific about how they are "not compatible"?
-- Kevin Walzer Code by Kevin/Mobile Code by Kevin http://www.codebykevin.com http://www.wtmobilesoftware.com _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org https://lists.macosforge.org/mailman/listinfo/macruby-devel
Hi Guys, I have a project that written in MacRuby but I can split the code to logic in Ruby and the UI which I can translate to Objective-C . So My problem is how to run a pure Ruby from my app. I was thinking of opening an AppleScript terminal and running IRB there . Has anyone tried it? Do you have a better easier idea ? Is it doable ?? Thnks, David Kramf On Nov 7, 2013, at 4:00 AM, Robert Carl Rice wrote:
Hi Rob,
Thanks for looking into this.
The iTunes Store has notified me that my current binaries will be removed from the store for not being compatible with the current OS release. Recoding for either RubyMotion or Objective-C will be a big job and I'm not looking forward to it.
PS; the new Xcode renews the warning that Xcode 5 is scheduled to be the last Xcode version to support GC, but I don't see anything that ties version 6 to a scheduled OS update.
Bob Rice
On Nov 6, 2013, at 4:27 PM, rob ista <rob.ista@me.com> 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 wrote:
Send MacRuby-devel mailing list submissions to 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
You can reach the person managing the list at 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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> 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 https://lists.macosforge.org/mailman/listinfo/macruby-devel
On Thu, 07 Nov 2013 11:20:13 +0200 david kramf <dakr.012@gmail.com> wrote:
I have a project that written in MacRuby but I can split the code to logic in Ruby and the UI which I can translate to Objective-C . So My problem is how to run a pure Ruby from my app. I was thinking of opening an AppleScript terminal and running IRB there . Has anyone tried it? Do you have a better easier idea ? Is it doable ?? Thnks, David Kramf
First, it is unnecessary to use a terminal to fork a subprocess running ruby, and clearly unnecessary to use applescript for any of this. You can simply use the normal Unix fork/exec to set up a subprocess, which you can then communicate with via pipes, unix domain sockets, etc. Second, irb is the interactive ruby shell, you need not use that. You can also simply link together the ruby interpreter and your application -- the ruby foreign function interface makes this reasonably straightforward. Still, I think the main import of all such discussions is that there remains a large constituency for developing applications in Ruby for the Mac, but that MacRuby is clearly not the wave of the future for this. -- Perry E. Metzger perry@piermont.com
Hi David, The implementation of Grand Central Dispatch in MacRuby works great and I converted all of calls to NSTimer to GCD. It probably has enough functionality to avoid any Kludgy solution, e.g., calling Unix fork directly or AppleScript. Bob Rice On Nov 7, 2013, at 4:20 AM, david kramf <dakr.012@gmail.com> wrote:
Hi Guys,
I have a project that written in MacRuby but I can split the code to logic in Ruby and the UI which I can translate to Objective-C . So My problem is how to run a pure Ruby from my app. I was thinking of opening an AppleScript terminal and running IRB there . Has anyone tried it? Do you have a better easier idea ? Is it doable ?? Thnks, David Kramf
On Nov 7, 2013, at 4:00 AM, Robert Carl Rice wrote:
Hi Rob,
Thanks for looking into this.
The iTunes Store has notified me that my current binaries will be removed from the store for not being compatible with the current OS release. Recoding for either RubyMotion or Objective-C will be a big job and I'm not looking forward to it.
PS; the new Xcode renews the warning that Xcode 5 is scheduled to be the last Xcode version to support GC, but I don't see anything that ties version 6 to a scheduled OS update.
Bob Rice
On Nov 6, 2013, at 4:27 PM, rob ista <rob.ista@me.com> 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 wrote:
Send MacRuby-devel mailing list submissions to 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
You can reach the person managing the list at 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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> 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 https://lists.macosforge.org/mailman/listinfo/macruby-devel
On Thu, 07 Nov 2013 09:52:44 -0500 Robert Carl Rice <rice.audio@pobox.com> wrote:
Hi David,
The implementation of Grand Central Dispatch in MacRuby works great and I converted all of calls to NSTimer to GCD. It probably has enough functionality to avoid any Kludgy solution, e.g., calling Unix fork directly or AppleScript.
That's not what he's asking, at least I don't think. He wants to use straight Objective C for his UI and to use ordinary Ruby for his application logic. Perry
On Nov 7, 2013, at 4:20 AM, david kramf <dakr.012@gmail.com> wrote:
Hi Guys,
I have a project that written in MacRuby but I can split the code to logic in Ruby and the UI which I can translate to Objective-C . So My problem is how to run a pure Ruby from my app. I was thinking of opening an AppleScript terminal and running IRB there . Has anyone tried it? Do you have a better easier idea ? Is it doable ?? Thnks, David Kramf
-- Perry E. Metzger perry@piermont.com
Hi Rob, This is probably too obvious to help but I'll throw it out anyway. Default MacRuby projects include code in rb_main.rb to require all rb files in the target directory but I quickly learned that it wasn't a good idea to use the code since the load order becomes unpredictable for a large program and that leads to random undefined class error messages. # Loading all the Ruby project files. #main = File.basename(__FILE__, File.extname(__FILE__)) #dir_path = NSBundle.mainBundle.resourcePath.fileSystemRepresentation #Dir.glob(File.join(dir_path, '*.{rb,rbo}')).map { |x| File.basename(x, File.extname(x)) }.uniq.each do |path| # if path != main # require(path) # end #end Instead I put my ruby filenames file in a list to require them in a predictable sequence and I keep the list up-to-date. Bob Rice On Nov 6, 2013, at 4:27 PM, rob ista <rob.ista@me.com> 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 wrote:
Send MacRuby-devel mailing list submissions to 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
You can reach the person managing the list at 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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> To: "MacRuby development discussions." <macruby-devel@lists.macosforge.org> Subject: Re: [MacRuby-devel] MacRuby on Mavericks Message-ID: <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> 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 https://lists.macosforge.org/mailman/listinfo/macruby-devel
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
On Nov 7, 2013, at 9:07 AM, Joshua Ballanco <jballanc@gmail.com> wrote:
* 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.
I assume that rb-nibtool scans rb files to identify possible IBOutlet and IBAction targets. If this is it's only function then I would not miss it if it goes away. I have discovered that it is easy to define IBOutlet and IBAction targets in Objective-C files without recoding any ruby code into Objective-C. The results are much better because the linkage and error messages are very fast while the scanning of ruby files gets very slow on a large project. To avoid adding a lot of files, I created a single Objective-C .h and .m file for each of my nib files, including the main, giving it a corresponding name. // MainWindow.h // RiceCNC // // Created by Robert Rice on 11/9/13. // Copyright (c) 2013 Robert Rice. All rights reserved. // #import <Foundation/Foundation.h> @interface AppDelegate : NSObject @property (weak) IBOutlet id template_menu; @property (weak) IBOutlet id example_menu; - (IBAction)makeNewMachine:(id)sender; - (IBAction)makeNewEngine:(id)sender; @end // MainWindow.m // RiceCNC // // Created by Robert Rice on 11/9/13. // Copyright (c) 2013 Robert Rice. All rights reserved. // #import "MainWindow.h" @implementation AppDelegate @synthesize template_menu; @synthesize example_menu; - (IBAction)makeNewMachine:(id)sender {}; - (IBAction)makeNewEngine:(id)sender {}; @end The IBActions are easy. I simply define empty methods for my actions. MacRuby will replace the empty methods with the ruby methods. For each IBOutlet, I define a C property, remove the attr_writer or attr_accessor from my ruby class, then reference the property from my ruby class using the dot syntax. For this example, I changed @template_menu to self.template_menu and @example_menu to self.example_menu: # AppDelegate.rb # MacCNC # # Created by Robert Rice on 3/10/12. # Copyright 2012 Rice Audio. All rights reserved. class AppDelegate # attr_writer :template_menu, :example_menu def init if super # ErrorLog.instance.debug( "AppDelegate init" ) end @pdf_window_controller = nil @mail_bridge_window_controller = nil self end def awakeFromNib # ErrorLog.instance.debug( "AppDelegate awakeFromNib" ) bundle = NSBundle.mainBundle engines = bundle.pathsForResourcesOfType( "engine", inDirectory:"Templates" ) engines.each do | path | title = path.split( '/' ).last.split( '.' ).first item = self.template_menu.addItemWithTitle( title, action:"open_engine_template:", keyEquivalent:"" ) item.setTarget( self ) end examples = bundle.pathsForResourcesOfType( "cnc", inDirectory:"Examples" ) examples.each do | path | title = path.split( '/' ).last.split( '.' ).first item = self.example_menu.addItemWithTitle( title, action:"open_document_template:", keyEquivalent:"" ) item.setTarget( self ) end end def makeNewMachine( sender ) makeNewDocument( "Machine" ) end def makeNewEngine( sender ) makeNewDocument( "Engine" ) end def makeNewDocument( type ) ErrorLog.instance.warn( "makeNewDocument #{ type }" ) nserror = Pointer.new( :object ) controller = NSDocumentController.sharedDocumentController document = controller.makeUntitledDocumentOfType( type, error:nserror ) if document controller.addDocument( document ) document.makeWindowControllers document.showWindows else ErrorLog.instance.error( "Error creating new #{ type } Document" ) end document end def open_engine_template( sender ) open_file( NSBundle.mainBundle.pathForResource( sender.title, ofType:"engine", inDirectory:"Templates" ) ) end def open_machine_template( sender ) open_file( NSBundle.mainBundle.pathForResource( sender.title, ofType:"machine", inDirectory:"Templates" ) ) end def open_document_template( sender ) open_file( NSBundle.mainBundle.pathForResource( sender.title, ofType:"cnc", inDirectory:"Examples" ) ) end def open_file( path ) url = NSURL.fileURLWithPath( path ) nserror = Pointer.new( :object ) NSDocumentController.sharedDocumentController.openDocumentWithContentsOfURL( url, display:true, error:nserror ) end end
On Sunday, November 10, 2013 at 8:16 AM, Robert Carl Rice wrote:
On Nov 7, 2013, at 9:07 AM, Joshua Ballanco <jballanc@gmail.com (mailto:jballanc@gmail.com)> wrote:
* 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.
I assume that rb-nibtool scans rb files to identify possible IBOutlet and IBAction targets. If this is it's only function then I would not miss it if it goes away.
Yes. In fact, the only real benefit that rb-nibtool brings is that it would run automatically (i.e. without the need for user interaction) to update the list of IBOutlets and IBActions every time you fired up interface builder. A while back some of us on the team played with the idea of a tool to automatically generate header files as you've done manually, but the problem is that you'd still need to explicitly run it every time your ruby file changed (or use something fun like "kicker" to run it for you on file change notifications).
I have discovered that it is easy to define IBOutlet and IBAction targets in Objective-C files without recoding any ruby code into Objective-C. The results are much better because the linkage and error messages are very fast while the scanning of ruby files gets very slow on a large project.
To avoid adding a lot of files, I created a single Objective-C .h and .m file for each of my nib files, including the main, giving it a corresponding name.
In fact, you should be able to get away with just the .h file and keep using the attr_* methods in your Ruby code. So long as nothing #imports the .h file, it has no impact on the build process, but it's presence in your Xcode project should be enough for Xcode's parser to generate the appropriate hooks for Interface Builder. Cheers, Josh
participants (6)
-
david kramf
-
Joshua Ballanco
-
Kevin Walzer
-
Perry E. Metzger
-
rob ista
-
Robert Carl Rice