Torsten Ruger
6d4347c7ba
finish assignment tests
...
and related code fixes
2016-12-10 18:48:18 +02:00
Torsten Ruger
f359e78982
adjust test helper to current s-exp situation
...
also refrain from hacking the compiler
by using the constructor
2016-12-10 18:09:51 +02:00
Torsten Ruger
87693112d4
small fix
2016-12-10 18:07:38 +02:00
Torsten Ruger
efca5254f4
move stashed tests
2016-12-10 18:06:57 +02:00
Torsten Ruger
f688611416
fix variable expression tests
2016-12-10 16:28:42 +02:00
Torsten Ruger
4f7110ef04
fix call expression tests
2016-12-10 15:26:25 +02:00
Torsten Ruger
4054b61752
fix more expression tests
2016-12-10 15:18:37 +02:00
Torsten Ruger
98bc0f6e40
test to_code
2016-12-10 14:55:23 +02:00
Torsten Ruger
de5d87cde7
add basic compiler expression tests (back)
2016-12-10 04:01:47 +02:00
Torsten Ruger
5c2f545f8e
tests for ast to code converter
2016-12-10 03:43:44 +02:00
Torsten Ruger
ca4bdcc528
gets rid of soml-parser completely
2016-12-08 20:13:08 +02:00
Torsten Ruger
4cd979e3e9
remove soml parser from tests
2016-12-08 19:39:16 +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
ed6fd91c4e
add missing tests (that were not liked to the travis script)
2016-12-08 12:55:16 +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
fe195df10e
split existing type tests
2016-12-06 17:03:15 +02:00
Torsten Ruger
3b4dbd052d
Move type tests around
2016-12-06 16:58:19 +02:00
Torsten Ruger
3bfccc3efe
move tests to equivalent place
2016-12-06 16:54:26 +02:00
Torsten Ruger
412e03ae7d
fix rename
2016-12-06 16:45:16 +02:00
Torsten Ruger
3ed0c4829a
log test
2016-12-06 16:44:04 +02:00
Torsten Ruger
fe203b55f1
fix codeclimate braking changes
2016-12-06 15:22:22 +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
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
6d900f384b
little tool to check code needed
...
get an idea of the amount of files, classes etc needed to bootstrap
2015-12-01 19:17:45 +02:00
Torsten Ruger
27a7657842
add parser and basic test framework
...
that doesnt actually do anything. but WILL, great things, off course
2015-12-01 11:55:33 +02:00
Torsten Ruger
c7d1f9ec99
fix all tests to use space.main
2015-11-30 16:20:39 +02:00
Torsten Ruger
afe16868b5
more some tests
2015-11-30 16:10:08 +02:00
Torsten Ruger
19dd7b96d6
fix benches interfering with testing
2015-11-30 16:09:55 +02:00
Torsten Ruger
dc560aaa5e
move main to space
2015-11-30 16:09:12 +02:00
Torsten Ruger
707c180cab
add go results, just cause I'm learning it
2015-11-27 19:54:43 +02:00
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
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
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
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
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
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
f92ea36fe5
minor fixes
2015-11-16 18:02:13 +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
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
39eed43358
some ripples from branch logic change
2015-11-14 00:22:00 +02:00
Torsten Ruger
12e210fdf5
no to slow tests to a halt
...
also the high low code isn’t even used in the current version, no need
to test too much
2015-11-13 20:50:33 +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
c190f718ec
fix fibs test to 32 bit maxs
2015-11-13 20:44:18 +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
a5afca10f6
don't pass machine around, its global
2015-11-12 20:02:44 +02:00
Torsten Ruger
6f0d6d831e
update arm and implement most operators
...
multiplication wasn’t implemented
and division isn’t part if arm
neither is rotate by register
2015-11-12 20:02:14 +02:00
Torsten Ruger
351a747bfd
mod and div for int
2015-11-11 20:36:40 +02:00
Torsten Ruger
1e7935bf85
implement byte access for some word
...
wouldn’t have been possible without the ruby version
2015-11-11 20:36:07 +02:00
Torsten Ruger
8528fae785
add the new tests
2015-11-10 19:12:50 +02:00
Torsten Ruger
c92814440f
fix integer to_s and put, with tests
2015-11-10 19:09:17 +02:00
Torsten Ruger
760a4beb86
fix some word with tests
2015-11-10 19:08:48 +02:00
Torsten Ruger
da9dacffb2
shorten fibo test a bit
2015-11-10 11:44:55 +02:00
Torsten Ruger
9ab7b476d5
opal fix and minor
2015-11-09 23:27:15 +02:00
Torsten Ruger
b2de1c6d79
minor fixes
2015-11-08 23:58:54 +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
6f69995284
stab at inter to string
...
wip
2015-11-08 17:11:03 +02:00
Torsten Ruger
ede7639861
forgot to link tests in
...
so code climate complained, oh now
2015-11-08 17:09:28 +02:00
Torsten Ruger
d6108e7b3a
fix interpreter overflow issue
...
flag set for bigness, result reduced
tests for + and *
fixed fibs tests
2015-11-08 15:15:55 +02:00
Torsten Ruger
6ea698d397
save some to_s code
2015-11-08 14:30:42 +02:00
Torsten Ruger
cf05e7553a
rework interpreter test framework
...
remove lots of copy paste
2015-11-08 14:30:28 +02:00
Torsten Ruger
37564d9c2e
implement message pseudo variable (like self)
...
too easy
also simplified some tests
2015-11-08 13:55:38 +02:00
Torsten Ruger
502cfa357d
implement and test field access
2015-11-08 13:39:13 +02:00
Torsten Ruger
6cd95ee933
more layout tests, seeing class names on stdout
2015-11-08 00:55:37 +02:00
Torsten Ruger
ab7e517e9e
slightly tighter parfait tests
2015-11-07 22:26:06 +02:00
Torsten Ruger
f11e8f0a13
fix all the test
...
many are off course affected by call sequence changes
2015-11-07 22:20:21 +02:00
Torsten Ruger
8c68ffc7a4
fixing indexes makes test work
...
forgot my own rule: all parfait works in 1 based lists
2015-11-07 20:10:55 +02:00
Torsten Ruger
7523bac80a
add layout and class accessor and test
2015-11-07 19:38:52 +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
8aabff6b37
get layout test
...
start of copying the ruby parfait tests
lots can be done with string output and return value
2015-11-07 17:39:17 +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
c9c0f66d79
rename test/parfait
...
to then write parfait test on the runtime
2015-11-07 14:04:38 +02:00
Torsten Ruger
b1939e9828
rename helper
2015-11-07 12:18:08 +02:00
Torsten Ruger
42c404802d
more class function testing
2015-11-07 00:13:57 +02:00
Torsten Ruger
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
Torsten Ruger
ebcc15d314
testing fibo
2015-11-06 14:24:57 +02:00
Torsten Ruger
eae5cac4b5
check returns on tests
2015-11-05 17:00:41 +02:00
Torsten Ruger
1309ea37de
fibonacci while works just as well now
...
surprisingly much faster though,
2015-11-05 13:37:08 +02:00
Torsten Ruger
aad50021fe
more messages for recursive fibs
2015-11-05 12:23:11 +02:00
Torsten Ruger
4014ad27fe
fix and test return
...
return was in the wrong message
better tests now
2015-11-05 12:22:48 +02:00
Torsten Ruger
8310bc4985
fix while tests now that while is fixed
2015-11-04 20:28:02 +02:00
Torsten Ruger
32275f4d48
fix interpreter test
2015-11-04 20:27:48 +02:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
0f8f0a681c
fix padding to only consider layout (1 word)
2015-11-03 16:22:50 +02:00
Torsten Ruger
ca1dc36e3d
method marking for labels
2015-11-03 16:22:24 +02:00
Torsten Ruger
6882f39645
fixing lengths
2015-11-03 16:21:50 +02:00
Torsten Ruger
14f8b42015
fix instruction order, now with the save
...
and finally formatted in statements too
2015-11-03 11:25:02 +02:00
Torsten Ruger
dae12c532c
fix fragment tests
...
they mostly got longer due to the added store instruction + label
2015-11-03 11:23:58 +02:00
Torsten Ruger
5a8d7d313f
little more tests
2015-11-03 11:23:15 +02:00
Torsten Ruger
03979156db
fix statements
...
as they go
2015-11-02 20:12:01 +02:00
Torsten Ruger
7eebc775d6
let helper output correct version in case of error
2015-11-02 20:11:40 +02:00
Torsten Ruger
23e09b7149
more dubious test hacking
2015-11-02 17:32:06 +02:00
Torsten Ruger
0094a89707
fix spurious test
...
or maybe hack is more correct
2015-11-02 11:34:08 +02:00
Torsten Ruger
7d7b7ca995
adding types to layout
...
so we can test assignment
2015-10-29 12:45:29 +02:00
Torsten Ruger
e4201143b3
last fixes from source change
2015-10-28 21:40:48 +02:00
Torsten Ruger
5d3aace459
use module compile function
2015-10-28 21:40:22 +02:00
Torsten Ruger
bdb4a40f9c
only string and ast allowed as source
2015-10-28 21:38:23 +02:00
Torsten Ruger
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
Torsten Ruger
142c36a374
fix return statement to actually return
...
fix a million tests
2015-10-27 21:04:46 +02:00
Torsten Ruger
79cf59c4e2
still finding index errors
2015-10-27 18:45:56 +02:00
Torsten Ruger
444ad75e1e
some message tests, all ok
2015-10-27 18:08:40 +02:00
Torsten Ruger
bb908dcf76
adding arg length to call sequence
...
and fix all the tests that affects
2015-10-27 16:21:11 +02:00
Torsten Ruger
bd171d091a
fix tests for indexed messages and frames
...
index_length changes index a bit
but from now on changes to layouts should push the index automatically
just have to set the index while calling now
2015-10-27 16:05:50 +02:00
Torsten Ruger
49b25ad971
fixed fragment tests
2015-10-27 11:00:48 +02:00