Torsten Ruger
|
eef6744827
|
fixes the if test (regs again)
|
2014-06-12 08:34:46 +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
|
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
|
fbcfa844de
|
renaming and small fixes
|
2014-06-08 00:56:40 +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
|
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
|
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 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
|
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
|
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
|
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
|
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
|
07ef170db0
|
padding with space not zero
|
2014-05-28 14:26:24 +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
|
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
|
6ac92cac3a
|
working on registers, awip (a work in progress)
|
2014-05-25 08:43:07 +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
|
2c90006697
|
that fixes the while. To work. Actually work. Fibonacci and all :-)
|
2014-05-23 20:27:14 +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
|
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
|
cf87c5323d
|
using the next field of blocks for a consecutive code line
|
2014-05-22 13:59:47 +03:00 |
|
Torsten Ruger
|
c36a08d52d
|
small fixes
|
2014-05-21 19:33:58 +03:00 |
|
Torsten Ruger
|
2df2dcc528
|
function now returns locals, not free registers
|
2014-05-21 16:42:36 +03:00 |
|
Torsten Ruger
|
f34fddd383
|
minor
|
2014-05-19 21:28:18 +03:00 |
|
Torsten Ruger
|
8ba79d8de8
|
fibinacci actually compiles, doesnt mean it works though
|
2014-05-19 11:29:18 +03:00 |
|
Torsten Ruger
|
3912e0cd31
|
fix register issues, some typos
|
2014-05-14 22:04:03 +03:00 |
|
Torsten Ruger
|
d6b5d46165
|
while compiles. jo
|
2014-05-14 12:02:54 +03:00 |
|
Torsten Ruger
|
d50c38f5ad
|
add more functionality to get while to work (not there yet)
|
2014-05-14 11:33:23 +03:00 |
|
Torsten Ruger
|
2230a4f25e
|
clean up intruction instantiation and fix tests
|
2014-05-14 10:47:30 +03:00 |
|
Torsten Ruger
|
46ea1df51e
|
rename function_call to call_site in all levels to avoid confusion
|
2014-05-13 21:15:02 +03:00 |
|
Torsten Ruger
|
04af367bc0
|
coming together, more and more each day
|
2014-05-13 21:06:12 +03:00 |
|
Torsten Ruger
|
f6711ea49c
|
checkpointing on the mad road to register allocation
|
2014-05-13 18:21:24 +03:00 |
|
Torsten Ruger
|
d7f31e7f39
|
introduce constant class and add block to compile signature(wip, work in progress)
|
2014-05-13 16:24:19 +03:00 |
|
Torsten Ruger
|
dd05b30230
|
ads to_s to ast for better readability
|
2014-05-13 10:49:26 +03:00 |
|
Torsten Ruger
|
fdb5dd4f67
|
a good stab at array anf hash constants
|
2014-05-12 21:36:38 +03:00 |
|
Torsten Ruger
|
e2fb0a5f34
|
rename conditional to control in parser
|
2014-05-12 12:20:31 +03:00 |
|
Torsten Ruger
|
cc5915135a
|
add lots of operators. Assignment becomes operator. fix the mess
|
2014-05-11 18:37:26 +03:00 |
|
Torsten Ruger
|
2d389d2e00
|
adds basic math operators, thanks to kasper associative and prioritised
|
2014-05-10 21:41:46 +03:00 |
|
Torsten Ruger
|
6378209f33
|
leave assignee as name_expression in assignment, fix tests accordingly
|
2014-05-10 19:11:32 +03:00 |
|
Torsten Ruger
|
47f1608685
|
start to add while loop
|
2014-05-10 19:02:51 +03:00 |
|
Torsten Ruger
|
e600911fe8
|
adds variable, something compliles , but...
|
2014-05-10 17:55:02 +03:00 |
|
Torsten Ruger
|
79a28ac5fa
|
trying to get function calls to work (but will have to rework regeister handling)
|
2014-05-10 15:24:56 +03:00 |
|
Torsten Ruger
|
20128627c7
|
implements inspect for copy paste into tests
|
2014-05-10 12:54:10 +03:00 |
|
Torsten Ruger
|
7341586d15
|
more expressions compile
|
2014-05-10 10:58:25 +03:00 |
|
Torsten Ruger
|
4135c4d2dc
|
crystal says Hello.
|
2014-05-06 21:36:28 +03:00 |
|
Torsten Ruger
|
de66238a9e
|
moved all compile to ast, vm does link and assemble. Getting there
|
2014-05-05 11:03:43 +03:00 |
|
Torsten Ruger
|
99da6f5be3
|
gets rid of conversion approach, ast compiles
|
2014-05-05 10:13:49 +03:00 |
|
Torsten Ruger
|
c67ee7f6f3
|
extracted ast classes to own files
|
2014-05-05 10:02:02 +03:00 |
|
Torsten Ruger
|
7c7e58ea62
|
upgrades ast to first class
|
2014-05-05 09:51:16 +03:00 |
|