[Nickle] Nickle bug/misfeature: storage for growable arrays of growable arrays

nickle at po8.org nickle at po8.org
Sat Jan 15 20:42:43 PST 2005


In message <E1CpxUI-0007d0-CR at evo.keithp.com> you wrote:
> Around 13 o'clock on Jan 15, "Bart Massey" wrote:
> 
> > If you want things to be like C, you can just make
> >    struct s;
> > mean
> >    struct s = {};
> > and similarly for arrays.
> 
> Right, that's what we have today.

It didn't sound like it for your earlier description.  It
sounded like you had some lazy initialization thing going
on.  Did I misunderstand?

> > Shy of growable array initializers via continuations :-), I
> > would just like initializer expressions to work like they do
> > for hashes.  This would at least take care of the nested
> > growable array case, which is the thing I normally care
> > about anyhow.  And after all, we don't have hash
> > comprehensions.
> 
> Hashes have a 'default value' which is used to initialize any 
> uninitialized element when referenced.  We could do the same for growable 
> arrays if that would be sufficient, and I can compute that when the array 
> is computed.

That's what I was hoping for.

> The trouble I'm having now is how to compute a nested array 
> value when the array is used in some completely different context.  I 
> don't, in general, have a pointer back to the frame holding the dimension 
> information for the nested array.

Just do the same thing with arrays you do with structs: let
  int[...][...] a;
be shorthand for
  int[...][...] a = {{} ...};
and the default value should take care of it, I think?

     bart



More information about the Nickle mailing list