Another status update, covering about 2 weeks of development. Highlights: - Early backtracing support. - Much better AOT compilation. Parts of the standard library are now pre-compiled for testing. - Migrated to LLVM top of tree. - Dispatcher performance is now back to normal (we lost about 30% due to gcc not inlining code). - Many bug fixes. We are content-complete for a first beta release of MacRuby 0.5. We will release it very soon then continue converging until the final 0.5 release. Details: - Better GCD documentation - Implemented Symbol.all_symbols - Rewrote the file loader (file.c) fixing a few bugs - Added preliminary support for backtracing / symbolication - Make sure stdio objects are never finalized - Fixed more eval/Binding bugs - Fixed END{} block - Fixed a memory problem in the libyaml extension - Fixed rescues in rescues (most cases) - Fixed a 10.5-only bug in the new Array class - Fixed a bug of the parser when dealing with byte strings - AOT: now compiling part of the stdlib (notably irb and rubygems) - AOT: fixed bugs in the compilation of defined?, undef, rb_eStandardError, literal ranges - Fixed a bug in the compilation of `for' loops - Fixed many minor compilation bugs discovered by the LLVM module verifier - The arguments resolver is now able to deal with any number of arguments - Fixed minor String bugs - Added autorelease and dealloc to the list of handled ignored selectors - Fixed a bug when instance variables were not visible from within an iterator in method called through KVO - Fixed an infinite recursion trying to convert an NSPathStore2 to a string - Moved to LLVM r82747, enabled LLVM multithreaded mode - Fixed GC problems in the parser - Create all ruby scopes with external linkage, otherwise the AOT compiler won't generate frame info for them - Fixed a bug when open would crash when mode is numeric - Now using a gcc constructor to initialize .rbo files - Added Dispatch::Semaphore + fixed a few things - Make sure RoxorVM instances created lazily have a valid thread accessor - Fixed a random bug of Numeric#chr - macruby is now SIGINT interruptible (but no exception is raised, yet) - Fixed a few 32-bit only bugs - Fixed a GC bug in builtin global variable setters - Fixed a bug in Set#to_a - Fixed the BridgeSupport parser to properly handle one liner <method> elements - Fixed variadic functions/methods calls - Fixed a few bugs in Array#pack - Fixed a serious bug in the way we used to promote strings to byte strings - Fixed a few bugs in IO#ioctl and IO#fcntl - Now separately compiling the dispatcher and forcing function inlining - Fixed a bug in File.open when file permissions were not taken into account - Make sure ivar slot generation is disabled when compiling attr accessors - Fixed a bug in the way we AOT compile super method cache - Added an empty Ruby template file - Improved the MacRuby Application template: Embed MacRuby target and some unit testing mechanism are added Laurent
Great progress. I'm pretty sure you would have mentioned it in the release notes if it were stable, but has there been any progress making MacRuby work properly on Snow Leopard 32-bit architectures like the Core Duo? (nag, nag :) Thx On Oct 5, 2009, at 2:34 PM, Laurent Sansonetti wrote:
Another status update, covering about 2 weeks of development.
Highlights:
- Early backtracing support. - Much better AOT compilation. Parts of the standard library are now pre-compiled for testing. - Migrated to LLVM top of tree. - Dispatcher performance is now back to normal (we lost about 30% due to gcc not inlining code). - Many bug fixes.
We are content-complete for a first beta release of MacRuby 0.5. We will release it very soon then continue converging until the final 0.5 release.
Details:
- Better GCD documentation - Implemented Symbol.all_symbols - Rewrote the file loader (file.c) fixing a few bugs - Added preliminary support for backtracing / symbolication - Make sure stdio objects are never finalized - Fixed more eval/Binding bugs - Fixed END{} block - Fixed a memory problem in the libyaml extension - Fixed rescues in rescues (most cases) - Fixed a 10.5-only bug in the new Array class - Fixed a bug of the parser when dealing with byte strings - AOT: now compiling part of the stdlib (notably irb and rubygems) - AOT: fixed bugs in the compilation of defined?, undef, rb_eStandardError, literal ranges - Fixed a bug in the compilation of `for' loops - Fixed many minor compilation bugs discovered by the LLVM module verifier - The arguments resolver is now able to deal with any number of arguments - Fixed minor String bugs - Added autorelease and dealloc to the list of handled ignored selectors - Fixed a bug when instance variables were not visible from within an iterator in method called through KVO - Fixed an infinite recursion trying to convert an NSPathStore2 to a string - Moved to LLVM r82747, enabled LLVM multithreaded mode - Fixed GC problems in the parser - Create all ruby scopes with external linkage, otherwise the AOT compiler won't generate frame info for them - Fixed a bug when open would crash when mode is numeric - Now using a gcc constructor to initialize .rbo files - Added Dispatch::Semaphore + fixed a few things - Make sure RoxorVM instances created lazily have a valid thread accessor - Fixed a random bug of Numeric#chr - macruby is now SIGINT interruptible (but no exception is raised, yet) - Fixed a few 32-bit only bugs - Fixed a GC bug in builtin global variable setters - Fixed a bug in Set#to_a - Fixed the BridgeSupport parser to properly handle one liner <method> elements - Fixed variadic functions/methods calls - Fixed a few bugs in Array#pack - Fixed a serious bug in the way we used to promote strings to byte strings - Fixed a few bugs in IO#ioctl and IO#fcntl - Now separately compiling the dispatcher and forcing function inlining - Fixed a bug in File.open when file permissions were not taken into account - Make sure ivar slot generation is disabled when compiling attr accessors - Fixed a bug in the way we AOT compile super method cache - Added an empty Ruby template file - Improved the MacRuby Application template: Embed MacRuby target and some unit testing mechanism are added
Laurent _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Great progress. I'm pretty sure you would have mentioned it in the release notes if it were stable, but has there been any progress making MacRuby work properly on Snow Leopard 32-bit architectures like the Core Duo? (nag, nag :)
Yes, 32-bit mode should work better (Laurent fixed the asserts that were failing), but there is still one important problem : Objective-C exceptions cannot be caught yet in 32-bit MacRuby.
Hi, I fixed several 32-bit bugs, so it should be better. However, the specs don't pass at 100% yet (a notable thing is that ruby exceptions cannot be intercepted by objc). Feel free to give it a try and let us know if it's better now :) Laurent On Oct 5, 2009, at 7:32 PM, s.ross wrote:
Great progress. I'm pretty sure you would have mentioned it in the release notes if it were stable, but has there been any progress making MacRuby work properly on Snow Leopard 32-bit architectures like the Core Duo? (nag, nag :)
Thx
On Oct 5, 2009, at 2:34 PM, Laurent Sansonetti wrote:
Another status update, covering about 2 weeks of development.
Highlights:
- Early backtracing support. - Much better AOT compilation. Parts of the standard library are now pre-compiled for testing. - Migrated to LLVM top of tree. - Dispatcher performance is now back to normal (we lost about 30% due to gcc not inlining code). - Many bug fixes.
We are content-complete for a first beta release of MacRuby 0.5. We will release it very soon then continue converging until the final 0.5 release.
Details:
- Better GCD documentation - Implemented Symbol.all_symbols - Rewrote the file loader (file.c) fixing a few bugs - Added preliminary support for backtracing / symbolication - Make sure stdio objects are never finalized - Fixed more eval/Binding bugs - Fixed END{} block - Fixed a memory problem in the libyaml extension - Fixed rescues in rescues (most cases) - Fixed a 10.5-only bug in the new Array class - Fixed a bug of the parser when dealing with byte strings - AOT: now compiling part of the stdlib (notably irb and rubygems) - AOT: fixed bugs in the compilation of defined?, undef, rb_eStandardError, literal ranges - Fixed a bug in the compilation of `for' loops - Fixed many minor compilation bugs discovered by the LLVM module verifier - The arguments resolver is now able to deal with any number of arguments - Fixed minor String bugs - Added autorelease and dealloc to the list of handled ignored selectors - Fixed a bug when instance variables were not visible from within an iterator in method called through KVO - Fixed an infinite recursion trying to convert an NSPathStore2 to a string - Moved to LLVM r82747, enabled LLVM multithreaded mode - Fixed GC problems in the parser - Create all ruby scopes with external linkage, otherwise the AOT compiler won't generate frame info for them - Fixed a bug when open would crash when mode is numeric - Now using a gcc constructor to initialize .rbo files - Added Dispatch::Semaphore + fixed a few things - Make sure RoxorVM instances created lazily have a valid thread accessor - Fixed a random bug of Numeric#chr - macruby is now SIGINT interruptible (but no exception is raised, yet) - Fixed a few 32-bit only bugs - Fixed a GC bug in builtin global variable setters - Fixed a bug in Set#to_a - Fixed the BridgeSupport parser to properly handle one liner <method> elements - Fixed variadic functions/methods calls - Fixed a few bugs in Array#pack - Fixed a serious bug in the way we used to promote strings to byte strings - Fixed a few bugs in IO#ioctl and IO#fcntl - Now separately compiling the dispatcher and forcing function inlining - Fixed a bug in File.open when file permissions were not taken into account - Make sure ivar slot generation is disabled when compiling attr accessors - Fixed a bug in the way we AOT compile super method cache - Added an empty Ruby template file - Improved the MacRuby Application template: Embed MacRuby target and some unit testing mechanism are added
Laurent _______________________________________________ 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
It's way better, but I'm getting this: [Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/ InputManagers/GearsEnabler.old/GearsEnabler.bundle/Contents/MacOS/ GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/ GearsEnabler.bundle/Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/Contents/ MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/ repo/array.o" - no debug information available for "array.c". The specific code that causes it is: class TitleController < ControllerBase attr_writer :image_title, :word_count, :title_notes def awakeFromNib @word_count.setStringValue('Words: 0') @title_notes.setStringValue 'Duplicates: 0' end def controlTextDidChange(notification) contents = (notification.userInfo ['NSFieldEditor'].textStorage.string || '').to_s unless contents.empty? words = contents.empty? ? [] : contents.split(/\W+/).collect{| w| w.downcase} wc = words.length dups = words.length - words.uniq.length @word_count.setStringValue("Words: #{wc}") @ControllerBase.setTextColor(wc > 10 ? NSColor::redColor : NSColor::textColor) @title_notes.setStringValue("Duplicates: #{dups}") @title_notes.setTextColor(dups > 0 ? NSColor::redColor : NSColor::textColor) end end end When a keystroke is entered into the NSTextField, the controlTextDidChange delegate should be called. That's when the SIGABRT is triggered. I don't know what the deal with Gears is. I'm not using Gears but if there's something on my Mac that should be cleaned up, perhaps that's what caused the problem. Again, great progress. This is really exciting to work with. Steve On Oct 5, 2009, at 7:47 PM, Laurent Sansonetti wrote:
Hi,
I fixed several 32-bit bugs, so it should be better. However, the specs don't pass at 100% yet (a notable thing is that ruby exceptions cannot be intercepted by objc).
Feel free to give it a try and let us know if it's better now :)
Laurent
On Oct 5, 2009, at 7:32 PM, s.ross wrote:
Great progress. I'm pretty sure you would have mentioned it in the release notes if it were stable, but has there been any progress making MacRuby work properly on Snow Leopard 32-bit architectures like the Core Duo? (nag, nag :)
Thx
On Oct 5, 2009, at 2:34 PM, Laurent Sansonetti wrote:
Another status update, covering about 2 weeks of development.
Highlights:
- Early backtracing support. - Much better AOT compilation. Parts of the standard library are now pre-compiled for testing. - Migrated to LLVM top of tree. - Dispatcher performance is now back to normal (we lost about 30% due to gcc not inlining code). - Many bug fixes.
We are content-complete for a first beta release of MacRuby 0.5. We will release it very soon then continue converging until the final 0.5 release.
Details:
- Better GCD documentation - Implemented Symbol.all_symbols - Rewrote the file loader (file.c) fixing a few bugs - Added preliminary support for backtracing / symbolication - Make sure stdio objects are never finalized - Fixed more eval/Binding bugs - Fixed END{} block - Fixed a memory problem in the libyaml extension - Fixed rescues in rescues (most cases) - Fixed a 10.5-only bug in the new Array class - Fixed a bug of the parser when dealing with byte strings - AOT: now compiling part of the stdlib (notably irb and rubygems) - AOT: fixed bugs in the compilation of defined?, undef, rb_eStandardError, literal ranges - Fixed a bug in the compilation of `for' loops - Fixed many minor compilation bugs discovered by the LLVM module verifier - The arguments resolver is now able to deal with any number of arguments - Fixed minor String bugs - Added autorelease and dealloc to the list of handled ignored selectors - Fixed a bug when instance variables were not visible from within an iterator in method called through KVO - Fixed an infinite recursion trying to convert an NSPathStore2 to a string - Moved to LLVM r82747, enabled LLVM multithreaded mode - Fixed GC problems in the parser - Create all ruby scopes with external linkage, otherwise the AOT compiler won't generate frame info for them - Fixed a bug when open would crash when mode is numeric - Now using a gcc constructor to initialize .rbo files - Added Dispatch::Semaphore + fixed a few things - Make sure RoxorVM instances created lazily have a valid thread accessor - Fixed a random bug of Numeric#chr - macruby is now SIGINT interruptible (but no exception is raised, yet) - Fixed a few 32-bit only bugs - Fixed a GC bug in builtin global variable setters - Fixed a bug in Set#to_a - Fixed the BridgeSupport parser to properly handle one liner <method> elements - Fixed variadic functions/methods calls - Fixed a few bugs in Array#pack - Fixed a serious bug in the way we used to promote strings to byte strings - Fixed a few bugs in IO#ioctl and IO#fcntl - Now separately compiling the dispatcher and forcing function inlining - Fixed a bug in File.open when file permissions were not taken into account - Make sure ivar slot generation is disabled when compiling attr accessors - Fixed a bug in the way we AOT compile super method cache - Added an empty Ruby template file - Improved the MacRuby Application template: Embed MacRuby target and some unit testing mechanism are added
Laurent _______________________________________________ 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
[Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/Contents/MacOS/GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/Contents/MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/repo/array.o" - no debug information available for "array.c".
Try moving this stupid GearEnabler Input Manager somewhere else and restart the app sudo mv /Library/InputManagers/GearsEnabler.old /tmp I'm pretty sure you can even delete it (especially as the name ends with .old)
Hello- On Oct 5, 2009, at 10:48 PM, Vincent Isambart wrote:
[Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/repo/array.o" - no debug information available for "array.c".
Try moving this stupid GearEnabler Input Manager somewhere else and restart the app sudo mv /Library/InputManagers/GearsEnabler.old /tmp I'm pretty sure you can even delete it (especially as the name ends with .old) _______________________________________________
I'm pretty sure it's unnecessary as well. I moved it and the Gears warning goes away, but the SIGABRT remains. Could it be something wrong with my code? :)
Whoa, thanks for the help with the Gears enabler. It didn't relate to the problem. It was, as is most often the case, user error on my part. Reduced: class ControllerBase < NSObject end class TitleController < ControllerBase @ControllerBase.setTextColor(NSColor::redColor) # <= yeah, right. Try to invoke a nonexistent, presumably on nil. end This tries to invoke a method, presumably on nil, and produces a SIGABRT with no backtrace. I'm not sure why a SIGABRT, but incorrect program behavior is the expected result of bonehead programmer error on my part. Again, thanks (sheepish grin) for bearing with me in getting this errant search/replace goop out of my code. Gee, what a noob error. Steve On Oct 5, 2009, at 10:48 PM, Vincent Isambart wrote:
[Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/repo/array.o" - no debug information available for "array.c".
Try moving this stupid GearEnabler Input Manager somewhere else and restart the app sudo mv /Library/InputManagers/GearsEnabler.old /tmp I'm pretty sure you can even delete it (especially as the name ends with .old) _______________________________________________ MacRuby-devel mailing list MacRuby-devel@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
Hi Ross, The SIGABRT is definitely not intended, there is surely a bug there, probably 32-bit only :) I tried to reproduce it here without success $ arch -i386 macruby -e "@foo.bar" -e:in `<main>': undefined method `bar' for nil:NilClass (NoMethodError) It would be awesome if you could extract the crash to a separate project and attach it to a Trac ticket. Laurent On Oct 6, 2009, at 8:18 AM, s.ross wrote:
Whoa, thanks for the help with the Gears enabler. It didn't relate to the problem. It was, as is most often the case, user error on my part. Reduced:
class ControllerBase < NSObject end
class TitleController < ControllerBase @ControllerBase.setTextColor(NSColor::redColor) # <= yeah, right. Try to invoke a nonexistent, presumably on nil. end
This tries to invoke a method, presumably on nil, and produces a SIGABRT with no backtrace. I'm not sure why a SIGABRT, but incorrect program behavior is the expected result of bonehead programmer error on my part.
Again, thanks (sheepish grin) for bearing with me in getting this errant search/replace goop out of my code. Gee, what a noob error.
Steve
On Oct 5, 2009, at 10:48 PM, Vincent Isambart wrote:
[Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/repo/array.o" - no debug information available for "array.c".
Try moving this stupid GearEnabler Input Manager somewhere else and restart the app sudo mv /Library/InputManagers/GearsEnabler.old /tmp I'm pretty sure you can even delete it (especially as the name ends with .old) _______________________________________________ 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
I'll try when I'm on the ground :) Hunted and pecked from my iPhone On Oct 6, 2009, at 11:47 AM, Laurent Sansonetti <lsansonetti@apple.com> wrote:
Hi Ross,
The SIGABRT is definitely not intended, there is surely a bug there, probably 32-bit only :)
I tried to reproduce it here without success
$ arch -i386 macruby -e "@foo.bar" -e:in `<main>': undefined method `bar' for nil:NilClass (NoMethodError)
It would be awesome if you could extract the crash to a separate project and attach it to a Trac ticket.
Laurent
On Oct 6, 2009, at 8:18 AM, s.ross wrote:
Whoa, thanks for the help with the Gears enabler. It didn't relate to the problem. It was, as is most often the case, user error on my part. Reduced:
class ControllerBase < NSObject end
class TitleController < ControllerBase @ControllerBase.setTextColor(NSColor::redColor) # <= yeah, right. Try to invoke a nonexistent, presumably on nil. end
This tries to invoke a method, presumably on nil, and produces a SIGABRT with no backtrace. I'm not sure why a SIGABRT, but incorrect program behavior is the expected result of bonehead programmer error on my part.
Again, thanks (sheepish grin) for bearing with me in getting this errant search/replace goop out of my code. Gee, what a noob error.
Steve
On Oct 5, 2009, at 10:48 PM, Vincent Isambart wrote:
[Switching to process 1982] Running… 2009-10-05 22:29:51.141 IStockCocoa[1982:80f] Error loading /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: dlopen(/Library/InputManagers/GearsEnabler.old/ GearsEnabler.bundle/Contents/MacOS/GearsEnabler, 265): no suitable image found. Did find: /Library/InputManagers/GearsEnabler.old/GearsEnabler.bundle/ Contents/MacOS/GearsEnabler: GC capability mismatch Program received signal: “SIGABRT”. sharedlibrary apply-load-rules all warning: Could not find object file "/Sites/kain/icoretech.org/macruby/repo/array.o" - no debug information available for "array.c".
Try moving this stupid GearEnabler Input Manager somewhere else and restart the app sudo mv /Library/InputManagers/GearsEnabler.old /tmp I'm pretty sure you can even delete it (especially as the name ends with .old) _______________________________________________ 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
participants (3)
-
Laurent Sansonetti
-
s.ross
-
Vincent Isambart