Re: Growable arrays?

2012-06-14 Thread Mark H Weaver
David Kastrup writes: > Scheme/Guile vectors are fixed size. [...] It is a bit of a nuisance > that one can grow a hashtable efficiently and on-demand, but not so an > array. Although Scheme vectors should remain fixed-size for reasons I have given elsewhere in this thread, Guile also includes

Re: Growable arrays?

2012-06-14 Thread David Kastrup
Mark H Weaver writes: > David Kastrup writes: >> Scheme/Guile vectors are fixed size. [...] It is a bit of a nuisance >> that one can grow a hashtable efficiently and on-demand, but not so an >> array. > > Although Scheme vectors should remain fixed-size for reasons I have > given elsewhere in

Re: Growable arrays?

2012-06-14 Thread Daniel Hartwig
On 14 June 2012 22:47, David Kastrup wrote: > Mark H Weaver writes: > >> David Kastrup writes: >>> Scheme/Guile vectors are fixed size.  [...]  It is a bit of a nuisance >>> that one can grow a hashtable efficiently and on-demand, but not so an >>> array. >> >> Although Scheme vectors should rem

Re: Growable arrays?

2012-06-14 Thread David Kastrup
Daniel Hartwig writes: > On 14 June 2012 22:47, David Kastrup wrote: >> Mark H Weaver writes: >> >>> David Kastrup writes: Scheme/Guile vectors are fixed size.  [...]  It is a bit of a nuisance that one can grow a hashtable efficiently and on-demand, but not so an array. >>> >>>

Re: Growable arrays?

2012-06-14 Thread Daniel Hartwig
On 14 June 2012 23:34, David Kastrup wrote: > Daniel Hartwig writes: >> The >> guile core provides already a solid set of fundamental types which are >> very easy to compose to produce *exactly* the type required for any >> particular situation. > > Except when they don't.  Which is what started

Re: Growable arrays?

2012-06-14 Thread David Kastrup
Daniel Hartwig writes: > On 14 June 2012 23:34, David Kastrup wrote: > >> Huh?  When resizing a hash table by doubling, you need to recoalesce >> each bucket to two buckets, one of which is the original.  Doubling >> the size of the underlying vector is a reasonable start to do this >> operation

Re: Growable arrays?

2012-06-14 Thread Daniel Hartwig
On 15 June 2012 01:15, David Kastrup wrote: > Daniel Hartwig writes: >> What is this half-in-place algorithm that makes this efficient?  If >> the table is to remain balanced, all items should be rehashed and >> reallocated to a new bucket and there is no correlation between an >> items old and n

Re: Growable arrays?

2012-06-14 Thread David Kastrup
Daniel Hartwig writes: > On 15 June 2012 01:15, David Kastrup wrote: >> Daniel Hartwig writes: >>> What is this half-in-place algorithm that makes this efficient?  If >>> the table is to remain balanced, all items should be rehashed and >>> reallocated to a new bucket and there is no correlatio

Re: Growable arrays

2012-06-14 Thread Daniel Llorens
> Message: 2 > Date: Thu, 14 Jun 2012 10:33:36 -0400 > From: Mark H Weaver > > Although Scheme vectors should remain fixed-size for reasons I have > given elsewhere in this thread, Guile also includes a more complex > 'array' type that includes features such as arbitrary rank (i.e. number > of d

Re: Growable arrays

2012-06-14 Thread David Kastrup
Daniel Llorens writes: > I do not think this is a good idea. Guile arrays are just views of a > vector. Are you proposing to have a separate array implementation? The > resize operation clashes with the notion of shared views, and it only > makes sense for arrays of rank 1. It can defined on the