Commit Graph
100 Commits
Author SHA1 Message Date
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 2044a3e994 update reader 2014-06-25 01:41:17 +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 1290663789 get parser updates 2014-06-19 22:54:34 +02: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 ebf117a63a update tests, all green 2014-06-12 21:43:06 +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 f523d0946d fix the lasts tests 2014-06-05 16:27:25 +03:00
Torsten Ruger f2e8e644bd changes tests to only compare the tested function output, not the whole binary 2014-06-05 13:02:36 +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
Torsten Rüger e9d2724f62 Merge pull request #1 from NigelThorne/master
Auto Detect infinite loops
2014-06-04 16:22:28 +03: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 f60bbfa9ca add a fail case, that anoyingly hangs 2014-06-03 09:41:39 +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 513545f51b updated readme 2014-05-30 14:49:34 +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 497211f027 fix class tests and link them into all. 352 tests 2014-05-30 12:24:38 +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 d59370bdc7 clean stash a little 2014-05-28 21:04:46 +03:00
Torsten Ruger 5e8688c417 small fixes to get all the tests to pass/run 2014-05-28 21:00:52 +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 c01c19209a fix tests 2014-05-28 14:27:18 +03:00
Torsten Ruger 07ef170db0 padding with space not zero 2014-05-28 14:26:24 +03:00
Torsten Ruger dded655443 update status 2014-05-27 19:19:55 +03:00
Torsten Ruger 262868161c typo 2014-05-27 19:19:46 +03:00
Torsten Ruger 6bfe643032 add some return test to functions 2014-05-27 16:51:37 +03:00