1132309f6a
unify space collection attribute naming
...
currently space is still acting as a sort of memory manager.
For proper linking, all objects must be reachable from space, hence the plural versions like messages and addresses (even they are instances, it is the list that is important)
To dish out instance to use, the head must be kept, ie next_XXX for intergers, return addresses and messages
2018-07-02 15:49:51 +03:00
57fc67ddf6
move address list to object_space
...
where i guess it should have been from the start
2018-07-01 13:43:53 +03:00
1a97408e22
return compiler, not generated mom
...
does make the tests more verbose, but the code cleaner
2018-07-01 11:57:17 +03:00
3813de19fc
finally removing instruction from parfait method
...
instructions are intermediate results on the way down
and as such never should have been in there
2018-07-01 11:54:44 +03:00
05669065ca
back to method_compiler
...
it is what it is
2018-06-30 23:26:28 +03:00
daf1b56062
start on class compiler
...
idea is to get cleaner layer seperation
reduce machine and rework builtin boot
2018-06-30 19:20:17 +03:00
7377522417
fix test ripples and minor parfait naming
...
Parfait ruby and boot names desynced, fixed that
2018-06-29 21:03:06 +03:00
ae35fed0ab
fix list to expand
...
prevously fixed max length list
now expanding on demand, using next
quite like binary_code, a pattern is emerging
2018-06-29 20:58:59 +03:00
6bd01fd55f
rename method_compiler
...
in line with other compiler XX_Compiler being the compiler for that layer
remove type from compiler as it is in method available
2018-06-29 14:48:52 +03:00
e6f01748ff
move adapter stuff around
2018-06-29 14:26:25 +03:00
2e086a78e2
bit of refactoring
2018-06-27 17:09:50 +03:00
f0ba863721
remove to_mom / create_objects dichotomy
...
wsa supposed to be clearer, but even to me seems confusing now.
2018-06-26 20:46:58 +03:00
ec1d38f5a6
reimplement instruction listeners with indexes
...
easier to understand, as indexes map to Binarycode indexes, and can thus later be used to assemble directoy into the code
Almost no change in tests (now only multiples of 4 addresses allowed)
2018-06-09 17:41:39 +03:00
e4b4551acf
minor simplification
2018-06-09 08:13:37 +03:00
2d218bbc48
work on jump insertion continues
...
Now registering CodeListener instead of PositionListener
Also instead of on the previous, in itself, which is simpler
and allows to react to insertion at end
2018-06-07 19:26:02 +03:00
4ab6d62acf
small arm fixes etc
2018-06-06 00:53:41 +03:00
c2d450f779
fold position module and object position
...
simpler that way, aslo code is moving to listners
2018-06-02 21:59:41 +03:00
e39e96f646
create return address as own class to hold return addresses
...
to distinguish from integer, which does not need adjusting
2018-05-30 23:49:01 +03:00
e86ca5ae9d
integer was wrong padded§ length
...
or rather right (2 as should be and will be)
but currently we use next AND value + type means 3, rounded 4
because we can’t swap types at compile time (as is planned at runtime,
we use next OR value)
2018-05-30 14:55:17 +03:00
c55b41afae
sort objects by class before positioning
...
since we don’t have pages yet, but want consistent layout
2018-05-29 20:52:58 +03:00
7847420d49
make ints compile time mutable
...
to change the label value and use the allocated stubs
2018-05-29 17:03:55 +03:00
4b34546c11
fixing the binary code indexes
...
AGAIN, that third of all bugs, the off by one
2018-05-28 18:20:09 +03:00
8ef1a471a4
finally change List to derive from data object
...
can’t derive from data16 as some lists are longer
have to get the delegation to work first
2018-05-28 15:45:29 +03:00
f9a89db10c
use fake memory
...
fix integer offset bug
(which only didn’t cause errors as fixnums are still an order too big
and the famous +1 error hit the empty space)
2018-05-28 15:09:59 +03:00
6c06f61ab8
start on fake memory
...
get index checks on the array access of parfait
2018-05-28 14:46:26 +03:00
be1bc63ff2
jump was written off the end of binary code, fixed
2018-05-28 11:45:04 +03:00
6f0fad0957
dragging the extra through resets
...
as the binary the instruction is in may change when repositioning
2018-05-25 19:04:48 +03:00
8d8cc4b016
more test fixing
...
only one bug to go
2018-05-24 21:20:56 +03:00
8d510c2e7e
getting instruction repositioning right
...
big bug hunt, involving complicated maths (%)
2018-05-24 14:27:53 +03:00
0293320bb8
use a constant for the binary code offset
...
where the instructions start
2018-05-23 21:35:22 +03:00
dc8afce444
use existing constant
2018-05-16 12:55:51 +03:00
e237bc625a
remove unused methods
...
and a whole lot more index fixes
2018-05-14 20:50:52 +03:00
5d3c70da89
fix type api
...
tests were using methods that were only used in tests.
2018-05-14 16:13:50 +03:00
3c00239f36
another million index fixes
2018-05-14 15:17:04 +03:00
4a88f342d3
random checkin
...
still suffering -1 trauma
2018-05-14 12:38:44 +03:00
ab01fa3862
switch to 0 based indexing
...
the world rocked for a moment (and more fixes to follow)
also the crumbling of idealism was heard
2018-05-14 11:55:01 +03:00
4856b9891d
simplify writing binary
...
loop as should be, fixes the problem (one problem at least)
2018-05-13 18:01:45 +03:00
866467ee5e
change binary labels
2018-05-13 17:21:48 +03:00
7ad36380c2
add next_value for dictionary
...
also next for list
and add types attributes to space
2018-05-13 13:03:04 +03:00
776a97986d
fix instruction positioning
...
use at as at and only compute difference when needed (to determine if
there is a jump in binary)
Easier to understand that way
2018-05-11 18:36:45 +03:00
1169fa7220
propagating binary code position on extend
2018-05-09 20:36:49 +03:00
06f51da8f1
rename get_all_methods
2018-05-01 19:19:37 +03:00
dd2c2cb975
fix init jump bug
...
the label for the jump was not translated correctly
call needs to go through to_cpu to create single instance
on the way init order slightly changed
2018-05-01 19:19:04 +03:00
3a50b7dd0e
fix mod4 name
...
really did div4
2018-04-19 10:00:55 +03:00
df08cb78e2
adds a lot of to_ssss
2018-04-17 20:26:15 +03:00
d52e14d201
continue to rewrite message_setup
...
message come from space already.
next types
2018-04-05 20:37:03 +03:00
5bb3ad03cc
some more safety tests
2018-04-05 12:22:40 +03:00
ee0a1ca823
renaming methods args and frame
...
to arguments_type and frame_type, because that is what they are
In honour of setup bug, where the types of those types were loaded,
instead of just them types
2018-04-05 12:22:14 +03:00
b9f85f9d2e
use instance_variable_set/get instead of eval
...
opal doesn’t like eval anymore
2018-04-03 19:33:36 +03:00
52d389cdbf
auto extend binary code
...
final solution will need repositioning
2018-04-03 15:07:36 +03:00