On 10/29/2014 11:07 PM, Alan Modra wrote:
So there are my reasons for leaving obstack_blank as is.
Thanks, they're persuasive. With that in mind, I have a minor complaint
about obstack_blank_fast's revised documentation. It says "You can use
@code{obstack_blank_fast} with a negative size argument to make the
current object smaller." Technically, though, the argument is of type
size_t so it cannot be negative. So, how about if we change this
wording to "If @var{S} is a positive size, you can give
@code{obstack_blank_fast} a ``negated'' (actually, large positive) size
@code{-@var{S}} to shrink the current object by @var{S} bytes." Also,
it may be worth noting explicitly that this trick does not work for
object_blank.
Also, doesn't libc need a NEWS item for these changes? At least, gnulib
needs one; I installed the attached.
Oh, and while I'm advocating breakage, the doc for obstack_next_free
says it returns a void* but actually returns a char*. Since it was
deemed a good idea to similarly correct obstack_base, should we do the
same for obstack_next_free?
Yes, that makes sense. Don't we have similar problems with lots of
other macros and/or functions: obstack_1grow_fast, obstack_blank_fast,
obstack_int_grow, etc.? They all seem to return types that don't match
the documentation. As long as we're fixing things, this might all be
done in a separate patch.
It's missing @safety markup for the
previously undocumented obstack_begin, obstack_specify_allocation, and
obstack_specify_allocation_with_arg macros. I'm hoping someone else
can do that as I'd just be guessing. (Are they even appropriate for
macros?)
Sorry, I don't know.
If I understand the recent set of proposed patches correctly, no further
changes need to be made to gnulib, unless we decide to go ahead with the
further "breakage" mentioned above.
>From 049f337efd051bc4821173844fc9a5fdd38fb51a Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Fri, 31 Oct 2014 12:45:22 -0700
Subject: [PATCH] obstack: add NEWS entry for recent incompatible changes
* NEWS: Describe recent changes.
---
ChangeLog | 5 +++++
NEWS | 10 +++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/ChangeLog b/ChangeLog
index 0d6c285..1f80f39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-31 Paul Eggert <egg...@cs.ucla.edu>
+
+ obstack: add NEWS entry for recent incompatible changes
+ * NEWS: Describe recent changes.
+
2014-10-30 Pádraig Brady <p...@draigbrady.com>
mountlist: don't use libmount to decide on dummy/remote
diff --git a/NEWS b/NEWS
index 45d829b..23dd4f1 100644
--- a/NEWS
+++ b/NEWS
@@ -32,8 +32,16 @@ User visible incompatible changes
Date Modules Changes
+2014-10-29 obstack The obstack functions are no longer limited to
+ int sizes; size values are now of type size_t.
+ This changes both the ABI and the API.
+ obstack_blank no longer accepts a negative size to
+ shrink the current object; callers must now use
+ obstack_blank_fast with a "negative" (actually,
+ large positive) size for that.
+
2014-02-23 diffseq The members too_expensive, lo_minimal and hi_minimal
- were removed from public structureas, and the
+ were removed from public structures, and the
find_minimal argument was removed from diag
and compareseq.
--
1.9.3