Browse files

adding blog post for macruby 0.7 release

git-svn-id: http://svn.macosforge.org/repository/ruby/MacRubyWebsite/trunk@4564 23306eb0-4c56-4727-a40e-e92c0eb68959
  • Loading branch information...
1 parent 0be712c commit ae672cabfe4e9a59b3fe441409c2787da7b53770 @lrz lrz committed Oct 1, 2010
Showing with 100 additions and 0 deletions.
  1. +78 −0 content/blog/2010/10/01/macruby07.txt
  2. +22 −0 content/blog/2010/10/index.txt
View
78 content/blog/2010/10/01/macruby07.txt
@@ -0,0 +1,78 @@
+---
+title: MacRuby 0.7
+created_at: 2010-10-01 14:08:59.452609 -07:00
+blog_post: true
+layout: blog_entry
+author: lrz
+filter:
+ - erb
+ - textile
+---
+<% @page[:excerpt] = capture_erb do %>
+After 5 months of development, we are happy to announce the immediate availability of MacRuby 0.7.
+<% end %>
+<%= RedCloth.new(@page.excerpt).to_html %>
+
+This release does not bring any significant features but consolidates the existing functionality of MacRuby by improving its Ruby compatibility, concurrency, Cocoa support, and overall stability and performance.
+
+You can download it from "here":http://www.macruby.org/files/MacRuby%200.7.zip. Please note that this package only runs on Snow Leopard (10.6). Older Mac OS X versions are no longer supported.
+
+Please give it a try and "let us know":/contact-us.html of any problems you find!
+
+You can check out the "complete release notes":todo of this release, or continue with most visible changes here.
+
+h3. Cocoa Support
+
+MacRuby's previous release, 0.6, announced that support for Cocoa development was now stable. As a matter of fact, the Cocoa layer of MacRuby hasn't changed much in this release, which confirms us that it is indeed stable.
+
+A long-awaited enhancement to MacRuby's Cocoa layer, support for "C blocks":http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Blocks/Articles/bxUsing.html, has been implemented in this release. You can now pass a Ruby Proc object to an API that expects a C block, similarly if this API expected a C function pointer. However, this new change requires additional BridgeSupport metadata which can be installed from our new "BridgeSupport Preview release":todo, available <here>.
+
+<pre class="commands">
+$ cat t.rb
+framework 'Foundation'
+a = [1, 2, 3, 4, 5]
+a.enumerateObjectsUsingBlock(Proc.new { |obj, index, stop|
+ p obj
+ stop.assign(true) if index == 2
+})
+$ macruby t.rb
+1
+2
+3
+</pre>
+
+The "sandbox(7)":http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/sandbox.7.html facility is now exposed in MacRuby via the Sandbox class, and can now be used to filter certain functionalities in the current process and therefore limit potential damage that can happen if a vulnerability is exploited. It is a good companion to the Ruby standard $SAFE functionality, also supported in MacRuby, because it can enforce rules on all system services used by the process, including by C extensions or Cocoa APIs, and not necessarily those from pure-Ruby APIs.
+
+<pre class="commands">
+Sandbox.no_internet # TCP/IP networking is prohibited.
+Sandbox.no_network # All sockets-based networking is prohibited.
+Sandbox.no_writes # File system writes are prohibited.
+Sandbox.temporary_writes # File system writes are restricted to temporary folders.
+Sandbox.pure_computation # All operating system services are prohibited.
+
+Sandbox#apply! # Apply a given sandbox. Once a sandbox is applied,
+ # it can not be removed and no other sandbox
+ # can be applied on top.
+</pre>
+
+In this release we also reduced the memory and disk footprint of the runtime.
+
+h3. Concurrency and Performance
+
+The dispatcher has been rewritten to use a per-thread cache, which is a more efficient approach compared to the previous release. All reported deadlocks have been fixed. We have been successfully running Sinatra applications under the "ControlTower HTTP server":/blog/2010/09/20/announcing-control-tower.html in a concurrent fashion for the past weeks.
+
+The MacRuby kernel, which contains the primitive functions called by the code generated by the compiler, is now pre-compiled into bitcode and included in the program's module. Further optimization passes can now be applied and result in a significant runtime performance improvement.
+
+A basic interpreter has been implemented and is now used to evaluate cold paths, determined at compilation time using simple heuristics. As an example, simple #eval statements creating code, a common pattern in Ruby libraries, now run significantly faster.
+
+Further minor optimizations have been implemented, such as optimized code generation, faster instance variables access, and symmetric multiple assignments simplification.
+
+h3. Ruby Compatibility
+
+A lot of work has been put in this release to increase the level of compatibility with existing Ruby programs and libraries. MacRuby 0.7 is the first release of MacRuby that targets the 1.9.2 version of Ruby, and therefore a number of new features have been re-implemented or backported.
+
+This release passes an average of 90% of total "RubySpecs":http://rubyspec.org/, from about 82% for the previous release.
+
+As always, Ruby compatibility is a work in progress, and MacRuby is still not able to run Rails out of the box. We believe that the next release of MacRuby will eventually implement the missing pieces.
+
+We hope you enjoy this release and thank you for helping us converging MacRuby to a first stable release!
View
22 content/blog/2010/10/index.txt
@@ -0,0 +1,22 @@
+---
+title: 10
+created_at: 2010-10-01 14:08:59.450305 -07:00
+filter: erb
+dirty: true
+---
+<h2><%= h(@page.title) %></h2>
+
+<%
+ articles = @pages.find(:all, :in_directory => @page.dir, :recursive => true,
+ :sort_by => "created_at", :reverse => true, :blog_post => true)
+ articles.delete(@page)
+ paginate(articles, 10) do |page|
+-%>
+<div class="article">
+ <h1><%= link_to_page(page) %><span class="date">(<%= page.created_at.strftime('%Y-%m-%d') %>)</span></h1>
+
+ <div class="body">
+ <%= render(page) %>
+ </div>
+</div>
+<% end -%>

0 comments on commit ae672ca

Please sign in to comment.