Commit Graph

1836 Commits

Author SHA1 Message Date
Torsten Ruger
9ebe28450b add global variable space
could in the long run move spaces functionality to the class
and since the class is global anyway, wouldn’t need this
2015-11-07 12:19:04 +02:00
Torsten Ruger
fd7e4afb2f small meta related changes 2015-11-07 00:14:10 +02:00
Torsten Ruger
46e1a112ab metaclass moves down to object 2015-11-07 00:12:17 +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
4eb3d9029a use logger 2015-11-05 16:50:00 +02:00
Torsten Ruger
13d0747b45 test the log_level too 2015-11-05 14:05:12 +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
ff759bf0c1 increase message size
message size is somewhat like stack size,
but 1-1 related to how deep it can be, now 50 calls
2015-11-05 12:12:15 +02:00
Torsten Ruger
642dcb065a fix while statement
logic was broken, or inversed
had to lay the code out a bit funny, but it works and makes sense
2015-11-04 20:23:26 +02:00
Torsten Ruger
ab2c73f42c right name for return label makes interpreter work 2015-11-04 20:22:28 +02:00
Torsten Ruger
691ae96d71 fix names of branch codes
also store objects in register, avoid the whole object_id thing which
just lead to unclarity about class
2015-11-04 20:22:03 +02:00
Torsten Ruger
428faad25f opal fix for indexes 2015-11-04 16:11:25 +02:00
Torsten Ruger
b5e733cd11 finally simple logging
instead of commenting puts
2015-11-04 11:48:51 +02:00
Torsten Ruger
2236065d02 position filling after the padding changes, works again 2015-11-04 10:34:58 +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
6ada815735 first stab at fixing the assembly
lots of length fiddling
wip
2015-11-03 16:24:12 +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
c15445a958 let labels be constants 2015-11-03 16:20:25 +02:00
Torsten Ruger
5a8d7d313f little more tests 2015-11-03 11:23:15 +02:00
Torsten Ruger
c940e25f91 other half of previous call change 2015-11-03 11:22:52 +02:00
Torsten Ruger
1be5d1862f need to collect labels for return
so the interpreter can find the object
2015-11-03 11:22:26 +02:00
Torsten Ruger
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
Torsten Ruger
cffbc91821 fix field_def to new syntax 2015-11-02 21:27:37 +02:00
Torsten Ruger
45bd4bfdc6 remove save return 2015-11-02 20:11:12 +02:00
Torsten Ruger
ddb1df7362 start to fix the link issue
that came from removing SaveReturn
2015-11-02 20:10:48 +02:00
Torsten Ruger
86b0030f15 refactor on_call 2015-11-02 17:32:21 +02:00
Torsten Ruger
834266e11e improve label names a bit 2015-11-01 19:13:40 +02:00
Torsten Ruger
d3a7809746 use . to mark methods 2015-10-30 00:01:28 +02:00
Torsten Ruger
7e24f63327 polish sources 2015-10-29 22:31:28 +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
e6743c7216 (string) source knockoffs 2015-10-28 21:39:59 +02:00
Torsten Ruger
c426f4a6d5 some of the sources methods belonged to method really 2015-10-28 21:38:52 +02:00
Torsten Ruger
bdb4a40f9c only string and ast allowed as source 2015-10-28 21:38:23 +02:00
Torsten Ruger
191be8d2f6 use compiler to generate methods and their instructions 2015-10-28 21:37:42 +02:00
Torsten Ruger
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
Torsten Ruger
c245272e52 don't export current 2015-10-28 14:37:40 +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
72b790c107 remove method source receiver
no harm done it seems
2015-10-28 14:24:14 +02:00
Torsten Ruger
e75517ff05 move constants to machine 2015-10-28 13:00:23 +02:00
Torsten Ruger
7e0778dc70 remove return_type
soon to be obsolete with multi returns
2015-10-28 12:19:10 +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
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
Torsten Ruger
fdc7f8b39c small opal fix
the return didn’t work
but couldn’t reproduce in opal try
2015-10-27 12:44:53 +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
a0944266c5 hack weird instantiation bug
self.instance_methods is not always set. tried but didn’t find why
any instantiating to circumvent
2015-10-26 17:23:02 +02:00
Torsten Ruger
624699f8ed minor 2015-10-26 15:14:38 +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
dc58dbe2fe little clean 2015-10-26 13:02:08 +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
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
Torsten Ruger
3e79e5cf8e fix code duplication 2015-10-16 19:18:37 +03:00
Torsten Ruger
dc3920580b bit more cleaning of testing 2015-10-16 18:34:54 +03:00
Torsten Ruger
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
Torsten Ruger
64a92fb9f4 remove dead code
was only used by now removed set instruction
2015-10-16 18:07:17 +03:00
Torsten Ruger
3a622efe9a remove virtual new_frame instruction
resolved to one register instruction, not worth the hassle
2015-10-16 17:58:42 +03:00
Torsten Ruger
9ae850e3b2 remove unused set instruction 2015-10-16 17:45:24 +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
0cf0b35853 remove call_site value dependency
Revisit for optimization, now irrelevant
2015-10-16 13:13:56 +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
0179638f0e cleaning 2015-10-15 10:27:06 +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
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
d899d542a4 checking return type is a type 2015-10-14 14:02:34 +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
82d6ebf392 giving the register_value it's value
though not used yet
2015-10-14 13:45:46 +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
aa20f2ca77 renamed reg ref to reg val
more appropriate
alas, salaam-arm will break for a sec
2015-10-10 21:38:55 +03:00
Torsten Ruger
dd3381e38b move type to phial and add type to reg_ref 2015-10-10 19:14:27 +03:00
Torsten Ruger
cb306c09f0 stash unused 2015-10-10 12:39:09 +03:00
Torsten Ruger
20ccf58e7c move and remove unused from stream reader/writer 2015-10-10 12:24:43 +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
8642207158 remove instance_get instruction 2015-10-10 11:17:04 +03:00
Torsten Ruger
4334b68736 remove virtual main instruction
on a quest to remove all virtual instructions
2015-10-10 11:14:31 +03:00
Torsten Ruger
4b8a4d4ef5 improve tmp register usage 2015-10-10 11:05:55 +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
02e9975ad6 fix case (from replace) 2015-10-07 15:25:11 +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
cd96e78e2d small fix 2015-10-07 10:22:45 +03:00
Torsten Ruger
83ef902b55 better calcite and operator to expand the interpreter test 2015-10-07 10:05:34 +03:00
Torsten Ruger
cc89e49a43 renames SelfSlot to SelfsSlot
in the hope to make a little more distinction
2015-10-07 10:04:00 +03:00
Torsten Ruger
f0611e52db work on branches
the concept is different in bosl, move appropriate to virtual
2015-10-07 10:02:51 +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
501da4d922 ignore 1.9.3
something with the integer encodings doesn’t quite sync
2015-09-27 22:56:20 +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
Torsten Ruger
6e009cc6df remove send instruction 2015-09-27 19:18:36 +03:00
Torsten Ruger
eb57eb4d41 minor send fixes 2015-09-27 19:07:56 +03:00
Torsten Ruger
bb8a57f5a5 remove send , move into call_site (resolve to calls) 2015-09-27 19:07:12 +03:00
Torsten Ruger
252c0ccdca finish typing variables 2015-09-27 16:06:48 +03:00
Torsten Ruger
26c6db17b1 better inspect 2015-09-27 16:06:11 +03:00
Torsten Ruger
18935366fe introducing class variable and typed arguments 2015-09-27 14:30:41 +03:00
Torsten Ruger
94c08f7129 small clean 2015-09-27 14:07:02 +03:00
Torsten Ruger
dba94827ec remove tmp variables
sadly without having to touch tests
2015-09-27 14:00:24 +03:00
Torsten Ruger
5a2a857485 finish the field access
now that fields can be defined
2015-09-27 12:59:50 +03:00
Torsten Ruger
964abe1e32 small cleans 2015-09-27 12:59:26 +03:00
Torsten Ruger
6bdbfcde60 update reader and implement class field 2015-09-27 12:58:54 +03:00
Torsten Ruger
b99b392481 new field access code and test. wip as field def broken 2015-09-27 11:28:06 +03:00
Torsten Ruger
c4f89441e2 cleaning 2015-09-27 11:27:30 +03:00
Torsten Ruger
4d9d67af5c move ast code/patch here 2015-09-27 11:26:53 +03:00
Torsten Ruger
9fe01c7b31 remove unknown type 2015-09-23 18:35:37 +03:00
Torsten Ruger
b1cab4f395 compiler test back up 2015-09-20 17:33:05 +03:00
Torsten Ruger
5f628744d6 more test working
operator wip
2015-09-20 16:52:26 +03:00
Torsten Ruger
77f0a08060 update and fix class compilation 2015-09-20 16:30:39 +03:00
Torsten Ruger
f2fc9c5f89 new field def compiles, fix test 2015-09-20 16:30:07 +03:00
Torsten Ruger
bc70c1efe5 temporarily disabling test that haven't been fixed yet 2015-09-19 22:24:57 +03:00
Torsten Ruger
775bca50ac switching to ast::processor
using instance methods instead of context
2015-09-19 18:56:18 +03:00
Torsten Ruger
3a885a8e46 more expressions and if test 2015-09-19 17:57:44 +03:00
Torsten Ruger
9bacb07f1c add some ast sugar 2015-09-19 17:57:31 +03:00
Torsten Ruger
2061097e88 move compiler to bosl and get first test working (adjusting syntax as i go) 2015-09-19 16:28:41 +03:00
Torsten Ruger
df95b8b54d trigger index for object changed 2015-08-23 02:14:16 +02:00
Torsten Ruger
c039f3d6e6 fix the string warning raises 2015-08-17 02:37:07 +03:00
Torsten Ruger
4e56056b62 better test for add 2015-08-09 00:53:04 +03:00
Torsten Ruger
bae7f5dcb1 better to_s for load constant 2015-08-09 00:52:47 +03:00
Torsten Ruger
db31ff7021 implement adding in interpreter 2015-08-09 00:52:27 +03:00
Torsten Ruger
5d838056fa small rename and new test for layout 2015-08-08 18:08:47 +03:00
Torsten Ruger
ca14ef8914 fix test result, but not test yet 2015-08-07 16:46:55 +03:00
Torsten Ruger
4afd7f78ca fix the plus method that sneaked into arm 2015-08-06 18:55:08 +03:00
Torsten Ruger
9ebe6eb5b7 move to clss names as types
so as not to mix ruby class names into parfait code
2015-08-06 18:28:40 +03:00
Torsten Ruger
75c43d1b03 add fixnum as constant (was buggy) 2015-08-06 18:28:09 +03:00
Torsten Ruger
2f39f707f0 better naming 2015-08-06 18:27:35 +03:00
Torsten Ruger
2c6ca7b4f2 small checks 2015-08-06 18:27:25 +03:00
Torsten Ruger
8560f15c87 plus function, indentation 2015-08-05 18:49:37 +03:00
Torsten Ruger
21b0702154 fix tests (just using local gem) 2015-08-04 22:01:20 +03:00
Torsten Ruger
9680ff2a71 fxes for add test 2015-08-04 21:46:33 +03:00
Torsten Ruger
96c7b7133d no more partial boots, always full reboot
otherwise tests are not indepant
2015-07-30 19:19:37 +03:00
Torsten Ruger
8ab9a417aa minors 2015-07-30 19:18:41 +03:00
Torsten Ruger
7216300452 add interpreter here (moved from debugger) 2015-07-30 19:18:12 +03:00
Torsten Ruger
3fb08acf3f better tests to find sneaky module bug 2015-07-28 16:19:10 +03:00
Torsten Ruger
5fd04ee0c5 shuffling and rename dummy 2015-07-28 16:18:32 +03:00
Torsten Ruger
36f635f7c1 adding sources to register instructions 2015-07-27 12:13:39 +03:00
Torsten Ruger
f91c9fabe8 fix block initialization 2015-07-26 18:28:39 +03:00
Torsten Ruger
e7b8f2fcc8 critical bug from array/list mix up 2015-07-26 18:27:54 +03:00
Torsten Ruger
b0c78479ff clearer to_s s 2015-07-25 09:30:58 +03:00
Torsten Ruger
772212bad9 fix the reg test (one off) 2015-07-24 17:23:44 +03:00
Torsten Ruger
139b0174d8 to_s for reg instructions 2015-07-24 13:23:56 +03:00
Torsten Ruger
fa552bf751 opal only bug, deleting while iterating over array 2015-07-23 17:15:07 +03:00
Torsten Ruger
2f409ea4e1 more dead code goes 2015-07-21 20:24:31 +03:00
Torsten Ruger
074f3af174 uncomment dead code
it’s dead, unfair to say it’s untested.
percentage wise i mean
2015-07-21 19:57:38 +03:00
Torsten Ruger
e3577d18af fix that silly mistake that made the percentage plummet
mostly due to the fact that object is a hash now,
not array. Took a while though
2015-07-21 19:41:30 +03:00
Torsten Ruger
2d0424a370 turned out to be a rewrite of boot process
and also attribute handling and fake_memory
luckily there are tests and all is green again
2015-07-21 15:40:25 +03:00
Torsten Ruger
f8cb33ec5e test ivar name list 2015-07-20 13:20:43 +03:00
Torsten Ruger
2c1c38716b move from new_object to normal new 2015-07-20 13:01:15 +03:00
Torsten Ruger
d7c9245bb3 more fragment tests 2015-07-19 13:31:13 +03:00
Torsten Ruger
31d825df7b fix and test basic and name expressions 2015-07-19 13:20:34 +03:00
Torsten Ruger
48d090f19c test return. remove some dead code 2015-07-19 13:03:21 +03:00
Torsten Ruger
db17a9b696 fix function and class compile
also fix misconception: methods do not have to be added to class by
called
that is a side effect from compiling a method
2015-07-19 12:34:23 +03:00
Torsten Ruger
849a92a909 splitting out the compile_name expression 2015-07-19 12:31:35 +03:00
Torsten Ruger
cbff41b61d test name expr 2015-07-19 11:15:38 +03:00
Torsten Ruger
0a09477dc6 fix and test compiling classes 2015-07-19 10:36:06 +03:00
Torsten Ruger
ae7350bd57 redefining a methods is not an error
and happens in tests
2015-07-19 10:35:45 +03:00
Torsten Ruger
a554762da8 fix the compile while test 2015-07-18 19:02:54 +03:00
Torsten Ruger
3d8fc8819c fix rebooting by clearing our main 2015-07-18 16:12:50 +03:00
Torsten Ruger
b83f50c57c rebooting tests for small compiles 2015-07-18 15:28:57 +03:00
Torsten Ruger
7b1e89effb get fragment tests back online
the 58%  REALLY doesn’t look good
and things have settle down, so no more excuses
2015-07-18 14:33:09 +03:00
Torsten Ruger
f4f703975b removed arm and use as gem 2015-07-18 14:12:20 +03:00
Torsten Ruger
e1c19dee80 remove old to_asm
very strange that is was called in 1.9 but not 2.0
2.0 seems to delay interpolating strings
2015-07-18 12:15:07 +03:00
Torsten Ruger
46de0f278e fix the boot
was broken for unknown reason really
2015-07-18 11:53:04 +03:00
Torsten Ruger
f5136b6b68 minor formatting 2015-07-18 11:52:30 +03:00
Torsten Ruger
53d8f4b163 add source to instruction
for debug
2015-07-18 11:21:49 +03:00
Torsten Ruger
50da6a40f2 Move the Main instruction from register to virtual
also needs a branch in register.
This way the register level is self sufficient
(noticed while writing debugger)
2015-07-17 13:21:57 +03:00
Torsten Ruger
60d09ab057 fix for opal
in opal string and symbol is the same.
2015-07-17 11:40:40 +03:00
Torsten Ruger
9a48ab1330 fix eval for opal consumption 2015-07-17 11:39:20 +03:00
Torsten Ruger
b670e058a9 fixes to get opal to work
opal has bug with << and |=, but changing syntax works
2015-07-12 10:01:45 +03:00
Torsten Ruger
ae97425918 reminder 2015-07-04 14:34:51 +03:00
Torsten Ruger
b61c73acdd renamed info to MethodSource 2015-07-03 20:13:03 +03:00
Torsten Ruger
e959c5b0f5 fixed wrong exit code
no wonder it was set faulting, duh
2015-07-02 13:50:13 +03:00
Torsten Ruger
4f2f56fff8 minors 2015-07-02 13:49:33 +03:00
Torsten Ruger
69781fb505 remoe sys call message
and rely on linux to restore all registers
save message in r8
2015-07-02 13:48:32 +03:00
Torsten Ruger
9a6c5d9ea8 wordlnegth is not +1 for string as no trailing 0 2015-07-02 13:47:46 +03:00
Torsten Ruger
caa4ae1cf0 new tests for space
finds the bug in message creation!
2015-07-02 11:09:23 +03:00
Torsten Ruger
9ca5ddf7c0 fix all tests
some had to be disabled
since stability is coming back more test are coming too
2015-07-02 10:26:48 +03:00
Torsten Ruger
3195d800e9 fix putstring file descriptor 2015-07-02 09:49:52 +03:00
Torsten Ruger
11997ef354 had to revert name method change
method is not known when message is created
2015-07-02 09:48:41 +03:00
Torsten Ruger
7136450bde move put string to string where it belongs 2015-07-01 21:45:41 +03:00
Torsten Ruger
f8ba77dff7 fix require 2015-07-01 21:45:21 +03:00
Torsten Ruger
1b791dc0d0 putstring was missing the steam id 2015-07-01 21:42:59 +03:00
Torsten Ruger
8f0fd30ef3 small name update 2015-07-01 21:42:31 +03:00
Torsten Ruger
6a23ef8b26 storing method, not just name in message
goes with a rename and other admin
2015-07-01 19:39:23 +03:00
Torsten Ruger
5e85d0781f have to retry in assembler
can raise several times, calling once was not enough
tbr: to be revisited
2015-07-01 19:36:18 +03:00
Torsten Ruger
60fe0dfd1c separate New frame and message
and also much much shorter now, as all is static
2015-07-01 19:27:52 +03:00
Torsten Ruger
135fcaa8fa static message chain
Rewrote Message + frame, only static linked list needed, not dynamic
frames either
2015-07-01 19:27:18 +03:00
Torsten Ruger
fb67f550ec more index fixes, this time arguments 2015-07-01 09:48:20 +03:00
Torsten Ruger
4c315a8115 fix the autocomplete 2015-07-01 09:47:37 +03:00
Torsten Ruger
047c77e186 fixed that darn method address bug 2015-07-01 09:47:10 +03:00
Torsten Ruger
9541712af8 fixing all the indexes
with the type word and layout
but the list starting at 1, indexes still need 1 added
and for arm x 4.
Tried to get all that into one function, resolve_index
2015-06-30 18:38:56 +03:00
Torsten Ruger
88f45cbf15 weird 4 to add for call works 2015-06-30 18:36:57 +03:00
Torsten Ruger
c0f11d70f1 rephrased the retry, didnt find the bug though 2015-06-30 18:35:37 +03:00
Torsten Ruger
b9e2d4dd21 remove some debug 2015-06-30 10:22:54 +03:00
Torsten Ruger
7e9b940890 add init_message to space
so kernel::__init can use that and the first next_message does not need
to be reused
2015-06-30 09:52:17 +03:00
Torsten Ruger
df2a080bd0 move register_machine to register 2015-06-30 09:46:11 +03:00
Torsten Ruger
ee2294ded7 remove unused reference 2015-06-30 09:45:45 +03:00
Torsten Ruger
60c8f8ef73 move generator functions to the instructions they generate 2015-06-30 09:43:50 +03:00
Torsten Ruger
bd77db656a remove class_eval on slots to map registers
Use their class names (or for now called object names)
these are the same that Register helper functions accept already anyway
2015-06-30 09:39:45 +03:00
Torsten Ruger
c4502c5030 get rid of the last constants
return them by method, nicer code
2015-06-30 09:38:32 +03:00
Torsten Ruger
b8090e0ecd fix init to load into new message 2015-06-30 09:37:25 +03:00
Torsten Ruger
3a6d3143c5 change method debug format for gdb autocomplete 2015-06-30 09:37:01 +03:00
Torsten Ruger
0f2c8e4201 finally scoping builtin to register
had put this off because it breaks history
but now the references to register stuff which
builtin is off course full of, become much shorter
2015-06-29 21:03:58 +03:00
Torsten Ruger
a03dcecbbd fix namespacing and remove indexes 2015-06-29 20:58:52 +03:00
Torsten Ruger
553f30c874 more ripples from removing index constants 2015-06-29 20:58:06 +03:00
Torsten Ruger
1e18db00c9 add set_slot and save_return
as functions to generate instructions
2015-06-29 20:57:16 +03:00
Torsten Ruger
a24e96efbc asserts to debug 2015-06-29 20:56:11 +03:00
Torsten Ruger
218fafca05 renames 2015-06-29 20:55:45 +03:00
Torsten Ruger
5ce7b6c7c9 removing those ugly slot index constants
The constants were bad enough,
but they were also at the wrong level

Now register level is defining mappings from
symbol names to indexes, by using the layout
2015-06-29 10:55:22 +03:00
Torsten Ruger
06b5d24729 fixing require order
so Register stuff is defined when builtin is loaded
2015-06-29 10:53:27 +03:00
Torsten Ruger
a16abeb3e6 giving the method to return and save
so they can make decisions
like wether to create a frame or not
2015-06-28 22:03:21 +03:00
Torsten Ruger
02615db508 minor 2015-06-28 22:02:27 +03:00
Torsten Ruger
8674c322c4 correctly linking frames and messages 2015-06-28 22:02:07 +03:00
Torsten Ruger
31635d9747 fixing index issues 2015-06-28 22:01:13 +03:00
Torsten Ruger
99b59d920c constant fixes 2015-06-28 10:52:02 +03:00
Torsten Ruger
a00a49ecdb fix frame indexes 2015-06-28 10:50:47 +03:00
Torsten Ruger
ef42abe611 unifying register comstants
were in several files with different names
many files touched, but just renames
2015-06-27 21:16:46 +03:00
Torsten Ruger
97b4c469f8 fixing register order in some instructions
and their use
Arm is confusing as it has result as first arg
we use forward logic, i.e. from -> to
2015-06-27 20:09:21 +03:00
Torsten Ruger
add79e5157 use sod names for debug info 2015-06-27 20:08:07 +03:00
Torsten Ruger
294ea8de4f fix the move, correct for funny pipeline 2015-06-27 20:07:42 +03:00
Torsten Ruger
485d6566ad write object refs at offset
that is (only) the linux/arm offset off course
2015-06-27 15:17:15 +03:00
Torsten Ruger
d0d857bbe0 fix object loading
by (ahem) copying the code from MoveInst.
2015-06-26 20:36:00 +03:00
Torsten Ruger
5539d8fe32 just a little more precise 2015-06-26 20:35:16 +03:00
Torsten Ruger
e20fba61d9 allowing for relinking to add more instructions 2015-06-26 20:34:40 +03:00
Torsten Ruger
55b7ca83e1 fixing load constant
which needs to add to pc to get an object reference
2015-06-26 20:01:52 +03:00
Torsten Ruger
108cc8af45 minor cleanup 2015-06-26 20:00:50 +03:00
Torsten Ruger
37403f1139 fix misunderstood mov usage
When moving a reference (pointer) to a register
one needs to ADD to the pc
i.e. one needs an add, not mov instruction
2015-06-26 20:00:33 +03:00
Torsten Ruger
32e1903884 finished init routine
and better implemented sys calls
2015-06-25 16:31:09 +03:00
Torsten Ruger
cedc6e1b61 Fix parfait bug for word_length 2015-06-24 16:08:06 +03:00
Torsten Ruger
59188105ba finish syscall
works, even had to fix parfait bug to see
2015-06-24 16:07:27 +03:00
Torsten Ruger
1a82ebcd69 mor on sys call implementation 2015-06-23 19:55:54 +03:00
Torsten Ruger
2aba926f1f start on reworking sys calls 2015-06-22 22:48:42 +03:00
Torsten Ruger
9c21f4274d better names for index constants 2015-06-21 21:09:15 +03:00
Torsten Ruger
836089a249 clean up Get/SetSlot
document and make arguments consistent
2015-06-21 21:00:16 +03:00
Torsten Ruger
f3ee11fca5 simple set optimisation
the price of having simple code (generation) is that
it is sometimes stupid code that gets generated
Filter some of the really daft stuff out
2015-06-21 17:25:27 +03:00
Torsten Ruger
aafb179c61 move frame_impl to register 2015-06-21 17:23:15 +03:00
Torsten Ruger
3fe35e34ec fix slot constant access 2015-06-21 17:22:51 +03:00
Torsten Ruger
cdf17a73b2 changed Set order
from to seems more logical than to,from
2015-06-21 13:29:27 +03:00
Torsten Ruger
6867175bd1 slot docs and rename 2015-06-21 00:21:42 +03:00
Torsten Ruger
eeaf2d97de starting to clear up slots
mostly docs
2015-06-20 23:49:30 +03:00
Torsten Ruger
7551a16b6e pretty names for references 2015-06-19 19:50:53 +03:00
Torsten Ruger
a2bfaf1b2c remove memory from sod but keep layout 2015-06-19 13:11:40 +03:00
Torsten Ruger
87143091ca moved sod write method to module 2015-06-19 12:29:41 +03:00
Torsten Ruger
1baece99c7 split the pass runs to debug 2015-06-12 18:52:06 +03:00
Torsten Ruger
54c71fa216 split pass runs for debug in-between 2015-06-11 17:04:18 +02:00
Torsten Ruger
a1848a051d don't print binary codes in sof
keeps more readable and binary is really only useful with decompiler
2015-06-11 07:05:39 +02:00
Torsten Ruger
9b89f6cb16 move the pass running out of elf
and leave it up to user
later partial running planned
2015-06-11 07:04:55 +02:00
Torsten Ruger
ee6f9d733b rename Mystery
just unknown, mystery should be more difficult to find out.
After all we keep run time info, so just need unknown at compile time
2015-06-11 07:04:14 +02:00
Torsten Ruger
d8fa266b5d fix method call addresses
was jumping to the method
but needs to jump to the code of the method
2015-06-10 11:10:46 +02:00
Torsten Ruger
6f111a5ae0 fix the initial jump 2015-06-10 10:43:50 +02:00
Torsten Ruger
c9ec6e2f39 fix debug 2015-06-09 11:38:03 +02:00
Torsten Ruger
20b28077a1 we have executables again
they are missing their initial jump, but reassemble fi
2015-06-09 11:37:32 +02:00
Torsten Ruger
7818059734 remove dead code 2015-06-08 12:24:28 +02:00
Torsten Ruger
f8688cbe17 it actually assembles again 2015-06-08 12:19:53 +02:00
Torsten Ruger
0122585b3b fixed, nay, hacked list problem
lists were in object space but not liked due to
equality returning true
2015-06-08 11:52:56 +02:00
Torsten Ruger
5b3045e42a remove positioned copy paste 2015-06-08 11:37:20 +02:00
Torsten Ruger
575d19cb02 assembling layout 2015-06-07 10:06:08 +02:00
Torsten Ruger
13ab029cc5 word length fixes 2015-06-06 18:46:53 +02:00
Torsten Ruger
1c29fcfd43 mem_length to word/byte length
be more specific, and don’t include padding
2015-06-05 09:20:43 +03:00
Torsten Ruger
30d9aaf61b extract padding functions to module
and finally TEST them
its especially the brain bending stuff that needs tests
2015-06-04 08:22:38 +03:00
Torsten Ruger
4ddfcc4900 assembles more already 2015-06-03 10:01:59 +03:00
Torsten Ruger
3cdb3d513c move to basic types (not wrapped) 2015-06-02 09:05:27 +03:00
Torsten Ruger
aea8f20be5 more symbol related fixes 2015-06-01 17:31:35 +03:00
Torsten Ruger
5726d2c181 move machine to module level
makes for shorter, more concise, access
also remove one more bug possibility
(reinitiation)
2015-06-01 08:40:17 +03:00
Torsten Ruger
336e6c18de register reference creation got more complicated 2015-06-01 08:34:17 +03:00
Torsten Ruger
66f5dcf152 method stores constants 2015-06-01 08:33:51 +03:00
Torsten Ruger
f08d9659fc getting the symbols to work 2015-06-01 08:33:23 +03:00
Torsten Ruger
bee73801eb revert to symbols
Parfait::Words were nice, but endless problems with the fact that when
you write “String” you get a string.
Symbols take care of uniqueness at the same time
2015-05-31 18:34:18 +03:00
Torsten Ruger
5d870ef154 got it down to string equality/identity 2015-05-31 17:54:36 +03:00
Torsten Ruger
1509e7ba2f better assembly
but bug is still scuttling around there in
link/assembly process
2015-05-31 14:45:28 +03:00
Torsten Ruger
7a5cf03d73 minor fixes 2015-05-31 14:44:26 +03:00
Torsten Ruger
db5c958d2e fix lists first 2015-05-31 13:26:47 +03:00
Torsten Ruger
03bdc16810 fixed layouts
also moved objects to machine, from space
space has a list of objects, but implicit,
not as an explicit array
2015-05-31 13:02:29 +03:00
Torsten Ruger
aaa206fbca debugging missing layout 2015-05-31 11:07:49 +03:00
Torsten Ruger
deaa062062 start to minimize
filter unused methods
Filter works, need to remove still
2015-05-30 14:49:47 +03:00
Torsten Ruger
079306dbf8 move main to object (from kernel) 2015-05-30 14:49:10 +03:00
Torsten Ruger
24259fa18b fix method list (was still array) 2015-05-30 14:47:56 +03:00
Torsten Ruger
96a20ff554 add delete to list 2015-05-30 14:22:33 +03:00
Torsten Ruger
e651b57d08 homing in on line length 100 2015-05-30 12:20:39 +03:00
Torsten Ruger
33d464f032 minor 2015-05-30 11:56:47 +03:00
Torsten Ruger
bea10cc560 fix bug where layout wasn't initialized 2015-05-30 11:55:46 +03:00
Torsten Ruger
3e9e650764 fix arm tests 2015-05-29 12:47:49 +03:00
Torsten Ruger
73e5ec550a small fixes 2015-05-29 12:33:59 +03:00
Torsten Ruger
a46b2d5c56 update to use parfait not virtual
more ripples
reverting to integers (not virtual::integer)
2015-05-29 12:33:40 +03:00
Torsten Ruger
c28430698c get binary code to work 2015-05-28 21:10:27 +03:00
Torsten Ruger
5845bde33a binary code to its own class
makes linking easier
2015-05-26 20:17:43 +03:00
Torsten Ruger
96c59ac144 fixing assembly (wip)
main entry is the main problem, still polishing
2015-05-26 20:17:03 +03:00
Torsten Ruger
8413f6b470 smaller clean-ups 2015-05-25 18:48:35 +03:00
Torsten Ruger
4d0773ebae misc 2015-05-24 20:00:11 +03:00
Torsten Ruger
5670f07eac bit more on booting of the space 2015-05-24 19:59:19 +03:00
Torsten Ruger
2ccbea04b9 fixing assembly
position code changed and linking too
passes not working
2015-05-24 18:05:20 +03:00
Torsten Ruger
95ac024421 fix old tests again 2015-05-24 16:55:03 +03:00
Torsten Ruger
29a34b4d24 no need to keep object list in linker (use space) 2015-05-24 16:25:17 +03:00
Torsten Ruger
3e18694be7 code for method 2015-05-24 16:24:57 +03:00
Torsten Ruger
38cb9f7d3c get words to compare to strings 2015-05-24 15:31:44 +03:00
Torsten Ruger
b58bba3fc4 register access fixes
since the constants moved
2015-05-24 15:31:30 +03:00
Torsten Ruger
6f0ae51dc5 move register constants here 2015-05-24 15:07:07 +03:00
Torsten Ruger
05a7ded7d5 fix space layout and init 2015-05-24 15:06:35 +03:00
Torsten Ruger
1170761922 fix classic index bug 2015-05-24 15:05:58 +03:00
Torsten Ruger
6786855e95 start on passes
after all that booting and vm/parfait changes
passes have gone out of sync, start to fix
2015-05-24 13:55:05 +03:00
Torsten Ruger
47abdffd1a minor 2015-05-24 13:54:17 +03:00
Torsten Ruger
3c0022191b more booting 2015-05-24 13:53:49 +03:00
Torsten Ruger
e64733d72b some link for readmes
for salama-reader
2015-05-24 13:42:29 +03:00
Torsten Ruger
1a499a1de9 fix method seperation
Since Compiled method split into Method and
CompiledMethodInfo (parfait/vm) lots of call
syntax changes
2015-05-24 13:31:33 +03:00
Torsten Ruger
1d9ef6d5c8 boot process 90 percent done
Creating the class and layout objects in the
right order was tricky, but  now mostly done
2015-05-23 12:15:06 +03:00
Torsten Ruger
94f49bf5c2 much work on boot process
fiddly egg and chicken, though a bit clearer with parfait objects now
2015-05-22 22:51:36 +03:00
Torsten Ruger
174afb33fb catch errrors 2015-05-22 22:50:40 +03:00
Torsten Ruger
b687255976 move to parfait members 2015-05-22 22:50:19 +03:00
Torsten Ruger
b4eb14e639 found bug and more tests 2015-05-21 21:50:39 +03:00
Torsten Ruger
531d3e181a was missing some super inits 2015-05-21 21:50:17 +03:00
Torsten Ruger
a28b41a5f5 renamed adapter
seemed more appropriate as it makes the
parfait work in the vm (i.e. adapts parfait)
2015-05-21 21:49:47 +03:00
Torsten Ruger
422ec64105 all green
That fixes all existing tests. Operation successful

Off course there is tests missing :-(
2015-05-20 17:29:08 +03:00
Torsten Ruger
2ec9ee90f9 forgot to init super
which caused the fake_mem to be nil
2015-05-20 17:17:11 +03:00
Torsten Ruger
6eba363fb8 more speration
Separating vm and parfait
especially in method this is hairy, lots of ripples
bug is back in sod (i hope thats a good thing)
2015-05-20 17:11:13 +03:00
Torsten Ruger
d6d0f4f43a split compiled_method into method and compiled_method_info 2015-05-20 16:43:26 +03:00
Torsten Ruger
dd2a5e367f more docs and better read me 2015-05-20 13:50:56 +03:00
Torsten Ruger
d71547ea01 copy and other improvements for word
more tests reveal a bug (fixed) and more docs
2015-05-20 13:50:25 +03:00
Torsten Ruger
06cfba7c58 get sod to output lists and dicts 2015-05-20 10:57:20 +03:00
Torsten Ruger
8ec8a519ba externalize boot process
Booting is complicated, make an own file for it
2015-05-19 20:29:33 +03:00
Torsten Ruger
4e3640e432 shift code from class to module
as class derives from module, module carries
much of the code that one thinks of as class
class only handles allocation really
2015-05-18 12:35:01 +03:00
Torsten Ruger
cfc2c474b2 test compatibility layer
test from and to std/parfait objects
for list and word for now
moved some of that code to virtual, out of parfait
2015-05-18 10:47:29 +03:00
Torsten Ruger
f7eb888c36 refactoring virtual parfait code 2015-05-18 10:21:23 +03:00
Torsten Ruger
d348e7afe7 more parfait ripples
changes due to previous changes in parfait api
2015-05-18 10:10:31 +03:00
Torsten Ruger
cff827ad42 final word fix
that does the parfait
2015-05-17 15:34:45 +03:00
Torsten Ruger
e70bfb9f7a many minor parfait fixes 2015-05-17 15:34:29 +03:00
Torsten Ruger
3bdba119c8 fix the list after object fixes
start index at 1, but don’t overwrite layout,
so add one
2015-05-17 14:56:06 +03:00
Torsten Ruger
3b268df920 init with nil layout
making the default length 1 (the nil layout)
2015-05-17 14:55:10 +03:00
Torsten Ruger
701b0bc011 fix object grow
and write a test (and another one …)
2015-05-17 14:44:48 +03:00
Torsten Ruger
1114f06921 rename old layout()
new is called get_layout, but keep old around for
checking
2015-05-17 14:41:18 +03:00
Torsten Ruger
350d708fd3 introduce some constants 2015-05-17 14:40:02 +03:00
Torsten Ruger
8fa501fb91 fix object compiletime
and write some tests for it
2015-05-17 14:38:25 +03:00
Torsten Ruger
fe2be323d8 improve boot
also move to superclass not superclass_name in class
Makes ripples
2015-05-16 20:16:49 +03:00
Torsten Ruger
7085dee510 array to list conversion
start on layouts
2015-05-16 14:01:48 +03:00
Torsten Ruger
bee269f7a8 just renaming 2015-05-16 12:54:11 +03:00
Torsten Ruger
9376b8bc16 work on ObjectWriter
Back to the root! but lots of adjusting
ObjectWriter takes machine, machine has space
Virtual constants become Parfait::Objects etc
2015-05-16 12:53:10 +03:00
Torsten Ruger
9d8dc68bf4 fixing all tests 2015-05-15 21:11:44 +03:00
Torsten Ruger
f691ba1b20 using sof is_value 2015-05-15 21:11:29 +03:00
Torsten Ruger
a46dd9f6bf more word tests 2015-05-15 20:31:43 +03:00
Torsten Ruger
0731a6061a fix word implementation and tests
much better, though wasteful implementation
breaks a few tests, but ploughing on first
2015-05-15 16:45:36 +03:00
Torsten Ruger
164816c441 basic word functionality
and conversion from string
2015-05-14 20:39:12 +03:00
Torsten Ruger
5e0e8c8364 move index_of to list
and give it a sort of basic implementation
2015-05-14 19:54:38 +03:00
Torsten Ruger
c2b84925a4 basic functions for object 2015-05-14 19:53:56 +03:00
Torsten Ruger
9d711e7766 moving string to parfait
using parfait::word
also rename builtins string to word
2015-05-13 16:17:10 +03:00
Torsten Ruger
baca6eb4c6 rename string to word 2015-05-13 16:06:38 +03:00
Torsten Ruger
bf5576f805 small clean 2015-05-13 12:22:51 +03:00
Torsten Ruger
f92e5cf475 fix all tests again 2015-05-13 12:15:14 +03:00
Torsten Ruger
dd41758dea renamed array and hash to list and dictionary
Since these are not the ruby classes, we don’t need
the old names. They are misleading.
An Array is a military term, we mean list
And a Hash is an implementation of a Dictionary,
or LookupTable
2015-05-12 19:10:45 +03:00
Torsten Ruger
a94ce51c58 also test array
minor (ahm) fixes to array logic
2015-05-12 19:03:14 +03:00
Torsten Ruger
398516a596 fixes parfaits hash by implementing array
basic concept holds up as parfaits hash is now
working on parfaits own array
2015-05-12 18:52:01 +03:00
Torsten Ruger
b980def84e move space to parfait
Also make the machine the singleton
and space hang off it

Many repercussions, not all fixed in this commit
2015-05-12 15:36:44 +03:00
Torsten Ruger
2e8b514e9c start to use parfait classes
bit of a bumpy road
2015-05-12 14:58:29 +03:00
Torsten Ruger
73a6a5db39 move meta and boot class to parfait
just cosmetic, fixed requires but not code
2015-05-12 09:54:36 +03:00
Torsten Ruger
b804354236 fix requires and some scoping 2015-05-12 09:44:34 +03:00
Torsten Ruger
ab870e3323 moved the whole parfait into its namespace/module 2015-05-11 18:55:49 +03:00
Torsten Ruger
a552e3fbce remove virtual frame (just using parfait) 2015-05-10 17:12:43 +03:00
Torsten Ruger
d41676fdfd namespace cleanup
remove unnecessary Virtual namespace prefix
which was a large motivation for the move
2015-05-08 15:19:30 +03:00
Torsten Ruger
de8fe46fe0 move compiler into virtual
and associated changes in code, requires tests etc
2015-05-08 15:10:30 +03:00
Torsten Ruger
a1b9acce3d basic name expression code
needs fleshing out and tests
2015-05-08 14:57:11 +03:00
Torsten Ruger
c700a3aabe better compiler docs 2015-05-08 14:55:01 +03:00
Torsten Ruger
6f2affaf36 fix name expression and test
plus various cleaning and rename off call_site
2015-05-08 14:34:46 +03:00
Torsten Ruger
2fde50c27a some more tests fixed 2015-05-06 15:15:53 +03:00
Torsten Ruger
9bf5eb2621 somewhat correct that message at compile-time idea 2015-05-06 15:15:33 +03:00
Torsten Ruger
8a7db6d4f2 remove message as third arg to compile 2015-05-06 15:14:47 +03:00
Torsten Ruger
1feed6af44 create one file per instruction 2015-05-06 08:55:14 +03:00
Torsten Ruger
4f1508ca61 moved slots to own directory 2015-05-06 08:38:29 +03:00
Torsten Ruger
cdea4915f9 bit more cleanup after compiler 2015-05-05 15:11:09 +03:00
Torsten Ruger
001af3f8b6 reviving more tests 2015-05-05 14:04:37 +03:00
Torsten Ruger
e4c799ecb6 first tests comping through after ast/compile change 2015-05-04 23:03:52 +03:00
Torsten Ruger
ff22c17784 move ast to compiler
new compile module does just that: compile
Dispatch with visitor pattern
no more patching into ast
2015-05-04 14:22:22 +03:00
Torsten Ruger
92bbd70c77 move builtin to register, where it belongs 2015-05-04 11:12:31 +03:00
Torsten Ruger
3659cb4b81 make the tests run (and pass) again 2015-05-04 11:10:40 +03:00
Torsten Ruger
8180c67d48 move sof to own repo 2015-05-03 20:38:13 +03:00
Torsten Ruger
618b8d05f8 adding ruby method lists
Just for reference (not to copy)
2015-04-15 11:39:12 +03:00
Torsten Ruger
5792fb983b add module
between class and object, as in ruby
2015-04-15 11:38:46 +03:00
Torsten Ruger
c14bacd171 fix inheritance 2015-04-10 14:02:28 +03:00
Torsten Ruger
aaf6da8808 make object derivation explicit
in parfait
2015-04-08 20:33:15 +03:00
Torsten Ruger
81e3a98af8 add integer to parfait 2015-04-08 20:32:56 +03:00
Torsten Ruger
fdb3fbc825 Parfait documentation
outline of expanded parfait, documented but not coded
2015-04-08 20:24:50 +03:00
Torsten Ruger
4f1e99d744 adding stubs for coming classes 2015-04-06 11:38:11 +03:00
Torsten Ruger
f8fe074af2 change arg to arg_names
and a bit of clean up
2015-03-28 20:20:01 +02:00
Torsten Ruger
c0dcf6feb0 add todo comment 2015-03-28 12:29:17 +02:00
Torsten Ruger
e881a5f2ee separate frames and messages
also not using context which was not defined anyway
2015-03-28 12:25:04 +02:00
Torsten Ruger
0c08c335e5 fix the conditional parfait 2015-03-25 18:30:47 +02:00
Torsten Ruger
aee36d9f5f bit of line wrapping 2015-03-25 17:29:39 +02:00
Torsten Ruger
d758a23eb6 correct parfait module
parfait only needs to be in a module when it is used in the vm, not
when it is parsed.
The parsed parfait must be without namespace.
2015-03-25 17:16:20 +02:00
Torsten Ruger
6e6dd257e4 rename 2014-10-18 13:53:01 +03:00
Torsten Ruger
f09a70a65b correctly jumping to __init and then calling main 2014-10-07 15:35:13 +03:00
Torsten Ruger
30a982be0e better debug fo the booting parts 2014-10-07 15:34:43 +03:00
Torsten Ruger
c10ef20622 was issuing wrong instruction 2014-10-07 12:23:59 +03:00
Torsten Ruger
9ac165c34c some checks 2014-10-07 12:23:27 +03:00
Torsten Ruger
cae99f217c just make sre we really ret registers (some constants were flying about) 2014-10-07 12:23:08 +03:00
Torsten Ruger
e1b29d799a limit to_s length 2014-10-07 12:21:40 +03:00
Torsten Ruger
b7164b354d better solution for initial jump 2014-10-07 12:01:33 +03:00
Torsten Ruger
5c90ad83e0 add initial jump instruction 2014-10-06 19:57:44 +03:00
Torsten Ruger
e1aa3fd843 implement the vm call logic 2014-10-05 18:40:47 +03:00
Torsten Ruger
dbbcc738c4 remove walue which was eold 2014-10-05 01:18:11 +03:00
Torsten Ruger
965e5f2a0f minor 2014-10-05 01:13:57 +03:00
Torsten Ruger
a99e2602ae introduce method call that includes setup 2014-10-05 01:13:43 +03:00
Torsten Ruger
486580aeb2 fix bad scoping bug 2014-10-05 01:12:44 +03:00
Torsten Ruger
d38097aea4 fixing pass order by require order (easier to track) 2014-10-05 01:12:16 +03:00
Torsten Ruger
8f0fb7e4e2 correct function call to method call (includes vm setup) 2014-10-05 01:10:10 +03:00
Torsten Ruger
3aca3cc33d making good headway with register machine implementation in arm 2014-10-05 01:05:18 +03:00
Torsten Ruger
7968cadaf9 remove singleton in arm machine and use class methods 2014-10-04 17:34:51 +03:00
Torsten Ruger
d7d2622d7f use register instructions 2014-10-04 17:22:23 +03:00
Torsten Ruger
9939c6afa0 fix imports and name issues 2014-10-04 12:52:47 +03:00
Torsten Ruger
4f7fefb0ab using new register instructions 2014-10-04 12:52:28 +03:00
Torsten Ruger
e3c3840bc6 a creative moment, making up instructions 2014-10-04 12:51:08 +03:00
Torsten Ruger
f77d3ea7eb move to virtual as it leaves vm instructions 2014-10-04 12:50:28 +03:00
Torsten Ruger
c5655b1059 a long string of import order and namespace issues which is not over yet 2014-10-03 14:52:47 +03:00
Torsten Ruger
1347a85eb7 fixing import order 2014-10-03 14:33:06 +03:00
Torsten Ruger
a083c03b1d move function call instruction to register level and the pass to arm 2014-10-03 14:32:54 +03:00
Torsten Ruger
1af66567fb fixed the SetImplementation with new register instructions 2014-10-03 11:07:18 +03:00
Torsten Ruger
38a286942e move the hash access stuff to arm, not sure if needed at all 2014-10-03 11:05:17 +03:00
Torsten Ruger
220d9f6213 moving instrctions into own folders and arm machine out of the way 2014-10-03 10:25:10 +03:00
Torsten Ruger
ad73e320b0 moved unsued code out of the way 2014-10-02 22:34:58 +03:00
Torsten Ruger
277dddeb6a time was up for the Bassembler 2014-10-02 22:33:09 +03:00
Torsten Ruger
1be71918a5 move all arm instructions to own folder and fold inheritance 2014-10-02 22:28:34 +03:00
Torsten Ruger
9923eb0b07 move passes to own dir 2014-10-02 16:11:45 +03:00
Torsten Ruger
cc08016a0f fix the logic of move, but really there is a deeper issue (we'd have to add to get pc relative addressing for constants) 2014-10-02 16:08:24 +03:00
Torsten Ruger
0e3e11a699 add more debug (string values) 2014-10-02 16:06:05 +03:00
Torsten Ruger
493b02674c remove some boiler 2014-09-30 12:08:12 +03:00
Torsten Ruger
fba66371c0 (semi) proper fix for large moves, integers or virtual constants(was buggy) 2014-09-30 12:07:21 +03:00
Torsten Ruger
527e591e75 fix add instruction and test 2014-09-29 21:04:38 +03:00
Torsten Ruger
7d52e71f5c found and implemented the movw, but not for pi :-( 2014-09-29 20:26:55 +03:00
Torsten Ruger
d8710de590 fix frame more 2014-09-28 11:18:24 +03:00
Torsten Ruger
5a17bf3396 more headway on the (new) frame implementation 2014-09-27 14:59:16 +03:00
Torsten Ruger
2ce17ed5ff fold messages and frames to save an instance in bootspace 2014-09-25 20:31:21 +03:00
Torsten Ruger
efe39292ae extract position as module to be included 2014-09-25 20:30:02 +03:00
Torsten Ruger
6c7004688b bit of namespace cleanup 2014-09-25 20:29:05 +03:00
Torsten Ruger
4d07113429 add register reference where symbols are allowed 2014-09-25 20:28:40 +03:00
Torsten Ruger
df9d6284ae up to, ut not including, creating frames 2014-09-24 18:25:18 +03:00
Torsten Ruger
363fe5e35f scaffold for NewMessage and Frame 2014-09-24 18:15:08 +03:00
Torsten Ruger
31ee3a62fe rename __send__ for now 2014-09-24 18:14:23 +03:00
Torsten Ruger
892f251d18 implement how send should work (but parfait doesn't parse yet, so it doesnt) 2014-09-23 20:16:05 +03:00
Torsten Ruger
f5ec7f3bdb fixed 2014-09-23 19:23:52 +03:00
Torsten Ruger
c5765d4255 improve return implementation 2014-09-23 19:20:55 +03:00
Torsten Ruger
4e01bc798f add NewMessage / Frame instructions (without actual implementation) 2014-09-23 19:06:10 +03:00
Torsten Ruger
3d5eb685a1 more constants for slots 2014-09-20 17:06:11 +03:00
Torsten Ruger
21177bd7ce add a list of symbols to boot space 2014-09-19 19:11:30 +03:00
Torsten Ruger
457b40a7de fix api and implement the big constant move 2014-09-18 17:05:59 +03:00
Torsten Ruger
c32ca84861 clean 2014-09-18 17:05:22 +03:00
Torsten Ruger
f80df69262 clean 2014-09-18 17:04:54 +03:00
Torsten Ruger
49b6b99ab9 more work on large moves, including the notion of linking again 2014-09-17 17:00:19 +03:00
Torsten Ruger
4af93493fb class code went 2014-09-17 16:32:21 +03:00
Torsten Ruger
e7f7f9c319 move fits_u8 to integer constant (from numberic) 2014-09-17 16:23:29 +03:00
Torsten Ruger
95c7e44342 at least it assembles again 2014-09-17 12:11:34 +03:00
Torsten Ruger
e4474e7e2c rename length to mem_length and suffer the consequences 2014-09-17 12:04:54 +03:00
Torsten Ruger
79e42003b2 collect all add functions at bottom (rename too) 2014-09-16 18:50:44 +03:00
Torsten Ruger
8b8a8eea56 rename code.length tp mem_length with lots of noise impact 2014-09-16 17:16:56 +03:00
Torsten Ruger
cffa7f1953 small function naming adjustments 2014-09-16 17:16:13 +03:00
Torsten Ruger
db01529b67 eol warning 2014-09-16 17:15:17 +03:00
Torsten Ruger
45977ecc01 move assembly from visitor into objects, part one 2014-09-16 16:06:56 +03:00
Torsten Ruger
bbcfef3c43 make a little more real 2014-09-16 16:05:38 +03:00
Torsten Ruger
dd8e46fd1c move length here 2014-09-16 16:05:08 +03:00
Torsten Ruger
56facae658 eol signal 2014-09-16 16:04:53 +03:00
Torsten Ruger
16b3cacc8d work to move large constants 2014-09-16 11:39:08 +03:00
Torsten Ruger
c92b165a3f carry constants through in reference slots. resolve functions with it 2014-09-15 12:08:37 +03:00
Torsten Ruger
bdd4a3d6ad just checking which part of unimplemented i hit 2014-09-14 21:26:30 +03:00
Torsten Ruger
c51dbf51e1 renamed true,false,nil class to constant (from value) 2014-09-14 18:15:33 +03:00
Torsten Ruger
6b85054958 better, correcter use of return storage 2014-09-14 18:14:57 +03:00
Torsten Ruger
b29de4600e use slot constants 2014-09-11 21:30:40 +03:00
Torsten Ruger
b7e0d3fba4 more on set 2014-09-11 21:26:22 +03:00
Torsten Ruger
1d33c03537 corrected method enter and return and created those missing constants 2014-09-11 19:00:14 +03:00
Torsten Ruger
771eeb7a3d fix block positions for debug 2014-09-11 15:19:29 +03:00
Torsten Ruger
98a88ec10e change to module style like other modules in this dir 2014-09-11 15:08:56 +03:00
Torsten Ruger
3d66ffcc17 start on __init__ 2014-09-11 15:01:50 +03:00
Torsten Ruger
cb727c658e add inital jump to __init__ 2014-09-11 10:30:23 +03:00
Torsten Ruger
f44965ef21 fix padding bug 2014-09-10 21:43:05 +03:00
Torsten Ruger
e53de8ad43 fixup names in builtin module 2014-09-10 21:35:52 +03:00
Torsten Ruger
5a5e977b8f get some old builtin code backonline and improve imports 2014-09-09 18:03:13 +03:00
Torsten Ruger
61e80d4f28 had to boot_classes outside constructor (unfortunately) because of recursion 2014-09-09 17:51:34 +03:00
Torsten Ruger
7036a87678 fix the address for calls to jump past the method object header 2014-09-09 17:36:33 +03:00
Torsten Ruger
e3fdbb30a5 remove relative positions. have to fix them up somehow 2014-09-09 17:29:24 +03:00
Torsten Ruger
97bfd77038 implements the type word 2014-09-09 13:28:07 +03:00
Torsten Ruger
8040829501 moves link slot positions to bytes (from words). easier maths and better for later 2014-09-07 17:31:40 +03:00
Torsten Ruger
f00b06bb44 move to relative (to self) addressing 2014-09-06 23:03:33 +03:00
Torsten Ruger
c6072c683b oops, less said the better 2014-09-06 22:48:58 +03:00
Torsten Ruger
64a433fd15 move the 2 to pad_to (from each call) 2014-09-06 22:38:32 +03:00
Torsten Ruger
bfa3f28e97 fix assembly (at least lositions and padding) 2014-09-06 19:48:56 +03:00
Torsten Ruger
197ecd576e debugging assembly 2014-09-05 20:56:05 +03:00
Torsten Ruger
d94ec6c72c fix parfait test 2014-09-04 14:22:28 +03:00
Torsten Ruger
5bb03f2d8b unscoping block names and adding labels to objects (which are off) 2014-08-30 20:55:22 +03:00
Torsten Ruger
ccb5b37a3c reinserted arm for now, until dependecy is cleaned up. fixed tests 2014-08-30 19:40:37 +03:00
Torsten Ruger
050a8ada9f fix position handling 2014-08-30 17:08:30 +03:00
Torsten Ruger
6d67c03cc9 make block replace take array or single instruction 2014-08-30 16:57:56 +03:00
Torsten Ruger
48b33e5f9d add position to instruction (for relative calculations) 2014-08-30 16:57:34 +03:00
Torsten Ruger
18f33770b5 fix and use object writer in test 2014-08-30 14:17:00 +03:00
Torsten Ruger
b5c39b2749 minor debug remove 2014-08-30 14:16:41 +03:00
Torsten Ruger
726a514c9e fix assembler recursion 2014-08-30 14:01:22 +03:00
Torsten Ruger
50af6a8f41 lots of rework on assembly. constant object for layouts, hash implementation. 2014-08-30 13:48:52 +03:00
Torsten Ruger
d33077c2b1 reworking method and block assembly for new aproach 2014-08-30 13:47:51 +03:00
Torsten Ruger
90e5b4584a rework link into two phase 2014-08-29 21:00:25 +03:00
Torsten Ruger
cec339890c fold the linker back into assembler. too easy to get the link and assemble functions out off sync 2014-08-29 17:20:59 +03:00
Torsten Ruger
3ed1e814ec more towards correct assembly 2014-08-29 15:49:59 +03:00
Torsten Ruger
99b4468599 fix spelling 2014-08-28 22:32:53 +03:00
Torsten Ruger
35b738639b improve readmes 2014-08-28 19:12:46 +03:00
Torsten Ruger
1fc3f1fb18 renaming ripples 2014-08-28 18:53:48 +03:00
Torsten Ruger
09698ec70a moved to consitent md ending 2014-08-28 18:52:55 +03:00
Torsten Ruger
b8a74f4a77 renamed the kernel dir/ module to Builtin (so to not confuse with ruby kernel module) 2014-08-28 18:27:04 +03:00
Torsten Ruger
8c1c72f1c3 remove that all include file 2014-08-28 16:44:27 +03:00
Torsten Ruger
9dd37a74df add a kenrnel array class with function stubs 2014-08-28 16:39:35 +03:00
Torsten Ruger
da3cd69a5c fixed the old list tests for hash, and fixed hash to pass them 2014-08-28 16:28:25 +03:00
Torsten Ruger
d3c4087871 use simple array based hash, so assembly of it will be easy 2014-08-28 16:20:09 +03:00
Torsten Ruger
0bc0506c5a small fix for str len 2014-08-28 16:19:43 +03:00
Torsten Ruger
c7bc18dac8 small fix for str len 2014-08-28 16:19:30 +03:00
Torsten Ruger
fb42cb16f0 move get implementation to virtual as it should not result in register action 2014-08-28 08:43:38 +03:00
Torsten Ruger
41de2b5822 moved boot_class back to virtual (as things get clearer) 2014-08-28 08:24:37 +03:00
Torsten Ruger
7d35732923 renamed method definition to compiled method 2014-08-28 08:10:33 +03:00
Torsten Ruger
e09d3c2f65 adding legth of object itself 2014-08-28 08:08:11 +03:00
Torsten Ruger
a71f55f661 moved all link functions to a (da da) linker class 2014-08-27 21:44:23 +03:00
Torsten Ruger
aad3f7ca15 equivalent transformation, just looks 2014-08-27 17:23:50 +03:00
Torsten Ruger
fc9615a649 short hash, inline like for array. with curly braces off course 2014-08-27 14:46:34 +03:00
Torsten Ruger
6343e644b4 prepare for short hash, but no change yet 2014-08-27 14:42:41 +03:00
Torsten Ruger
97f68a1a54 basic assembly frame 2014-08-26 22:35:56 +03:00
Torsten Ruger
8f9bbe2f1d fold old link and length into one function 2014-08-26 16:36:12 +03:00
Torsten Ruger
1379b4ea4e slightly better enter 2014-08-26 16:16:59 +03:00
Torsten Ruger
888acdca0c slightly better enter 2014-08-26 16:15:00 +03:00
Torsten Ruger
714cd2a5d6 slightly better return implementation 2014-08-26 16:12:20 +03:00
Torsten Ruger
dd0674c7dd dummy implementation of enter and return 2014-08-26 12:05:49 +03:00
Torsten Ruger
7fd9ff44db simple call implementation 2014-08-26 11:58:28 +03:00
Torsten Ruger
a3a55aec08 add volotiles in their classes 2014-08-26 11:50:43 +03:00
Torsten Ruger
b4419fc438 start on linking and assembly (again, hurra) 2014-08-25 17:03:39 +03:00
Torsten Ruger
0b65e5840e move space accesor to boot_space 2014-08-24 21:32:21 +03:00
Torsten Ruger
dd82095cca reditribute boot dir evenly. some was parfait, some virtual, some kernel 2014-08-24 00:25:15 +03:00
Torsten Ruger
5f3b0c1779 moved list to parf 2014-08-24 00:03:25 +03:00
Torsten Ruger
a7bfb6e6ee rename (corrected) method def to instance methods in class 2014-08-23 23:57:47 +03:00
Torsten Ruger
ad6be2676c start on call implementation, getting separation issues 2014-08-23 23:37:33 +03:00
Torsten Ruger
594784c729 create hard dependency to salama-arm (for now)(as path for now-now) 2014-08-23 21:49:52 +03:00
Torsten Ruger
435fefd310 implementation passes involving assembly go to register directory 2014-08-23 21:49:09 +03:00
Torsten Ruger
495df14e19 started coding, but 2014-08-23 20:25:19 +03:00
Torsten Ruger
f0efb1e0d9 start on implementing set 2014-08-23 13:57:14 +03:00
Torsten Ruger
a63e37fc50 scaffold for instance variable get implementation 2014-08-23 10:59:35 +03:00
Torsten Ruger
0fcb1c8f68 move the send to send_implementation, functions to add passes 2014-08-23 10:25:55 +03:00
Torsten Ruger
4783e6c326 more renaming ripples 2014-08-22 18:00:23 +03:00
Torsten Ruger
e398a6b053 make space for new passes 2014-08-22 17:46:09 +03:00
Torsten Ruger
b196810e89 adjusted module name accordingly 2014-08-22 17:40:09 +03:00
Torsten Ruger
b100956909 renamed 2014-08-22 17:27:57 +03:00
Torsten Ruger
f735d6cbc9 remove old stuff that i only kept for reference. be gone 2014-08-22 17:26:49 +03:00
Torsten Ruger
fd2e717b62 remove old boot stuff, was quite same and always mixed them up 2014-08-22 15:12:54 +03:00
Torsten Ruger
91ce05364a add FunctionCall instruction and the missing puts (stub) 2014-08-22 15:08:46 +03:00
Torsten Ruger
e19b7be111 getting to where where the puts should be, but it aint there 2014-08-22 10:21:12 +03:00
Torsten Ruger
b305a56576 more work on send 2014-08-22 09:21:59 +03:00
Torsten Ruger
5b1e86da49 more work on send, remove yaml hack in test 2014-08-21 22:57:20 +03:00
Torsten Ruger
2260c680b2 getting the passes back and starting on send 2014-08-21 17:46:12 +03:00
Torsten Ruger
3915f5b7f9 fix the missing reference bug on class 2014-08-21 15:35:55 +03:00
Torsten Ruger
0677069fc0 fix folded array bug by using object_id, fix ref bug but only counting first 2014-08-21 15:21:20 +03:00
Torsten Ruger
9608e5f626 supressing nil attributes on objects 2014-08-20 22:33:08 +03:00
Torsten Ruger
1371d395ec pretty much redid the variable idea (now slot) 2014-08-20 17:14:52 +03:00
Torsten Ruger
d401327319 made a simple node for small objects. bad news is that tests pass unchanged 2014-08-19 23:16:40 +03:00
Torsten Ruger
8ff55fdb1f that make four (times of identical == definitions) 2014-08-19 23:03:39 +03:00
Torsten Ruger
52ca7110c3 ad a preliminary syntax for class objects, which is just the class name 2014-08-19 23:01:19 +03:00
Torsten Ruger
a7dc60e638 just formatting 2014-08-19 22:57:08 +03:00
Torsten Ruger
dd59a2f9c6 remove unused attributes() boilerplate 2014-08-19 22:54:28 +03:00
Torsten Ruger
4b17a1e58f use the sof attributes for equality 2014-08-19 22:40:28 +03:00
Torsten Ruger
28b4344ef9 make attributes available outside sof (iw as module funtion) 2014-08-19 22:39:58 +03:00
Torsten Ruger
9d5f62eded only marking/counting occurences that are actually referenced, so numbers stay smaller 2014-08-18 17:25:49 +03:00
Torsten Ruger
e13801c764 moving (back) to 1.9 style hash, clearer that it is an association. didnt like the double colon 2014-08-18 17:19:34 +03:00
Torsten Ruger
81f8f0f3a2 actually using volotile attributes and outputting sof in test. very readable 2014-08-18 17:16:18 +03:00
Torsten Ruger
a594b716bc inlining references into objects as simple data 2014-08-18 14:54:03 +03:00
Torsten Ruger
a874bd49d2 short version for array 2014-08-18 14:28:28 +03:00
Torsten Ruger
1dee9a4bd1 adding the actual references for referenced objects 2014-08-18 13:53:05 +03:00
Torsten Ruger
338c669a00 fix level bug that became obvous with recursion 2014-08-18 13:33:40 +03:00
Torsten Ruger
ad4aaaff8a fix recursive arrays 2014-08-18 13:22:03 +03:00
Torsten Ruger
99e0c0db18 cleanup 2014-08-18 13:01:52 +03:00
Torsten Ruger
9f292ba618 fix weird object bug 2014-08-18 12:49:38 +03:00
Torsten Ruger
a3c9ab7e29 simpler but more verbose node model fixes everything but one 2014-08-18 08:19:48 +03:00
Torsten Ruger
b0472753f4 fixing arrays/hashs and starting complex objects 2014-08-17 21:44:34 +03:00
Torsten Ruger
9669831f78 fix all existing (hash) tests 2014-08-16 15:16:07 +03:00
Torsten Ruger
90e4837b2e broaden the node hierachy 2014-08-16 12:34:25 +03:00
Torsten Ruger
2f84c0dfa6 fixing array tests, seperated nodes into different types 2014-08-16 11:43:41 +03:00
Torsten Ruger
7f7a174554 fixes object 2014-08-16 09:56:11 +03:00
Torsten Ruger
a10321922e add transformation step to tree before output to help with the logic 2014-08-15 22:29:48 +03:00
Torsten Ruger
b0a54cb8c2 working up 2014-08-15 18:27:32 +03:00
Torsten Ruger
0a7814a07b add hash with object 2014-08-15 17:18:15 +03:00
Torsten Ruger
16261f96b0 adds simple hash and test 2014-08-15 17:14:49 +03:00
Torsten Ruger
716bc93e4a test for array with array 2014-08-15 15:04:13 +03:00
Torsten Ruger
198e70b6bd fix array with object 2014-08-15 14:59:38 +03:00
Torsten Ruger
85dad14cc8 fix simple array 2014-08-14 20:24:26 +03:00
Torsten Ruger
2f5ed43073 move from known attributes to volotile (white to blacklist) 2014-08-14 20:04:15 +03:00
Torsten Ruger
6b19b915a1 rewrote write to use known attributes or instance variables, simple values inline 2014-08-14 19:49:20 +03:00
Torsten Ruger
7eeb269d50 fixed scope 2014-08-14 19:48:26 +03:00
Torsten Ruger
519283a034 moved utility functions to own module (used from members and writer) 2014-08-14 19:48:06 +03:00
Torsten Ruger
0a33f940cf moving away from the attributes aproach, tests fixed 2014-08-14 19:24:18 +03:00
Torsten Ruger
2c2ae14928 getting some sof output and adding some tests. issues though. abound 2014-08-14 17:40:56 +03:00
Torsten Ruger
7e60827dd3 redoing the ifs with new (old) block structure 2014-08-13 20:05:32 +03:00
Torsten Ruger
90cbeddc0a premature start on the salama object files, just for reading the compiled code 2014-08-13 20:05:00 +03:00
Torsten Ruger
200228a33d adding the blocks to virtual machine and store instructions in array not list 2014-08-13 11:59:51 +03:00
Torsten Ruger
c2ae184e6e simple test for get type 2014-08-07 15:41:13 +03:00
Torsten Ruger
a9ab3ca13e forgot to add compiled methods to the class, fixed 2014-08-07 15:37:32 +03:00
Torsten Ruger
b9e259e11a first ginger parfait test 2014-08-06 18:49:20 +03:00
Torsten Ruger
9a197ff7c1 expanded the send a bit 2014-08-06 18:37:19 +03:00
Torsten Ruger
ce3505710a basic send 2014-08-05 15:55:24 +03:00
Torsten Ruger
e92f949a71 fix the vm in link 2014-07-31 21:55:54 +03:00
Torsten Ruger
8effcc866a more machinery to the machine 2014-07-30 21:43:12 +03:00
Torsten Ruger
5add9c42f2 juggle into the machine 2014-07-30 21:07:48 +03:00
Torsten Ruger
7b6f364ba8 namechange 2014-07-29 18:33:11 +03:00
Torsten Ruger
da9a57b3cf delete some files i had kept for reference 2014-07-28 12:59:43 +03:00
Torsten Ruger
8718ebf476 last inherited test 2014-07-27 10:09:31 +03:00
Torsten Ruger
1a95835442 adds message get and set instructions 2014-07-25 20:28:38 +03:00
Torsten Ruger
7df1490da8 mostly comments 2014-07-25 11:48:06 +03:00
Torsten Ruger
8d7b353f33 pass message to compile, not frame 2014-07-25 10:49:34 +03:00
Torsten Ruger
13a05e7b72 comments and cosmetics 2014-07-24 21:56:31 +03:00
Torsten Ruger
e427bcef43 change method and frame around in calling, easier to understand static first 2014-07-24 14:56:27 +03:00
Torsten Ruger
e408b0e4b9 fixed while instruciton linking after change in method add 2014-07-22 23:27:13 +03:00
Torsten Ruger
eb44011177 fixed that branch numbering bug 2014-07-19 21:15:27 +03:00
Torsten Ruger
c03c4f9cc9 add return instruction and fix the tests 2014-07-18 11:56:46 +03:00
Torsten Ruger
2e79caa791 using yaml as the storage format of the result as it handles graphs out of the box 2014-07-18 00:30:36 +03:00
Torsten Ruger
98db88ac2f not recursing into labels to avoid infinite loops 2014-07-18 00:29:45 +03:00
Torsten Ruger
e02c6ed082 codes the while, but the testing throws stack too deep because loop detection is missing 2014-07-17 16:46:17 +03:00
Torsten Ruger
f00fa98818 fixed import 2014-07-17 03:01:34 +03:00
Torsten Ruger
337b1a8ee0 renamed to kide(crystal) 2014-07-17 02:26:13 +03:00
Torsten Ruger
fb105cb895 had to let go of crystal (sniff) as the name was taken 2014-07-17 01:00:15 +03:00
Torsten Ruger
f8e3f17660 split frame into message (caller) and frame (receiver) 2014-07-17 00:53:19 +03:00
Torsten Ruger
58298ab62b some cleaning of scratches 2014-07-16 22:36:24 +03:00
Torsten Ruger
efeb910843 move branch counter to branch instruction (from if) in preperation of while 2014-07-16 22:28:28 +03:00
Torsten Ruger
7534626d87 fix the if test by naming branch and label and stitching them in constructor 2014-07-16 21:16:08 +03:00
Torsten Ruger
ba15f352db gets the if coded, but test fail die to instruction being a graph now 2014-07-16 20:16:40 +03:00
Torsten Ruger
4185758532 slight rename tremours 2014-07-16 20:16:10 +03:00
Torsten Ruger
1ff7ae2b0a rename method 2014-07-16 19:24:41 +03:00
Torsten Ruger
55cb6bd2d6 working on if 2014-07-16 13:20:47 +03:00
Torsten Ruger
3a152c1295 adds self to sends args 2014-07-15 18:34:03 +03:00
Torsten Ruger
4d725ea1ae adds explicit load_self instruction 2014-07-15 18:27:13 +03:00
Torsten Ruger
930740e1db fixes the tests after fixing hierarchy 2014-07-15 10:35:29 +03:00
Torsten Ruger
49f73c090d fixed tests because of inheritance changes 2014-07-15 09:34:45 +03:00
Torsten Ruger
bb051230f4 fixed relation of values and types that had got watered in the virtual move 2014-07-15 09:31:25 +03:00
Torsten Ruger
102c5c2327 remove singletons and make them constants 2014-07-15 09:15:04 +03:00
Torsten Ruger
3ca61d54eb fixes constant to be values not object. interestingly tests still pass 2014-07-15 09:12:51 +03:00
Torsten Ruger
9891da88a4 fix all tests 2014-07-15 00:00:00 +03:00
Torsten Ruger
b59a9da34e reduce method return type to type and introduce a single instruction for instance get 2014-07-14 21:28:21 +03:00
Torsten Ruger
16a378e3da fix class function test 2014-07-14 17:08:52 +03:00
Torsten Ruger
93bdd8a243 removing exceptions 2014-07-14 16:19:47 +03:00
Torsten Ruger
c7c4387e16 adds self reference and improve methods a little 2014-07-14 14:29:33 +03:00
Torsten Ruger
db8b1488d0 function test, slow but steady 2014-07-14 14:06:09 +03:00
Torsten Ruger
d531a24930 first method test 2014-07-14 11:29:38 +03:00
Torsten Ruger
c1f475070b and another one, and another one.... 2014-07-13 16:00:48 +03:00
Torsten Ruger
ae21863245 one more basic test back online 2014-07-13 14:12:43 +03:00
Torsten Ruger
dc6cb2bb52 a lot of work to get one more test to pass 2014-07-12 21:59:17 +03:00
Torsten Ruger
842c4e3044 copied old boot for later reference 2014-07-12 21:18:45 +03:00
Torsten Ruger
c505db490f brainstorming mode on the new way (tm) 2014-07-10 17:14:38 +03:00
Torsten Ruger
ee5615ec03 fix rename 2014-07-01 19:12:32 +03:00
Torsten Ruger
f74999af57 zwischenstopp 2014-07-01 18:58:25 +03:00
Torsten Ruger
7045a4b256 update reader and implement singletons 2014-07-01 15:57:13 +03:00
Torsten Ruger
94d1140686 remove intel as it is in own rep now 2014-06-30 15:34:51 +03:00
Torsten Ruger
84d27ce9d9 remove arm as it is in own rep now 2014-06-30 15:28:39 +03:00
Torsten Ruger
1e866ae0ae minor 2014-06-30 14:56:58 +03:00
Torsten Ruger
18faeeb042 add the idea of a frame 2014-06-29 19:05:35 +03:00
Torsten Ruger
16ceb2a60d hurra, a first test. looks a lot.... but lets not spoil th efeeling 2014-06-26 18:39:02 +03:00
Torsten Ruger
525f9d45c5 rename 2014-06-26 17:52:15 +03:00
Torsten Ruger
33c62a7db1 update reader 2014-06-26 17:48:33 +03:00
Torsten Ruger
9d0d5aa431 update reader 2014-06-26 11:34:48 +03:00
Torsten Ruger
b9ddd75a33 rewrote with ternary operator for conciseness 2014-06-25 16:03:39 +03:00
Torsten Ruger
d28df7671d add the simplest possible hash replacement with tests 2014-06-25 16:00:24 +03:00
Torsten Ruger
5c887846f0 updates 2014-06-25 15:59:22 +03:00
Torsten Ruger
fe337fad79 rename and a tiny start 2014-06-25 15:20:46 +03:00
Torsten Ruger
e41bb8027d copies of the old code to start the new layer 2014-06-25 02:47:59 +03:00
Torsten Ruger
9b39a3a816 renaming, making space for extra layer 2014-06-25 02:33:44 +03:00
Torsten Ruger
3771f44e62 just moving code around 2014-06-24 19:34:36 +03:00
Torsten Ruger
98de7404ef named syscall register 2014-06-24 12:40:49 +03:00
Torsten Ruger
17904d8e02 rename blocks do_add to be the same as sunctions add_code to blur the difference 2014-06-24 12:36:32 +03:00
Torsten Ruger
43a2649635 new list test and debugs 2014-06-24 12:25:03 +03:00
Torsten Ruger
b8b1d98a7c towards rubys true definition 2014-06-24 12:24:36 +03:00
Torsten Ruger
bc89da0bc1 instance setter 2014-06-24 12:23:58 +03:00
Torsten Ruger
07b98d684a more on method lookup 2014-06-24 12:23:39 +03:00
Torsten Ruger
98e25abf8e broaden ifs possibilities 2014-06-24 12:22:32 +03:00
Torsten Ruger
25c5b2da6e more setter work 2014-06-24 12:20:59 +03:00
Torsten Ruger
dc198ac79f more setter work 2014-06-24 12:20:38 +03:00
Torsten Ruger
9251bab507 add setter and remove debug 2014-06-24 12:20:10 +03:00
Torsten Ruger
a859951a8f slight cleanup and rename test case 2014-06-17 14:25:33 +02:00
Torsten Ruger
7d05b7c42f adds plocks (Proc Block) as descibed in posts. Usage also described, but not coded yet 2014-06-17 01:01:00 +02:00
Torsten Ruger
a68d84a781 introducing references 2014-06-14 23:48:12 +03:00
Torsten Ruger
4db54a760e gives values their own directory and seperate files 2014-06-14 21:29:57 +03:00
Torsten Ruger
87fa71277a some inlining and renaming 2014-06-14 11:12:53 +03:00
Torsten Ruger
0dbaebf647 fix all tests and a little cleaning 2014-06-14 10:59:25 +03:00
Torsten Ruger
2c26415de7 transformations according to todays post 2014-06-14 00:19:12 +03:00
Torsten Ruger
12a92e4db0 move boot* classes to boot directory 2014-06-13 23:51:53 +03:00
Torsten Ruger
a7551ea8b6 still working on the method dispatch 2014-06-13 23:41:45 +03:00
Torsten Ruger
017d93d929 add to_asm debug output functions 2014-06-12 21:40:25 +03:00
Torsten Ruger
dcd691fe00 minor 2014-06-12 21:27:47 +03:00
Torsten Ruger
6d6c7ddb68 register assignment fix (was not taking subsequent calls into account) 2014-06-12 21:27:30 +03:00
Torsten Ruger
200da192b4 improve output 2014-06-12 21:04:15 +03:00
Torsten Ruger
ea0572c836 fixed while compilation (block order) and fixed and improved fibo 2014-06-12 16:23:57 +03:00
Torsten Ruger
8da1bc4645 fix putint (too eager optimization broke it) 2014-06-12 13:47:06 +03:00
Torsten Ruger
506f98da5a fixed foo and hello, next putint 2014-06-12 09:07:03 +03:00
Torsten Ruger
eef6744827 fixes the if test (regs again) 2014-06-12 08:34:46 +03:00
Torsten Ruger
b125a7c5c7 fix passes, add noop reduction, remove the wretched value operators 2014-06-11 21:36:22 +03:00
Torsten Ruger
4e6319b753 inrtoduce block passes. move the allocation there and implement those simple optimisations 2014-06-11 11:41:50 +03:00
Torsten Ruger
7cca50cd3a still recoving from previous block - function change. no more exceptions at least 2014-06-11 00:38:46 +03:00
Torsten Ruger
e9519d4f05 move the code insertion functionality up to function. makes more sense. block still carries code though 2014-06-10 23:57:56 +03:00
Torsten Ruger
e9fc8ac6aa making the third arg of block init explicit (not optional) 2014-06-10 18:51:27 +03:00
Torsten Ruger
7ca3207b3e moved registers to machine, changed return to 0 (from 7) and erased all integer references to registers 2014-06-10 13:29:01 +03:00
Torsten Ruger
d7a60f2803 new register allocation generates good looking push/pop 2014-06-09 19:24:09 +03:00
Torsten Ruger
b66c4157d5 keep track of used and assigned registers for each block 2014-06-08 01:41:56 +03:00
Torsten Ruger
fbcfa844de renaming and small fixes 2014-06-08 00:56:40 +03:00
Torsten Ruger
e7bb774da0 fix block insert ordering with depth > 1 2014-06-08 00:56:15 +03:00
Torsten Ruger
42a840614e adding call counter and splitting block after call 2014-06-08 00:55:18 +03:00
Torsten Ruger
0a14cffefb fixing fragment tests, most done 2014-06-07 23:22:32 +03:00
Torsten Ruger
6b715bbb1b remoe hash attributes (less magic) and make attributes on context explicit 2014-06-07 22:41:02 +03:00
Torsten Ruger
36f237c633 removed the (too) fancy dsl. Also introduce register indirection 2014-06-07 17:59:44 +03:00
Torsten Ruger
6433a394e7 adding receiver and a register abstraction 2014-06-06 21:49:03 +03:00
Torsten Ruger
c59f22f11f first oo program to compile. But no worries, there is still work left to be done 2014-06-05 18:17:00 +03:00
Torsten Ruger
e6e969b4e4 a spirited effort to make assembly repeatable 2014-06-05 10:46:42 +03:00
Torsten Ruger
41a02a7190 small step to making the assmebly process repeatable (is destructive at the moment) 2014-06-05 10:28:53 +03:00
Torsten Ruger
7cc4c6344c remove the parse code and fix the rest to work with the gem (from git for now) 2014-06-04 22:03:45 +03:00
Nigel Thorne
5145d21e37 Merge branch 'master' of https://github.com/ruby-in-ruby/crystal 2014-06-04 21:49:06 +10:00
Nigel Thorne
20433e3ad2 Change to NigelThorne fork to detect infinite loops
and fixed grammar to ignore missing parameter list.
2014-06-04 21:48:32 +10:00
Torsten Ruger
72d4adc7af another step closer to a working oo system 2014-06-03 22:16:57 +03:00
Torsten Ruger
ca19f5cb16 move to syms for names 2014-06-03 20:47:06 +03:00
Torsten Ruger
b7c2089046 the further down this goes, the smaller the circles. Soon the point will come. And then back out 2014-06-03 14:49:02 +03:00
Torsten Ruger
88a26414eb change the debug output to be more readable 2014-06-02 15:11:48 +03:00
Torsten Ruger
7c1c5431bc add qualification to function definitions 2014-06-02 14:00:30 +03:00
Torsten Ruger
1cff296ab5 small fixes, wown parse for class test 2014-06-02 13:45:08 +03:00
Torsten Ruger
83d4ce55ca fix the load memory instruction 2014-06-01 22:06:59 +03:00
Torsten Ruger
31a55b07ac makes memory a three operand instruction, like add etc. But 3 regs are still undone 2014-06-01 21:20:44 +03:00
Torsten Ruger
08bbad0fdc more on classes, have to work on asm next 2014-06-01 21:03:08 +03:00
Torsten Ruger
1d10c2c03e had forgotten calls on instance variables. corrected + tests 2014-06-01 14:46:16 +03:00
Torsten Ruger
9ea0acf2e3 first oo steps are wobbly, but a string.plus parses 2014-06-01 14:24:54 +03:00
Torsten Ruger
86431120d5 add also calls on classes and more tests for that 2014-05-31 17:58:26 +03:00
Torsten Ruger
4038bd331a clean up block names and export of qualified names makes assembler nicer to read 2014-05-31 17:02:55 +03:00
Torsten Ruger
5756e0b325 move that test to core (cant be done in compiled code) and focus on string addition instead 2014-05-31 16:43:03 +03:00
Torsten Ruger
cdfc1ac891 kernel functions are not fixed to be Object functions 2014-05-31 16:19:44 +03:00
Torsten Ruger
a6f02d6be3 let the BootClasses carry functions, ie one level squeezed between object_space and funtion, the class is coming to life 2014-05-31 14:35:33 +03:00
Torsten Ruger
3713d08748 renamed program to boot_space, as in object_space at boot time. thats the way its going 2014-05-31 12:52:29 +03:00
Torsten Ruger
c9c484f353 change program to inherit stright from code, not block (as it keeps the funcitons anyway) 2014-05-31 12:38:15 +03:00
Torsten Ruger
3156887a81 add instance variables and module name as basic types (as name was there already) and add tests 2014-05-30 14:25:08 +03:00
Torsten Ruger
806960a4d6 fixing module and class rules to actually use module names. fix all tests 2014-05-30 12:17:11 +03:00
Torsten Ruger
f03d445f3d add module names and instance variables as parse rules 2014-05-30 12:06:42 +03:00
Torsten Ruger
3e93517986 adds class definition with tests 2014-05-30 10:59:49 +03:00
Torsten Ruger
e7a823bf3e renamed module_def too module_definition and fixed leading space tests 2014-05-30 10:42:43 +03:00
Torsten Ruger
caec5ee6f0 add module to root parse and tests 2014-05-30 10:31:25 +03:00
Torsten Ruger
c69a44f316 define modules and tests, no compiling 2014-05-29 15:57:33 +03:00
Torsten Ruger
25cd80c76b small fix to return gets recursive fibonacchi to work 2014-05-28 20:13:03 +03:00
Torsten Ruger
4186c9cafe add <= operator for fibo 2014-05-28 20:10:16 +03:00
Torsten Ruger
5c0f62ebb9 upgrade calls with operator argument and chaining. Almost feels like cheating, too easy 2014-05-28 15:22:37 +03:00
Torsten Ruger
0f118c591d fix return compilation and use it on the while fibo. worked immediately :-) 2014-05-28 15:03:54 +03:00
Torsten Ruger
5a415aed92 fix fragment tests to actually execute on the pi and check the output 2014-05-28 14:55:13 +03:00
Torsten Ruger
e9720c4c54 padding with space not zero 2014-05-28 14:27:37 +03:00
Torsten Ruger
07ef170db0 padding with space not zero 2014-05-28 14:26:24 +03:00
Torsten Ruger
6bfe643032 add some return test to functions 2014-05-27 16:51:37 +03:00
Torsten Ruger
fbaf292bb6 add a simple return, ie the normal kind, not with trailing statements 2014-05-27 16:33:24 +03:00
Torsten Ruger
21a53c6a7f fix the compound type parser tests 2014-05-27 15:41:34 +03:00
Torsten Ruger
0b07e77782 fix the spurious root expression and add conmound types back (thanks to kasper for fixing that) 2014-05-27 15:36:51 +03:00
Torsten Ruger
1f17262887 fix the handcoded fibonacci (registers again) 2014-05-25 13:34:06 +03:00
Torsten Ruger
5afa6f4239 move the if logic around (execute false first) and fix the parameters passing 2014-05-25 11:35:45 +03:00
Torsten Ruger
5a5b016a7e use crystal calling convention, documented in readme 2014-05-25 10:57:56 +03:00
Torsten Ruger
6ac92cac3a working on registers, awip (a work in progress) 2014-05-25 08:43:07 +03:00
Torsten Ruger
1e326e00b9 fix tests after register allocation work 2014-05-24 16:52:54 +03:00
Torsten Ruger
4a67504a61 remove parslet, bundling now 2014-05-24 14:51:50 +03:00
Torsten Ruger
61a60abd08 ridiculously easy to implement the if now 2014-05-24 10:41:57 +03:00
Torsten Ruger
00d85156da rename conditional to if expression 2014-05-24 10:18:54 +03:00
Torsten Ruger
2c90006697 that fixes the while. To work. Actually work. Fibonacci and all :-) 2014-05-23 20:27:14 +03:00
Torsten Ruger
86e73bf1ba save and restore the right registers 2014-05-22 21:55:17 +03:00
Torsten Ruger
4f0b769e82 get conditions to work for while 2014-05-22 21:38:57 +03:00
Torsten Ruger
7c2d149106 solves control flow issue when adding blocks 2014-05-22 16:35:59 +03:00
Torsten Ruger
8596fb312d while coded 2014-05-22 14:56:31 +03:00
Torsten Ruger
ccf88319e0 gives function the list of blocks it needs for branching and documents also the blocks better 2014-05-22 14:18:22 +03:00
Torsten Ruger
cf87c5323d using the next field of blocks for a consecutive code line 2014-05-22 13:59:47 +03:00
Torsten Ruger
e3bccaa0fe thats putstring working again (better testing == better code => better sleep, longer life :-) 2014-05-21 21:27:05 +03:00
Torsten Ruger
587fd56300 remove a layer of indirection 2014-05-21 21:15:23 +03:00
Torsten Ruger
bc278a61eb using function args for call 2014-05-21 21:12:46 +03:00
Torsten Ruger
65cde70114 add space at file end 2014-05-21 21:08:15 +03:00
Torsten Ruger
46102e56ad rename c to register machine 2014-05-21 19:43:46 +03:00
Torsten Ruger
937f566b27 value is not derived from code (was too much generalisation/confusing) 2014-05-21 19:41:51 +03:00
Torsten Ruger
067cde8d43 remove remnant of old dsl 2014-05-21 19:34:58 +03:00
Torsten Ruger
c36a08d52d small fixes 2014-05-21 19:33:58 +03:00
Torsten Ruger
b281c24a39 move towards locals (not hardcoding registers) 2014-05-21 19:27:27 +03:00
Torsten Ruger
570b6db659 start using locals 2014-05-21 19:06:21 +03:00
Torsten Ruger
847a486288 fix from assign 2014-05-21 19:06:06 +03:00
Torsten Ruger
c701eb9f5b outputting hex for better comparison with objdump 2014-05-21 19:04:48 +03:00
Torsten Ruger
127ce5a5d9 outputting entries to get jumps rights 2014-05-21 19:04:16 +03:00
Torsten Ruger
2df2dcc528 function now returns locals, not free registers 2014-05-21 16:42:36 +03:00
Torsten Ruger
e1f889fd10 fix fibo with new syntax. certainly works for operators, but not everything 2014-05-21 12:47:40 +03:00
Torsten Ruger
16a07d5aa2 fixed method_missing to check whether local var exists (not gobble everything up) 2014-05-21 12:44:36 +03:00
Torsten Ruger
53cfeb72a4 fix test and remove hack for - 2014-05-21 12:42:54 +03:00
Torsten Ruger
9d873d3cba implement string loading and convert hello test 2014-05-20 19:21:29 +03:00
Torsten Ruger
c7a2ce5af9 phase 2, add/sub instructions work with +- operator 2014-05-20 11:54:59 +03:00
Torsten Ruger
c3c6928dc8 phase one, assignment for constants (moves) work 2014-05-20 11:14:18 +03:00
Torsten Ruger
7056f6f05c first step of assignment magic 2014-05-20 11:03:18 +03:00
Torsten Ruger
fcf76eed34 better testing for small assembly (for coming changes) 2014-05-20 10:29:08 +03:00