rubydesign
dcbc3e17be
refactor risc_collection
...
move code that operates on compiler to the compiler class
this leaves the collection thin, very thin indeed
2019-09-28 15:37:02 +03:00
rubydesign
9f81d78767
Also make risc compilers a linked lists
...
also via util::compiler_ist
leave collection as much in place as possible
(though collections and seperate block_compilers are about to go)
2019-09-28 15:08:08 +03:00
rubydesign
2eb9364283
make mom:method_compiler a list
...
Compilers forms alist by Util::CompilerList
Change Collection to use the list instead of array
2019-09-28 12:41:38 +03:00
rubydesign
1022390e0f
check for redefining of methods and forbid
...
causing some test problems, but better that way (until it's done right off course)
2019-09-24 21:20:12 +03:00
rubydesign
a496ea7e4b
Derive Class and MetaClass from Behaviour
...
Finally! If i remember the module was from before i had any non Object superclasses
unified code, unified bugs :-) just makes sense
2019-09-21 18:50:33 +03:00
rubydesign
e56db0a3ac
get method name out from method_missing
2019-09-17 20:18:00 +03:00
rubydesign
d58ed8e5e8
remove dead code that was produced
2019-09-17 16:08:49 +03:00
rubydesign
61819b7230
removing old brittle tests
...
that were replaced by instruction and macro tests
2019-09-17 14:28:19 +03:00
rubydesign
92f1921e2f
Last mom instruction test
2019-09-17 14:16:56 +03:00
rubydesign
f7f981dca4
Tests for return instructions
2019-09-17 13:52:20 +03:00
rubydesign
a256cf1e01
detailed method resolve test
...
revealing first bug (non critical, dead code)
2019-09-17 10:18:45 +03:00
rubydesign
830fe2ab2b
More instruction tests
2019-09-17 10:16:59 +03:00
rubydesign
b46512a1b8
tests for mom check instructions
2019-09-15 19:57:15 +03:00
rubydesign
5ab021de5a
Continue testing mom instructions
...
especially with the custom asserts, gadda say
mesa lika disa
2019-09-15 18:31:10 +03:00
rubydesign
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
rubydesign
d913bb01de
use method missing in resolve method
...
not just exit
try to print name next
2019-09-15 15:13:11 +03:00
rubydesign
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
rubydesign
1ee01622c3
Builtin is no more, final conversions done
...
All preloading where it needs to be
(some)tests for the preload
split compiler test
remembered binary tests (usually just run on travis)
2019-09-13 20:34:41 +03:00
rubydesign
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
rubydesign
c9d7539479
rework macro tests, or are they builtin
...
small fixes too
2019-09-13 10:42:20 +03:00
rubydesign
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
rubydesign
e33b9f565d
some renames before main fixes commences
2019-09-12 13:10:31 +03:00
rubydesign
616dd3487c
renaming mom builtin to macro
2019-09-11 20:33:49 +03:00
rubydesign
72643ebb08
Fix last parfait bug
...
missing return statement (duh)
2019-09-10 14:49:02 +03:00
rubydesign
0ae7c5d8aa
hacking method not found
...
was using exit, since raise is not implemented. This was ambiguous as all programs exit.
Using :died as special kernel code and bending it, and reporting it in interpreter.
2019-09-09 11:47:37 +03:00
rubydesign
b13c19def3
cache booted functions
...
remove more redundant parfait boots
2019-09-07 17:56:06 +03:00
rubydesign
2c681bf2e5
Add mom boot options
...
and remove a lot of stale parfait boots from tests
(from before using rubyxc)
2019-09-07 16:43:47 +03:00
rubydesign
4656ea8ffb
fix all mom tests
...
still quite brittle, but easy to fix
2019-08-23 19:24:18 +03:00
rubydesign
50c172915e
fixing most of the mom tests
2019-08-23 15:31:04 +03:00
rubydesign
5e44e9caaf
fix mom and vool after cc changes
2019-08-23 10:21:22 +03:00
rubydesign
7ca3599c5a
Fixed all after changing argument handling
...
arguments are now fully inlined into the message
locals next
2019-08-22 23:10:29 +03:00
rubydesign
017e7e2971
fix most of mom from calling changes
2019-08-22 22:56:44 +03:00
rubydesign
c13d4fb017
Make builtin tests more stand alone
...
not relying on the whole boot process
easier to test basic when broken (like now)
2019-08-22 17:52:19 +03:00
rubydesign
d5d1df951c
Block/Lambda rework done
...
recovered from all renames and redoing the block compilation
all green
2019-08-19 15:23:57 +03:00
rubydesign
ee8927b059
Fix slot access for constants
...
Type access is allowed for any object, including constants.
Needed for parfait
2019-08-18 20:35:01 +03:00
rubydesign
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
rubydesign
ae7f31381b
Fixing self type creation
...
When compiling a classs, we pick up all instance variables.
Now that conditions and returns can be calls, that was broken, now fixed
2019-08-17 15:58:27 +03:00
rubydesign
d3f3c91ae5
Fix all but one test
...
Riples upon riples. The one left looks like the genuine article
2019-08-16 21:43:54 +03:00
rubydesign
31ae0a9670
Add support for unless
...
ifs without a true branch would crash before
Somewhat more verbose but unified
2019-08-14 22:24:35 +03:00
rubydesign
b2260d856d
And we are green again
...
After having over 600 failing tests at one point, this does feel good.
Even better, most of the risc/interpreter tests where i didn't change anything came gree without changing the tests. ie we have binary compatibility.
2019-08-14 11:11:26 +03:00
rubydesign
c13a8ceb11
all of mom and vool
...
with working block tests this time
2019-08-13 20:35:27 +03:00
rubydesign
155c042009
Fix forgotten block compiler
...
Especially on the way down to risc
2019-08-13 19:32:17 +03:00
rubydesign
8036b23593
Fixed more disabled tests
2019-08-13 11:14:36 +03:00
rubydesign
aaf169ad8d
Fixed almost all but Interpreter
...
150 only failing, seems only 1 bug though
and one in linker
2019-08-13 00:13:29 +03:00
rubydesign
9474932320
fixing risc collection tests
2019-08-12 16:12:17 +03:00
rubydesign
9a2716280c
Extracting the mom instruction from builtin modules
...
Since they were embedded at first (easier copy/paste) they now got own files, like their brethren
also mini tests for each instruction , nice start
2019-08-12 13:16:15 +03:00
rubydesign
fa0aa30386
Move builtin wholesale to Mom
...
Since Builtin generates risc, just like mom instructions, it was a design mistake to put builtin into risc in the first place. Now that borders are coming more into focus, it make much more sense to have the builtin in mom.
In fact the instructions should be moved out and a seperate invocation mechanism used , so functions can be parsed, not generated (wip)
2019-08-12 12:38:29 +03:00
rubydesign
0b59c95218
more test fixes and more to do
2019-08-10 21:59:31 +03:00
rubydesign
213938075f
fix most mom and risc apart
...
apart from things involving builtn, which is not yet conceptually solved (as it codes risc, not mom)
2019-08-10 21:30:00 +03:00
rubydesign
d5f89a4979
compile from mom compiler to risc
2019-08-10 12:42:47 +03:00