Commit Graph

141 Commits

Author SHA1 Message Date
680fc7ecce minor fixes 2017-01-15 14:44:11 +02:00
85eec2f3cb adding instance variables to class 2017-01-15 14:21:57 +02:00
f9824079d6 splitting assignment into three, for args, locals and ivars
The decision on which is moving up to the ruby  compiler, so it can at
the same time emit the correct assignment form.
Just another example of moving away from a language and to an
intermediate form (that has no language equivalent)
2017-01-15 13:01:28 +02:00
a0cf5bffc0 small rename to align has_locals and has_arguments
for semantic and code unification
2017-01-15 12:59:03 +02:00
4095bb397f starting to create vm_method from ruby_method
issues galore though
2017-01-15 12:10:37 +02:00
01fe3b4b04 small rename 2017-01-14 19:52:16 +02:00
bd78a2d555 renames Typed to Vm 2017-01-14 19:28:44 +02:00
fe337fad79 rename and a tiny start 2014-06-25 15:20:46 +03:00
e41bb8027d copies of the old code to start the new layer 2014-06-25 02:47:59 +03:00
9b39a3a816 renaming, making space for extra layer 2014-06-25 02:33:44 +03:00
3771f44e62 just moving code around 2014-06-24 19:34:36 +03:00
17904d8e02 rename blocks do_add to be the same as sunctions add_code to blur the difference 2014-06-24 12:36:32 +03:00
43a2649635 new list test and debugs 2014-06-24 12:25:03 +03:00
b8b1d98a7c towards rubys true definition 2014-06-24 12:24:36 +03:00
a859951a8f slight cleanup and rename test case 2014-06-17 14:25:33 +02:00
7d05b7c42f adds plocks (Proc Block) as descibed in posts. Usage also described, but not coded yet 2014-06-17 01:01:00 +02:00
a68d84a781 introducing references 2014-06-14 23:48:12 +03:00
4db54a760e gives values their own directory and seperate files 2014-06-14 21:29:57 +03:00
87fa71277a some inlining and renaming 2014-06-14 11:12:53 +03:00
0dbaebf647 fix all tests and a little cleaning 2014-06-14 10:59:25 +03:00
12a92e4db0 move boot* classes to boot directory 2014-06-13 23:51:53 +03:00
a7551ea8b6 still working on the method dispatch 2014-06-13 23:41:45 +03:00
017d93d929 add to_asm debug output functions 2014-06-12 21:40:25 +03:00
6d6c7ddb68 register assignment fix (was not taking subsequent calls into account) 2014-06-12 21:27:30 +03:00
200da192b4 improve output 2014-06-12 21:04:15 +03:00
8da1bc4645 fix putint (too eager optimization broke it) 2014-06-12 13:47:06 +03:00
506f98da5a fixed foo and hello, next putint 2014-06-12 09:07:03 +03:00
b125a7c5c7 fix passes, add noop reduction, remove the wretched value operators 2014-06-11 21:36:22 +03:00
4e6319b753 inrtoduce block passes. move the allocation there and implement those simple optimisations 2014-06-11 11:41:50 +03:00
7cca50cd3a still recoving from previous block - function change. no more exceptions at least 2014-06-11 00:38:46 +03:00
e9519d4f05 move the code insertion functionality up to function. makes more sense. block still carries code though 2014-06-10 23:57:56 +03:00
e9fc8ac6aa making the third arg of block init explicit (not optional) 2014-06-10 18:51:27 +03:00
7ca3207b3e moved registers to machine, changed return to 0 (from 7) and erased all integer references to registers 2014-06-10 13:29:01 +03:00
d7a60f2803 new register allocation generates good looking push/pop 2014-06-09 19:24:09 +03:00
b66c4157d5 keep track of used and assigned registers for each block 2014-06-08 01:41:56 +03:00
e7bb774da0 fix block insert ordering with depth > 1 2014-06-08 00:56:15 +03:00
0a14cffefb fixing fragment tests, most done 2014-06-07 23:22:32 +03:00
6b715bbb1b remoe hash attributes (less magic) and make attributes on context explicit 2014-06-07 22:41:02 +03:00
36f237c633 removed the (too) fancy dsl. Also introduce register indirection 2014-06-07 17:59:44 +03:00
6433a394e7 adding receiver and a register abstraction 2014-06-06 21:49:03 +03:00
c59f22f11f first oo program to compile. But no worries, there is still work left to be done 2014-06-05 18:17:00 +03:00
72d4adc7af another step closer to a working oo system 2014-06-03 22:16:57 +03:00
ca19f5cb16 move to syms for names 2014-06-03 20:47:06 +03:00
b7c2089046 the further down this goes, the smaller the circles. Soon the point will come. And then back out 2014-06-03 14:49:02 +03:00
88a26414eb change the debug output to be more readable 2014-06-02 15:11:48 +03:00
31a55b07ac makes memory a three operand instruction, like add etc. But 3 regs are still undone 2014-06-01 21:20:44 +03:00
08bbad0fdc more on classes, have to work on asm next 2014-06-01 21:03:08 +03:00
4038bd331a clean up block names and export of qualified names makes assembler nicer to read 2014-05-31 17:02:55 +03:00
5756e0b325 move that test to core (cant be done in compiled code) and focus on string addition instead 2014-05-31 16:43:03 +03:00
a6f02d6be3 let the BootClasses carry functions, ie one level squeezed between object_space and funtion, the class is coming to life 2014-05-31 14:35:33 +03:00