Torsten Ruger
fa63c6db6a
add ruby bench programs and numbers
2015-11-24 15:33:16 +02:00
Torsten Ruger
535757fa98
did the ratios
...
i think percentages with +/- is best otherwise it becomes an issue of
which way you look at it.
1,33 or inverse 0.75 looks like a third one way and a quarter the other
2015-11-21 17:04:20 +02:00
Torsten Ruger
0cbf346519
redid the test, snapped variance
...
yesterday i had stray processes skewing the results
also figured out c was buffering prints
looking good
2015-11-21 16:35:30 +02:00
Torsten Ruger
1e2b784583
moved all the ruby benches out of the tests
...
here into bench dir and a little frame
2015-11-21 16:33:43 +02:00
Torsten Ruger
f865486f1e
tweeks to the c tests
...
also figured out hello was caching stopped that to make results
comparable
even wrote a hello assembler version which is just 10% faster than soml
:-)
2015-11-21 16:33:07 +02:00
Torsten Ruger
a589df7bf9
take the benchmark tests out from the soml
...
they just run soon long if accidentally invoked
2015-11-21 14:33:52 +02:00
Torsten Ruger
9eab4b7f67
move c benchmarks to own directory
2015-11-21 14:22:53 +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
28836457c5
just let the runner run
...
and output eery step, gives better idea of variance (trouble)
2015-11-20 20:13:35 +02:00
Torsten Ruger
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
Torsten Ruger
1bec6f4ca7
simple bench runner to do multiple runs
2015-11-20 19:13:21 +02:00
Torsten Ruger
da4003c30a
ruby fibs versions and tests for them
2015-11-20 19:12:58 +02:00
Torsten Ruger
9bcead4c1a
small c programs to bench against
2015-11-20 19:12:13 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
791cc96a0d
fix check function
...
same stack depth for all calls to get caller / file name
2015-11-20 13:26:35 +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
633c1e9a4a
fix the fix fix
2015-11-18 15:22:20 +02:00
Torsten Ruger
caaa500cb7
fix return tests
2015-11-18 15:18:56 +02:00
Torsten Ruger
bcc2f019d9
liable remote tests to fix travis
2015-11-18 14:15:57 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
08faec40dd
fix class test
2015-11-18 13:32:59 +02:00
Torsten Ruger
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
Torsten Ruger
0e89cbe8ff
fix remote parsing / setup
2015-11-18 13:17:49 +02:00
Torsten Ruger
7daaec6a0a
unify fragment and parfait test code
...
so that we can test fragments remotely too
2015-11-18 13:04:57 +02:00
Torsten Ruger
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
Torsten Ruger
3efdf420a4
move parfait tests to register
...
that is the ruby parfait, the “adapter”
2015-11-18 12:10:59 +02:00
Torsten Ruger
cab7e61f8b
move interpreter tests to register
...
to shadow the interpreter move / the lib structure
2015-11-18 12:07:37 +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
aa30864fcb
typo
2015-11-18 11:30:39 +02:00
Torsten Ruger
ac620f8ea0
unroll loops in tests
...
to get one executable per test (before they were overwritten)
2015-11-18 11:29:37 +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
bc3042a466
use rye to test remotely
...
via ssh , no config yet
2015-11-16 23:23:08 +02:00
Torsten Ruger
9a81d4e6a6
fixes from earlier changes
2015-11-16 18:05:57 +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