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
e237bc625a
remove unused methods
...
and a whole lot more index fixes
2018-05-14 20:50:52 +03:00
5d3c70da89
fix type api
...
tests were using methods that were only used in tests.
2018-05-14 16:13:50 +03:00
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
1685ba5a44
fix send normalisation
2018-04-27 21:55:41 +03:00
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
08d0aae79e
refactor send vool tests
2018-04-26 20:26:42 +03:00
bf6e0853ce
fix while back jump
...
while normalising the condition had gone before the
jump target accidentally
2018-04-20 09:56:06 +03:00
3a50b7dd0e
fix mod4 name
...
really did div4
2018-04-19 10:00:55 +03:00
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
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
41d573d571
wrought one more instruction for message setup
...
now with dsl ready, should be faster
2018-04-06 20:58:58 +03:00
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
a9196e9cd6
implement simple_calls to_risc
2018-03-21 18:54:42 +05:30
71c59e5bc0
remove calls from tests that don't test call
2018-03-21 16:11:57 +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
d9ce295b89
fix all tests from removing the receiver load
2018-03-20 23:31:42 +05:30
8bac096f74
fix while statements each
...
wasn’t picking up condition
2018-03-20 13:29:18 +05:30
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
e2729513ed
tracking ivar bug
2018-03-18 22:38:00 +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
be79388cc5
remove dead code
2018-03-18 10:50:37 +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
0978533d36
remove doubles
2018-03-16 20:13:04 +05:30
f50327eb94
dynamic call green
2018-03-16 20:02:22 +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
9b4fcf0e0f
locals work
2018-03-15 20:56:27 +05:30
ff6d84a09b
ivar tests work
...
bit of slot find replace
2018-03-15 20:55:23 +05:30
4a79d20a40
remove duplicate tests
2018-03-15 20:51:46 +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
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
03a4e04f7e
rename self to receiver
...
just because it is a keyword and can’t be used
2018-03-14 20:26:13 +05:30
559a797100
rename locals to frame
2018-03-14 20:24:47 +05:30
96800fd8fd
starting to_risc descent
...
just fleshing it for now
2018-03-13 16:16:06 +05:30
b297650b78
adds a mom version of basic values
2018-03-13 12:30:51 +05:30
d910c02b4a
better name for cool compile
2018-03-12 17:23:16 +05:30
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
3a365c779a
setup to resolve method dynamically
2018-03-10 18:47:36 +05:30
dae17e0c18
always slot definitions in slot loads
2018-03-10 18:04:04 +05:30