ruby-x.github.io/app/views/pages/index.html.haml

131 lines
4.4 KiB
Plaintext

.row
%h2.center A Ruby to binary experiment
%div
%p.center
%span
Now over, results in news.
.row
.tripple
%h2.center What
%p
RubyX
%b compiles
Ruby code to binary.
%br
In
%b 100%
pure Ruby.
%p
The goal here is to prove that dynamic languages do not have to be slow.
%br
Only interpretation is slow, but when
Ruby is
=succeed "," do
%b compiled to binary
it can be really fast.
%p
How fast (X times), will eventually depend on the community.
The RubyX approach works, but to create an MRI compatible Ruby will
take many more man-years than I have.
%p
RubyX is here to
=succeed "," do
=link_to "empower you" , "/project/motivation.html"
to make your Ruby shine as much as you like.
%p
Since RubyX is written in Ruby, anyone can easily join, and
the project is very open to newcomers. In time the idea is to implement
a democratic version of open source, as an alternative the current
"benevolent dictator" model.
%p
Contrary to what many newcomers think, ruby-x is also technically easy to join.
In the end it is just Ruby, and only a very small percent of code is low level.
We have a list
=ext_link "of issues" , "https://github.com/ruby-x/rubyx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+newbie%22"
in GitHub for beginners.
.tripple
%h2.center Status
%p
The RubyX compiler is working (ie creates binaries), and the
=link_to "architecture", "/rubyx/layers.html"
has been refined over several years.
%p
A substantial part of the Ruby language has been implemented:
%ul
%li
Object oriented
=succeed "." do
=link_to "calling semantics" , "/rubyx/calling.html"
%li
Basic
=link_to "block creation" , "/blog/implicit-blocks-are-working"
and passing.
%li
Dynamic
= succeed "." do
=link_to "method resolution" ,"/rubyx/method_resolution.html"
%li
Control Structures, variables and assignment, integer operators.
%li
Object based
=succeed "." do
=link_to "memory" ,"/rubyx/memory.html"
%li
A minimal Runtime of
= succeed "," do
=link_to "classes, types" , "/rubyx/parfait.html"
methods and basic types.
%li
=ext_link "Risc machine abstraction" , "/rubyx/layers.html#risc"
(with SSA and register allocation)
%li
A minimal ARM and ELF implementation to create
= succeed "." do
%b working binaries
%h2.center Upcoming work
%p
Obviouly cancelled now (see news).
%p
But there is still a lot of work, here are some of the next few topics
%ul
%li Inlining and static memory analysis
%li Start stdlib with String and files
%li Dynamic Memory management
There are also many small things anybody can
=ext_link "start with." , "https://github.com/ruby-x/rubyx/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+newbie%22"
.tripple
%h2.center Docs
%p
The short introduction is under the
=link_to "architecture" , "/rubyx/layers.html"
menu.
%p
The presentation for
= ext_link "GrillRb" , "/slides/grillrb"
is more detailed than the previous unconf Hamburg one.
But a 20 minute video was made in Hamburg and can be found
=succeed "." do
= ext_link "on youtube" , "https://youtu.be/ojW-q_wiSn8"
%p
To get to know the system, there is also an interpreter and a basic
=succeed "." do
=link_to "visual debugger" , "rubyx/debugger.html"
%p
The
=link_to "about", "/project/motivation.html"
section has some info of when and how this started. If you feel like contributing
=link_to "read this", "/project/contribute.html"
or write a
= succeed "." do
=ext_link "mail to the group" , "https://groups.google.com/forum/#!forum/ruby-x"
%h2.center News
%p
Last but not least, I try to get recent developments down on paper when they are
still fresh. Though not much has happened lately, as we bought
=ext_link "this" , "https://www.hubfeenix.fi/"
%p=post_link(Post.posts.values[0])
%p=post_link(Post.posts.values[1])
%p=post_link(Post.posts.values[2])