欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

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 0.5 b1版本发布,基于 Objective-C 的Ruby 实现

新版本主要更新:


编译
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