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
4ca16e5f9a
fixing most of the risc tests
2019-08-23 15:31:22 +03:00
ec1e8c8f3a
Fix risc layer from cc changes
2019-08-23 10:20:39 +03:00
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
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
d5d1df951c
Block/Lambda rework done
...
recovered from all renames and redoing the block compilation
all green
2019-08-19 15:23:57 +03:00
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
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
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
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
Torsten Ruger
3db7707614
Get a basic MetaClass going
...
Does get created in new, but not in boot.
Also not yet used in compiling
2019-02-16 23:24:16 +02:00
Torsten Ruger
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
Torsten Ruger
8d3a1954fa
close #21
...
Mostly replaced Fixnum with integer
also in the rx-file dependency
all travis and testing with 2.4+
2019-02-07 18:24:35 +02:00
Torsten Ruger
4d30727811
test and last fixes for previous commits (allocalte ints)
...
mostly just fixing the additional instructions
close #20
2018-11-24 22:40:22 +02: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
Torsten Ruger
0a390cc5a9
shaves an instruction off resolve_method
...
by loading nil directly, not space first
2018-09-01 11:20:59 +03:00
Torsten Ruger
b2339dc330
fix address nil values
2018-08-30 16:38:00 +03:00
Torsten Ruger
71ab369c71
use factory to generte intergers in space
...
start with just integer factory in space
change all the hand-out code
still #14
2018-08-24 18:49:21 +03:00
Torsten Ruger
d396da16e3
start with #14 by implementing factory
...
page was maybe a too low level name
pages may be the unit of the syscall, but after that objects desolve (maybe later to be added on from different pages)
Factory has the job of handing out a new instance of a type
it keeps a freelist for that and a reserve
2018-08-23 19:55:06 +03:00
Torsten Ruger
233b83510f
fixed some disabled tests
2018-08-17 22:43:17 +03:00
Torsten Ruger
ce157ffa94
change block_yield to_risc to use builder
...
only changes the order of two instructions
2018-08-16 08:58:49 +03:00
Torsten Ruger
252ae6de72
finally get rid of the fixme in div10
...
create (load/reduce) the int once and transfer.
Save a cruicial 2 instructions
Also expanded the variable name possibilities with _self, __const , _1 and _2
2018-08-15 18:18:21 +03:00
Torsten Ruger
15337e10be
move putstring to use builder
2018-08-15 17:52:21 +03:00
Torsten Ruger
fb54d68020
redo restore after syscall with builder
2018-08-13 18:48:54 +03:00
Torsten Ruger
55bc9c5273
rewrite new_int with builder
2018-08-13 18:02:34 +03:00
Torsten Ruger
86462e238a
large test changes due to change in cc
...
calling convention does affect
less than before, but still a LOT
2018-08-12 15:02:23 +03:00
Torsten Ruger
99a95d40a6
also redid the get/set internal byte with builder
...
had to pimp register value to use a semblance of the dsl
using <= for bytes and << for words
2018-08-09 20:16:55 +03:00
Torsten Ruger
fc6aa4e28b
rework operator with builder
2018-08-08 15:49:47 +03:00
Torsten Ruger
393ac873c9
change return sequence to return messages to space
...
as it was before blocks
(thought blocks would make reuse of messages impossible, but was wrong, this only appilies to lambdas)
(too) many tests affected
2018-08-06 14:07:17 +03:00
Torsten Ruger
308996bf8e
fix all tests accordingly to new return
2018-08-02 17:37:27 +03:00
Torsten Ruger
050659ea12
block tests for if and while
...
bundle update too
2018-08-01 20:17:41 +03:00
Torsten Ruger
4f3c0d8b08
more block tests working
...
dynamic calls and operators on block args
(giant strides)
2018-08-01 16:31:16 +03:00
Torsten Ruger
81cc109d1e
more block tests
...
instance and arg access
2018-07-31 19:44:40 +03:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
9c6a099cde
block test
...
working on return semanitcs
(still avoiding the implicit return)
2018-07-30 14:10:24 +03:00
Torsten Ruger
165036ea39
misc
2018-07-30 10:26:47 +03:00
Torsten Ruger
d80ef4bf4e
store method, not name, in message
...
changes the calling and thus too many test
2018-07-22 22:29:32 +03:00
Torsten Ruger
b00b0cf064
fixed some interpreter tests
...
hoisting is slightly more simple and that adds a couple insstructions
2018-07-20 21:00:47 +03:00
Torsten Ruger
3bc85805a4
must pass registers to slot_to_reg and reg_to_slot
...
as they are typed, those functions don't resolve on Risc, but the register type
miscother changes from previous commits
2018-07-15 16:30:50 +03:00
Torsten Ruger
69385c863f
some more addresses
2018-07-15 15:13:25 +03:00
Torsten Ruger
2f07cc34f3
add parfait block
2018-07-07 15:50:43 +03:00
Torsten Ruger
9005513368
rename typed_method to callable_method
...
seems to make the essence clearer
also extracted base class
2018-07-07 09:11:09 +03:00
Torsten Ruger
2485f7e9eb
misc fixes and (finally, sigh) green again
...
deeeep dive, almost 40 commits
2018-07-04 09:18:55 +03:00
Torsten Ruger
cab6bc389f
misc little test fixes
2018-07-03 10:12:40 +03:00
Torsten Ruger
55b5884c4e
minor test fixes
2018-07-02 23:03:33 +03:00
Torsten Ruger
7377522417
fix test ripples and minor parfait naming
...
Parfait ruby and boot names desynced, fixed that
2018-06-29 21:03:06 +03:00
Torsten Ruger
ce79617875
fix the exit sequence
...
was returning wrong register (1, not 0)
also saving the message for test, which changes order as the return value destroys the message
2018-06-19 19:52:06 +03:00
Torsten Ruger
5f7683efcf
pass return integer back out through exit
...
for testing of binaries later (and off course general correctness)
Some tests were using the fact that the interpreter was used, changed those to return ints rather than strings
2018-06-19 18:55:47 +03:00