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
Torsten Ruger
6433a394e7
adding receiver and a register abstraction
2014-06-06 21:49:03 +03:00
Torsten Ruger
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
Torsten Ruger
72d4adc7af
another step closer to a working oo system
2014-06-03 22:16:57 +03:00
Torsten Ruger
ca19f5cb16
move to syms for names
2014-06-03 20:47:06 +03:00
Torsten Ruger
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
Torsten Ruger
88a26414eb
change the debug output to be more readable
2014-06-02 15:11:48 +03:00
Torsten Ruger
31a55b07ac
makes memory a three operand instruction, like add etc. But 3 regs are still undone
2014-06-01 21:20:44 +03:00
Torsten Ruger
08bbad0fdc
more on classes, have to work on asm next
2014-06-01 21:03:08 +03:00
Torsten Ruger
4038bd331a
clean up block names and export of qualified names makes assembler nicer to read
2014-05-31 17:02:55 +03:00
Torsten Ruger
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