Hello,

Ken Raeburn <raeb...@raeburn.org> writes:

> The SCM_GC_MARK_P macro doesn't exist any more, but is still mentioned
> in a few places.  With SCM_DEBUG defined, one of them actually gets
> compiled.  While looking at this, I also noticed three macros in
> deprecated.h (which were there in 1.8) which use non-existent macros
> including SCM_GC_MARK_P, and deleted those too.  I didn't touch the
> other uses of SCM_GC_MARK_P in futures.c.

Looks good to me.  In addition we could add this to ‘deprecated.h’:

  #define SCM_GC_MARK_P  scm_gc_mark_p
  SCM_DEPRECATED int scm_gc_mark_p (SCM obj);

and:

  int
  scm_gc_mark_p (SCM obj)
  {
    /* `GC_is_visible ()' aborts if the given pointer is
        not visible to the GC.  */
    GC_is_visible (SCM2PTR (obj));
    return 1;
  }
  
What do you think?

> Related but not addressed here: Several places still check
> scm_gc_running_p and conditionally execute code (or not), but it's now
> defined as a macro always expanding to 0.

Likewise, we could leave it as a deprecated thing (always 0) and also
remove its internal uses.

Thanks,
Ludo’.



Reply via email to