0f8f0a681c
fix padding to only consider layout (1 word)
2015-11-03 16:22:50 +02:00
ca1dc36e3d
method marking for labels
2015-11-03 16:22:24 +02:00
1be5d1862f
need to collect labels for return
...
so the interpreter can find the object
2015-11-03 11:22:26 +02:00
bc414fd3e8
function call now saves the return address before calling
...
that means SaveReturn is obsolete (breaks loads of tests)
first step towards multi - return which obviously can not have the
callee save return address.
In fact this would make FunctionCall redundant too, as it is really
just a branch
2015-11-03 11:20:49 +02:00
834266e11e
improve label names a bit
2015-11-01 19:13:40 +02:00
7e24f63327
polish sources
2015-10-29 22:31:28 +02:00
7d7b7ca995
adding types to layout
...
so we can test assignment
2015-10-29 12:45:29 +02:00
e4201143b3
last fixes from source change
2015-10-28 21:40:48 +02:00
e6743c7216
(string) source knockoffs
2015-10-28 21:39:59 +02:00
bdb4a40f9c
only string and ast allowed as source
2015-10-28 21:38:23 +02:00
191be8d2f6
use compiler to generate methods and their instructions
2015-10-28 21:37:42 +02:00
99a695907c
move method_source functionality into compiler
...
the source was there long before the compiler (sis language) came along
and was basically doing the same
Much clearer concept with using compiler to generate methods and code
Also move compile method to method
2015-10-28 21:36:41 +02:00
c245272e52
don't export current
2015-10-28 14:37:40 +02:00
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
72b790c107
remove method source receiver
...
no harm done it seems
2015-10-28 14:24:14 +02:00
e75517ff05
move constants to machine
2015-10-28 13:00:23 +02:00
7e0778dc70
remove return_type
...
soon to be obsolete with multi returns
2015-10-28 12:19:10 +02:00
79cf59c4e2
still finding index errors
2015-10-27 18:45:56 +02:00
50029711ff
make frame and message indexed
...
also auto generate a replacement for previous offset class method (dry)
2015-10-27 16:04:36 +02:00
624699f8ed
minor
2015-10-26 15:14:38 +02:00
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
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
dc58dbe2fe
little clean
2015-10-26 13:02:08 +02:00
4cadfc9ea9
shortening some methods, removing object prefix
2015-10-26 12:58:38 +02:00
1a236aa50e
make binary code indexed (not derive from word)
...
still some work to be done there, as we should really have a byte buffer
2015-10-26 12:24:47 +02:00
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
df62b75c6f
adding an instance for the length of lists
2015-10-25 20:44:03 +02:00
c1ee67038c
internally objects stop changing size
2015-10-25 20:43:13 +02:00
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
0d001ec0fc
rename super_clsas to super_class_name
...
as it should have been
2015-10-25 15:32:38 +02:00
f22eca053d
split create method
...
to allow class methods to use the other half
2015-10-25 15:04:40 +02:00
7a690cd38d
fix to_s
2015-10-25 12:10:56 +02:00
0921073025
remove last block occurrences
...
fixed.
2015-10-25 12:03:31 +02:00
471329917b
most of the length and assembly stuff fixed
2015-10-25 10:54:19 +02:00
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
3774f8a5a2
use translator and remove passes
...
the only passes that were left were reg -> arm
those are almost completely one to one, so the idea of passes didn’t fit
2015-10-24 17:11:18 +03:00
a871f96630
remove passes and achieve the same by translating
2015-10-24 11:42:36 +03:00
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
f1f56f0d4e
remove parfait module
...
which was only there because ruby has it
the concept is flawed and should be split into namespace and aspect
2015-10-23 15:20:02 +03:00
6754518daf
prune builtin
...
will need much less, many more things can be expressed in soml
2015-10-23 15:13:05 +03:00
897e11ce80
store three versions of the code in method
...
source, instructions and binary
2015-10-23 14:41:47 +03:00
e0c5bc4c11
rename phisol to soml
2015-10-23 14:22:55 +03:00
991cc0519f
create add_code helper and some cleaning
2015-10-23 14:08:12 +03:00
dcbd3c7091
fold last of the virtual into register
2015-10-22 18:16:29 +03:00
f658ecf425
bit of cleaning, updated readme
2015-10-22 17:38:49 +03:00
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
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
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
d767caf479
remove MethodCall and thus all virtual instructions
2015-10-18 19:27:46 +03:00
8bf1337043
Remove MethodReturn instruction
...
and pass
and fix all tests
move towards removing all vm instructions
2015-10-18 17:32:32 +03:00