a1aa6b58ac
resolve methods, don't just get them
...
i.e. down the ladder we go
2015-11-07 19:39:15 +02:00
7523bac80a
add layout and class accessor and test
2015-11-07 19:38:52 +02:00
484e2d19d4
allow for registers in get slot
2015-11-07 19:38:03 +02:00
1d07c1fb95
fix super class with name mixup
2015-11-07 19:37:38 +02:00
37928b8591
rename internal get/set functions
...
mainly because the salaam parser chokes on internal…
2015-11-07 17:40:59 +02:00
50b03a5e94
load parfait soml files
...
No dir glob for precise order
2015-11-07 17:38:27 +02:00
d878ce00d8
framework for parfait runtime testing
...
with interpreter for now
later with arm exec support
2015-11-07 17:37:41 +02:00
708cdace17
implement indexed object access
...
one of the few functions that can’t be coded
(or the design specifically is such that it can’t, in c it would be
self[index],
or, worse *(self + index) )
2015-11-07 17:36:28 +02:00
35afe88ede
allow get_slot with two registers
...
before was register and number, but for runtime that doesn’t work
2015-11-07 17:34:41 +02:00
9ebe28450b
add global variable space
...
could in the long run move spaces functionality to the class
and since the class is global anyway, wouldn’t need this
2015-11-07 12:19:04 +02:00
fd7e4afb2f
small meta related changes
2015-11-07 00:14:10 +02:00
46e1a112ab
metaclass moves down to object
2015-11-07 00:12:17 +02:00
204200b92a
metaclass is back
...
this time with a real purpose and implementation as the intermediary
As the interface to the layout and for replacing an edited layout
2015-11-07 00:11:56 +02:00
ebcc15d314
testing fibo
2015-11-06 14:24:57 +02:00
4eb3d9029a
use logger
2015-11-05 16:50:00 +02:00
13d0747b45
test the log_level too
2015-11-05 14:05:12 +02:00
aad50021fe
more messages for recursive fibs
2015-11-05 12:23:11 +02:00
4014ad27fe
fix and test return
...
return was in the wrong message
better tests now
2015-11-05 12:22:48 +02:00
ff759bf0c1
increase message size
...
message size is somewhat like stack size,
but 1-1 related to how deep it can be, now 50 calls
2015-11-05 12:12:15 +02:00
642dcb065a
fix while statement
...
logic was broken, or inversed
had to lay the code out a bit funny, but it works and makes sense
2015-11-04 20:23:26 +02:00
ab2c73f42c
right name for return label makes interpreter work
2015-11-04 20:22:28 +02:00
691ae96d71
fix names of branch codes
...
also store objects in register, avoid the whole object_id thing which
just lead to unclarity about class
2015-11-04 20:22:03 +02:00
428faad25f
opal fix for indexes
2015-11-04 16:11:25 +02:00
b5e733cd11
finally simple logging
...
instead of commenting puts
2015-11-04 11:48:51 +02:00
2236065d02
position filling after the padding changes, works again
2015-11-04 10:34:58 +02:00
c87682b77f
fix padding
...
used to be that type and layout were hidden
now type is gone and layout is an explicit instance, so 0 overhead
2015-11-04 10:34:03 +02:00
5bddbfbb62
rename word_length to padded length
...
with word_length i was never sure if it was the padded version or not
2015-11-04 10:33:10 +02:00
6ada815735
first stab at fixing the assembly
...
lots of length fiddling
wip
2015-11-03 16:24:12 +02:00
0f8f0a681c
fix padding to only consider layout (1 word)
2015-11-03 16:22:50 +02:00
ca1dc36e3d
method marking for labels
2015-11-03 16:22:24 +02:00
6882f39645
fixing lengths
2015-11-03 16:21:50 +02:00
c15445a958
let labels be constants
2015-11-03 16:20:25 +02:00
5a8d7d313f
little more tests
2015-11-03 11:23:15 +02:00
c940e25f91
other half of previous call change
2015-11-03 11:22:52 +02:00
1be5d1862f
need to collect labels for return
...
so the interpreter can find the object
2015-11-03 11:22:26 +02:00
bc414fd3e8
function call now saves the return address before calling
...
that means SaveReturn is obsolete (breaks loads of tests)
first step towards multi - return which obviously can not have the
callee save return address.
In fact this would make FunctionCall redundant too, as it is really
just a branch
2015-11-03 11:20:49 +02:00
cffbc91821
fix field_def to new syntax
2015-11-02 21:27:37 +02:00
45bd4bfdc6
remove save return
2015-11-02 20:11:12 +02:00
ddb1df7362
start to fix the link issue
...
that came from removing SaveReturn
2015-11-02 20:10:48 +02:00
86b0030f15
refactor on_call
2015-11-02 17:32:21 +02:00
834266e11e
improve label names a bit
2015-11-01 19:13:40 +02:00
d3a7809746
use . to mark methods
2015-10-30 00:01:28 +02:00
7e24f63327
polish sources
2015-10-29 22:31:28 +02:00
7d7b7ca995
adding types to layout
...
so we can test assignment
2015-10-29 12:45:29 +02:00
e4201143b3
last fixes from source change
2015-10-28 21:40:48 +02:00
e6743c7216
(string) source knockoffs
2015-10-28 21:39:59 +02:00
c426f4a6d5
some of the sources methods belonged to method really
2015-10-28 21:38:52 +02:00
bdb4a40f9c
only string and ast allowed as source
2015-10-28 21:38:23 +02:00
191be8d2f6
use compiler to generate methods and their instructions
2015-10-28 21:37:42 +02:00
99a695907c
move method_source functionality into compiler
...
the source was there long before the compiler (sis language) came along
and was basically doing the same
Much clearer concept with using compiler to generate methods and code
Also move compile method to method
2015-10-28 21:36:41 +02:00