diff --git a/project/history.html b/project/history.html index db4446c..16054d9 100644 --- a/project/history.html +++ b/project/history.html @@ -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.
Layers represent an interface, not an implementation: - 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

Bundler 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.

diff --git a/project/motivation.html b/project/motivation.html index de53826..15726cb 100755 --- a/project/motivation.html +++ b/project/motivation.html @@ -53,17 +53,19 @@ sub-title: RubyX hopes make the the mysterious more accessible, shed light in th

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 static code is fast. + everyone is fooled into believing only c is fast. Whereas what is true is that + complied (binary) code is fast.

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 calls at all. + Only the c std library makes them look like c functions, but they are not.

-

So what does empowerment mean.

+

So what does empowerment mean.

For me it is means owning your tools. For everyone to really be able to unfold their ideas and potential. diff --git a/rubyx/layers.md b/rubyx/layers.md index 87f726e..f070b51 100644 --- a/rubyx/layers.md +++ b/rubyx/layers.md @@ -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. diff --git a/typed/typed.md b/typed/typed.md index 26a7f1f..5584c38 100644 --- a/typed/typed.md +++ b/typed/typed.md @@ -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).