Commit Graph

152 Commits

Author SHA1 Message Date
aa79e41d1c rename register to risc
seems to fit the layer much better as we really have a very reduced
instruction set
2017-01-19 09:02:29 +02:00
da5823a1a0 move parfait up one, as per its module structure 2017-01-18 20:09:43 +02:00
f0c0128b38 improve to_code a bit
variable names mainly, some description
2017-01-18 12:24:15 +02:00
a39fc76a12 create vm file to require vm parts 2017-01-18 08:45:42 +02:00
54b8a9f6de minor 2017-01-17 21:25:18 +02:00
cd211f970f make method creation class methods in MethodCompiler
and pass the wish to use main explicitly, which is really a test
feature
2017-01-17 21:23:58 +02:00
7223ca9a1c clean and refactor 2017-01-16 17:44:34 +02:00
5f7ea08a43 Splitting NameExpression into three, Known,Local,Argument
The decision which to use can be made higher up, in ruby, and so it
should.
2017-01-16 09:33:49 +02:00
96f19d18c0 starting on ruby send 2017-01-15 20:30:47 +02:00
cf0a123866 boot_function test 2017-01-15 20:04:52 +02:00
83f2459a8a implement ivar assignment 2017-01-15 14:44:23 +02:00
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