Commit Graph

1518 Commits

Author SHA1 Message Date
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
bb3d211c04 layout moves to 0
no more type word, only layout
2015-10-25 20:44:30 +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
92fe12a0d1 move methods back to the module
easier to read and debug
2015-10-25 19:32:36 +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
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
b7d0ee8f99 wit metaclass and class functions
needs to go back to arrays first
2015-10-25 15:40: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
7de2f913a0 more class tests 2015-10-25 13:19:18 +02:00
12e31f28c2 fix and test class definition 2015-10-25 12:31:35 +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
6ac339d998 catching empty blocks
should really clean those away
2015-10-22 15:34:47 +03:00
83670079c3 resetting registers to prevent overflow 2015-10-22 14:50:58 +03:00
2842c903e1 fix integers and clock reset 2015-10-22 14:42:23 +03:00
3895ac624c fix offsets, debugging revealed them to be 1 off 2015-10-22 11:48:03 +03:00
4ca15449be test and fix arg passing offset too 2015-10-22 11:32:37 +03:00
ede0fe5f16 fix indexing when accessing locals or args
Was missing the offset of object variables
2015-10-22 11:02:46 +03:00
a44b88f570 trigger on state change
also make states symbols
2015-10-21 14:07:29 +03:00
db5c37bc55 fix while syntax and test 2015-10-19 16:37:12 +03:00
99cff3aa32 fix the if syntax and branches 2015-10-19 16:22:24 +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
15b570f5cf removing passes (before arm)
collector becomes a function
minimizer unused
2015-10-18 19:27:02 +03:00
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
8bf1337043 Remove MethodReturn instruction
and pass
and fix all tests
move towards removing all vm instructions
2015-10-18 17:32:32 +03:00
ae21feb6dc minor 2015-10-18 17:20:25 +03:00
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
da5502e301 minor 2015-10-17 19:36:00 +03:00
13eb017394 small to_s changes 2015-10-17 10:03:56 +03:00
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
3e79e5cf8e fix code duplication 2015-10-16 19:18:37 +03:00
dc3920580b bit more cleaning of testing 2015-10-16 18:34:54 +03:00
aaaef6e3d7 there go the slots
addressing them now directly in get/set slot
idea is still valid, but express objects not needed/used anymore
2015-10-16 18:16:39 +03:00