Torsten Ruger
d964e9ea9d
let spce keep the messages in a factory #14
...
Like Integers and addresses before, messages are now in a factory
Factories keep allocated (uninitialised) objects, had to make init public to call it
2018-09-01 11:24:16 +03:00
Torsten Ruger
ea7f3c9653
remove the last_object from chain
...
also tried to keep the first around as was done in space
partially to not have to add the consrtants seperately
didn't work, as chain gets broken
also this has to be redone anyway
2018-08-29 21:05:54 +03:00
Torsten Ruger
c983dcf0eb
move return address generation to factory
...
removes the list from space
adds a ReturnAddress factory instead
and uses these throughout
2018-08-29 21:02:49 +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
f85fe8a2cb
fix bug in slot_load and definition
...
move parfait helper for reuse
2018-08-19 15:36:51 +03:00
Torsten Ruger
84de400529
some test change because of renaming
...
next is a keyword, can't be used as instance writer
fake_memory gets the pobject for debug
2018-08-11 19:17:20 +03:00
Torsten Ruger
308996bf8e
fix all tests accordingly to new return
2018-08-02 17:37:27 +03:00
Torsten Ruger
4055709529
push the name down into callable
...
blocks need a name too
if just for debug, and stacks
2018-07-30 10:21:43 +03:00
Torsten Ruger
e1d5592c55
fix boot to include blocks correctly
2018-07-27 10:48:45 +03:00
Torsten Ruger
f5c284b3a0
bring the blocks down to mom level
...
reusing message_setup, but adding yield specific instructions
2018-07-24 11:35:49 +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
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
Torsten Ruger
69385c863f
some more addresses
2018-07-15 15:13:25 +03:00
Torsten Ruger
eaeea29e38
helper erro handling
2018-07-15 12:32:02 +03:00
Torsten Ruger
648ec772ec
direct index access helper for type
2018-07-15 12:30:50 +03:00
Torsten Ruger
581f457119
type helper for class name
2018-07-14 11:03:16 +03:00
Torsten Ruger
21009b0e9b
delegate resolve to compiler when needed
...
and forgotten space test
2018-07-13 21:55:27 +03:00
Torsten Ruger
a095515b0e
new get_type_by_class_name helper for space
...
sorely needed, with 36 occurences replaced
2018-07-13 21:50:40 +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
acd5cd8f30
rename for_type to self_type
...
and split a base class off TypedMethod
2018-07-06 20:01:17 +03:00
Torsten Ruger
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
Torsten Ruger
cab6bc389f
misc little test fixes
2018-07-03 10:12:40 +03:00
Torsten Ruger
474cd4b348
linker and collector test work again
...
had to give space a fixed number of addresses
2018-07-02 16:19:01 +03:00
Torsten Ruger
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
Torsten Ruger
c947c27a14
clean up booting
...
many machine boot became obsolete
or just neede parfait to boot
actual linker functionality pending
2018-07-01 14:12:42 +03:00
Torsten Ruger
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
Torsten Ruger
46d8f5002f
hoist parfait boot out of the machine boot
2018-06-30 00:39:23 +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
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
Torsten Ruger
e6f01748ff
move adapter stuff around
2018-06-29 14:26:25 +03:00
Torsten Ruger
606c7bf906
remove booted flag
...
just boot if needed
2018-06-29 11:36:14 +03:00
Torsten Ruger
4ab6d62acf
small arm fixes etc
2018-06-06 00:53:41 +03:00
Torsten Ruger
8d953a619f
propagate instruction positions
...
still overlapping onto binaries, but a start
2018-06-05 18:11:25 +03:00
Torsten Ruger
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
Torsten Ruger
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
Torsten Ruger
7847420d49
make ints compile time mutable
...
to change the label value and use the allocated stubs
2018-05-29 17:03:55 +03:00
Torsten Ruger
4b34546c11
fixing the binary code indexes
...
AGAIN, that third of all bugs, the off by one
2018-05-28 18:20:09 +03:00
Torsten Ruger
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
Torsten Ruger
be1bc63ff2
jump was written off the end of binary code, fixed
2018-05-28 11:45:04 +03:00
Torsten Ruger
ab4bc370ed
another +1 bug
2018-05-15 16:25:55 +03:00
Torsten Ruger
e237bc625a
remove unused methods
...
and a whole lot more index fixes
2018-05-14 20:50:52 +03:00
Torsten Ruger
5d3c70da89
fix type api
...
tests were using methods that were only used in tests.
2018-05-14 16:13:50 +03:00
Torsten Ruger
3c00239f36
another million index fixes
2018-05-14 15:17:04 +03:00
Torsten Ruger
4a88f342d3
random checkin
...
still suffering -1 trauma
2018-05-14 12:38:44 +03:00
Torsten Ruger
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
Torsten Ruger
866467ee5e
change binary labels
2018-05-13 17:21:48 +03:00
Torsten Ruger
7ad36380c2
add next_value for dictionary
...
also next for list
and add types attributes to space
2018-05-13 13:03:04 +03:00
Torsten Ruger
06f51da8f1
rename get_all_methods
2018-05-01 19:19:37 +03:00