[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gc - garbage collection library
> I'm trying to port libscheme, Sather, and Python. Python's going fairly
> well, except for one nasty shell script that goes to sleep and never
> comes back (not quite using "here" documents, but similar). Will the
> non-blocking-fork() version of MiNT help that?
Probably it will help. I had these hangs on long shell archives (long
meaning: containing a file that was longer than a pipe buffer) and
they were gone away using the non-blocking-fork.
> libscheme and Sather both depend on gc, a garbage collection library
> that replaces malloc()/realloc()/etc. gc requires some low-level
> knowledge about the machine that I don't have. Help! :-) If someone
> else wants to try porting this, you can grab it from
> http://www.qnx.com/~chrish/new/gc.tar.gz.
Sorry, I don't think I currently have time time for this :-(
>
> The clues I need for gc, are:
>
> 1) how do I find where the stack starts?
Either use register A7 from assembly language or allocate an auto
variable as the last declaration in a function and take its
address. This will be the current bottom of the stack (well nearly
:-).
>
> 2) does the stack grow up? (admittedly, a silly one, but I've
> long-since given my Atari assembly language book to someone else...
> I never thought I'd need it)
The stack grows down on the atari.
> 3) what registers need to be preserved across system calls? or should I
> just be paranoid and save d0-d7,a0-a7?
You should save d2-d7 and a2-a6.
>
> I'd really be happy if someone who knows more about the internals of
> TOS/MiNT and Atari binaries would take a look at this... it's probably a
> 30-minute port for somebody with the right knowledge.
>
Wolfgang
----
Wolfgang Lux
WZH Heidelberg, IBM Germany Internet: lux@heidelbg.ibm.com
+49-6221-59-4546 VNET: LUX at HEIDELBG
+49-6221-59-3200 (fax) EARN: LUX at DHDIBMIP