Re: A new module: bitset

2018-11-27 Thread Akim Demaille
> Le 28 nov. 2018 à 06:03, Paul Eggert a écrit : > > Akim Demaille wrote: >> What do you propose? > > A simple, general solution is to use only malloc/calloc/realloc, and to have > bitset functions fail when they exhaust memory. Then I guess the current state does what you want. If you

Re: A new module: bitset

2018-11-27 Thread Paul Eggert
Akim Demaille wrote: What do you propose? A simple, general solution is to use only malloc/calloc/realloc, and to have bitset functions fail when they exhaust memory.

Re: A new module: bitset

2018-11-27 Thread Akim Demaille
> Le 27 nov. 2018 à 21:31, Paul Eggert a écrit : > > On 11/26/18 8:15 PM, Akim Demaille wrote: >> The current implementation uses xmalloc, but there are also calls to calloc >> and realloc. > > How can it be right to combine xmalloc with calloc/realloc? I agree. > Shouldn't the

Re: A new module: bitset

2018-11-27 Thread Paul Eggert
On 11/26/18 8:15 PM, Akim Demaille wrote: The current implementation uses xmalloc, but there are also calls to calloc and realloc. How can it be right to combine xmalloc with calloc/realloc? Shouldn't the implementation use xmalloc, xcalloc, and xrealloc for consistency? Also, what about

Re: A new module: bitset

2018-11-26 Thread Akim Demaille
Hi Paul! > Le 25 nov. 2018 à 20:43, Paul Eggert a écrit : > > One top-level question is how does memory allocation work? Emacs has its own > memory allocator, and doesn't want to use plain malloc. It has its own > xmalloc implementation; will that suffice? The current implementation uses

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
Hi Bruno! > Le 25 nov. 2018 à 21:01, Bruno Haible a écrit : > > Hi Akim, > >> Or completely change: all the bitsets of a bitsetv have the same dimension, >> so we could go to bitmatrix. > > On the other hand, the module does not implement matrix operations > (matrix multiplication,

Re: A new module: bitset

2018-11-25 Thread Bruno Haible
Hi Akim, > Or completely change: all the bitsets of a bitsetv have the same dimension, > so we could go to bitmatrix. On the other hand, the module does not implement matrix operations (matrix multiplication, transposition, determinant), only transitive closure (which maybe is not so suitable

Re: A new module: bitset

2018-11-25 Thread Paul Eggert
Akim Demaille wrote: I think it should move to gnulib: it's way more powerful than what we use in Bison only. Paul already reported he would be interested in using this module in Emacs. Yes, Emacs already has a bitset implementation for its boolean vectors. My vague recollection is that the

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
> Le 25 nov. 2018 à 19:55, Akim Demaille a écrit : > >>> Sure. You can push it into gnulib, without having extensive tests. >> >> Great! I read this as an ok to push the current state, which takes >> into account your comments, but will most probably require more changes >> later. >> >>

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
> Le 25 nov. 2018 à 19:52, Akim Demaille a écrit : > >> Le 25 nov. 2018 à 18:54, Bruno Haible a écrit : >> >> Hi Akim, >> * Regarding tests: There is a large amount of algorithmic code. While the parts that Bison uses are surely correct, there is a possibility of bugs in the

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
> Le 25 nov. 2018 à 18:02, Akim Demaille a écrit : > > Hi Bruno! > >> * File names are nowadays not limited to 8+3 characters, and names >> like 'abitset.h', 'bbitset.h', 'ebitset.h', 'lbitset.h', 'vbitset.h' >> are not really telling. How about using more descriptive names? >> Note: You can

Re: A new module: bitset

2018-11-25 Thread Bruno Haible
Hi Akim, > > * Regarding tests: There is a large amount of algorithmic code. While > > the parts that Bison uses are surely correct, there is a possibility > > of bugs in the more rarely used parts. I would find it very useful > > to have unit tests of all 32 operations. > > I definitely

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
Hi Michael, I meant to put you in CC, but forgot to do it. This message is to inform you that we are moving your bitset library, as it is currently in Bison, to gnulib. See https://lists.gnu.org/archive/html/bug-gnulib/2018-11/msg00045.html and following. Cheers! > Le 25 nov. 2018 à 09:57,

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
Hi Bruno! > Le 25 nov. 2018 à 16:44, Bruno Haible a écrit : > > Some remarks: > > * I can imagine programs that want bitsets but no bitset-vectors. > Suggestion: Move the bitsetv* code to a second module, named > 'bitset-vector'. That sounds good, indeed. > * File names are nowadays not

Re: A new module: bitset

2018-11-25 Thread Bruno Haible
Hi Akim, This code looks like well-designed, high-quality and very suitable for gnulib. I love especially about it that it's adaptable as programs change: Initially the program might require fixed-size bitsets, and later move to variable-size bitsets. > I think it should move to gnulib Yes,

Re: A new module: bitset

2018-11-25 Thread Akim Demaille
Second part: doc and tests. commit 52342213a42a77b639174e3fc7f2c586f6fc2422 Author: Akim Demaille Date: Sun Nov 25 09:49:09 2018 +0100 bitset: add tests and doc First stabs at providing a documentation and test for the bitset module. * doc/bitset.texi, modules/test-bitset,