Commit Graph

298 Commits

Author SHA1 Message Date
4a8bb32039 serious bit fiddling, div10 using shift magic
forgot that arm has no division (or respectively only later models have)
many magic formulae out there, none seem to work 1000% on the
interpreter. some big 0 ending numbers are 1 off.
2015-11-13 20:46:27 +02:00
5c862111b9 remove div and add div10
general division is for another day, the 10 version is manageable
also same code produces mod10
wip
2015-11-12 20:03:57 +02:00
6137833140 change args argument to create method to be hash
was array and didn’t carry types and names
2015-11-11 20:41:02 +02:00
1efa36ed4f string sometimes gets to_s in equal while half cooked
during debugger register change or update to be precise.
without the debugger there would be no access to the word
at that point and no need for this hack
2015-11-10 19:16:38 +02:00
6c2ce66bfc fix old warning 2015-11-10 11:48:53 +02:00
9ab7b476d5 opal fix and minor 2015-11-09 23:27:15 +02:00
9075f1af37 fixes yet another order dependant bug in the test (not the code) 2015-11-09 10:04:37 +02:00
f746218765 reinstate word creation and use for strings
so string constants become words, so we can fiddle with them
2015-11-08 23:58:35 +02:00
c38775e933 add set_internal
and the set_slot with register
very much like the get_slot for get_internal
2015-11-08 17:10:36 +02:00
3e4dcd35c7 better no method no super handling
also revealed bug in booting
2015-11-08 00:54:24 +02:00
5ddc96718b slight call logic modification
simplification, new model is such that the upon start the method:
has a message in r0, works on it and returns to the return address.

Everything else is up to the caller
2015-11-07 21:59:39 +02:00
f2c7ed827d simplify the __init
admittedly more source code, but half the runtime
mainly just using message (not new)
made possible by call sequence change
2015-11-07 21:58:19 +02:00
2315ad6920 minor cleaning 2015-11-07 21:55:04 +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
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
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
13d0747b45 test the log_level too 2015-11-05 14:05:12 +02:00
ab2c73f42c right name for return label makes interpreter work 2015-11-04 20:22:28 +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
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
834266e11e improve label names a bit 2015-11-01 19:13:40 +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
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
c245272e52 don't export current 2015-10-28 14:37:40 +02:00
ef6cb2a069 use instruction steam from message
had been attached there last week, but was still used mainly through
the source (which i’m trying to remove)
2015-10-28 14:33:38 +02:00
72b790c107 remove method source receiver
no harm done it seems
2015-10-28 14:24:14 +02:00
e75517ff05 move constants to machine 2015-10-28 13:00:23 +02:00
7e0778dc70 remove return_type
soon to be obsolete with multi returns
2015-10-28 12:19:10 +02:00
79cf59c4e2 still finding index errors 2015-10-27 18:45:56 +02:00
50029711ff make frame and message indexed
also auto generate a replacement for previous offset class method (dry)
2015-10-27 16:04:36 +02:00
624699f8ed minor 2015-10-26 15:14:38 +02:00
885aa765d6 still fixing index bugs
the indexed_length got written wrong
which is why the layout methods didn’t work
Now all indexes are 1 based, even fake men, where we just ignore 0
2015-10-26 14:33:36 +02:00
9f4952b5ac create behavior module
behavior handles instance methods (add/remove/find)
and shall be included in layout later too
2015-10-26 13:27:56 +02:00
dc58dbe2fe little clean 2015-10-26 13:02:08 +02:00
4cadfc9ea9 shortening some methods, removing object prefix 2015-10-26 12:58:38 +02:00