Commit Graph

913 Commits

Author SHA1 Message Date
Torsten Ruger
5a1a42cd48 fix field access tests 2016-12-10 22:48:55 +02:00
Torsten Ruger
17cb917104 fix while statement tests 2016-12-10 22:42:02 +02:00
Torsten Ruger
e82c86f6c1 fix class def tests and code 2016-12-10 22:41:49 +02:00
Torsten Ruger
aa5641a29b fix call statement tests 2016-12-10 22:41:19 +02:00
Torsten Ruger
5a81ce259e exclude test from coverage (duh) 2016-12-10 18:59:24 +02:00
Torsten Ruger
a3e8d19bb7 small test setup fixes 2016-12-10 18:48:41 +02:00
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
Torsten Ruger
638c367e00 more class methods 2015-10-26 22:23:06 +02:00
Torsten Ruger
5b7c98f50b order requires 2015-10-26 22:22:38 +02:00
Torsten Ruger
abaa56fbba add create_method for layout too
as for class, same signature
some more test for behavior
2015-10-26 17:24:28 +02:00
Torsten Ruger
9d0b264b79 minors 2015-10-26 17:23:35 +02:00
Torsten Ruger
55dd5f74fc fixed layout inspect bug 2015-10-26 15:07:59 +02:00
Torsten Ruger
885aa765d6 still fixing index bugs
the indexed_length got written wrong
which is why the layout methods didn’t work
Now all indexes are 1 based, even fake men, where we just ignore 0
2015-10-26 14:33:36 +02:00
Torsten Ruger
9f4952b5ac create behavior module
behavior handles instance methods (add/remove/find)
and shall be included in layout later too
2015-10-26 13:27:56 +02:00
Torsten Ruger
b76c140d32 some class field tests 2015-10-26 13:08:40 +02:00
Torsten Ruger
4cadfc9ea9 shortening some methods, removing object prefix 2015-10-26 12:58:38 +02:00
Torsten Ruger
d2c670b31a fixing offset bug
found by tests that overwrite the attribute
2015-10-26 12:57:54 +02:00
Torsten Ruger
96f43dcfda also giving word it's length
still hacked as char per word, but should be easy enough to fix when…
2015-10-26 12:23:52 +02:00
Torsten Ruger
979ebb7612 fixing indexed stuff
layout returns layout as first name (offsets indexes)
object internal length is gone  into layouts functionality
2015-10-26 12:22:32 +02:00
Torsten Ruger
df62b75c6f adding an instance for the length of lists 2015-10-25 20:44:03 +02:00
Torsten Ruger
c1ee67038c internally objects stop changing size 2015-10-25 20:43:13 +02:00
Torsten Ruger
60098257e9 use include so we can test with is_a
using the well documented included/extend trick
2015-10-25 19:16:12 +02:00
Torsten Ruger
b7d0ee8f99 wit metaclass and class functions
needs to go back to arrays first
2015-10-25 15:40:12 +02:00
Torsten Ruger
0d001ec0fc rename super_clsas to super_class_name
as it should have been
2015-10-25 15:32:38 +02:00
Torsten Ruger
99870c92d8 linking new tests in 2015-10-25 14:03:47 +02:00
Torsten Ruger
7de2f913a0 more class tests 2015-10-25 13:19:18 +02:00
Torsten Ruger
12e31f28c2 fix and test class definition 2015-10-25 12:31:35 +02:00
Torsten Ruger
7a690cd38d fix to_s 2015-10-25 12:10:56 +02:00
Torsten Ruger
405a6935d4 lots of stuff to move to linked lists
and remove the blocks
more position stuff coming, but the list part should be ok
2015-10-24 17:12:36 +03:00
Torsten Ruger
a871f96630 remove passes and achieve the same by translating 2015-10-24 11:42:36 +03:00
Torsten Ruger
57f37ec023 removed blocks and moved to labels
somewhat easier to understand the code as a linked list
relatively painless change, considering
2015-10-23 21:27:36 +03:00
Torsten Ruger
6754518daf prune builtin
will need much less, many more things can be expressed in soml
2015-10-23 15:13:05 +03:00
Torsten Ruger
147a77f4e4 fix arm test by fixing arm 2015-10-23 14:46:27 +03:00
Torsten Ruger
897e11ce80 store three versions of the code in method
source, instructions and binary
2015-10-23 14:41:47 +03:00
Torsten Ruger
e0c5bc4c11 rename phisol to soml 2015-10-23 14:22:55 +03:00
Torsten Ruger
dcbd3c7091 fold last of the virtual into register 2015-10-22 18:16:29 +03:00
Torsten Ruger
c68577c3f4 fixed more cases of empty block syndrome 2015-10-22 15:37:02 +03:00
Torsten Ruger
6ac339d998 catching empty blocks
should really clean those away
2015-10-22 15:34:47 +03:00
Torsten Ruger
b932f67da0 fixing tests
because interpreter was fixed
2015-10-22 14:51:20 +03:00
Torsten Ruger
3895ac624c fix offsets, debugging revealed them to be 1 off 2015-10-22 11:48:03 +03:00
Torsten Ruger
4ca15449be test and fix arg passing offset too 2015-10-22 11:32:37 +03:00
Torsten Ruger
13b8d0645f tests for offset fix 2015-10-22 11:02:57 +03:00
Torsten Ruger
db5c37bc55 fix while syntax and test 2015-10-19 16:37:12 +03:00
Torsten Ruger
99cff3aa32 fix the if syntax and branches 2015-10-19 16:22:24 +03:00
Torsten Ruger
1fd937927c adjust branch names
IsXXX  with xxx as condition, same as after if_xxx
AlwaysBranch is back to Branch
2015-10-19 16:08:00 +03:00
Torsten Ruger
50379a1fea update to new syntax and patch tests
basic semantics remain, but have to improve test for new functionality
that has to be written for new branch types
2015-10-19 15:31:48 +03:00
Torsten Ruger
bdcd0f297d first interpreted tests, fix branch issues
whole branch logic wobbly
better syntax needed, but working(ish) for now
2015-10-19 14:46:12 +03:00
Torsten Ruger
d767caf479 remove MethodCall and thus all virtual instructions 2015-10-18 19:27:46 +03:00
Torsten Ruger
15b570f5cf removing passes (before arm)
collector becomes a function
minimizer unused
2015-10-18 19:27:02 +03:00
Torsten Ruger
fa4949fc80 remove MethodEnter Instructions
only resolved to SaveReturn anyway
also Halt instruction wasn’t used, gone
passes changed to start at register
2015-10-18 17:39:35 +03:00
Torsten Ruger
8bf1337043 Remove MethodReturn instruction
and pass
and fix all tests
move towards removing all vm instructions
2015-10-18 17:32:32 +03:00
Torsten Ruger
6c7e4c0fe2 stop pinning self and frame
before: r0-message , r1-self , r2-frame , r3-new_message , r4 + tmps
now: r0-message , r1-new_message , r2 + tmps
programs got smaller, less fuss
also fix in return implementation that got the address from the wrong
message
2015-10-18 17:20:19 +03:00
Torsten Ruger
da5502e301 minor 2015-10-17 19:36:00 +03:00
Torsten Ruger
4ce4775902 fix layout
amazing at this stage, but yet another index error
the strange (and wonderful) thing is that changing the return
of the one function just shifts the variables and everything else
stays intact. Thus are the wonders of object orientation
2015-10-17 10:03:39 +03:00
Torsten Ruger
17545d1525 fix add test 2015-10-16 21:42:11 +03:00
Torsten Ruger
3e79e5cf8e fix code duplication 2015-10-16 19:18:37 +03:00
Torsten Ruger
5131e5d050 formatted interpreter tests
little helper to output the classes
2015-10-16 19:04:17 +03:00
Torsten Ruger
dc3920580b bit more cleaning of testing 2015-10-16 18:34:54 +03:00
Torsten Ruger
3b07f625a7 fix another order dependant issue 2015-10-16 17:58:07 +03:00
Torsten Ruger
5e04ee7212 bitten by test order, fixed 2015-10-16 17:17:39 +03:00
Torsten Ruger
bd2bf612ac fixed last test
back in the green
2015-10-16 17:13:08 +03:00
Torsten Ruger
a6712fc4f9 add call statement tests 2015-10-16 13:20:21 +03:00
Torsten Ruger
84eb516a01 add while statement tests 2015-10-16 13:17:02 +03:00
Torsten Ruger
349352faa9 minor 2015-10-16 13:12:52 +03:00
Torsten Ruger
6f856315d7 fix and test assign
also fix field def and
externalized assign
2015-10-15 13:08:53 +03:00
Torsten Ruger
398ec513f4 wrap in register module for shorter result names 2015-10-15 10:24:10 +03:00
Torsten Ruger
90ed4dd73b test return statement 2015-10-15 10:21:07 +03:00
Torsten Ruger
f8efdd910c basic if statement tests 2015-10-15 09:47:11 +03:00
Torsten Ruger
3d83f203ca fixing and testing operators 2015-10-15 09:32:47 +03:00
Torsten Ruger
e436581ce8 adds value to used regs and test for it 2015-10-15 09:07:47 +03:00
Torsten Ruger
300ce24739 remove function test from here and use setup
function definition is a statement, goes there
2015-10-14 21:57:37 +03:00
Torsten Ruger
2094101bb2 clearer organization for compiler tests
was slightly messy with small/large
now needed different test for expression and statements
2015-10-14 21:49:05 +03:00
Torsten Ruger
0c8be466df fix parfait test 2015-10-14 21:36:51 +03:00
Torsten Ruger
f105b1eb3c fix name expression 2015-10-14 21:34:18 +03:00
Torsten Ruger
1141ed9c99 type now means class name
update reader (with new type definition)
remove type class (now symbol)
update all types to class name symbols
2015-10-14 16:16:03 +03:00
Torsten Ruger
d8a5dc147b new function test and scoping fix 2015-10-14 15:17:33 +03:00
Torsten Ruger
1ea34481c1 define putting dummy to fix test 2015-10-14 15:08:42 +03:00
Torsten Ruger
e33a20dd41 minor housekeeping 2015-10-14 13:48:42 +03:00
Torsten Ruger
5b95319191 almost rewritten the call site
statements resolve to nothing and use all registers
expressions return register and allocate those with use_reg
2015-10-14 13:48:21 +03:00
Torsten Ruger
5122137a33 start new elf testing category (and minors) 2015-10-13 17:30:39 +03:00
Torsten Ruger
f506f95cbf fixing basic and field access to return register
as that is the new way, drop a layer, code to registers
2015-10-13 16:42:53 +03:00
Torsten Ruger
80d58ee03c fixed simple layout offset bug in layout 2015-10-13 14:46:07 +03:00
Torsten Ruger
3c7c8dea92 add basic compiler tests 2015-10-10 12:29:52 +03:00
Torsten Ruger
3d342f7d88 remove new_message instruction 2015-10-10 12:04:34 +03:00
Torsten Ruger
c3eb295f4e remove set optimization
will become obsolete soon anyway
2015-10-10 11:52:54 +03:00
Torsten Ruger
c20ab21bbd improve tests 2015-10-10 10:02:28 +03:00
Torsten Ruger
530537de1a improve fragment checks 2015-10-09 21:53:22 +03:00
Torsten Ruger
024e6cb389 ion out last changes from grammar update
surprisingly painless, considering it was more or less a rewrite
2015-10-09 18:06:00 +03:00
Torsten Ruger
4c17ed2e6e update the reader rewrite and reflect name changes 2015-10-09 17:51:14 +03:00
Torsten Ruger
99098951ca rename bosl to phisol 2015-10-07 15:22:47 +03:00
Torsten Ruger
e669489419 went over the various readmes 2015-10-07 11:32:48 +03:00
Torsten Ruger
88fc4c0e47 clean up more tests 2015-10-07 10:53:45 +03:00
Torsten Ruger
c1d31a541d improve method test
mostly by actually testing main, which is what is checked
2015-10-07 10:43:08 +03:00
Torsten Ruger
cd96e78e2d small fix 2015-10-07 10:22:45 +03:00
Torsten Ruger
513bc8d7cf fix more disabled tests 2015-10-07 10:19:25 +03:00
Torsten Ruger
83ef902b55 better calcite and operator to expand the interpreter test 2015-10-07 10:05:34 +03:00
Torsten Ruger
af6366f2d1 small fixes to make tests pass again 2015-10-07 10:04:55 +03:00
Torsten Ruger
4e26166dff fix type in call issue 2015-10-06 15:26:57 +03:00
Torsten Ruger
f4a4ccb98e several larger changes came together, bit of cleaning too
- all code must be in functions (which must be in classes).
— changes a fair few tests
— also changes api, as method is not recursive, not passed around
- all state in instance vars in compiler (no accessors)
- class is another such variable, surely more coming
all green again
2015-10-06 00:27:13 +03:00
Torsten Ruger
4186405930 new i_to_s test 2015-09-27 22:39:10 +03:00
Torsten Ruger
259b0afa96 improve tests 2015-09-27 20:28:34 +03:00