guile-devel
[Top][All Lists]
Advanced

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

Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER


From: Marius Vollmer
Subject: Re: snarfer guard macro name decision: SCM_MAGIC_SNARFER
Date: 15 Mar 2002 00:35:23 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1

Thien-Thi Nguyen <address@hidden> writes:

>    From: Marius Vollmer <address@hidden>
>    Date: 14 Mar 2002 19:48:55 +0100
> 
>    Don't do this.  First, SCM_VCELL and SCM_VARIABLE are not the same
>    thing.  You can't substitute one for the other.  (Likewise for the
>    substitutions.)
> 
> oops my bad, i didn't understand the macros well enough.  what can you
> use then, if you're interested in the long term?

The long term macro is SCM_VARIABLE.

>    Second, we already keep proper backward compatibility in the C code
>    itself:
> 
>        #if (SCM_DEBUG_DEPRECATED == 0)
> 
>        #define SCM_CONST_LONG(c_name, scheme_name,value) \
>        SCM_VCELL_INIT(c_name, scheme_name, scm_long2num(value))
> 
> these are not available in HEAD branch, which is where i did the
> original digging (thinking that perhaps snarfing macros are no longer in
> flux, but now i see that's not the case).
> 
> they are indeed in branch_release-1-6.
> 
> so now i'm confused.  is each guile release going to change these names
> to something else and yank some previous name?

Not necessarily.

> why isn't SCM_VCELL in HEAD branch snarf.h?

It is deprecated in the 1.6 branch and all things that are deprecated
in 1.6 are already removed from HEAD.  It is deprecated in the 1.6
branch because the whole concept of vcells has been deprecated.  This
has been done to clean up a confusing between glocs and structs and to
make the memoized code be a proper Scheme data structure.  Also, some
bindings where done with variables, and some not.  Now all bindings
are done with variables which makes for a better integration of the
module system into the rest of Guile.

> how do you propose to handle the situation where a user has
> SCM_VCELL but would like to use guile-1.8?

He should remove all uses of vcells and switch to variables.



reply via email to

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