Commit Graph

191 Commits

Author SHA1 Message Date
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