Skip to content

Commit

Permalink
refreshing website
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.macosforge.org/repository/ruby/MacRubyWebsite/trunk@3988 23306eb0-4c56-4727-a40e-e92c0eb68959
  • Loading branch information
lsansonetti@apple.com committed May 1, 2010
1 parent c56bbc9 commit 44b5da9
Show file tree
Hide file tree
Showing 10 changed files with 189 additions and 36 deletions.
18 changes: 10 additions & 8 deletions content/_events.txt
@@ -1,11 +1,13 @@
---
filter: erb
---
<div id="eventbox">
<h3><img src="/images/h3_macruby-events.png" alt="MacRuby Events" /></h3>
<% macruby_events.each do |event| -%>
<p><span class="date"><%= event.date %> &raquo;</span> <a href="<%= event.href %>"><%= event.name %></a><br />
<%= event.location %><br />
<%= event.topic %></p>
<% end %>
</div><!-- // end events -->
<% if macruby_events.size > 0 %>
<div id="eventbox">
<h3><img src="/images/h3_macruby-events.png" alt="MacRuby Events" /></h3>
<% macruby_events.each do |event| -%>
<p><span class="date"><%= event.date %> &raquo;</span> <a href="<%= event.href %>"><%= event.name %></a><br />
<%= event.location %><br />
<%= event.topic %></p>
<% end %>
</div><!-- // end events -->
<% end %>
2 changes: 1 addition & 1 deletion content/_header.txt
Expand Up @@ -2,7 +2,7 @@
filter: erb
---
<div id="current_version">
Current Version 0.5
Current Version 0.6
</div>
<div id="logo">
<a href="/"><img src="/images/macruby_logo.png" alt="MacRuby" id="logo" /></a>
Expand Down
2 changes: 1 addition & 1 deletion content/_steps.txt
Expand Up @@ -9,6 +9,6 @@ filter: erb
</div>
<div id="step2">
<p>Check out the <a href="/documentation/tutorial.html">tutorial</a>, <a href="/documentation.html">resources</a>
&nbsp; &nbsp; and <a href="http://svn.macosforge.org/repository/ruby/MacRuby/trunk/sample-macruby/">examples</a> that are available for MacRuby.</p>
&nbsp; &nbsp; and <a href="file:///Developer/Examples/Ruby/MacRuby">examples</a> that are available.</p
</div>

141 changes: 141 additions & 0 deletions content/blog/2010/04/30/macruby06.txt
@@ -0,0 +1,141 @@
---
title: MacRuby 0.6
created_at: 2010-04-30 17:36:50.941452 -07:00
blog_post: true
layout: blog_entry
author: lrz
filter:
- erb
- textile
---
<% @page[:excerpt] = capture_erb do %>
We are pleased to announce the availability of MacRuby 0.6. This release closes a very successful development cycle of 3 months since the last release.
<% end %>
<%= RedCloth.new(@page.excerpt).to_html %>

You can download it from "here":http://www.macruby.org/files/MacRuby%200.6.zip. Please note that this package only runs on Snow Leopard. Users on Leopard can also use MacRuby by "building the sources":/source.html from our repository.

Please give it a try and "let us know":/contact-us.html of any problems you find.

You can read about all the changes from the "release notes":http://lists.macosforge.org/pipermail/macruby-devel/2010-April/004722.html e-mail on the mailing-list, or keep up with the most visible changes here.

h3. Stable for Cocoa Development

In this release, we believe that MacRuby is now stable enough to consider using it to develop Cocoa applications.

We fixed a lot of bugs, ironed out many details and worked very closely with developers already using MacRuby for product development. MacRuby is able to use pretty much all the Cocoa APIs at this point.

The "Compile" target in Xcode allows an application to be ahead-of-time compiled to machine code, making sure the original Ruby code no longer ships with it.

h3. Debugging

Experimental support for debugging landed in this release.

The compiler, under debug mode, is now generating special traps inside the code. The debugger connects to these traps and allows basic debugging operations but also code evaluation.

The macrubyd command-line executable pilots the debugger. It provides a gdb-like experience. Please note that it is not entirely finished and it also has not been exhaustively tested.

Let's consider the following broken program:

<pre class="commands">
$ cat t.rb
def foo(n)
bar(n)
end
10.times do |i|
foo(i)
end
</pre>

And start it inside the debugger.

<pre class="commands">
$ macrubyd t.rb
Starting program.
1 def foo(n)
t.rb:1> c
/Users/lrz/src/t.rb:2:in `foo:': undefined method `bar' for main:TopLevel (NoMethodError)
from /Users/lrz/src/t.rb:5:in `block'
from /Users/lrz/src/t.rb:4:in `<main>'
Program exited.
</pre>

We immediately get an exception at line 2. We can restart the debugger, break at this line, then examine the argument and the backtrace.

<pre class="commands">
> r
Starting program.
1 def foo(n)
t.rb:1> break t.rb:2
Added breakpoint 1.
1 def foo(n)
t.rb:1> c
2 bar(n)
t.rb:2> p n
=> 0
2 bar(n)
t.rb:2> bt
#0 /Users/lrz/src/t.rb:2:in `foo:'
#1 /Users/lrz/src/t.rb:5:in `block'
#2 /Users/lrz/src/t.rb:4:in `<main>'
2 bar(n)
</pre>

Then, we can define the missing method on the fly and resuming the execution of the program after disabling the breakpoint.

<pre class="commands">
t.rb:2> p def bar(x); puts "-> #{x}"; end
=> nil
2 bar(n)
t.rb:2> disable 1
Disabled breakpoint 1.
2 bar(n)
t.rb:2> c
-> 0
-> 1
-> 2
-> 3
-> 4
-> 5
-> 6
-> 7
-> 8
-> 9
Program exited.
</pre>

An interesting fact about the debugger is that it has been abstracted into a simple Objective-C API. macrubyd is just a client of it, in the future we might see other clients.

h3. Higher-Level APIs for Grand Central Dispatch

TODO

h3. Solid Foundations

One of our intentions for this release was to change and rewrite the foundation layers of MacRuby in order to be much more solid for current and future uses.

The Hash class which used to be an alias to NSMutableDictionary is now a new class that inherits from the latter. It can handle more efficiently immediate types (such as fixnums and floats) and honors insertion ordering.

The String class has also been changed. It is now a fresh new implementation that can handle both character and byte strings. It also uses the "ICU framework":http://site.icu-project.org/ to perform encoding conversions on the fly. This new class inherits from NSMutableString. Symbol was also rewritten in order to handle multibyte (Unicode) characters.

Finally, the Regexp class has also been totally rewritten in this release. It is now using the ICU framework instead of Oniguruma for regular expressions compilation and pattern matching. Since ICU is thread-safe, MacRuby 0.6 allows the use regular expressions from multiple threads in a very efficient way, which was not possible previously.

All these changes were designed and implemented to honor compatibility with previous releases of MacRuby. They should not be directly visible.

h3. Better Ruby Compatibility

The Ruby compatibility is still progressing, being much better than 0.5.

MacRuby 0.6 provides support for C extensions written for the genuine implementation of ruby. We were able to successfully use the Nokogiri, SQLite3 and PostgreSQL extensions from MacRuby.

This release also passes about 85% of RubySpecs, is able to run a modified version of Rails 3 and implements better support for Ruby 1.9 encodings.

There are still several problems to address in order to provide a full-fidelity replacement of all the Ruby semantics. We intend to continue working on this, by looking at RubySpecs and Rails.

h3. Conclusions

We hope that you will enjoy this release.

Development on the next release, 0.7, just started. In there we intend to deliver a next generation compiler and virtual machine that provides very good runtime performance within multicore environments.

Stay tuned for more information!
22 changes: 22 additions & 0 deletions content/blog/2010/04/index.txt
@@ -0,0 +1,22 @@
---
title: 04
created_at: 2010-04-30 17:36:50.940121 -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 -%>
4 changes: 0 additions & 4 deletions content/contact-us.txt
Expand Up @@ -15,10 +15,6 @@ h2. Twitter

You can follow us on Twitter by following the "@macruby":http://twitter.com/macruby account.

h2. Internet Relay Chat

You can also join the #ruby-osx IRC channel on freenode to discuss with developers.

h2. Mailing Lists

"MacRuby-devel":http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel is the developer mailing-list. Please subscribe to it, if you are interested in following the MacRuby development process or would like to start a discussion. All activity in the tracker generates notifications in this list.
Expand Down
12 changes: 3 additions & 9 deletions content/downloads.txt
Expand Up @@ -10,8 +10,8 @@ h1(title). <%= h(@page.title) %>
h2. Latest Stable Release

<p>
You can download <a href="http://www.macruby.org/files/MacRuby%200.5.zip">MacRuby 0.5</a> as a standalone binary installer.
<em>Note: this release will only work on Intel machines running Mac OS v10.6 or higher. Users on Mac OS v10.5 can build the sources.</em>
You can download <a href="http://www.macruby.org/files/MacRuby%200.6.zip">MacRuby 0.6</a> as a standalone binary installer.
<em>Note: this release will only work on Intel machines running Snow Leopard or higher. Users on Leopard can build the sources.</em>
</p>

h2. Nightly builds
Expand All @@ -24,11 +24,5 @@ You can download one of MacRuby's development branch <a href="http://www.macruby
h2. Source

<p>
You can always get the latest sources from our <a href='/source.html'>SVN or GIT repository</a>. Building is trivial:

<pre class="commands">
$ rake
$ sudo rake install
</pre>

You can always get the latest sources from our <a href='/source.html'>Subversion or Git repository</a>.
</p>
10 changes: 7 additions & 3 deletions content/index.txt
Expand Up @@ -5,7 +5,7 @@ dirty: true
filter:
- erb
---
<p class="callout"><strong>MacRuby</strong> is a version of Ruby 1.9, ported to run directly on top of Mac OS X core technologies such as the Objective-C common runtime and garbage collector, the CoreFoundation framework and the LLVM compiler infrastructure. While still a work in progress, it is the goal of MacRuby to enable the creation of full-fledged Mac OS X applications which do not sacrifice performance in order to enjoy the benefits of using Ruby. <a href="/documentation/overview.html"><i>Read more...</i></a></p>
<p class="callout"><strong>MacRuby</strong> is a version of Ruby 1.9, ported to run directly on top of Mac OS X core technologies such as the Objective-C common runtime and garbage collector, the CoreFoundation framework and the LLVM compiler infrastructure. It is the goal of MacRuby to enable the creation of full-fledged Mac OS X applications which do not sacrifice performance in order to enjoy the benefits of using Ruby. <a href="/documentation/overview.html"><i>Read more...</i></a></p>
<hr size="0" noshade class="harvardrule" />

<div id="newsbox">
Expand All @@ -14,7 +14,7 @@ filter:
<%
articles = @pages.find(:all, :in_directory => File.join(@page.dir, 'blog'), :recursive => true,
:sort_by => "created_at", :reverse => true, :blog_post => true)
articles[0,3].each do |page|
articles[0,1].each do |page|
-%>
<h4><%= page.title %></h4>
<%= blog_excerpt(page) %>
Expand All @@ -25,6 +25,7 @@ filter:

</div><!-- //end newsbox -->

<!--
<h2>HotCocoa Is For Me!</h2>
<p>If you've done any amount of programming on OS X, you know that the API can be quite verbose. HotCocoa simplifies this down to very elegant and simple methods that then return super sexy UI elements. <a href="/hotcocoa.html">Read more...</a></p>
<% coderay :lang => 'ruby' do -%>
Expand All @@ -39,7 +40,10 @@ application do |app|
end
<% end -%>
<hr size="0" noshade class="doublerule" />
-->

<h2>Why MacRuby?</h2>
<p>MacRuby began as an attempt to work around many problems inherent in RubyCocoa. In the course of solving these problems, MacRuby has also solved numerous problems in Ruby 1.8. Consequently, there are a number of reasons (e.g. convenience, efficiency, flexibility, performance) why one might wish to use MacRuby for new (and ongoing) Ruby applications... <a href="/documentation/why-macruby.html"><i>Read more...</i></a></p>
<p>MacRuby began as an attempt to work around many problems inherent in RubyCocoa. In the course of solving these problems, MacRuby has also solved numerous problems in the original implementation of Ruby. Consequently, there are a number of reasons (e.g. convenience, efficiency, flexibility, performance) why one might wish to use MacRuby for new (and ongoing) Ruby applications... <a href="/documentation/why-macruby.html"><br><i>Read more...</i></a></p>
<!--
<hr size="0" noshade class="doublerule" />
-->
11 changes: 3 additions & 8 deletions content/source.txt
Expand Up @@ -9,16 +9,16 @@ h1(title). <%= h(@page.title) %>

h2. MacRuby Development

MacRuby development happens in the trunk SVN branch. However, be careful, because trunk may not work (or even compile) all of the time.
MacRuby development happens in the trunk Subversion branch. However, be careful, because trunk may not work (or even compile) all of the time.

<pre class="commands">
$ svn co http://svn.macosforge.org/repository/ruby/MacRuby/trunk MacRuby-trunk
</pre>

If you want to grab the sources of a specific release, look into the tags directory. For example, to grab the sources of the 0.5 release:
If you want to grab the sources of a specific release, look into the tags directory. For example, to grab the sources of the 0.6 release:

<pre class="commands">
$ svn co http://svn.macosforge.org/repository/ruby/MacRuby/tags/0.5 MacRuby-0.5
$ svn co http://svn.macosforge.org/repository/ruby/MacRuby/tags/0.6 MacRuby-0.6
</pre>

For building instructions, please refer to README.rdoc file, but the basic build instructions are:
Expand All @@ -37,8 +37,3 @@ Git aficionados will be glad to learn that there is an official mirror of the SV
<pre class="commands">
$ git clone git://git.macruby.org/macruby/MacRuby.git
</pre>

h2. Roadmap

Check out the "MacRuby Roadmap":/roadmap.html

3 changes: 1 addition & 2 deletions lib/events.rb
Expand Up @@ -4,8 +4,7 @@ module MacRubyEventsHelper

def macruby_events
[
Event.new("19-21 Nov 2009", "RubyConf", "http://rubyconf.org/", "San Francisco, CA", "Laurent Sansonetti presents MacRuby"),
Event.new("19-21 Nov 2009", "RubyConf", "http://rubyconf.org/", "San Francisco, CA", "Matt Aimonetti talks about writing 2D video games with MacRuby")
# n/a
]
end

Expand Down

0 comments on commit 44b5da9

Please sign in to comment.