e0dd4e0ad7
test dynamic call
...
made cache labels unique
2018-03-21 21:58:43 +05:30
f424e58715
finish the simple call
...
moving jump address
2018-03-21 19:29:00 +05:30
49880267bb
start to test call
...
as per tdd noticing logic errors, have to swap message out
2018-03-21 19:20:51 +05:30
b5ef929c9c
add method to risc function call
...
just so we still know at compile time
2018-03-21 19:05:53 +05:30
a9196e9cd6
implement simple_calls to_risc
2018-03-21 18:54:42 +05:30
fcbdba4804
simplify method entry exit codes
...
Basically just a label now
No more implicit returns (needs compiler tests)
Many return points is the new idea
Also setup is done before the enter by MessageSetup
2018-03-21 16:02:46 +05:30
61a801b00c
Return to_risc
...
remove the index from FunctionReturn, just jump to the register address
2018-03-21 15:48:50 +05:30
b4489b1093
rename RiscTransfer to Transfer
2018-03-21 15:48:04 +05:30
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
12c71fa394
first go at message setups translation to risc
...
simplest possible implementation, ie the method and next_messages are
loaded many times.
But the layer design shines, it’s easy to understand
2018-03-21 12:20:55 +05:30
b99fdc3425
rename jump label
2018-03-21 11:52:53 +05:30
d98e55907e
first go at translating DynamicCall to risc
2018-03-21 11:51:10 +05:30
48485477c2
implement one more depth for slot_load
...
soon time to make some loop
fix offset with array / object layout difference
2018-03-20 23:31:20 +05:30
8dc0950980
implement ArgumentTransfer
...
also unite with the receiver which was handled incorrectly
(left as a Vool constant)
2018-03-20 22:31:39 +05:30
77084dc894
fix unconditional jump
...
and affected tests
2018-03-20 22:05:09 +05:30
dba08ba8ce
small code climate inspired clean
2018-03-20 13:48:17 +05:30
2c6ea7ea46
finish truth check (green again)
...
some (basic) if tests
2018-03-20 13:30:38 +05:30
8bac096f74
fix while statements each
...
wasn’t picking up condition
2018-03-20 13:29:18 +05:30
c8980595a3
start to test if
...
truth check is only half done
2018-03-19 21:20:11 +05:30
63c1468e1e
bit of code docs
2018-03-19 21:19:46 +05:30
cff6226297
own file for check
2018-03-19 21:19:26 +05:30
99ced4369a
adding Tue False and Nil Class to Parfait
...
and boot
2018-03-19 21:18:56 +05:30
d195ef68da
move the code to load a slot_definition to a register
...
so we don’t have to copy it.
2018-03-19 20:54:32 +05:30
7953ef3e39
fix slot_load for higher order left arguments
...
needed for getting args or frame of the target, for assigns
fixed ripples in tests
2018-03-19 15:47:40 +05:30
c0a7f1d284
fix insertion and add assign send
...
must implement send conversion before this makes sense
2018-03-19 13:19:42 +05:30
66a160d8ab
fix code insertion in method
2018-03-19 13:05:08 +05:30
46ed4285a2
filing at dependencies
2018-03-18 22:36:36 +05:30
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
0813312ddc
using compiler_for to create all building compilers
...
unify api, create defaults and especially pass the right types into the
typed method creation
2018-03-18 22:08:35 +05:30
e7b878a353
mostly finish index resolve in slot_definition
...
alas, it reveals error, types may not be set correctly
2018-03-18 10:51:46 +05:30
be79388cc5
remove dead code
2018-03-18 10:50:37 +05:30
c5ec532616
use common list for risc instruction
...
strange that that was not done before as the code was clearly copied
when extracting it
Fix bug for insertion
2018-03-18 10:36:01 +05:30
9c052c78a7
fix most of slot_load to_risc
...
higher orders not working yet
2018-03-17 21:32:09 +05:30
cddc25a595
fixing tests for shifting constants into slots
2018-03-17 21:15:38 +05:30
3fecdf54a5
always return slot definitions
...
fixing sends defs
2018-03-17 20:57:35 +05:30
642f16b73a
adding cache entry to parfait
2018-03-17 19:03:39 +05:30
16c8fcbf66
first local assignment risc test
...
comes with casualties
slot_load needs more work
2018-03-17 11:13:44 +05:30
ba3ec9b1a2
everything but dynamic dispatch
2018-03-16 19:39:35 +05:30
d01bdf5dc5
return works
2018-03-16 19:26:27 +05:30
259b248588
ifs working
2018-03-16 19:05:22 +05:30
da0e1cdc5f
simple sends and all whiles working
2018-03-16 18:41:17 +05:30
35a0952943
first while test working
...
fixed logic error in test framework
2018-03-16 12:33:11 +05:30
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
3909bdcc7d
method tests working again
2018-03-16 10:32:11 +05:30
1def69c783
simple send test works again
2018-03-15 21:54:03 +05:30
ad4690d719
move common statements into its only use in vool
2018-03-15 20:40:21 +05:30
79bf416e58
collapsed slot classes into one
...
different slot operation have different right sides
mom assignment tests work again
157 others don’t
2018-03-15 20:33:38 +05:30
3247c2036c
moving from collect to each
...
when iterating over tree.
Much cleaner, less hokuspukus methods that are noops
Mom is coming back out, but not linked yet
2018-03-15 17:22:56 +05:30
3702411043
first propper hoisting test
...
had to change course, normalising and object creation is not possible
in one go
have to now generate random tmp vars that will have to be picked up
later (sorted by tmp_ prefix?)
2018-03-15 12:46:56 +05:30
9ddcb3224c
rename
2018-03-15 11:32:32 +05:30