Torsten Ruger
1e7093c63f
remodel assignment a bit
2016-12-09 13:20:48 +02:00
Torsten Ruger
395fd2d701
refoactor call site some
2016-12-09 12:22:37 +02:00
Torsten Ruger
224670e449
refactor name expression for compiler
2016-12-09 12:13:33 +02:00
Torsten Ruger
ca4bdcc528
gets rid of soml-parser completely
2016-12-08 20:13:08 +02:00
Torsten Ruger
e2236cf703
move soml ast here, now called type as the language is going
2016-12-08 19:38:50 +02:00
Torsten Ruger
da553f996f
move compiler to typed
...
starting to get rid of soml, bit by bit
2016-12-08 15:25:20 +02:00
Torsten Ruger
c3a28d2abc
small collector change
2016-12-08 15:19:37 +02:00
Torsten Ruger
a31f75fe93
basic immutability for type
...
add_instance_variable now uses global type list to check
adds hash and to_has functions
use backdoor (send) for booting
2016-12-08 12:50:25 +02:00
Torsten Ruger
137d3c9231
add each_with_index to indexed
2016-12-08 12:48:39 +02:00
Torsten Ruger
ad91c0a4bf
add inspect method to dictionary
2016-12-08 12:48:08 +02:00
Torsten Ruger
2741f35380
add a each_pair to indexed and use in types
2016-12-07 23:35:51 +02:00
Torsten Ruger
266a04040b
add types hash to space
2016-12-07 23:34:45 +02:00
Torsten Ruger
bcba3ed3b2
move parfait to new module
2016-12-06 16:50:54 +02:00
Torsten Ruger
3ed0c4829a
log test
2016-12-06 16:44:04 +02:00
Torsten Ruger
adca8b21c1
move soml tests out, small cleanup
2016-12-06 15:08:29 +02:00
Torsten Ruger
5ac14ddccc
update gems and fix tests
2016-12-06 12:08:18 +02:00
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
d7b210d63a
update parser
2016-03-06 10:48:14 +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
afe16868b5
more some tests
2015-11-30 16:10:08 +02: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
ffc69fd2a5
add the hackers delight version of div10
...
better test too
remove remnants of 64bit multiplication
2015-11-21 14:19:07 +02:00
Torsten Ruger
91a0365c2e
fix register shortcuts
2015-11-21 14:17:54 +02:00
Torsten Ruger
96972dab29
thats most of the benchmarking
...
strange about the puts in soml, hard to see where a factor of 10 would
come from
2015-11-20 23:51:58 +02:00
Torsten Ruger
da4003c30a
ruby fibs versions and tests for them
2015-11-20 19:12:58 +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
a8453c126d
use arm shift at runtime
...
arm indexes are in bytes (x4) at compile time
but at runtime we only have the array indexes, iw word indexes
arm has the nice barrel shifter to save us an extra instruction
2015-11-19 12:48:13 +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
0643b96641
update arm
...
and small code changes from the fact that just loading a variable does
not change status flags
2015-11-17 02:28:47 +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
458610b970
implement string length
2015-11-15 11:28:16 +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