Torsten Ruger
4b05b48197
some docs
2016-12-06 11:38:09 +02:00
Torsten Ruger
229f5896c6
update to use new ast
...
soml was updated to have a typed ast layer to make programatic creation
easier
this brings LOTS of syntax change with it, that does not really mean
anything at all
All tests pass again so back to the same
2016-03-07 11:55:28 +02:00
Torsten Ruger
a8b815117f
rename object_type to instance_type
...
for better distinction that it is not every object
but only instances of the class
2016-02-25 12:16:13 -08:00
Torsten Ruger
278d71b56c
fix docs for rename
2016-02-25 12:03:11 -08:00
Torsten Ruger
d32b51c67b
rename layout to type
...
this one goes to caleb for pointing it out.
Much better word
2016-02-25 11:50:10 -08:00
Torsten Ruger
3480b97eaa
rename variable type to value_type
...
in preparation for next rename
2016-02-25 11:41:03 -08:00
Torsten Ruger
dc560aaa5e
move main to space
2015-11-30 16:09:12 +02:00
Torsten Ruger
d0b655d05f
implement the div10 as assembler
...
easy after the some version worked
because it’s not arm it probably twice as long as need be
better (any?) optimisation would take care of that
still, nice to see it works
2015-11-21 14:20:25 +02:00
Torsten Ruger
91a0365c2e
fix register shortcuts
2015-11-21 14:17:54 +02:00
Torsten Ruger
02d9a063b0
fix both parfait words to have same indexing
2015-11-20 13:25:49 +02:00
Torsten Ruger
aabde4b9a6
fix word indexes on arm
...
which affected offsets in the ruby side too
the hidden dead word needed accounting for
2015-11-19 16:40:00 +02:00
Torsten Ruger
4871a52d37
better error reporting for parser
2015-11-19 10:10:13 +02:00
Torsten Ruger
249f43ad34
translate and interpret new instructions
2015-11-19 10:09:55 +02:00
Torsten Ruger
ac5a7ac4ca
making parfait (both) use the new byte functions
2015-11-19 10:09:24 +02:00
Torsten Ruger
dffa3fbf42
adding word functions for byte access
2015-11-19 10:08:41 +02:00
Torsten Ruger
ff65952a3e
add get/set byte instructions
...
it seems all cpus have them anyway so best use them
it was a pain to do this on word level, hard to write, hard to debug and
quite unnecessarily slow
2015-11-19 10:07:27 +02:00
Torsten Ruger
5369dc3d52
rename get/set internal
...
to _word , because _byte versions are coming
2015-11-18 15:36:43 +02:00
Torsten Ruger
979660f282
move parfait into register
...
register layer uses parfait models to generate object space
so parfait should be part of register (not above it)
2015-11-18 12:04:25 +02:00
Torsten Ruger
2bc2d4486f
move interpreter to register
...
seems more where it belongs, since it interprets the register machine
instructions
2015-11-18 12:00:30 +02:00
Torsten Ruger
40d81681b5
move parfait adapter into parfait ruby
...
in the future parfait will be coded in some and translated back into
ruby to “adapt”
until then, all ruby code is the adapter
2015-11-18 11:55:29 +02:00
Torsten Ruger
303b7eb1f8
putstring unfolds length
...
which means sys call doesn’t need to
and also interpreter sometimes gets a symbol length
2015-11-16 18:03:29 +02:00
Torsten Ruger
f50d7b57a4
fix the putstring sys call indexing
...
index 0 is the marker word , so like in some, all indexes 1 based
works :-)
2015-11-15 22:03:06 +02:00
Torsten Ruger
8e82da0b61
fix arm (assembled) indexing
...
by having a dummy 0 index in salaam. when assembled
2015-11-15 20:42:07 +02:00
Torsten Ruger
9a2fe42167
change assembly order
...
first objects, then methods.
methods change length, so at least this way objects stay
did mean hacking the arm code (something for later)
2015-11-15 16:24:43 +02:00
Torsten Ruger
1633bf1289
fix position check
...
as programs get bigger the distance gets bigger
needs better approach
2015-11-15 00:38:23 +02:00
Torsten Ruger
9602acf3d2
fix label positions
2015-11-15 00:36:15 +02:00
Torsten Ruger
cea60f202a
small label changes
2015-11-15 00:35:43 +02:00
Torsten Ruger
cc9b515752
fix double label names
2015-11-14 22:53:01 +02:00
Torsten Ruger
278eccbed5
derive binary code form word
...
long ago hacked the binary code to use integers (thus forsaking correct
arm binaries)
Finally fix by deriving from Word which now has correct binary access
Dumped binary.name in the process, that is available from the method
2015-11-14 15:04:04 +02:00
Torsten Ruger
8fa92515b5
update arm and small arm fixes
...
constants in arm chunks, needs better solution
2015-11-14 13:05:49 +02:00
Torsten Ruger
dbcd39c277
helper do get the register no as int for arm
2015-11-14 00:22:23 +02:00
Torsten Ruger
9ab3de234d
some helper functions
...
for when i started the assembler div10
in the end i did the div10 in some, so no need
2015-11-13 20:47:08 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
6c2ce66bfc
fix old warning
2015-11-10 11:48:53 +02:00
Torsten Ruger
9ab7b476d5
opal fix and minor
2015-11-09 23:27:15 +02:00
Torsten Ruger
9075f1af37
fixes yet another order dependant bug in the test (not the code)
2015-11-09 10:04:37 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
3e4dcd35c7
better no method no super handling
...
also revealed bug in booting
2015-11-08 00:54:24 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
2315ad6920
minor cleaning
2015-11-07 21:55:04 +02:00
Torsten Ruger
1d07c1fb95
fix super class with name mixup
2015-11-07 19:37:38 +02:00
Torsten Ruger
37928b8591
rename internal get/set functions
...
mainly because the salaam parser chokes on internal…
2015-11-07 17:40:59 +02:00
Torsten Ruger
d878ce00d8
framework for parfait runtime testing
...
with interpreter for now
later with arm exec support
2015-11-07 17:37:41 +02:00
Torsten Ruger
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
Torsten Ruger
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