Torsten Ruger
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
Torsten Ruger
da5823a1a0
move parfait up one, as per its module structure
2017-01-18 20:09:43 +02:00
Torsten Ruger
f0c0128b38
improve to_code a bit
...
variable names mainly, some description
2017-01-18 12:24:15 +02:00
Torsten Ruger
a39fc76a12
create vm file to require vm parts
2017-01-18 08:45:42 +02:00
Torsten Ruger
54b8a9f6de
minor
2017-01-17 21:25:18 +02:00
Torsten Ruger
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
Torsten Ruger
7223ca9a1c
clean and refactor
2017-01-16 17:44:34 +02:00
Torsten Ruger
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
Torsten Ruger
96f19d18c0
starting on ruby send
2017-01-15 20:30:47 +02:00
Torsten Ruger
cf0a123866
boot_function test
2017-01-15 20:04:52 +02:00
Torsten Ruger
83f2459a8a
implement ivar assignment
2017-01-15 14:44:23 +02:00
Torsten Ruger
680fc7ecce
minor fixes
2017-01-15 14:44:11 +02:00
Torsten Ruger
85eec2f3cb
adding instance variables to class
2017-01-15 14:21:57 +02:00
Torsten Ruger
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
Torsten Ruger
a0cf5bffc0
small rename to align has_locals and has_arguments
...
for semantic and code unification
2017-01-15 12:59:03 +02:00
Torsten Ruger
4095bb397f
starting to create vm_method from ruby_method
...
issues galore though
2017-01-15 12:10:37 +02:00
Torsten Ruger
01fe3b4b04
small rename
2017-01-14 19:52:16 +02:00
Torsten Ruger
bd78a2d555
renames Typed to Vm
2017-01-14 19:28:44 +02:00
Torsten Ruger
fe337fad79
rename and a tiny start
2014-06-25 15:20:46 +03:00
Torsten Ruger
e41bb8027d
copies of the old code to start the new layer
2014-06-25 02:47:59 +03:00
Torsten Ruger
9b39a3a816
renaming, making space for extra layer
2014-06-25 02:33:44 +03:00
Torsten Ruger
3771f44e62
just moving code around
2014-06-24 19:34:36 +03:00
Torsten Ruger
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
Torsten Ruger
43a2649635
new list test and debugs
2014-06-24 12:25:03 +03:00
Torsten Ruger
b8b1d98a7c
towards rubys true definition
2014-06-24 12:24:36 +03:00
Torsten Ruger
a859951a8f
slight cleanup and rename test case
2014-06-17 14:25:33 +02:00
Torsten Ruger
7d05b7c42f
adds plocks (Proc Block) as descibed in posts. Usage also described, but not coded yet
2014-06-17 01:01:00 +02:00
Torsten Ruger
a68d84a781
introducing references
2014-06-14 23:48:12 +03:00
Torsten Ruger
4db54a760e
gives values their own directory and seperate files
2014-06-14 21:29:57 +03:00
Torsten Ruger
87fa71277a
some inlining and renaming
2014-06-14 11:12:53 +03:00
Torsten Ruger
0dbaebf647
fix all tests and a little cleaning
2014-06-14 10:59:25 +03:00
Torsten Ruger
12a92e4db0
move boot* classes to boot directory
2014-06-13 23:51:53 +03:00
Torsten Ruger
a7551ea8b6
still working on the method dispatch
2014-06-13 23:41:45 +03:00
Torsten Ruger
017d93d929
add to_asm debug output functions
2014-06-12 21:40:25 +03:00
Torsten Ruger
6d6c7ddb68
register assignment fix (was not taking subsequent calls into account)
2014-06-12 21:27:30 +03:00
Torsten Ruger
200da192b4
improve output
2014-06-12 21:04:15 +03:00
Torsten Ruger
8da1bc4645
fix putint (too eager optimization broke it)
2014-06-12 13:47:06 +03:00
Torsten Ruger
506f98da5a
fixed foo and hello, next putint
2014-06-12 09:07:03 +03:00
Torsten Ruger
b125a7c5c7
fix passes, add noop reduction, remove the wretched value operators
2014-06-11 21:36:22 +03:00
Torsten Ruger
4e6319b753
inrtoduce block passes. move the allocation there and implement those simple optimisations
2014-06-11 11:41:50 +03:00
Torsten Ruger
7cca50cd3a
still recoving from previous block - function change. no more exceptions at least
2014-06-11 00:38:46 +03:00
Torsten Ruger
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
Torsten Ruger
e9fc8ac6aa
making the third arg of block init explicit (not optional)
2014-06-10 18:51:27 +03:00
Torsten Ruger
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
Torsten Ruger
d7a60f2803
new register allocation generates good looking push/pop
2014-06-09 19:24:09 +03:00
Torsten Ruger
b66c4157d5
keep track of used and assigned registers for each block
2014-06-08 01:41:56 +03:00
Torsten Ruger
e7bb774da0
fix block insert ordering with depth > 1
2014-06-08 00:56:15 +03:00
Torsten Ruger
0a14cffefb
fixing fragment tests, most done
2014-06-07 23:22:32 +03:00
Torsten Ruger
6b715bbb1b
remoe hash attributes (less magic) and make attributes on context explicit
2014-06-07 22:41:02 +03:00
Torsten Ruger
36f237c633
removed the (too) fancy dsl. Also introduce register indirection
2014-06-07 17:59:44 +03:00