guile-devel
[Top][All Lists]
Advanced

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

Re: api differences between 1.4 and 1.6


From: Dirk Herrmann
Subject: Re: api differences between 1.4 and 1.6
Date: Sat, 9 Mar 2002 16:00:04 +0100 (MET)

On 8 Mar 2002, Neil Jerram wrote:

> How about using the SCM_API macro as a way of being more specific
> about what is in the API?  In practice, this would initially mean
> _removing_ SCM_API from a lot of stuff that has it but shouldn't.

There's a problem with this idea:  You can't use SCM_API for macros, even
if they belong to the API.  The reason is, that SCM_API has been
introduced only for the sake of windows DLLs, and with respect to that the
macro is quite inaccurately named.  My opinion is, that this change was a
bad idea from the beginning:  There are other alternatives to document the
information that is necessary for windows DLLs, which don't have an
influence on other code.  See the mail to guile-devel titled "Re:
proposal: scm_string2str() and scm_symbol2str()" from Ken Raeburn, sent on
30 Nov 2001.

However, for guile we have already defined a mechanism to distinguish
between definitions that belong to the API and definitions that don't:  
The prefixes SCM_I_... and scm_i_... indicate internal definitions in
header files.  We have, up to now, not begun to change all the definitions
accordingly.  From time to time, some definitions are renamed that way.  
If we did it consequently (like, in a cleanup session), we would even find
that in many of the cases it would be sufficient to remove the definitions
from the headers and use static definitions in the corresponsing c files
instead.  The biggest part of the work is to search through all
definitions in the header files and decide, which of the definitions
should be part of the API and which shouldn't.

Best regards
Dirk Herrmann




reply via email to

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