Commit Graph

579 Commits

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