From 6e8864b2383d3518fbbfc15337cc1b3f444bfab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20R=C3=BCger?= Date: Tue, 20 Aug 2019 22:03:52 +0300 Subject: [PATCH] New , simpler architecture picture and misc --- app/assets/images/architecture.png | Bin 0 -> 93887 bytes app/assets/stylesheets/site.sass | 3 + app/views/pages/project/motivation.html.haml | 60 ++++++++++--------- app/views/pages/rubyx/layers.html.haml | 59 +++++++++++------- 4 files changed, 72 insertions(+), 50 deletions(-) create mode 100644 app/assets/images/architecture.png diff --git a/app/assets/images/architecture.png b/app/assets/images/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..defd08da81cf715a86ec3f568de53096f3dc5aa1 GIT binary patch literal 93887 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 z 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≫(@M2Spr!=xnY5)!Br(D~kmi~$XBm4Sh*JUkHy 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 OcqB#TM2g?)`}`k76^{-8 literal 0 HcmV?d00001 diff --git a/app/assets/stylesheets/site.sass b/app/assets/stylesheets/site.sass index a3916b6..4171fe5 100644 --- a/app/assets/stylesheets/site.sass +++ b/app/assets/stylesheets/site.sass @@ -58,6 +58,9 @@ main , header , footer .full_width img width: 100% + .three_width + img + width: 67% .debug_pic border-color: white border-width: 8px diff --git a/app/views/pages/project/motivation.html.haml b/app/views/pages/project/motivation.html.haml index 8d570a8..b33dbd0 100644 --- a/app/views/pages/project/motivation.html.haml +++ b/app/views/pages/project/motivation.html.haml @@ -1,10 +1,11 @@ = render "pages/project/menu" -%h1= title "Ruby in Ruby" -%p +%h1.center= title "Ruby in Ruby" +%p.center %span - RubyX hopes make the the mysterious more accessible, shed light in the farthest (ruby) corners, and above all, - %em empower you + RubyX hopes to make the the mysterious more accessible, shed light in the farthest (ruby) corners, and above all, + %em empower + you. .row .tripple %h2.center A better tool, a better job @@ -14,8 +15,8 @@ better in almost every way. The only downside is speed and we argue that with cheap resources. %p - Why it has taken this long to even seriously attempt a ruby implementation in ruby is due to the overwhelming - influence of C (folks), especially at the time. + Why it has taken this long to even seriously attempt a ruby implementation in ruby is + due to the overwhelming influence of C (folks), especially at the time. %p Just a short and subjective list of why ruby is the better tool: %ul @@ -30,50 +31,53 @@ Rails has evolved tremendously from what was already a good start. All the development %em around it has nurtured - ruby developement in all areas. Rails and all those parts make up a most mature and advanced software system. - %p The "rails effect" is due to the accessibility of the system, imho. Ie it is written in ruby. + ruby developement in all areas. Rails and all those parts make up a most mature and + advanced software system. %p - Ruby itself has not enjoyed this rails effect, and that is because it is written in C - Crystal, Rust, Go Julia etc, have, for the exact same reason. + The "rails effect" is due to the accessibility of the system, imho. + Ie it is open source, and written in ruby. %p - It is my firm belief that given a vm in ruby, ruby development will "take off" too. In other words, given an - easy way to improve his tools, a developer will do so. Easy means understandable and that means ruby for a - ruby developer + Ruby itself has not enjoyed this rails effect, and that is because it is written in C. + Crystal, Rust, Go, Julia etc, have, for the exact same reason. + %p + It is my firm belief that given a vm in ruby, ruby development will "take off" too. + In other words, given an easy way to improve his tools, a developer will do so. + Easy means understandable and that means ruby for a ruby developer. .tripple %h2.center Step to Indepencance %p - The first thing any decent compiler does, is compile itself. It is the maturity test of a language to implement - itself in itself, and the time has come for ruby. The mark of growing up is being independant, in ruby's case of C. + The first thing any decent compiler does, is compile itself. + It is the maturity test of a language to implement itself in itself, + and the time has come for ruby. + The mark of growing up is being independant, in ruby's case of C. %p Having just learned Assembler, i can attest what a great improvement C is over Assembler. But that was then and it is not just chance that developemnt has been slow in the last 50 years. %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 - = succeed "is" do - %em complied (binary) code + %em complied (binary) code + is. %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, not really + On a very similar note we are lead to believe that os features must be used from c. + Whereas system calls 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. + at all. + Only the c std library makes them look like c functions, but they are not. .row - %p.center - %span - %b So what does empowerment mean. + %h3.center So what does empowerment mean. %p For me it is means owning your tools. For everyone to really be able to unfold their ideas and potential. Not to be stuck, rather to be able to change anything one wishes. We usually own the code we write, and we have seen amazing progress in opening up new ideas. %p - So it is hard to even think of ruby holding us back, and it isn't off course, only current implementations of it are. + So it is hard to even think of ruby holding us back, and it isn't off course, + only the current implementations of it are. %p - Concretely what does this mean: Well i don't know do i! That's the whole point, that anyone can improve it beyond - the original creators horizon. + Concretely what does this mean: Well i don't know do i! + That's the whole point, that anyone can improve it beyond the original creators horizon. %p But to mention a few things that have crossed my mind (and that i will most certainly not implement) %ul diff --git a/app/views/pages/rubyx/layers.html.haml b/app/views/pages/rubyx/layers.html.haml index 5cd5530..5d10650 100644 --- a/app/views/pages/rubyx/layers.html.haml +++ b/app/views/pages/rubyx/layers.html.haml @@ -13,8 +13,8 @@ just push more functionality into the “virtual machine” and it is in fact only the compilation to binaries that gives static languages their speed. This is the reason to compile ruby. -%p.center.full_width - = image_tag "layers.jpg" , alt: "Architectural layers" +%p.center.three_width + = image_tag "architecture.png" , alt: "Architectural layers" %h3#ruby Ast + Ruby %p @@ -61,26 +61,30 @@ %h3#minimal-object-machine Minimal Object machine %p We compile Vool statements into Mom instructions. Mom is a machine, which means it has - instructions. But unlike a cpu (or the risc layer below) it does not have memory, only objects. - It also has no registers, and together these two things mean that all information is stored in - objects. Also the calling convention is object based and uses Frame and Message instances to - save state. + instructions. But unlike a cpu (or the risc layer below) it does not have memory, only + objects. + It also has no registers, and together these two things mean that all information is + stored in objects. Also the calling convention is object based and uses Frame and + Message instances to save state. %p Objects are typed, and are in fact the same objects the language operates on. Just the - functionality is expressed through instructions. While source methods are in defined on + functionality is expressed through instructions. While source methods are defined on classes as Vool, when they are compiled to binary, they are made type specific. These TypedMethods hold the binary and are stored in the Type. %p The Mom level exists to make the transition to Risc easier. It has a very abstract, - high level instruction set, where each single instruction may resolve to many (even tens of) - lower level instructions. But it breaks down Vool's tree into an instruction + high level instruction set, where each single instruction may resolve to many (even + tens of) lower level instructions. But it breaks down Vool's tree into an instruction list, which is conceptually a much easier input for the next layer. +%p + Mom instruction may also be used to extend the systm functionality. This feature is used + in the Builtin layer of functions. These functions are coded at the Mom level, as they + can not be expressed in ruby. Examples include instance variable access, integer ops... %h3#risc Risc %p - The Register machine layer is a relatively close abstraction of risc hardware, but without the - quirks. -%p + The Register machine layer is a relatively close abstraction of risc hardware, + but without the quirks that for example arm has. The Risc machine has registers, indexed addressing, operators, branches and everything needed to implement Mom. It does not try to abstract every possible machine feature (like llvm), but rather “objectifies” the general risc view to provide what is needed for @@ -91,23 +95,25 @@ instructions may be defined and used later, as long as translation is provided for them too. In other words the instruction set is extensible (unlike cpu instruction sets). %p - Basic object oriented concepts are needed already at this level, to be able to generate a whole - self contained system. Ie what an object is, a class, a method etc. This minimal runtime is called - parfait, and the same objects will be used at runtime and compile time. + Basic object oriented concepts are needed already at this level, to be able to generate + a whole self contained system. Ie what an object is, a class, a method etc. + This minimal runtime is called parfait, and the same objects will be used at runtime + and compile time. %p - Since working with at this low machine level (essentially assembler) is not easy to follow for - everyone (me :-), an interpreter was created (by me:-). Later a graphical interface, a kind of + Since working with at this low machine level (essentially assembler) is not easy to + follow for everyone (me :-), an interpreter was created (by me:-). Later a graphical + interface, a kind of %a{:href => "https://github.com/ruby-x/rubyx-debugger"} visual debugger was added. Visualizing the control flow and being able to see values updated immediately helped tremendously in creating this layer. And the interpreter helps in testing, ie keeping it working in the face of developer change. -%h3#binary--arm-and-elf Binary , Arm and Elf +%h3 Target assembler %p - A physical machine will run binaries containing instructions that the cpu understands, in a - format the operating system understands (elf). Arm and elf subdirectories hold the code for - these layers. + Risc is the last abstract layer, it is then translated into machine dependent code. + This is not binary yet, more an oo version of assembler, where each instruction + is represented by an object. %p Arm is a risc architecture, but anyone who knows it will attest, with it’s own quirks. For example any instruction may be executed conditionally, ie @@ -116,5 +122,14 @@ is no 32bit register load instruction. It is possible to create very dense code using all the arm special features, but this is not implemented yet. %p - The Arm::Translator translates that translates RegisterInstructions to ArmInstructions, + The Arm::Translator translates RegisterInstructions to ArmInstructions. + +%h3#binary-and-elf Elf and Binary +%p + A physical machine will run binaries containing instructions that the cpu understands, + in a format the operating system understands (elf). +%p + The previously generated objects must be able to convert themselves to binary. + These binary codes are wrapped and stored into binary files of elf format. + Arm and elf subdirectories hold the code for these layers. and the Elf::ObjectWriter creates Linux binaries.