Commit Graph

1053 Commits

Author SHA1 Message Date
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
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
Torsten Ruger
d9ce295b89 fix all tests from removing the receiver load 2018-03-20 23:31:42 +05:30
Torsten Ruger
77084dc894 fix unconditional jump
and affected tests
2018-03-20 22:05:09 +05:30
Torsten Ruger
c12830ee6d simple while risc conversion test 2018-03-20 16:32:07 +05:30
Torsten Ruger
2c6ea7ea46 finish truth check (green again)
some (basic) if tests
2018-03-20 13:30:38 +05:30
Torsten Ruger
8bac096f74 fix while statements each
wasn’t picking up condition
2018-03-20 13:29:18 +05:30
Torsten Ruger
c8980595a3 start to test if
truth check is only half done
2018-03-19 21:20:11 +05:30
Torsten Ruger
81f4524c7a move assignment test into own dir 2018-03-19 16:28:53 +05:30
Torsten Ruger
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
Torsten Ruger
483a7c4467 arg assignment test (could be better) 2018-03-19 13:34:50 +05:30
Torsten Ruger
dda2ff9049 more assignment tests
move to writing code to Test class
To use space as before one would have to implement re-opening classes
2018-03-19 13:30:14 +05:30
Torsten Ruger
c0a7f1d284 fix insertion and add assign send
must implement send conversion before this makes sense
2018-03-19 13:19:42 +05:30
Torsten Ruger
66a160d8ab fix code insertion in method 2018-03-19 13:05:08 +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
8c53b4ab67 fix more api ripples from typed method 2018-03-18 22:37:43 +05:30
Torsten Ruger
9989cc12e0 fix ass tests
bit weak really, but pass
2018-03-18 22:37:15 +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
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
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
16c8fcbf66 first local assignment risc test
comes with casualties
slot_load needs more work
2018-03-17 11:13:44 +05:30
Torsten Ruger
3eef27be76 test helper cleanup 2018-03-16 20:25:01 +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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
9ddcb3224c rename 2018-03-15 11:32:32 +05:30
Torsten Ruger
78ef1368de introducing expressions and constants
not everything statement anymore (as in ruby)
basic statement tests working, rest havoc
2018-03-15 11:24:14 +05:30
Torsten Ruger
163cad456f random tries 2018-03-15 10:46:17 +05:30
Torsten Ruger
03a4e04f7e rename self to receiver
just because it is a keyword and can’t be used
2018-03-14 20:26:13 +05:30
Torsten Ruger
559a797100 rename locals to frame 2018-03-14 20:24:47 +05:30
Torsten Ruger
7db329fa6b actually adding risc instructions
fix test harness
1 working test (yeh)
2018-03-14 17:41:09 +05:30
Torsten Ruger
2aa7d37a83 rename locals to frame
includes temps and tradition
2018-03-14 17:39:04 +05:30
Torsten Ruger
96800fd8fd starting to_risc descent
just fleshing it for now
2018-03-13 16:16:06 +05:30
Torsten Ruger
b297650b78 adds a mom version of basic values 2018-03-13 12:30:51 +05:30
Torsten Ruger
45bfe118d1 simple mom test for simple call 2018-03-12 18:16:23 +05:30
Torsten Ruger
c806106917 simple test for dynamic call 2018-03-12 18:13:26 +05:30
Torsten Ruger
e6e8522b4e fix order of pops
slightly embarrassingly was popping (from the end)
rather than shifting (from the start)
2018-03-12 18:13:07 +05:30
Torsten Ruger
e0f6ba7bcf simple if test without else
unveils many a bug that is now fixed
2018-03-12 17:56:44 +05:30
Torsten Ruger
d910c02b4a better name for cool compile 2018-03-12 17:23:16 +05:30
Torsten Ruger
5fe0ba06ab stash old vm
moving on to getting mom to work and can’t have both
interpreter and elf broke, about 100 tests  went
2018-03-11 17:02:42 +05:30
Torsten Ruger
d6a2ea4cfc fix dynamic resolve
patch more like, real resolve method will have to be written
and put in there
2018-03-10 19:01:38 +05:30
Torsten Ruger
3a365c779a setup to resolve method dynamically 2018-03-10 18:47:36 +05:30
Torsten Ruger
dae17e0c18 always slot definitions in slot loads 2018-03-10 18:04:04 +05:30
Torsten Ruger
bc5906fb83 moving vool_method to parfait 2017-12-10 20:47:26 +02:00
Torsten Ruger
b7701d0d5e start on dynamic call 2017-12-05 21:46:37 +02:00
Torsten Ruger
ba304f51df using sof again, now rxf 2017-10-05 16:41:45 +03:00
Torsten Ruger
c3318f8f61 send refactor, green by stubbing 2017-09-14 18:42:01 +03:00
Torsten Ruger
2739747453 a start on dynamic dispatch (wip) 2017-09-14 16:07:02 +03:00
Torsten Ruger
be1481ce34 some renaming, start on cached
cached stalled for now, continue down to rise with what is first
2017-09-12 17:49:42 +03:00
Torsten Ruger
a3a31ba38d fixing rest of the send test cases 2017-09-11 21:30:28 +03:00
Torsten Ruger
8598257a98 first send test to work again 2017-09-11 14:23:30 +03:00
Torsten Ruger
94ca8da354 improve mom assignment tests 2017-09-10 19:48:46 +03:00
Torsten Ruger
1a9370ad14 fix moms ivar assignment 2017-09-10 13:33:32 +03:00
Torsten Ruger
c245acbdd3 fix slot_moves for sending, receiver and args 2017-09-10 13:14:51 +03:00
Torsten Ruger
43d660d2d2 fix slot moves for assignment 2017-09-10 13:04:36 +03:00
Torsten Ruger
66901eeb5b fix use of slot_constant vs slot_move
wip
2017-09-10 12:57:25 +03:00
Torsten Ruger
a523af14f1 fix mom assignment test 2017-09-10 12:36:16 +03:00
Torsten Ruger
c5ac24c850 check the instructions that are produced in mom 2017-09-09 23:36:43 +03:00
Torsten Ruger
d86282b007 flattening of moms while 2017-09-08 13:22:20 +03:00
Torsten Ruger
0f83b89805 correct flattening for moms if 2017-09-08 13:12:24 +03:00
Torsten Ruger
9189e56e77 testing for arrays in all the wrong places 2017-09-07 08:17:13 +03:00
Torsten Ruger
b5ca886069 moving helper for all to use 2017-09-07 08:16:37 +03:00
Torsten Ruger
80c3430536 replace arrays with Statements class 2017-09-06 12:51:24 +03:00
Torsten Ruger
9a1e4a6f27 own statements class for mom
so we don’t have to deal with arrays (as a special case)
and use method sending as is good oo
2017-09-06 12:33:46 +03:00
Torsten Ruger
af85cb7c67 adds mom while
much like the if, difference will show later in the jump arrangement
2017-09-05 12:04:52 +03:00
Torsten Ruger
65ba867aa9 cleanup 2017-09-04 21:32:01 +03:00
Torsten Ruger
1a219a7c89 introduce slot_definition and use it 2017-09-04 21:31:49 +03:00
Torsten Ruger
4f3a4387fc renaming to_mom tests and improve guard 2017-09-04 21:00:29 +03:00
Torsten Ruger
112ec26bd1 deprecating ruby package
to be replaced by vool and mom
2017-08-31 16:18:59 +03:00
Torsten Ruger
0b161ffa06 move ruby_method out of rubyx
ruby getting ready for destruction as it’s not used anymore
2017-08-31 16:11:06 +03:00
Torsten Ruger
d5a63ec431 rename one ruby compiler to differentiate 2017-08-31 14:18:12 +03:00
Torsten Ruger
cd2988f8a2 fix condition if 2017-08-30 22:54:03 +03:00
Torsten Ruger
8d16ef0ae0 test ruby method tmp creation 2017-08-30 22:35:10 +03:00
Torsten Ruger
c3939ef622 start better if mom test 2017-08-30 22:27:12 +03:00
Torsten Ruger
349dd37c82 small refactor 2017-08-30 18:23:54 +03:00
Torsten Ruger
b6fa8261e6 first stab at moms if 2017-08-30 17:21:13 +03:00
Torsten Ruger
ffd7a32ae3 fixed test name 2017-08-29 19:31:42 +03:00
Torsten Ruger
670ebd06cc remove traces of salama 2017-08-29 18:38:51 +03:00
Torsten Ruger
e40346b246 one more send mom test 2017-08-29 18:28:25 +03:00
Torsten Ruger
bbc13946ed implements self sent
with explicit and implicit self
2017-04-25 09:40:09 +03:00
Torsten Ruger
47683817ee implements resolve_method on parfait type
with associated changes to class
adds note about the not being the final version
2017-04-25 09:06:49 +03:00
Torsten Ruger
e387bdb5f2 fixes parfait/type tests place and guard file accordingly
test were in old directory and guard file broken accordingly
2017-04-23 18:43:32 +03:00
Torsten Ruger
dda2ddd9fb rename test to avoid clashes 2017-04-23 17:50:06 +03:00
Torsten Ruger
3e282c083d introduces compile time type (ct_type)
to determine whether we can call directly
2017-04-19 20:59:13 +03:00