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 |
|
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
|
4cc04787e9
|
remove Risc.resolve_to_index
mostly by using better typed registers,
which cleans up the code where it was used
|
2018-07-16 19:00:04 +03:00 |
|
Torsten Ruger
|
3343017dba
|
move type resolution to compiler
from risc_value.
also unite mock compilers
|
2018-07-16 11:46:18 +03:00 |
|
Torsten Ruger
|
e3673e579c
|
pass extra info into register init, not just value
extra info may be hash, maybe just type info
|
2018-07-16 11:23:09 +03:00 |
|
Torsten Ruger
|
b410538d07
|
uups, forgot to check that in
|
2018-07-15 17:44:26 +03:00 |
|
Torsten Ruger
|
3bc85805a4
|
must pass registers to slot_to_reg and reg_to_slot
as they are typed, those functions don't resolve on Risc, but the register type
miscother changes from previous commits
|
2018-07-15 16:30:50 +03:00 |
|
Torsten Ruger
|
f31d22d901
|
use real type in register, not symbol
this has some more consequences, upcoming
|
2018-07-15 15:16:12 +03:00 |
|
Torsten Ruger
|
69385c863f
|
some more addresses
|
2018-07-15 15:13:25 +03:00 |
|
Torsten Ruger
|
eaeea29e38
|
helper erro handling
|
2018-07-15 12:32:02 +03:00 |
|
Torsten Ruger
|
648ec772ec
|
direct index access helper for type
|
2018-07-15 12:30:50 +03:00 |
|
Torsten Ruger
|
581f457119
|
type helper for class name
|
2018-07-14 11:03:16 +03:00 |
|
Torsten Ruger
|
61c840c023
|
start to move slot_load code to register_value
the iea is to iterate through register_values while reducing the slot_load to a number of Slot_to_regs
wip
|
2018-07-13 21:56:55 +03:00 |
|