rubydesign
41617519d9
some class send test changes
...
also ivar, which is still wip
2019-09-18 22:07:58 +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
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
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
c9d7539479
rework macro tests, or are they builtin
...
small fixes too
2019-09-13 10:42:20 +03:00
rubydesign
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
rubydesign
616dd3487c
renaming mom builtin to macro
2019-09-11 20:33:49 +03:00
rubydesign
5ea91df4c1
Integer macros tests and defs
2019-09-11 19:23:56 +03:00
rubydesign
e8bfb9a58c
tests for word macros
2019-09-11 18:53:20 +03:00
rubydesign
f264aec94a
macro tests for all object mom instructions
2019-09-11 18:43:20 +03:00
rubydesign
2c4f040654
starting to move builtin into parfait
...
single object method for now
little framework next
2019-09-10 20:40:41 +03:00
rubydesign
81e3c0c270
moving to instance variables in parfait
2019-09-09 20:26:54 +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
160d860db2
using new macro approach for builtin, testing first
2019-08-26 09:24:06 +03:00
rubydesign
1eb6430880
last fixes for cc
...
seems like setup had just worked by chance and change broke that.
2019-08-23 19:22:27 +03:00
rubydesign
89f32ed74a
Changing the call setup and return to be more efficient
...
Now we are using a statically linked list of messages. This will not work with procs, but that can be solved then.
Previous (wrong) thinking was that because of procs messages have to be allocated for every call. This was too slow, and not neccessary
2019-08-23 15:30:27 +03:00
rubydesign
8ed013c2b9
Change Locals in calling convention
...
Just like the args, locals are now inlined into the Message.
Message is off course bigger, but as they are created at compile time, that hardly matters
Some programs did get somewhat smaller, especially with both changes, but not super much
2019-08-23 10:23:01 +03:00
rubydesign
017e7e2971
fix most of mom from calling changes
2019-08-22 22:56:44 +03:00
rubydesign
0a1b05b2ee
Inline arguments into message
...
thus removing indirection for access
does affect rather much, several commits
2019-08-22 17:55:19 +03:00
rubydesign
f87526f86f
Renaming Vool exppressions rightly
...
Class, Method and Lambda (was block) are expressions.
Just making things clearer, especially for the blocks (ahem, lambdas) is matters.
wip
2019-08-19 11:33:12 +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
15d1c07a1c
Remove dead code
...
some copy paste in creating full mom layer left dome unused (untested)
code
thanks to code climate stats
2019-08-18 10:19:52 +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
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
rubydesign
5994cd3276
starting on mom to risc
...
some docs too
2019-08-08 12:19:27 +03:00
Torsten Rüger
d5625a70d7
fix a whole bunch of vool to_mom
...
All but those requiring boot functions
2019-08-07 15:09:26 +03:00
Torsten Rüger
1237e079f7
Some vool starting to work again
...
disabling some rubyx compiler tests
2019-08-07 12:06:06 +03:00
Torsten Rüger
5d1d485565
move mom instruction up one
...
just like the risc one, also some basic tests
2019-08-06 20:44:39 +03:00
Torsten Rüger
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
Torsten Rüger
d3ed29520e
Some docs
2019-08-06 17:42:15 +03:00
rubydesign
fdb940e43f
stashing
2019-07-22 15:21:16 +03:00
Torsten Ruger
e6615d0a6a
remove the old add_new_int and calls
...
last orrurences in syscalls replaced, 2 variants
- exit does not actually need the int
- all else, preallocate the int beforehand and in syscall assume the reg name (integer_tmp)
test missing
2018-11-22 09:16:56 +02:00
Torsten Ruger
bbb7dbef75
First part of int allocation
...
implemented allocate_int
instead of add_new_int
2018-11-21 11:12:39 +02:00
Torsten Ruger
5015a11108
function docs improvements
2018-11-14 12:41:13 +02:00
Torsten Ruger
4ff84133d2
add append to MomCompiler
...
also lazy init boot_function, so that compilers can be added up
before going to translate, where the boot_compilers are used
2018-11-02 15:54:30 -07:00
Torsten Ruger
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