update index page
and debugger
This commit is contained in:
parent
594bab7d71
commit
18e33a5a3b
@ -15,7 +15,7 @@ GIT
|
|||||||
|
|
||||||
GIT
|
GIT
|
||||||
remote: https://github.com/ruby-x/rubyx-debugger
|
remote: https://github.com/ruby-x/rubyx-debugger
|
||||||
revision: 2e3475e040822ee48cfffaadcd019ebd47b43b84
|
revision: 89e221c74883e1db2c56faab6481b0b6546ef037
|
||||||
specs:
|
specs:
|
||||||
rubyx-debugger (0.3)
|
rubyx-debugger (0.3)
|
||||||
|
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
markdown: kramdown
|
|
||||||
theme: jekyll-theme-hacker
|
|
@ -6,78 +6,87 @@
|
|||||||
Putting wings on ruby to let you fly (may take X years).
|
Putting wings on ruby to let you fly (may take X years).
|
||||||
.row
|
.row
|
||||||
.tripple
|
.tripple
|
||||||
%h2.center Goal
|
%h2.center What
|
||||||
%p
|
%p
|
||||||
The goal is to execute (not interpret) object oriented code without external dependencies,
|
RubyX
|
||||||
on modern hardware.
|
%b compiles
|
||||||
|
ruby code to binary.
|
||||||
|
%br
|
||||||
|
In
|
||||||
|
%b 100%
|
||||||
|
pure ruby.
|
||||||
%p
|
%p
|
||||||
This means compiling dynamic code into binary. Using type knowledge at run-time we
|
The goal here is to prove that dynamic languages do not have to be slow.
|
||||||
optimise and cache method dispatch for know types.
|
%br
|
||||||
|
Only interpretation is slow, but when
|
||||||
As the system is 100% in ruby, the ultimate goal is to carry on the compilation at run-time,
|
ruby is
|
||||||
ie after the program has started.
|
%b compiled to binary
|
||||||
%b No interpretation.
|
,it can be really fast.
|
||||||
%p
|
%p
|
||||||
Using the compilation method on it's own runtime (and bootstraping with an exising ruby),
|
How fast (X times), will eventually depend on the community.
|
||||||
it is possible to write the whole system in a dynamic oo language (ruby), thus
|
The RubyX approach works, but to create an mri compatible ruby will
|
||||||
%b removing the two language problem
|
take many more man-years than i have.
|
||||||
(having to choose between nice and fast)
|
%p
|
||||||
|
RubyX is here to
|
||||||
|
=succeed "," do
|
||||||
|
=link_to "empower you" , "/project/motivation.html"
|
||||||
|
to make your ruby shine as much as you like.
|
||||||
.tripple
|
.tripple
|
||||||
%h2.center Status
|
%h2.center Status
|
||||||
%p
|
%p
|
||||||
Work is progressing on the ruby compiler. This uses a pure
|
The RubyX compiler is working, and the
|
||||||
%a{:href => "https://github.com/whitequark/parser"} ruby parser
|
=link_to "architecture", "/rubyx/layers.html"
|
||||||
to create:
|
has been refined over several years.
|
||||||
|
%p
|
||||||
|
While the
|
||||||
|
=ext_link "parser" , "https://github.com/whitequark/parser"
|
||||||
|
parses 100% of ruby, currently basics are implemented:
|
||||||
%ul
|
%ul
|
||||||
%li
|
%li
|
||||||
An Object model of
|
Object oriented
|
||||||
= succeed "," do
|
=succeed "." do
|
||||||
%a{:href => "/typed/parfait.html"} classes, types
|
=link_to "calling semantics" , "/rubyx/calling.html"
|
||||||
methods and basic types.
|
%li
|
||||||
%li Methods for every type (may be several per class)
|
Dynamic
|
||||||
%p
|
|
||||||
The lower level, strongly typed layer is
|
|
||||||
= succeed "." do
|
= succeed "." do
|
||||||
%a{:href => "/typed/typed.html"} finished
|
=link_to "method resolution" ,"/rubyx/method_resolution.html"
|
||||||
While it has well known typed language data semantics,
|
|
||||||
it introduces several new concept:
|
|
||||||
%ul
|
|
||||||
%li Object based memory (no global memory)
|
|
||||||
%li Object oriented calling semantics (not stack based)
|
|
||||||
%li Inline method caching.
|
|
||||||
%li
|
%li
|
||||||
%a{:href => "https://github.com/ruby-x/ruby/tree/master/lib/register", :target => "_blank"} Register machine abstraction
|
Control Structures, variables and assignment, integer operators.
|
||||||
%li
|
%li
|
||||||
Extensible instruction set, with arm implementations
|
Object based
|
||||||
%p
|
=succeed "." do
|
||||||
An abstract risc like register level defines some abstraction from the actual hardware. The
|
=link_to "memory" ,"/rubyx/memory.html"
|
||||||
type compiler compiles to this level, but a mapping to Arm is provided to produce
|
%li
|
||||||
|
A minimal Runtime of
|
||||||
|
= succeed "," do
|
||||||
|
=link_to "classes, types" , "/rubyx/parfait.html"
|
||||||
|
methods and basic types.
|
||||||
|
%li
|
||||||
|
=ext_link "Risc machine abstraction" , "https://github.com/ruby-x/rubyx/tree/master/lib/risc"
|
||||||
|
(includes extensible instruction)
|
||||||
|
%li
|
||||||
|
A minimal Arm and Elf implementation to create
|
||||||
= succeed "." do
|
= succeed "." do
|
||||||
%b working binaries
|
%b working binaries
|
||||||
%p
|
|
||||||
There is also an interpreter (mostly for testing) and a basic
|
|
||||||
%a{:href => "https://github.com/ruby-x/rubyx-debugger"} visual debugger
|
|
||||||
which not only helps
|
|
||||||
debugging, but also understanding of the machine.
|
|
||||||
.tripple
|
.tripple
|
||||||
%h2.center Docs
|
%h2.center Docs
|
||||||
%p
|
%p
|
||||||
The short introduction is under the
|
The short introduction is under the
|
||||||
%a{:href => "/rubyx/layers.html"} architecture
|
=link_to "architecture" , "/rubyx/layers.html"
|
||||||
menu.
|
menu.
|
||||||
%p
|
%p
|
||||||
The section on the intermediate representation is
|
To get to know the system, there is also an interpreter and a basic
|
||||||
= succeed "." do
|
=succeed "." do
|
||||||
%a{:href => "/typed/typed.html"} here
|
=link_to "visual debugger" , "rubyx/debugger.html"
|
||||||
%p
|
%p
|
||||||
The
|
The
|
||||||
%a{:href => "/project/motivation.html"} about
|
=link_to "about", "/project/motivation.html"
|
||||||
section has some info of when and how this
|
section has some info of when and how this started. If you feel like contributing
|
||||||
started. If you feel like contributing
|
=link_to "read this", "/project/contribute.html"
|
||||||
%a{:href => "/contribute.html"} read this
|
|
||||||
or write a
|
or write a
|
||||||
= succeed "." do
|
= succeed "." do
|
||||||
%a{:href => "https://groups.google.com/forum/#!forum/ruby-x"} mail
|
=ext_link "mail to the group" , "https://groups.google.com/forum/#!forum/ruby-x"
|
||||||
%h2.center News
|
%h2.center News
|
||||||
%p
|
%p
|
||||||
Last but not least, i try to get recent developments down on paper when they are
|
Last but not least, i try to get recent developments down on paper when they are
|
||||||
|
Loading…
x
Reference in New Issue
Block a user