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
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
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
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
d910c02b4a
better name for cool compile
2018-03-12 17:23:16 +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
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
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
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
cd2988f8a2
fix condition if
2017-08-30 22:54:03 +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
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
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
Torsten Ruger
d2fba19b95
fixes simple argument passing
2017-04-16 11:39:21 +03:00
Torsten Ruger
0d43987005
start to compile send
...
still very hacked version of simple call, but a start
2017-04-15 20:58:39 +03:00
Torsten Ruger
265b25d5f4
introduce return_sequence instruction to mom
2017-04-14 21:01:50 +03:00
Torsten Ruger
c885888f4a
start implementing return for constant
2017-04-14 10:52:23 +03:00
Torsten Ruger
73b7e2b22f
remove all test_all
...
Stop manually creating the list of tests (and searching missing).
Main level test_all does a search for all test_*
also possible to run by command line with starts
2017-04-13 17:00:56 +03:00
Torsten Ruger
9dd4409009
implements argument assignment
2017-04-13 14:14:43 +03:00
Torsten Ruger
be10e8c6af
set up ivar_assignment correctly
...
for statement tests
and write mom tests
also implement to_mom
and fix local (self) bug
2017-04-12 20:29:45 +03:00
Torsten Ruger
87133722b3
get guard to run several test on one change by setting up names accordingly
2017-04-12 20:18:41 +03:00
Torsten Ruger
21e426be71
finishes local assignments to_mom
2017-04-12 14:45:02 +03:00
Torsten Ruger
9c499c7a19
actually start doing something in to_mom
...
though still dummy
2017-04-12 11:53:02 +03:00
Torsten Ruger
1deca34c23
adds basic to_mom machinery for class and method statement
2017-04-12 11:52:23 +03:00
Torsten Ruger
a4b0666c8c
makes method_statements body always a scope_statement
2017-04-12 11:51:29 +03:00
Torsten Ruger
0d96f5e35f
rearranges test helper modules
2017-04-10 16:12:15 +03:00
Torsten Ruger
b2775455e1
more class creation tests
2017-04-09 10:14:28 +03:00
Torsten Ruger
397eca541a
fix class statements to always have Statements as body
...
not sometimes an array, which sits badly in the tree of statements
2017-04-09 09:59:21 +03:00
Torsten Ruger
af196c17d3
test correct instance_type creation
...
so ivar collection happens
and a type is created from the names
2017-04-08 19:20:11 +03:00
Torsten Ruger
c7978c22d4
improves method compiler tests
2017-04-08 17:29:53 +03:00
Torsten Ruger
f8b3fa1877
creates methods from method statement
2017-04-08 17:22:53 +03:00