Hi,
I've just tried to build latest-git guile with --disable-deprecated
(full configure was --enable-maintainer-mode --disable-nls
--disable-deprecated), and it refuses to compile because (at least) in
libguile/gc-mark.c a deprecation warning is issued without checking if
deprecation is enabled.
As I understand it, the call there warns if scm_gc_mark is called but
not from the internal GC handling. As this is "no feature" that could
be excluded (except making scm_gc_mark invisible for
--disable-deprecated or something like that), I don't see a way to fix
this there other than just removing the warning in case of
--disable-deprecated.
However, I also get the idea that scm_c_issue_deprecation_warning and
friends are not considered "private internal functions" but instead part
of the Guile API (are they?). In this case, I don't think removing them
with --disable-deprecated is appropriate, as user code might try to use
them to signal deprecation of some user's extension procedures. On the
other hand, libguile/deprecation.h has a comment that explicitly states
those functions *should* be excluded with --disable-deprecated (the
explanation makes sense to me, but I still think the argument above is
valid).
Thus here my question: What's the opinion on the matter? I'd like to
provide a simple patch for this issue (it is trivial, but hey :)), but
want to know which way to go for it. As stated above, my feeling would
be to not remove the warning-issuing-methods on --disable-deprected.
Thanks,
Daniel
- Issuing deprecation warnings Daniel Kraft
-