small fixes
This commit is contained in:
parent
4ef7197141
commit
67b73a6707
@ -23,7 +23,7 @@ title: RubyX, where it started
|
||||
Given gems and bundler this also seems an obvious choice. I really hope to see things i hadn't even thought of.
|
||||
<br/>
|
||||
<b>Layers represent an interface, not an implementation</b>:
|
||||
It is said that every problem in computing can be solved by adding anohter layer of indirection. And so
|
||||
It is said that every problem in computing can be solved by adding another layer of indirection. And so
|
||||
we have many layers, which, when done right, help us to understand the system. (Read, layers are for us,
|
||||
not the computer)
|
||||
But implementing each layer comes with added cost, often unneccessary. Layers can and should be collapsed
|
||||
@ -129,7 +129,7 @@ title: RubyX, where it started
|
||||
</p>
|
||||
<p>
|
||||
<b><a href="http://bundler.io/">Bundler</a></b> just makes you wonder how we managed before.
|
||||
Thanks to Yahuda, also for merb, which is not forgotten, and thor.
|
||||
Thanks to Yahuda, for starting it and Andre for making it fantastic.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -53,17 +53,19 @@ sub-title: RubyX hopes make the the mysterious more accessible, shed light in th
|
||||
</p>
|
||||
<p>
|
||||
There is this attitude C believers elude and since they are the gatekeepers of the os,
|
||||
everyone is fooled into believing only c is fast. Whereas what is true is that <em>static</em> code is fast.
|
||||
everyone is fooled into believing only c is fast. Whereas what is true is that
|
||||
<em>complied (binary) code </em>is fast.
|
||||
</p>
|
||||
<p>
|
||||
On a very similar note we are lead to believe that os features must be used from c. Whereas system calls
|
||||
are software interrupts and only the c std library makes them look like c functions. But they are not.
|
||||
are software interrupts, not really <em>calls<em> at all.
|
||||
Only the c std library makes them look like c functions, but they are not.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="span12">
|
||||
<p class="center"><span> So what does empowerment mean. </span></p>
|
||||
<p class="center"><span> <b> So what does empowerment mean. </b></span></p>
|
||||
<p>
|
||||
For me it is means owning your tools.
|
||||
For everyone to really be able to unfold their ideas and potential.
|
||||
|
@ -74,7 +74,7 @@ The Register machine layer is a relatively close abstraction of risc hardware, b
|
||||
quirks.
|
||||
|
||||
The register machine has registers, indexed addressing, operators, branches and everything
|
||||
needed for the next layer. It doesn't not try to abstract every possible machine feature
|
||||
needed for the next layer. It does not try to abstract every possible machine feature
|
||||
(like llvm), but rather "objectifies" the risc view to provide what is needed for the typed
|
||||
layer, the next layer up.
|
||||
|
||||
|
@ -27,12 +27,10 @@ Also the object memory model is kept quite simple in that object sizes are alway
|
||||
of the cache size of the hardware machine.
|
||||
We use object encapsulation to build up larger looking objects from these basic blocks.
|
||||
|
||||
The calling convention is also object oriented, not stack based*. Message objects used to
|
||||
define the data needed for invocation. They carry arguments, a frame and return addresses.
|
||||
Return addresses are pre-calculated and determined by the caller, and yes, there
|
||||
are several. In fact there is one return address per basic type, plus one for exception.
|
||||
A method invocation may thus be made to return to an entirely different location than the
|
||||
caller.
|
||||
The calling convention is also object oriented, not stack based*. Message objects are used to
|
||||
define the data needed for invocation. They carry arguments, a frame and return address.
|
||||
The return address is pre-calculated and determined by the caller, so
|
||||
a method invocation may thus be made to return to an entirely different location.
|
||||
\*(A stack, as used in c, is not typed, not object oriented, and as such a source of problems)
|
||||
|
||||
There is no non- object based memory at all. The only global constants are instances of
|
||||
@ -47,8 +45,6 @@ The typed layer is mainly concerned in defining TypedMethods, for which argument
|
||||
have specified type (like in c). Basic Type names are the class names they represent,
|
||||
but the "int" may be used for brevity
|
||||
instead of Integer.
|
||||
As mentioned a function may return to different addresses according to type, though this is not
|
||||
fully implemented.
|
||||
|
||||
The runtime, Parfait, is kept
|
||||
to a minimum, currently around 15 classes, described in detail [here](parfait.html).
|
||||
|
Loading…
Reference in New Issue
Block a user