Torsten Ruger
d2c670b31a
fixing offset bug
...
found by tests that overwrite the attribute
2015-10-26 12:57:54 +02:00
Torsten Ruger
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
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
bb3d211c04
layout moves to 0
...
no more type word, only layout
2015-10-25 20:44:30 +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
92fe12a0d1
move methods back to the module
...
easier to read and debug
2015-10-25 19:32:36 +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
3318b5026c
externalizing list functionality
...
redefining it with define_method and adding it dynamically to the list
gotta love ruby for it
2015-10-25 18:40:17 +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
f22eca053d
split create method
...
to allow class methods to use the other half
2015-10-25 15:04:40 +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
0921073025
remove last block occurrences
...
fixed.
2015-10-25 12:03:31 +02:00
Torsten Ruger
471329917b
most of the length and assembly stuff fixed
2015-10-25 10:54:19 +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
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
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
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
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
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
991cc0519f
create add_code helper and some cleaning
2015-10-23 14:08:12 +03:00
Torsten Ruger
dcbd3c7091
fold last of the virtual into register
2015-10-22 18:16:29 +03:00
Torsten Ruger
f658ecf425
bit of cleaning, updated readme
2015-10-22 17:38:49 +03:00
Torsten Ruger
6ac339d998
catching empty blocks
...
should really clean those away
2015-10-22 15:34:47 +03:00
Torsten Ruger
83670079c3
resetting registers to prevent overflow
2015-10-22 14:50:58 +03:00
Torsten Ruger
2842c903e1
fix integers and clock reset
2015-10-22 14:42:23 +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
ede0fe5f16
fix indexing when accessing locals or args
...
Was missing the offset of object variables
2015-10-22 11:02:46 +03:00
Torsten Ruger
a44b88f570
trigger on state change
...
also make states symbols
2015-10-21 14:07:29 +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
ae21feb6dc
minor
2015-10-18 17:20:25 +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
13eb017394
small to_s changes
2015-10-17 10:03:56 +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