4cc04787e9
remove Risc.resolve_to_index
...
mostly by using better typed registers,
which cleans up the code where it was used
2018-07-16 19:00:04 +03:00
69385c863f
some more addresses
2018-07-15 15:13:25 +03:00
eaeea29e38
helper erro handling
2018-07-15 12:32:02 +03:00
648ec772ec
direct index access helper for type
2018-07-15 12:30:50 +03:00
581f457119
type helper for class name
2018-07-14 11:03:16 +03:00
a095515b0e
new get_type_by_class_name helper for space
...
sorely needed, with 36 occurences replaced
2018-07-13 21:50:40 +03:00
dd544214b3
start with block_compiler
...
as a copy of method_compiler
re-merge later, when we know what's needed
2018-07-09 16:48:23 +03:00
0d900de695
block creation and insertion with correct types
2018-07-07 22:42:00 +03:00
2f07cc34f3
add parfait block
2018-07-07 15:50:43 +03:00
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
acd5cd8f30
rename for_type to self_type
...
and split a base class off TypedMethod
2018-07-06 20:01:17 +03:00
3f80953385
passing compiler to to_mom, not method
...
To be able to delegate scope (block/method) things later
2018-07-05 14:02:38 +03:00
6f936f190d
misc to_s and small fixes
2018-07-04 08:28:29 +03:00
8b9fd29ce9
Only add Builtin methods that are not in the current compilation
...
Current bug looks like the original main is used in parts
(not the compiled one, but the builtin on)
2018-07-04 08:28:05 +03:00
474cd4b348
linker and collector test work again
...
had to give space a fixed number of addresses
2018-07-02 16:19:01 +03:00
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