Commit Graph

656 Commits

Author SHA1 Message Date
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