Commit Graph

724 Commits

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