<Zarutian_HTC>
hmm... am I mad to do an gc'ed object system in forth?
<Zarutian_HTC>
it is on an dual stack machine where the first 32K of memory is bank switched
<Zarutian_HTC>
(16 bit cells)
<Zarutian_HTC>
easiest to implement is a copying compacting garbage collector
nmz has joined #forth
<Zarutian_HTC>
each object consists of header, datacells section, and refs section
<Zarutian_HTC>
each reference is two cells in size: bank and offset. And always point at the header of a object
<Zarutian_HTC>
the first datacell in a object always an xt for an invocation handler for that kind of object
<Zarutian_HTC>
invocations are of form: ( ... argn target_object_ref verbnr -- ...)
<Zarutian_HTC>
and that is the stack which the invocation handler sees when called
<Zarutian_HTC>
what is the header of an object? three things, a bit indicating that this is an object and the respective sizes of the sections of the object
<Zarutian_HTC>
(the other kind of thing found in the object space is an broken heart used for gc purposes and Smalltalk80 esque become: abuse)
<Zarutian_HTC>
(possibly also for post mortem finalization support too)
jsoft has joined #forth
<tabemann>
back
<proteusguy>
Zarutian_HTC, I would resist gc until I found that it radically reduced complexity of my application code - RADICALLY.
kori has quit [Quit: WeeChat 2.8]
gravicappa has joined #forth
jsoft has quit [Ping timeout: 260 seconds]
gravicappa has quit [Ping timeout: 256 seconds]
Zarutian_HTC has quit [Read error: Connection reset by peer]
Zarutian_HTC has joined #forth
dave0 has quit [Quit: dave's not here]
heredoc has quit [Ping timeout: 244 seconds]
jsoft has joined #forth
heredoc has joined #forth
nmz has quit [Read error: Connection reset by peer]
WilhelmVonWeiner has quit [Read error: Connection reset by peer]
_whitelogger has joined #forth
gravicappa has joined #forth
proteus-guy has quit [Ping timeout: 256 seconds]
proteus-guy has joined #forth
Zarutian_HTC has quit [Ping timeout: 256 seconds]
Zarutian_HTC has joined #forth
_whitelogger has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
jsoft has quit [Ping timeout: 256 seconds]
<MrMobius>
I think gc is good if you have a lot of interactivity
<MrMobius>
redefining and deleting words eats up the dictionary so gc for words if you dont have blocks seems ideal
<MrMobius>
you have to figure out what to do about ' and vectors though
Zarutian_HTC has joined #forth
nmz has joined #forth
jackdaniel has quit [Remote host closed the connection]