Commit Graph
100 Commits
Author SHA1 Message Date
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
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 a6ea45b203 fixed deprication 2014-05-27 15:33:08 +03:00
Torsten Ruger 0e2b5665ff add recursive fibo test, but that needs return first 2014-05-27 15:31:31 +03:00
Torsten Ruger 62ae79dfd8 all lights are green in crystal land 2014-05-25 13:45:04 +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 5fb1d9825a fixed tests according to new calling convention 2014-05-25 10:57:26 +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 d131218b83 fixed and using gemfile 2014-05-24 14:50:30 +03:00
Torsten Ruger 6e7e7563a2 add a gemspec (with the madly optimistic thought of ever releasing a gem) 2014-05-24 14:35:06 +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 6eeefc5617 passes the test, as (did i mention this) it actuall works (he cackles) 2014-05-23 20:30:55 +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 7b6d6b9024 more stack tests, just to make sure 2014-05-23 15:08:47 +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 c196817568 adds the intel tests, even intel is not integrated. Helps to catch global replace errors 2014-05-22 19:36:13 +03:00
Torsten Ruger bfa13f9546 moved with better name 2014-05-22 19:34:42 +03:00
Torsten Ruger c3488724dc moved with better name 2014-05-22 19:34:13 +03:00
Torsten Ruger dcbbff5527 is now a fragment 2014-05-22 19:32:59 +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 a76ba577f2 putint test ok 2014-05-21 22:16:19 +03:00
Torsten Ruger 33fb8e7d2f better test for foo, nice rythm 2014-05-21 21:37:04 +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 741c55cba3 start testing the previous runners more rigourusly 2014-05-21 21:13:12 +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 56afe575e1 writing before asserting to be able to debug the object, also move to hex 2014-05-21 19:05:40 +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