Commit Graph

2809 Commits

Author SHA1 Message Date
Torsten Rüger 1e2c4d6678 More tests and compiling parfait object 2019-09-19 17:41:26 +03:00
Torsten Rüger fd46826b9c Implement class instance variables
as they are just the type of the meta_class, that was relatively simple.
I feel this is what oo is meant to be, instance variables and methods for the objects, and since classes are objects, for them too.
Class variables seem like a design mistake, weird scoping rules and no data hiding (left as an exercise to the reader)
2019-09-19 15:48:27 +03:00
Torsten Rüger b0d1948800 Moving space to object class
away from Parfait module, as that gets collapsed
Leaving shortcut outside parfait for now
2019-09-18 22:36:56 +03:00
Torsten Rüger 41617519d9 some class send test changes
also ivar, which is still wip
2019-09-18 22:07:58 +03:00
Torsten Rüger 38491d120b removed unused NamedList
args and locals got inlined into message, forgot to delete then
ripples out due to type creation
small type class api change, more ripples, but also more consistent
2019-09-18 22:07:05 +03:00
Torsten Rüger 4b8ff52aa1 forgot to run bundle after removing reporter 2019-09-18 13:40:38 +03:00
Torsten Rüger f13e8b3bd7 A little work on test times
They have been rising of late, installer reporter to check 8and keep checking)
tweaking of cli parameters 
removed redundant interpreter tests
2019-09-18 13:36:29 +03:00
Torsten Rüger e56db0a3ac get method name out from method_missing 2019-09-17 20:18:00 +03:00
Torsten Rüger d58ed8e5e8 remove dead code that was produced 2019-09-17 16:08:49 +03:00
Torsten Rüger 61819b7230 removing old brittle tests
that were replaced by instruction and macro tests
2019-09-17 14:28:19 +03:00
Torsten Rüger 92f1921e2f Last mom instruction test 2019-09-17 14:16:56 +03:00
Torsten Rüger f7f981dca4 Tests for return instructions 2019-09-17 13:52:20 +03:00
Torsten Rüger a256cf1e01 detailed method resolve test
revealing first bug  (non critical, dead code)
2019-09-17 10:18:45 +03:00
Torsten Rüger 830fe2ab2b More instruction tests 2019-09-17 10:16:59 +03:00
Torsten Rüger b46512a1b8 tests for mom check instructions 2019-09-15 19:57:15 +03:00
Torsten Rüger 5ab021de5a Continue testing mom instructions
especially with the custom asserts, gadda say
mesa lika disa
2019-09-15 18:31:10 +03:00
Torsten Rüger 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
Torsten Rüger d913bb01de use method missing in resolve method
not just exit
try to print name next
2019-09-15 15:13:11 +03:00
Torsten Rüger 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
Torsten Rüger b36ba42990 Test complied parfait tests
this makes it obvious that we need a working raise
and a correct method_missing, so we can diagnose the 
resulting errors
2019-09-15 12:18:31 +03:00
Torsten Rüger 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
Torsten Rüger 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
Torsten Rüger 8af17a69ea splitting commpiler commands and adding preload option 2019-09-13 19:08:59 +03:00
Torsten Rüger 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
Torsten Rüger c9d7539479 rework macro tests, or are they builtin
small fixes too
2019-09-13 10:42:20 +03:00
Torsten Rüger 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
Torsten Rüger e33b9f565d some renames before main fixes commences 2019-09-12 13:10:31 +03:00
Torsten Rüger dced6b12e6 removing builtin as a concept (wip)
the "old" way of generating compilers is now obsolete
we can use ruby code with mom macros to achieve the same
Three step wip
remove old builtin
fix tests (including adding necessary methods)
fixup and inclusion of builtin code to parfait
2019-09-12 13:09:30 +03:00
Torsten Rüger 616dd3487c renaming mom builtin to macro 2019-09-11 20:33:49 +03:00
Torsten Rüger 5ea91df4c1 Integer macros tests and defs 2019-09-11 19:23:56 +03:00
Torsten Rüger e8bfb9a58c tests for word macros 2019-09-11 18:53:20 +03:00
Torsten Rüger f264aec94a macro tests for all object mom instructions 2019-09-11 18:43:20 +03:00
Torsten Rüger 2c4f040654 starting to move builtin into parfait
single object method for now
little framework next
2019-09-10 20:40:41 +03:00
Torsten Rüger feeb9332a2 cleaning 2019-09-10 16:21:13 +03:00
Torsten Rüger c216d224ec Merge branch 'parfait' 2019-09-10 14:49:52 +03:00
Torsten Rüger 72643ebb08 Fix last parfait bug
missing return statement (duh)
2019-09-10 14:49:02 +03:00
Torsten Rüger f6bab0e633 downgrade parser for opal 2019-09-10 14:42:10 +03:00
Torsten Rüger 63323376e4 use more instances in parfait
and misc
2019-09-10 12:33:57 +03:00
Torsten Rüger c3c2ab606c type attr cleanup
and sizes up top
2019-09-10 00:18:20 +03:00
Torsten Rüger d82cedf4c0 Quite small amount of parfait tests needed changing after that
But something is amiss anyway, especially dynamic jumps
2019-09-09 20:29:18 +03:00
Torsten Rüger 81e3c0c270 moving to instance variables in parfait 2019-09-09 20:26:54 +03:00
Torsten Rüger fc8de10964 remove parfait module magic
since we are now ruby sorcerers, not just wizards, we remove the Parfait module in the compiler (Still have to avoid the name clashes)
2019-09-09 11:54:45 +03:00
Torsten Rüger 104f4c5109 Start on parsing parfait tests
Hanging on .new currently, but there is surely more
2019-09-09 11:48:29 +03:00
Torsten Rüger 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
Torsten Rüger 7334e72458 Weird to be finding Parfait word bugs now
but index maths is also much easier 10th time around
2019-09-08 21:14:54 +03:00
Torsten Rüger 6811fc4174 fix interpreter to output symbols
which amazingly lets us get at classnames etc
2019-09-08 15:31:03 +03:00
Torsten Rüger a99abd7ad0 update gems, remove ssh 2019-09-08 13:44:51 +03:00
Torsten Rüger 1a096110a8 basic require_relative (hack)
opted to hack require to be getting on
need require for the test helper
and the files in lib/parfait

General require mechanism would still be ok, but require_ralative means implementing file source, which needs to be dragged around. I'll make an issue
2019-09-07 22:13:53 +03:00
Torsten Rüger b13c19def3 cache booted functions
remove more redundant parfait boots
2019-09-07 17:56:06 +03:00
Torsten Rüger 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