Commit Graph

2227 Commits

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