Commit Graph
100 Commits
Author SHA1 Message Date
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 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 c361b74541 add codeclimate config (with reek,not robocop) 2016-12-08 13:58:38 +02:00
Torsten Ruger f0dbda7ec0 restrict travis to my working version to avoid travis only fails 2016-12-08 13:15:48 +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 ac13d0e140 add readline as per guard instructions 2016-12-08 12:46:49 +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 bcba3ed3b2 move parfait to new module 2016-12-06 16:50:54 +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 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 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 b9d2508370 update readme 2015-11-30 20:25:17 +02:00
Torsten Ruger 597fa2c8f3 update parser and new version 2015-11-30 20:11:11 +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 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
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 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
Torsten Ruger cea60f202a small label changes 2015-11-15 00:35:43 +02:00
Torsten Ruger b30cf21bbd fix arm indexes
needs rethought
fixed for static use, but what about dynamic
2015-11-15 00:35:12 +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