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