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
580c53cdae
fix the resolve
...
without return and not being a function
2018-04-08 22:30:18 +03:00
e5d014b936
bit more regs, bit more resets
2018-04-08 22:29:08 +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
8c322329fb
fix builtin methods according to last commit
2018-04-08 18:52:17 +03:00
9867234c38
move most code from method_compiler to builder
...
rather use builder in two ways, than sometimes compiler and sometimes
builder
Also makes it possible to reuse builtin code in mom’s to_risc, as both
use builder. The builtin code by directly adding to compiler, the mom
code not.
2018-04-08 18:51:20 +03:00
c2860bef7a
fix interpreter operator args
...
as in binary strings words symbols will be same
2018-04-08 01:26:29 +03:00
c30e461385
add operator to builder
...
just minus for now, easily extended
2018-04-08 01:01:24 +03:00
5d4b9d4834
add branches to builder
2018-04-08 00:50:51 +03:00
695ae5ad99
add label generation to builder
2018-04-08 00:39:35 +03:00
6958fc31ab
rework resolve_method, using builder
2018-04-07 23:07:44 +03:00
bf8e9e508b
opal hack
2018-04-07 22:35:48 +03:00
26cf911a5c
change build names a little and document
2018-04-07 22:35:40 +03:00
6d1beec407
fixing the interpreter tests
2018-04-07 18:58:44 +03:00
db55ec3fd6
slightly changing built return logic
...
very tempted to add immediately, but bigger change
2018-04-07 00:35:54 +03:00
dd0d162ebf
fix the init also, was using first message twice
...
not advancing after first load
2018-04-07 00:14:02 +03:00
3c90eb31c6
fixes all but interpreter tests
2018-04-06 23:37:41 +03:00
eea92399ee
concludes static message setup
2018-04-06 23:11:08 +03:00
1ddbde1191
return single message for "message" ie r0
...
other names, like next_message allocate a new register
2018-04-06 22:54:54 +03:00
22409c93ee
remove >>, consistent use of <<
...
makes code easier to read, like assignments
does remind of Passengers
2018-04-06 22:40:58 +03:00
c042dd9faa
allow reverse syntax for >> (ie <<)
...
slot >> reg makes sense, being a slot_to_reg
but . . .
consistently use of << (as meaning assignment , =) also makes sense
allow both and let time tell which makes more sense
2018-04-06 21:05:26 +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
c02576b239
reuse dished out names
...
so they become like variables
2018-04-06 20:55:21 +03:00
29f43eba3b
fix capitalize
...
who knew that capitalise downcases everything else
2018-04-06 20:54:27 +03:00
cae5e323ec
add reg to slot
2018-04-06 20:21:14 +03:00
fe71ddc5ae
remove dead code
...
leave circle detection for now
2018-04-06 20:20:39 +03:00
88dbc7c84f
slot to reg for builder
2018-04-06 16:35:27 +03:00
c233bd82d6
implement [] for RiscValue for the dsl
2018-04-06 16:08:35 +03:00
44d661fe56
progress on the builder front
...
mainly tests for now
2018-04-06 14:54:24 +03:00
e396807ee5
start work on dsl
...
so i can read my own code
2018-04-06 14:21:38 +03:00
d52e14d201
continue to rewrite message_setup
...
message come from space already.
next types
2018-04-05 20:37:03 +03:00
f09086e524
unite the two resolve_to_index functions
2018-04-05 20:10:00 +03:00
f4ce6d6253
starting to redo message_setup
...
apart from previous commits bug, it also needs to deal with
dynamic/static correctly
and while at it will do the getting from space
2018-04-05 12:24:49 +03:00
ec31bde33a
fix use of messagesetup
...
which does setup for the method being called
not the one we’re in. duh
2018-04-05 12:23:43 +03:00
5bb3ad03cc
some more safety tests
2018-04-05 12:22:40 +03:00
ee0a1ca823
renaming methods args and frame
...
to arguments_type and frame_type, because that is what they are
In honour of setup bug, where the types of those types were loaded,
instead of just them types
2018-04-05 12:22:14 +03:00
cf6636ddda
move (group) test files
2018-04-05 12:19:29 +03:00
c51fc67ba5
make interpreter tests less brittle
...
by factoring __init code away
just counting main
2018-04-04 20:05:09 +03:00
b9f85f9d2e
use instance_variable_set/get instead of eval
...
opal doesn’t like eval anymore
2018-04-03 19:33:36 +03:00
4a2a1da3ff
little spring clean
2018-04-03 15:23:19 +03:00
52d389cdbf
auto extend binary code
...
final solution will need repositioning
2018-04-03 15:07:36 +03:00
30ca70e042
remove extra instruction and use next instead
...
was messing with binary writing as the assumption of 1 word writes is
baked in
2018-04-03 14:46:07 +03:00
0a075c0f8a
fix tests (from changing MethodSetup)
2018-04-03 14:31:49 +03:00
17b52d4e80
fix dynamic resolution
...
was loading self, when it needs to load receiver
some more test (up to the resolve) start working
2018-04-03 12:55:28 +03:00
c304ad67c6
load space twice in init , messagesetup overwrites first
...
lots of interpreter test changes, brittle, must factor __initi out
2018-04-02 23:25:52 +03:00
576ae9261d
recode resolve method as assembler
...
definitely needs some refactoring
in fact i was hoping to code this in ruby (with compiler tweeks)
but there it is: goes through the linked list of methods of the type
and compares their name with self (method on word)
if not found ends in sys exit for now
2018-04-02 19:32:59 +03:00
beb487eb09
minor fixes
2018-04-02 19:31:08 +03:00
65d57c8c7c
removing unconditional
...
just Branch is fine
2018-04-02 19:30:34 +03:00
299a130761
small cleanup
2018-04-02 18:30:03 +03:00
9fafbe4e96
remove Kernel class for clarification
...
since it was a class it was fake anyway
moved methods to object
2018-04-02 17:06:31 +03:00