[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Issuing deprecation warnings
From: |
Daniel Kraft |
Subject: |
Re: Issuing deprecation warnings |
Date: |
Sun, 28 Dec 2008 16:10:26 +0100 |
User-agent: |
Thunderbird 2.0.0.0 (X11/20070425) |
Andy Wingo wrote:
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.
I agree. It is useful to have this API for extensions.
Attached is an attempt to provide a patch for this; I hope I did get
everything right. The default value for GUILE_WARN_DEPRECATED when
--disable-deprecated is set is probably something to dicuss, though.
Yours,
Daniel
2008-12-28 Daniel Kraft <address@hidden>
* configure.in (enable_deprecated): Set SCM_WARN_DEPRECATED_DEFAULT
even when --disable-deprecated is passed.
* libguile/deprecation.h: Declare deprecation-issuing methods even
if SCM_ENABLE_DEPRECATED is not set.
* libguile/deprecation.c: Ditto.
(scm_init_deprecation): Include full body even for unset
SCM_ENABLE_DEPRECATED.
diff --git a/configure.in b/configure.in
index a7fd9c9..385f4d9 100644
--- a/configure.in
+++ b/configure.in
@@ -159,6 +159,7 @@ AC_ARG_ENABLE([deprecated],
if test "$enable_deprecated" = no; then
SCM_I_GSC_ENABLE_DEPRECATED=0
+ warn_default=no
else
if test "$enable_deprecated" = yes || test "$enable_deprecated" = ""; then
warn_default=summary
@@ -168,9 +169,9 @@ else
warn_default=$enable_deprecated
fi
SCM_I_GSC_ENABLE_DEPRECATED=1
- AC_DEFINE_UNQUOTED(SCM_WARN_DEPRECATED_DEFAULT, "$warn_default",
- [Define this to control the default warning level for deprecated features.])
fi
+AC_DEFINE_UNQUOTED(SCM_WARN_DEPRECATED_DEFAULT, "$warn_default",
+[Define this to control the default warning level for deprecated features.])
AC_ARG_ENABLE(elisp,
[ --disable-elisp omit Emacs Lisp support],,
diff --git a/libguile/deprecation.c b/libguile/deprecation.c
index 338c47c..780e246 100644
--- a/libguile/deprecation.c
+++ b/libguile/deprecation.c
@@ -41,8 +41,6 @@
-#if (SCM_ENABLE_DEPRECATED == 1)
-
struct issued_warning {
struct issued_warning *prev;
const char *message;
@@ -138,8 +136,6 @@ print_deprecation_summary (void)
}
}
-#endif /* SCM_ENABLE_DEPRECATED == 1 */
-
SCM_DEFINE(scm_include_deprecated_features,
"include-deprecated-features", 0, 0, 0,
(),
@@ -157,7 +153,6 @@ SCM_DEFINE(scm_include_deprecated_features,
void
scm_init_deprecation ()
{
-#if (SCM_ENABLE_DEPRECATED == 1)
const char *level = getenv ("GUILE_WARN_DEPRECATED");
if (level == NULL)
level = SCM_WARN_DEPRECATED_DEFAULT;
@@ -170,7 +165,6 @@ scm_init_deprecation ()
SCM_WARN_DEPRECATED = 0;
atexit (print_deprecation_summary);
}
-#endif
#include "libguile/deprecation.x"
}
diff --git a/libguile/deprecation.h b/libguile/deprecation.h
index 7885327..05928b7 100644
--- a/libguile/deprecation.h
+++ b/libguile/deprecation.h
@@ -26,20 +26,15 @@
-#if (SCM_ENABLE_DEPRECATED == 1)
-
-/* These functions are _not_ deprecated, but we exclude them along
- with the really deprecated features to be sure that no-one is
- trying to emit deprecation warnings when libguile is supposed to be
- clean of them.
+/* These functions are a possibly useful part of the API and not only used
+ internally, thus they are exported always, not depending on
+ SCM_ENABLE_DEPRECATED.
*/
SCM_API void scm_c_issue_deprecation_warning (const char *msg);
SCM_API void scm_c_issue_deprecation_warning_fmt (const char *msg, ...);
SCM_API SCM scm_issue_deprecation_warning (SCM msgs);
-#endif
-
SCM_API SCM scm_include_deprecated_features (void);
SCM_INTERNAL void scm_init_deprecation (void);