[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