> Prelude> [1..]
> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,ASSE
> RTION FAILED: file ../rts/GC.c, line 1111
> 
> So I went in with gdb.  Couldn't figure out what was wrong but I'm
> hoping the following transcript will suggest something to you.  
> (btw note that start is called _start on FreeBSD.  This doesn't seem
> to matter too much though since it doesn't seem to be used.)
> 
> STGHUGSDIR=`pwd` gdb ./hugs
> Prelude> [1..]
> [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,ASSE
> RTION FAILED: file ../rts/GC.c, line 1111
> 
> Program received signal SIGABRT, Aborted.
> 0x2812ca88 in _kill ()
> (gdb) up 3
> #3  0x8091098 in evacuate (q=0x50087000) at ../rts/GC.c:1111
> 1111                   || IS_HUGS_CONSTR_INFO(GET_INFO(q))));

Lines 1110/1111 of GC.c are:

  ASSERT(q && (LOOKS_LIKE_GHC_INFO(GET_INFO(q))
               || IS_HUGS_CONSTR_INFO(GET_INFO(q))));

It might be a matter of making sure these work correctly on FreeBSD.
They eventually reduce to uses of IS_CODE_PTR and IS_DATA_PTR defined
in includes/ClosureMacros.h.  Thing is, I would have thought SimonM 
had these working for FreeBSD.  Perhaps it was NetBSD.  You can 
ignore the is_dynamically_loaded_code_or_rodata_pointers; they are
only used when running mixed interp/compiled code.

I guess my first line of attack would be to make sure IS_CODE_PTR and
IS_DATA_PTR work correctly on your box.  

>    have jumped on it right away.  All my spare cycles have been spent
>    porting the Graphics library to X11 (beta release in a few days).

Cool.  What graphics library is that?  Is it a Hugs98 thing?

J

Reply via email to