Commit Graph

139 Commits

Author SHA1 Message Date
Torsten Ruger
bb49f1be78 rename ClassCompiler to MomComplier
ended up not even using the class, it just came from there
It actually compiles methods, and it turns out is the point where builtin comes into the picture as it's boot process also returns method compilers
2018-07-01 21:26:45 +03:00
Torsten Ruger
c947c27a14 clean up booting
many machine boot became obsolete
or just neede parfait to boot
actual linker functionality pending
2018-07-01 14:12:42 +03:00
Torsten Ruger
35b10c46a3 adds the risc instructions to the compiler
since they are not in the method anymore
2018-07-01 11:59:52 +03:00
Torsten Ruger
daf1b56062 start on class compiler
idea is to get cleaner layer seperation
reduce machine and rework builtin boot
2018-06-30 19:20:17 +03:00
Torsten Ruger
4a7cc72732 always list of methods in class
improve vool test dirs
2018-06-30 10:08:18 +03:00
Torsten Ruger
46d8f5002f hoist parfait boot out of the machine boot 2018-06-30 00:39:23 +03:00
Torsten Ruger
7006c8e3aa fix remaining tests
rename ripples
2018-06-29 22:56:49 +03:00
Torsten Ruger
c8451d0048 create rubyx dir and move previous vool_compiler there 2018-06-29 22:46:39 +03:00
Torsten Ruger
5036dd68df remove to_mom from ruby_to_vool
must have slipped in
affects mosty tests
2018-06-29 14:57:48 +03:00
Torsten Ruger
6bd01fd55f rename method_compiler
in line with other compiler XX_Compiler being the compiler for that layer
remove type from compiler as it is in method available
2018-06-29 14:48:52 +03:00
Torsten Ruger
18994d2b4b start on yield statement 2018-06-28 20:15:24 +03:00
Torsten Ruger
c6a903073a start on blocks 2018-06-26 20:28:27 +03:00
Torsten Ruger
67a6ef9f67 add rewriting of operator assignment
foo += 1 becomes foo = foo + 1 in vool
2018-06-25 16:32:20 +03:00
Torsten Ruger
37d62d298e assemble risc to it's position (not itself)
So in the next step the interpreter can use positions as program counter
and would be much more like the real thing
2018-05-17 09:49:01 +03:00
Torsten Ruger
e237bc625a remove unused methods
and a whole lot more index fixes
2018-05-14 20:50:52 +03:00
Torsten Ruger
5d3c70da89 fix type api
tests were using methods that were only used in tests.
2018-05-14 16:13:50 +03:00
Torsten Ruger
d84d208192 implement assignment normalisation
especially when the value is a send that needs normalising
fixes several broken tests
2018-04-27 21:56:41 +03:00
Torsten Ruger
1685ba5a44 fix send normalisation 2018-04-27 21:55:41 +03:00
Torsten Ruger
672ccb351d fix argument hoisting
arguments in vool must be simple variables
finally did the hoisting to do that
2018-04-27 09:59:01 +03:00
Torsten Ruger
08d0aae79e refactor send vool tests 2018-04-26 20:26:42 +03:00
Torsten Ruger
bf6e0853ce fix while back jump
while normalising the condition had gone before the
jump target accidentally
2018-04-20 09:56:06 +03:00
Torsten Ruger
3a50b7dd0e fix mod4 name
really did div4
2018-04-19 10:00:55 +03:00
Torsten Ruger
fabe4db4f6 fix logic error in vool dynamic send
using receiver of current method
instead of receiver of next message
2018-04-08 22:59:42 +03:00
Torsten Ruger
33ffcf1d88 move resolve_method code from word to mom
rather make resolve an instruction.
Since it was coded in risc anyway, we not only save the setup and call
But also makes the mom instruction flow clearer
The method really came from not wanting to code it in risc, but with
the Builder, that is now surprisingly painless
2018-04-08 18:55:17 +03:00
Torsten Ruger
41d573d571 wrought one more instruction for message setup
now with dsl ready, should be faster
2018-04-06 20:58:58 +03:00
Torsten Ruger
ee8b9469af fix argument indexing
good old index bug, off by one
this time forgot about parfait 1-indexing
2018-03-30 20:01:31 +03:00
Torsten Ruger
a9196e9cd6 implement simple_calls to_risc 2018-03-21 18:54:42 +05:30
Torsten Ruger
71c59e5bc0 remove calls from tests that don't test call 2018-03-21 16:11:57 +05:30
Torsten Ruger
fa797f722d to_risc for NotSameCheck
which is only used in call cache checking
some fixing, needed to add a abel for the cache check jump
2018-03-21 12:38:28 +05:30
Torsten Ruger
d9ce295b89 fix all tests from removing the receiver load 2018-03-20 23:31:42 +05:30
Torsten Ruger
8bac096f74 fix while statements each
wasn’t picking up condition
2018-03-20 13:29:18 +05:30
Torsten Ruger
ed902c343c fix ivar test by actually creating ivar first
nice to know one gets errors for using an ivar that was not assigned to
2018-03-18 22:38:49 +05:30
Torsten Ruger
e2729513ed tracking ivar bug 2018-03-18 22:38:00 +05:30
Torsten Ruger
af94d40cab passing frame (locals) into method creation
so typed_method have correct frame information and
can resolve slots correctly (next step)
2018-03-18 22:09:27 +05:30
Torsten Ruger
be79388cc5 remove dead code 2018-03-18 10:50:37 +05:30
Torsten Ruger
9c052c78a7 fix most of slot_load to_risc
higher orders not working yet
2018-03-17 21:32:09 +05:30
Torsten Ruger
cddc25a595 fixing tests for shifting constants into slots 2018-03-17 21:15:38 +05:30
Torsten Ruger
0978533d36 remove doubles 2018-03-16 20:13:04 +05:30
Torsten Ruger
f50327eb94 dynamic call green 2018-03-16 20:02:22 +05:30
Torsten Ruger
ba3ec9b1a2 everything but dynamic dispatch 2018-03-16 19:39:35 +05:30
Torsten Ruger
d01bdf5dc5 return works 2018-03-16 19:26:27 +05:30
Torsten Ruger
259b248588 ifs working 2018-03-16 19:05:22 +05:30
Torsten Ruger
da0e1cdc5f simple sends and all whiles working 2018-03-16 18:41:17 +05:30
Torsten Ruger
35a0952943 first while test working
fixed logic error in test framework
2018-03-16 12:33:11 +05:30
Torsten Ruger
ea882f403a pass parfait method to to_mom
previously it was the toll incarnation, and that is almost the same
But for the type of self. This s by definition only known in the
parfait method
And we need it off course for type checking/dispatch
2018-03-16 11:03:29 +05:30
Torsten Ruger
3909bdcc7d method tests working again 2018-03-16 10:32:11 +05:30
Torsten Ruger
1def69c783 simple send test works again 2018-03-15 21:54:03 +05:30
Torsten Ruger
9b4fcf0e0f locals work 2018-03-15 20:56:27 +05:30
Torsten Ruger
ff6d84a09b ivar tests work
bit of slot find replace
2018-03-15 20:55:23 +05:30
Torsten Ruger
4a79d20a40 remove duplicate tests 2018-03-15 20:51:46 +05:30