guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problem becouse scm_tc7_contin is not defined


From: Marius Vollmer
Subject: Re: problem becouse scm_tc7_contin is not defined
Date: 09 Sep 2002 20:08:11 +0200
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

P Pareit <address@hidden> writes:

> Hey,
> I have downloaded and installed guile-1.6.0. I try to compile scwm using the 
> new guile and I'm stuck with the following error:
> 
> make[1]: Entering directory `/usr/src/scwm/src'
> gcc -DHAVE_CONFIG_H -I. -I. -I../include -I../include  -I/usr/X11R6/include   
>      
> -I/usr/include    -g -O2 -c guile-compat.c
> cc1: warning: changing search order for system directory "/usr/include"
> cc1: warning:   as it has already been specified as a non-system directory
> guile-compat.c: In function `scm_internal_cwdr_no_unwind':
> guile-compat.c:92: `scm_tc7_contin' undeclared (first use in this function)
> guile-compat.c:92: (Each undeclared identifier is reported only once
> guile-compat.c:92: for each function it appears in.)
> make[1]: *** [guile-compat.o] Error 1
> 
> By doing a grep on scm_tc7_contin in the source tree of guile I found out 
> that 
> scm_tc7_contin is no longer supported and I have to use SMOB continuation for 
> rootcont instead. Is there a place I can find more information on SMOB 
> continuations in guile (I checked the info files for guile already, but I 
> could have misted).
> Or is there a simple way to replace scm_tc7_contin with some other function?
> I also paste the function in which I have this problems:
> 
> SCM
> scm_internal_cwdr_no_unwind (scm_catch_body_t body, void *body_data,
>                              scm_catch_handler_t handler, void *handler_data,
>                              SCM_STACKITEM *stack_start)
> {
> #ifdef USE_STACKJMPBUF
>   scm_contregs static_jmpbuf;
> #endif
>   int old_ints_disabled = scm_ints_disabled;
>   SCM old_rootcont;
>   struct cwdr_no_unwind_handler_data my_handler_data;
>   SCM answer;
>   void *pRootContinuation = NULL;
> 
>   /* Create a fresh root continuation.  */
>   { /* scope */
>     SCM new_rootcont;
>     SCM_NEWCELL (new_rootcont);
>     scwm_defer_ints();
> #ifdef USE_STACKJMPBUF
>     SCM_SETJMPBUF (new_rootcont, &static_jmpbuf);
> #else
>     /* GJB:FIXME:MS:: this was leaking, but now I explicitly
>        deallocate it, below.  Not sure what fix you were looking
>        for so it should probably still be revisited. */
>     pRootContinuation =
>       scm_must_malloc ((long) sizeof (scm_contregs),
>                        "inferior root continuation");
> #ifdef SCWM_DEBUG_SCM_INTERNAL_CWDR_NO_UNWIND
>     scwm_msg(DBG,"scm_internal_cwdr_no_unwind","+");
> #endif
>     SCM_SETJMPBUF (new_rootcont,pRootContinuation);
> #endif
>     SCM_SETCAR (new_rootcont, scm_tc7_contin);
> **************************************^^^^^^^^^^^^^^^ problem here
>     SCM_DYNENV (new_rootcont) = SCM_EOL;
>     SCM_BASE (new_rootcont) = stack_start;
>     SCM_SEQ (new_rootcont) = -1;
> #ifdef DEBUG_EXTENSIONS
>     SCM_DFRAME (new_rootcont) = 0;
> #endif
>     old_rootcont = scm_rootcont;
>     scm_rootcont = new_rootcont;
>     scwm_allow_ints();
>   }
> 
> #ifdef DEBUG_EXTENSIONS
>   SCM_DFRAME (old_rootcont) = scm_last_debug_frame;
>   scm_last_debug_frame = 0;
> #endif
> 
>   /* now invoke the function */
>   my_handler_data.run_handler = 0;
>   answer = scm_internal_catch (SCM_BOOL_T,
>                                body, body_data,
>                                cwdr_no_unwind_handler, &my_handler_data);
> 
>   scwm_defer_ints();
> #ifdef SCWM_DEBUG_SCM_INTERNAL_CWDR_NO_UNWIND
>   scwm_msg(DBG,"scm_internal_cwdr_no_unwind","-");
> #endif
>   scm_must_free(pRootContinuation);
>   SCM_SETJMPBUF (scm_rootcont, NULL);
> #ifdef DEBUG_EXTENSIONS
>   scm_last_debug_frame = SCM_DFRAME (old_rootcont);
> #endif
>   scm_rootcont = old_rootcont;
>   scwm_allow_ints();
>   scm_ints_disabled = old_ints_disabled;
> 
>   /* Now run the real handler iff the body did a throw. */
>   if (my_handler_data.run_handler)
>     return handler (handler_data, my_handler_data.tag, my_handler_data.args);
>   else
>     return answer;
> }
> 
> Any comments or help?
> pieter;
> 
> 
> _______________________________________________
> Guile-user mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/guile-user
> 
> 

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405




reply via email to

[Prev in Thread] Current Thread [Next in Thread]