28836457c5
just let the runner run
...
and output eery step, gives better idea of variance (trouble)
2015-11-20 20:13:35 +02:00
480e63a6c5
took the loooong test out
...
the one that was just meant for arm testing.
interpreter is 10000 times slower after all
2015-11-20 20:13:00 +02:00
1bec6f4ca7
simple bench runner to do multiple runs
2015-11-20 19:13:21 +02:00
da4003c30a
ruby fibs versions and tests for them
2015-11-20 19:12:58 +02:00
9bcead4c1a
small c programs to bench against
2015-11-20 19:12:13 +02:00
22117035e0
fix last failing tests
...
historic moment: all the test (currently 56) work on the arm too
2015-11-20 14:37:26 +02:00
f9e95d7d1f
more tests
...
good thing, though it seemed to have worked all the time,
just the test framework was broken,
thus reusing already changed object (by the interpreter)
2015-11-20 13:28:49 +02:00
bca0ae1b3b
fix remote test framework
...
was resting machine objects and causing bugs
reboot now and really start from scratch for remote
2015-11-20 13:27:31 +02:00
791cc96a0d
fix check function
...
same stack depth for all calls to get caller / file name
2015-11-20 13:26:35 +02:00
02d9a063b0
fix both parfait words to have same indexing
2015-11-20 13:25:49 +02:00
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
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
4871a52d37
better error reporting for parser
2015-11-19 10:10:13 +02:00
249f43ad34
translate and interpret new instructions
2015-11-19 10:09:55 +02:00
ac5a7ac4ca
making parfait (both) use the new byte functions
2015-11-19 10:09:24 +02:00
dffa3fbf42
adding word functions for byte access
2015-11-19 10:08:41 +02:00
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
5369dc3d52
rename get/set internal
...
to _word , because _byte versions are coming
2015-11-18 15:36:43 +02:00
633c1e9a4a
fix the fix fix
2015-11-18 15:22:20 +02:00
caaa500cb7
fix return tests
2015-11-18 15:18:56 +02:00
bcc2f019d9
liable remote tests to fix travis
2015-11-18 14:15:57 +02:00
4c71b281c4
3 try to get travis to work
...
and behave like my machine, remote debugging going on
2015-11-18 13:50:38 +02:00
506c12b6f5
change to REMOTE_PI, REMOTE seems to be set on travis
...
causing fails that were green at home. the worst kind
2015-11-18 13:42:07 +02:00
08faec40dd
fix class test
2015-11-18 13:32:59 +02:00
050179fee4
fix exit code check
...
did’t know exit codes are restricted to 1 byte (_really_ old stuff)
take a swing at testing by testing low byte
does leave room for error, but still something for this stage
2015-11-18 13:27:20 +02:00
0e89cbe8ff
fix remote parsing / setup
2015-11-18 13:17:49 +02:00
7daaec6a0a
unify fragment and parfait test code
...
so that we can test fragments remotely too
2015-11-18 13:04:57 +02:00
18f9ea019e
move parfait tests to some
...
after renaming compiler to soml
it’s where they wanna be
also will allow for unifying test helpers and testing fragments
remotely too
2015-11-18 12:14:31 +02:00
3efdf420a4
move parfait tests to register
...
that is the ruby parfait, the “adapter”
2015-11-18 12:10:59 +02:00
cab7e61f8b
move interpreter tests to register
...
to shadow the interpreter move / the lib structure
2015-11-18 12:07:37 +02:00
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
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
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
aa30864fcb
typo
2015-11-18 11:30:39 +02:00
ac620f8ea0
unroll loops in tests
...
to get one executable per test (before they were overwritten)
2015-11-18 11:29:37 +02:00
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
bc3042a466
use rye to test remotely
...
via ssh , no config yet
2015-11-16 23:23:08 +02:00
9a81d4e6a6
fixes from earlier changes
2015-11-16 18:05:57 +02:00
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
f92ea36fe5
minor fixes
2015-11-16 18:02:13 +02:00
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
8e82da0b61
fix arm (assembled) indexing
...
by having a dummy 0 index in salaam. when assembled
2015-11-15 20:42:07 +02:00
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
458610b970
implement string length
2015-11-15 11:28:16 +02:00
1633bf1289
fix position check
...
as programs get bigger the distance gets bigger
needs better approach
2015-11-15 00:38:23 +02:00
9602acf3d2
fix label positions
2015-11-15 00:36:15 +02:00
cea60f202a
small label changes
2015-11-15 00:35:43 +02:00
b30cf21bbd
fix arm indexes
...
needs rethought
fixed for static use, but what about dynamic
2015-11-15 00:35:12 +02:00
cc9b515752
fix double label names
2015-11-14 22:53:01 +02:00
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