6f108f67d7
Starting to build detailed mom to risc test
...
so we can get rid of brittle risc folder tests
All of those tests rely on many many implementation details
should just test result through interpreter, no chain.
2019-09-15 17:44:35 +03:00
7ee57f2b08
generalize get_main and get_init to get_method
...
to get at those know methods that really
__must__ exists, hence the bang, raise if don't
about to add method missing and raise to the list
2019-09-15 12:58:43 +03:00
56398e1127
Fix load order, travis obviously different
...
support files were loaded different locally than travis
probably time stamp, vs abc
Anyway, don't rely on dir order, make requires explicit
2019-09-13 22:06:18 +03:00
8af17a69ea
splitting commpiler commands and adding preload option
2019-09-13 19:08:59 +03:00
12b29285d7
Lots of preloading for tests
...
so many relied (implicitly( on some builtin function
after all can't do much in ruby without calling
Now all those dependencies are explicit
Small risc changes come because the macro version has a return label and unreachable label
2019-09-13 14:07:12 +03:00
4bf23defc8
fix many tests with preloading
...
preloading, something akin to builtin, loads some very small predefined (macro) methods for the tests to work (ie call)
2019-09-12 22:27:26 +03:00
e33b9f565d
some renames before main fixes commences
2019-09-12 13:10:31 +03:00
02261ad79d
changing factory size per factory
...
Before it was one class variable, but ints and messages are not created in equal amounts.
2019-08-24 09:46:33 +03:00
86b27ab319
CC change test fixes finished
2019-08-23 19:25:02 +03:00
50c172915e
fixing most of the mom tests
2019-08-23 15:31:04 +03:00
5dc8c046e7
increase binary_code size to 32
...
save a few jump, adds some size to binary
16 just seemed kind of small
2019-08-22 12:26:40 +03:00
5a43cbff15
Fixing tests for implicit return
...
previous commit affected rather many test, as the implicit returns add extra instructions
Also added some explicit returns, so as not to test the return logic too much. return (ie return nl) is a knonwn 3 risc operation.
2019-08-17 23:29:42 +03:00
c13a8ceb11
all of mom and vool
...
with working block tests this time
2019-08-13 20:35:27 +03:00
155c042009
Fix forgotten block compiler
...
Especially on the way down to risc
2019-08-13 19:32:17 +03:00
d5625a70d7
fix a whole bunch of vool to_mom
...
All but those requiring boot functions
2019-08-07 15:09:26 +03:00
1237e079f7
Some vool starting to work again
...
disabling some rubyx compiler tests
2019-08-07 12:06:06 +03:00
66c2adda20
Copy risc compiler stuff to mom
...
Start to separate the layers.
wip, just checkin in to see the following changes better
2019-08-06 18:33:27 +03:00
fb89c01681
clean up test option handling
2019-03-04 10:24:08 +02:00
a89301d623
finally creating less objects in the test
...
basic still #23 , now applied
Basic size of 20, interpreter gets 50 and the full set is 1024
Tests run more than twice as fast!!
2019-02-09 12:44:35 +02:00
37eeb81f45
fix all tests for previous commit
2019-02-08 23:03:23 +02:00
8a81d41d5e
Move booting to RubyXCompiler init
...
Also pass the source into the compile method.
This way compiler can be reused for subsequent compile.
Does remove some double boots, but no major time save
2018-09-02 13:57:19 +03:00
f798173a09
change to_risc and builtin code according to last commit
...
Wherever space was loaded to get to the next_message
we now load the Message factory.
Otherwise much the same, only the attribute is next_object, not next_message
The binary is growing with 1k objects per factory, so i had to fix (hack) arm to handle bigger constants
close #14
2018-09-01 11:28:53 +03:00
f85fe8a2cb
fix bug in slot_load and definition
...
move parfait helper for reuse
2018-08-19 15:36:51 +03:00
b294208025
continue with #11
...
slots are the most tricky, especially testing
2018-08-19 13:06:00 +03:00
80264c5322
mains tests can include any code
...
not wrapping as main anymore
(must still include mains)
first part of #11
2018-08-18 19:42:14 +03:00
15337e10be
move putstring to use builder
2018-08-15 17:52:21 +03:00
28b4a2b373
add line numbers to array output
2018-08-12 13:58:58 +03:00
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
4f3c0d8b08
more block tests working
...
dynamic calls and operators on block args
(giant strides)
2018-08-01 16:31:16 +03:00
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
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
9c6a099cde
block test
...
working on return semanitcs
(still avoiding the implicit return)
2018-07-30 14:10:24 +03:00
e1d5592c55
fix boot to include blocks correctly
2018-07-27 10:48:45 +03:00
d80ef4bf4e
store method, not name, in message
...
changes the calling and thus too many test
2018-07-22 22:29:32 +03:00
f620f0fd74
last test fixed, ruby layer complete
2018-07-20 21:27:55 +03:00
b00b0cf064
fixed some interpreter tests
...
hoisting is slightly more simple and that adds a couple insstructions
2018-07-20 21:00:47 +03:00
3c1137066b
more block tests reveal a compiler bug
...
copy/paste, args twice in switch
2018-07-18 10:13:19 +03:00
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
3343017dba
move type resolution to compiler
...
from risc_value.
also unite mock compilers
2018-07-16 11:46:18 +03:00
27a142f2a3
use compiler base class for blocks too
...
can now go to mom level and add
test harness still looks overly complicated, but works
first block tests at mom level
2018-07-10 22:03:32 +03:00
edea9ac080
makeing the method of the compiler more or less private
...
in preparation for using the same code for bocks
2018-07-09 19:32:17 +03:00
dd544214b3
start with block_compiler
...
as a copy of method_compiler
re-merge later, when we know what's needed
2018-07-09 16:48:23 +03:00
acd5cd8f30
rename for_type to self_type
...
and split a base class off TypedMethod
2018-07-06 20:01:17 +03:00
3f80953385
passing compiler to to_mom, not method
...
To be able to delegate scope (block/method) things later
2018-07-05 14:02:38 +03:00
2485f7e9eb
misc fixes and (finally, sigh) green again
...
deeeep dive, almost 40 commits
2018-07-04 09:18:55 +03:00
6f936f190d
misc to_s and small fixes
2018-07-04 08:28:29 +03:00
55b5884c4e
minor test fixes
2018-07-02 23:03:33 +03:00
a1197fb70c
interpreter tests working again
2018-07-02 17:29:26 +03:00
4e49c0469c
fix compiling support
...
which makes all the vool tests pass again
2018-07-02 15:52:51 +03:00
5f2a256608
fix platform derivation and some tests
2018-07-01 21:27:27 +03:00