update index page

and debugger
This commit is contained in:
Torsten Ruger 2018-04-20 21:26:31 +03:00
parent 594bab7d71
commit 18e33a5a3b
3 changed files with 60 additions and 53 deletions

View File

@ -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)

View File

@ -1,2 +0,0 @@
markdown: kramdown
theme: jekyll-theme-hacker

View File

@ -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