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
|
1d2ec8e8ac
|
abstract CallStatement base class, just like in ruby
to_mom differs much more than the to_vool in ruby,
but data and base functionality still warrent unification
also we can check for CallStatement now
|
2018-07-30 14:45:37 +03:00 |
|
Torsten Ruger
|
198a43cc8d
|
rename callable to CallStatement
Callable is the Method, whereas here we call the method
|
2018-07-30 14:44:14 +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
|
a3059108eb
|
compile the blocks too
method_compilers have block_compilers just like
methods have blocks
But assemblers are a flat list
|
2018-07-30 10:27:32 +03:00 |
|
Torsten Ruger
|
165036ea39
|
misc
|
2018-07-30 10:26:47 +03:00 |
|
Torsten Ruger
|
2dc03f8d1b
|
push the callable into the callable compiler
thus generalizing for .callable access
keep block and method aliases for destinction in derived classes
|
2018-07-30 10:26:11 +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
|
776050fa70
|
upate readme
|
2018-07-25 11:08:39 +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
|
d03592dfb1
|
fix ruby return
|
2018-07-20 20:05:32 +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
|
ae3d64eb53
|
moved all the normalize stuff over to the ruby layer
Which is how it should have been from the start
|
2018-07-19 14:47:29 +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 |
|
Torsten Ruger
|
ff8b95f21a
|
get block resolution to use the extra
block_compiler puts in the extra, that we get out when resolving the type
Thus block args work, though only by assuming direct call
|
2018-07-17 10:37:33 +03:00 |
|
Torsten Ruger
|
280ea8a8c4
|
remove resolve_to_register
which was, quite simply, from another era when more than message was pinned
|
2018-07-16 19:19:49 +03:00 |
|