[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 04/05: Deprecate scm_bitvector, scm_make_bitvector, scm_
From: |
Andy Wingo |
Subject: |
[Guile-commits] 04/05: Deprecate scm_bitvector, scm_make_bitvector, scm_bitvector_p |
Date: |
Wed, 29 Apr 2020 05:14:41 -0400 (EDT) |
wingo pushed a commit to branch master
in repository guile.
commit 607183679e6c1206026672867f179374f3a992a6
Author: Andy Wingo <address@hidden>
AuthorDate: Thu Apr 23 21:51:54 2020 +0200
Deprecate scm_bitvector, scm_make_bitvector, scm_bitvector_p
* doc/ref/api-data.texi (Bit Vectors): Update.
* libguile/bitvectors.h:
* libguile/bitvectors.c:
* libguile/deprecated.c:
* libguile/deprecated.h: Deprecate scm_bitvector, scm_make_bitvector,
and scm_bitvector_p.
* libguile/read.c (scm_read_guile_bit_vector): Use scm_list_to_bitvector
instead of scm_bitvector.
---
doc/ref/api-data.texi | 9 +--------
libguile/bitvectors.c | 30 +++++++++++++++---------------
libguile/bitvectors.h | 4 +---
libguile/deprecated.c | 27 +++++++++++++++++++++++++++
libguile/deprecated.h | 3 +++
libguile/read.c | 4 ++--
6 files changed, 49 insertions(+), 28 deletions(-)
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index d28909a..41d4f73 100644
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -6538,24 +6538,16 @@ Bit vectors are the special case of one dimensional bit
arrays, and can
thus be used with the array procedures, @xref{Arrays}.
@deffn {Scheme Procedure} bitvector? obj
-@deffnx {C Function} scm_bitvector_p (obj)
Return @code{#t} when @var{obj} is a bitvector, else
return @code{#f}.
@end deffn
@deffn {Scheme Procedure} make-bitvector len [fill]
-@deffnx {C Function} scm_make_bitvector (len, fill)
Create a new bitvector of length @var{len} and
optionally initialize all elements to @var{fill}.
@end deffn
-@deftypefn {C Function} SCM scm_c_make_bitvector (size_t len, SCM fill)
-Like @code{scm_make_bitvector}, but the length is given as a
-@code{size_t}.
-@end deftypefn
-
@deffn {Scheme Procedure} bitvector bit @dots{}
-@deffnx {C Function} scm_bitvector (bits)
Create a new bitvector with the arguments as elements.
@end deffn
@@ -6655,6 +6647,7 @@ bv
@end deffn
@deftypefn {C Function} int scm_is_bitvector (SCM obj)
+@deftypefnx {C Function} SCM scm_c_make_bitvector (size_t len, SCM fill)
@deftypefnx {C Function} int scm_bitvector_bit_is_set (SCM vec, size_t idx)
@deftypefnx {C Function} int scm_bitvector_bit_is_clear (SCM vec, size_t idx)
@deftypefnx {C Function} void scm_c_bitvector_set_bit_x (SCM vec, size_t idx)
diff --git a/libguile/bitvectors.c b/libguile/bitvectors.c
index 9c7519b..3a279e4 100644
--- a/libguile/bitvectors.c
+++ b/libguile/bitvectors.c
@@ -128,11 +128,11 @@ scm_is_bitvector (SCM vec)
return IS_BITVECTOR (vec);
}
-SCM_DEFINE (scm_bitvector_p, "bitvector?", 1, 0, 0,
- (SCM obj),
- "Return @code{#t} when @var{obj} is a bitvector, else\n"
- "return @code{#f}.")
-#define FUNC_NAME s_scm_bitvector_p
+SCM_DEFINE_STATIC (bitvector_p, "bitvector?", 1, 0, 0,
+ (SCM obj),
+ "Return @code{#t} when @var{obj} is a bitvector, else\n"
+ "return @code{#f}.")
+#define FUNC_NAME s_bitvector_p
{
return scm_from_bool (scm_is_bitvector (obj));
}
@@ -157,20 +157,20 @@ scm_c_make_bitvector (size_t len, SCM fill)
return res;
}
-SCM_DEFINE (scm_make_bitvector, "make-bitvector", 1, 1, 0,
- (SCM len, SCM fill),
- "Create a new bitvector of length @var{len} and\n"
- "optionally initialize all elements to @var{fill}.")
-#define FUNC_NAME s_scm_make_bitvector
+SCM_DEFINE_STATIC (make_bitvector, "make-bitvector", 1, 1, 0,
+ (SCM len, SCM fill),
+ "Create a new bitvector of length @var{len} and\n"
+ "optionally initialize all elements to @var{fill}.")
+#define FUNC_NAME s_make_bitvector
{
return scm_c_make_bitvector (scm_to_size_t (len), fill);
}
#undef FUNC_NAME
-SCM_DEFINE (scm_bitvector, "bitvector", 0, 0, 1,
- (SCM bits),
- "Create a new bitvector with the arguments as elements.")
-#define FUNC_NAME s_scm_bitvector
+SCM_DEFINE_STATIC (bitvector, "bitvector", 0, 0, 1,
+ (SCM bits),
+ "Create a new bitvector with the arguments as elements.")
+#define FUNC_NAME s_bitvector
{
return scm_list_to_bitvector (bits);
}
@@ -758,7 +758,7 @@ SCM_DEFINE_STATIC (scm_bitvector_flip_all_bits_x,
}
#undef FUNC_NAME
-SCM_VECTOR_IMPLEMENTATION (SCM_ARRAY_ELEMENT_TYPE_BIT, scm_make_bitvector)
+SCM_VECTOR_IMPLEMENTATION (SCM_ARRAY_ELEMENT_TYPE_BIT, make_bitvector)
void
scm_init_bitvectors ()
diff --git a/libguile/bitvectors.h b/libguile/bitvectors.h
index 61751d1..fe3f487 100644
--- a/libguile/bitvectors.h
+++ b/libguile/bitvectors.h
@@ -32,9 +32,6 @@
/** Bit vectors */
-SCM_API SCM scm_bitvector_p (SCM vec);
-SCM_API SCM scm_bitvector (SCM bits);
-SCM_API SCM scm_make_bitvector (SCM len, SCM fill);
SCM_API SCM scm_list_to_bitvector (SCM list);
SCM_API SCM scm_bitvector_to_list (SCM vec);
@@ -54,6 +51,7 @@ SCM_API void scm_c_bitvector_set_all_bits_x (SCM vec);
SCM_API void scm_c_bitvector_clear_all_bits_x (SCM vec);
SCM_API void scm_c_bitvector_flip_all_bits_x (SCM vec);
SCM_API size_t scm_c_bitvector_count_bits (SCM v, SCM bits);
+
SCM_API const uint32_t *scm_array_handle_bit_elements (scm_t_array_handle *h);
SCM_API uint32_t *scm_array_handle_bit_writable_elements (scm_t_array_handle
*h);
SCM_API size_t scm_array_handle_bit_elements_offset (scm_t_array_handle *h);
diff --git a/libguile/deprecated.c b/libguile/deprecated.c
index 5173468..1cdc9df 100644
--- a/libguile/deprecated.c
+++ b/libguile/deprecated.c
@@ -89,6 +89,33 @@ scm_find_executable (const char *name)
SCM
+scm_bitvector_p (SCM vec)
+{
+ scm_c_issue_deprecation_warning
+ ("scm_bitvector_p is deprecated. Use scm_is_bitvector instead.");
+
+ return scm_from_bool (scm_is_bitvector (vec));
+}
+
+SCM
+scm_bitvector (SCM list)
+{
+ scm_c_issue_deprecation_warning
+ ("scm_bitvector is deprecated. Use scm_list_to_bitvector instead.");
+
+ return scm_list_to_bitvector (list);
+}
+
+SCM
+scm_make_bitvector (SCM len, SCM fill)
+{
+ scm_c_issue_deprecation_warning
+ ("scm_make_bitvector is deprecated. Use scm_c_make_bitvector instead.");
+
+ return scm_c_make_bitvector (scm_to_size_t (len), fill);
+}
+
+SCM
scm_bitvector_length (SCM vec)
{
scm_c_issue_deprecation_warning
diff --git a/libguile/deprecated.h b/libguile/deprecated.h
index a41199e..81ec7b0 100644
--- a/libguile/deprecated.h
+++ b/libguile/deprecated.h
@@ -115,6 +115,9 @@ typedef struct scm_thread scm_i_thread SCM_DEPRECATED_TYPE;
SCM_DEPRECATED char* scm_find_executable (const char *name);
+SCM_DEPRECATED SCM scm_bitvector_p (SCM vec);
+SCM_DEPRECATED SCM scm_bitvector (SCM bits);
+SCM_DEPRECATED SCM scm_make_bitvector (SCM len, SCM fill);
SCM_DEPRECATED SCM scm_bitvector_length (SCM vec);
SCM_DEPRECATED SCM scm_c_bitvector_ref (SCM vec, size_t idx);
SCM_DEPRECATED SCM scm_bitvector_ref (SCM vec, SCM idx);
diff --git a/libguile/read.c b/libguile/read.c
index f146f0e..040a178 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -1,4 +1,4 @@
-/* Copyright 1995-1997,1999-2001,2003-2004,2006-2012,2014-2019
+/* Copyright 1995-1997,1999-2001,2003-2004,2006-2012,2014-2020
Free Software Foundation, Inc.
This file is part of Guile.
@@ -1404,7 +1404,7 @@ scm_read_guile_bit_vector (scm_t_wchar chr, SCM port,
scm_t_read_opts *opts,
scm_ungetc (chr, port);
return maybe_annotate_source
- (scm_bitvector (scm_reverse_x (s_bits, SCM_EOL)),
+ (scm_list_to_bitvector (scm_reverse_x (s_bits, SCM_EOL)),
port, opts, line, column);
}
- [Guile-commits] branch master updated (1fbe89f -> 3d96c87), Andy Wingo, 2020/04/29
- [Guile-commits] 01/05: bitvector-count-bits replaces bit-count*, Andy Wingo, 2020/04/29
- [Guile-commits] 03/05: Prefer C-like interfaces for scm_c_bitvector_{set, clear}_bits_x, Andy Wingo, 2020/04/29
- [Guile-commits] 02/05: Deprecate useless C bitvector interface, Andy Wingo, 2020/04/29
- [Guile-commits] 04/05: Deprecate scm_bitvector, scm_make_bitvector, scm_bitvector_p,
Andy Wingo <=
- [Guile-commits] 05/05: Remove unused analyze-lexicals function, Andy Wingo, 2020/04/29