MacRuby 0.5 b1版本发布,基于 Objective-C 的Ruby 实现
程序员文章站
2022-07-12 20:15:04
...
MacRuby 0.5 beta 1版本发布,这是一个基于 Objective-C 的Ruby 实现。目的是将ruby 1.9移植到MacOS操作系统的Object-C平台上面,让ruby可以像MacOS操作系统上的原生应用软件那样,运行在Object-C的runtime和GC之上。
新版本主要更新:
编译
MacRuby以前一直都是基于YARV,新的0.5版本采用的是LLVM,性能提升了很多。全新的VM直接将解析器中的抽象源代码树(AST)转换成LLVM的中间表示(IR),再将其编译为优化过的机器码。
$ echo "p ARGV.map { |x| x.to_i }.inject(0) { |x, y| x + y }" > t.rb $ macrubyc t.rb -o t $ file t t: Mach-O 64-bit executable x86_64 $ ./t 1 2 3 4 5 15
并发
新的MacRuby 0.5运行时支持并发执行,允许MacRuby程序同时使用多个CPU核心和多个线程。
waiting_chairs = Dispatch::Queue.new('com.apple.waiting_chairs') semaphore = Dispatch::Semaphore.new(3) index = -1 while true index += 1 if semaphore.wait(Dispatch::TIME_NOW) != 0 puts "Customer turned away #{index}" next end waiting_chairs.dispatch do semaphore.signal puts "Shave and a haircut #{index}" end end
Cocoa发展
重新实现了对C 和Objective-C的实现,在此版本中执行的更快。面向OS X的开发者可以简洁地使用MacRuby来构建应用,并紧密地与Cocoa程序库相集成,来代替Objective-C。
兼容性
与大多数Ruby项目的实现相同,macRuby也使用RubySpec来检查兼容性。RubySpec是一个可执行的规格,用于定义Ruby实现的行为,最早由Rubinius项目所发起。
新版本对各个方面都进行了优化。
你可以在这下载:http://www.macruby.org/files/MacRuby%200.5%20beta%201.zip
点击查看详情:http://www.macruby.org/blog/2009/10/07/macruby05b1.html
下一篇: 关于ajax请求后台获取下拉列表用的数据