Torsten Ruger
c63e55c2bc
add an operator function
...
to be able to use the builder more
also add ability to load fixnums (for the int functions)
2018-08-07 20:48:36 +03:00
Torsten Ruger
554c2d3d73
just checking fibo 30
...
at just under 8000 instructions i can't wait to run real benchmarks
2018-08-06 14:13:39 +03:00
Torsten Ruger
393ac873c9
change return sequence to return messages to space
...
as it was before blocks
(thought blocks would make reuse of messages impossible, but was wrong, this only appilies to lambdas)
(too) many tests affected
2018-08-06 14:07:17 +03:00
Torsten Ruger
77cbc0ad6a
always use fail fast (in dev)
...
but not for the travis run (or test_all check)
2018-08-06 13:07:06 +03:00
Torsten Ruger
fd25f997ce
reqrote return sequence with builder
...
added test _before_ , same code, just much easier to read
in preparation for returning messages
2018-08-06 13:04:47 +03:00
Torsten Ruger
595e032edf
add function_return helper to risc_value
...
create a function_return from within builder
2018-08-06 13:03:33 +03:00
Torsten Ruger
c9d8f750e5
extend type inference for dsl
...
and finally test it
2018-08-06 10:11:12 +03:00
Torsten Ruger
308996bf8e
fix all tests accordingly to new return
2018-08-02 17:37:27 +03:00
Torsten Ruger
050659ea12
block tests for if and while
...
bundle update too
2018-08-01 20:17:41 +03:00
Torsten Ruger
4f3c0d8b08
more block tests working
...
dynamic calls and operators on block args
(giant strides)
2018-08-01 16:31:16 +03:00
Torsten Ruger
4b4528abb2
propagate constants from block_compiler up
...
up to method_compiler, where they are collected by mom_compiler
(and included in binary)
2018-08-01 16:27:34 +03:00
Torsten Ruger
81cc109d1e
more block tests
...
instance and arg access
2018-07-31 19:44:40 +03:00
Torsten Ruger
04bcfea8ce
fix scoping of blockcompiler
...
Was accessing caller scope, but must use caller's caller as the yield itself is a call.
2018-07-31 18:00:42 +03:00
Torsten Ruger
4fe0edd1e3
first risc level block test working
...
assign was not executing yield
baecause it was just testing for send, instead of callable
2018-07-30 20:11:52 +03:00
Torsten Ruger
9c6a099cde
block test
...
working on return semanitcs
(still avoiding the implicit return)
2018-07-30 14:10:24 +03:00
Torsten Ruger
165036ea39
misc
2018-07-30 10:26:47 +03:00
Torsten Ruger
285a88b59f
generalize assemblers to use callables
...
not just methods, they are almost the same anyway
2018-07-30 10:23:42 +03:00
Torsten Ruger
4055709529
push the name down into callable
...
blocks need a name too
if just for debug, and stacks
2018-07-30 10:21:43 +03:00
Torsten Ruger
1cb07a4164
block arg access was off by one
2018-07-27 12:16:06 +03:00
Torsten Ruger
e1d5592c55
fix boot to include blocks correctly
2018-07-27 10:48:45 +03:00
Torsten Ruger
4839e0d245
minor naming and spaces
2018-07-27 10:46:22 +03:00
Torsten Ruger
700744e6d5
block assignment ruby to vool
2018-07-25 11:06:42 +03:00
Torsten Ruger
f5c284b3a0
bring the blocks down to mom level
...
reusing message_setup, but adding yield specific instructions
2018-07-24 11:35:49 +03:00
Torsten Ruger
d80ef4bf4e
store method, not name, in message
...
changes the calling and thus too many test
2018-07-22 22:29:32 +03:00
Torsten Ruger
b6c85cd4a4
callable as base for yield and send
...
more yield tests
2018-07-21 14:34:39 +03:00
Torsten Ruger
84a6fb1aba
more block tests
2018-07-21 12:51:20 +03:00
Torsten Ruger
f620f0fd74
last test fixed, ruby layer complete
2018-07-20 21:27:55 +03:00
Torsten Ruger
b00b0cf064
fixed some interpreter tests
...
hoisting is slightly more simple and that adds a couple insstructions
2018-07-20 21:00:47 +03:00
Torsten Ruger
6022aa4dab
introduce ruby variable and remove ct_type
...
cleaner oo
2018-07-20 20:53:35 +03:00
Torsten Ruger
9548440949
remove old tests
...
those normalisation tests are now to_vool tests
2018-07-20 20:10:12 +03:00
Torsten Ruger
235853ab2d
first run at ruby block to_vool
...
leaving the parser structure in the ruby layer,
but adopting the constant approach in vool
2018-07-20 20:07:15 +03:00
Torsten Ruger
0238874c20
fx ruby send args
2018-07-20 20:06:14 +03:00
Torsten Ruger
172327f045
fix assignments
...
which was letting ruby instances through
also rename the doubious copy
2018-07-20 18:13:58 +03:00
Torsten Ruger
6a58a71c0a
fix while.to_vool
...
sanitize normalizer on the way
- return ruby, let caller to_vool
- return single statement, not single? statements
2018-07-20 17:51:17 +03:00
Torsten Ruger
9b8bd57db4
fix if to_vool
...
and add (simple) hoisting tests
2018-07-20 17:30:08 +03:00
Torsten Ruger
98788b52d3
fix ruby variables
2018-07-20 14:22:26 +03:00
Torsten Ruger
f4402ba30f
fix local assignment
...
was missing a method that got lost in copy/paste
also renaming to get guard to pick up tests
2018-07-20 14:16:29 +03:00
Torsten Ruger
d14eca3e70
fix assignments to_vool
2018-07-20 13:43:37 +03:00
Torsten Ruger
e536a7ac88
fixing send to_vool
...
was hoisting unneccessarily, because not respecting basics
2018-07-20 13:15:16 +03:00
Torsten Ruger
7b02feae7a
fix ruby send statement
...
remove ruby expression
2018-07-20 10:05:11 +03:00
Torsten Ruger
8cd9818f64
fix ruby return statement
...
assignment and normalizer on the way
2018-07-20 09:07:09 +03:00
Torsten Ruger
a5168ef818
fix ruby class statement
2018-07-19 21:44:48 +03:00
Torsten Ruger
238f09b5ad
fix method to_vool
2018-07-19 21:36:28 +03:00
Torsten Ruger
7b4a0126f7
add a helper to get the vool equivalent of a ruby class
2018-07-19 20:59:15 +03:00
Torsten Ruger
77be0d3f73
fixing the ruby creation tests
2018-07-19 16:30:36 +03:00
Torsten Ruger
f728725b1a
change the ruby block to be like the ruby block
...
ie modelled like the ast outputs it
2018-07-19 16:22:44 +03:00
Torsten Ruger
61225c2f20
ifx most of the conversion
...
well . . it's still converting to ruby, minor detail
2018-07-19 14:59:10 +03:00
Torsten Ruger
38350dd198
start a new ruby layer to do the to_vool conversion
...
the "normalization" is getting more and more complicated and is not tested
And it seems i really don't like working with the untyped ast
2018-07-19 14:46:51 +03:00
Torsten Ruger
f624e38dbb
finish assign test
...
start ifs
2018-07-18 13:57:38 +03:00
Torsten Ruger
3c1137066b
more block tests reveal a compiler bug
...
copy/paste, args twice in switch
2018-07-18 10:13:19 +03:00