D array expansion and non-deterministic re-allocation

Leandro Lucarella llucax at gmail.com
Thu Nov 19 17:28:53 PST 2009


Andrei Alexandrescu, el 19 de noviembre a las 17:13 me escribiste:
> Leandro Lucarella wrote:
> >dsimcha, el 19 de noviembre a las 23:21 me escribiste:
> >>Face it, D is a close to the metal language.  Any attempt to define the spec at a
> >>purely abstract level without reference to any implementation details, and without
> >>leaving certain details implementation defined is absurd.  I think people need to
> >>face the fact that you can't have close-to-the-metal flexibility and performance
> >>and at the same time far-from-the-metal strict separation of specification from
> >>implementation details.
> >
> >Yes, but I think this is a place where you are doing early optimization at
> >the expense of usability. You can always do the slice-thinguie yourself if
> >you are that needed for speed that you can't afford an extra indirection
> >when using an array (which will be the only overhead if T[new] were
> >implemented as a pure reference type).
> >
> >I think the cost here in terms of usability if far higher than the little
> >performance you loose, specially when you can overcome the issue for those
> >weird cases where you need it.
> 
> I think one aspect that tends to be forgotten is that built-in
> arrays are the lowest abstraction - really just one small step above
> pointers. Efficiency lost there is lost forever. That's why I
> consider the current design adequate and the proposed designs less
> so.

I don't think so, slices (a view over somebody elses memory, no appending)
should be the lowest level abstraction.

> In other words: you can build a more convenient facility on top of
> T[], but you couldn't build a more efficient facility on top of a
> convenient one. I think D made the right choice with built-in
> arrays.

I don't. Current built-in arrays are both dynamic arrays and slices, which
is what messes all up.

But I'll drop the subject, once again, for the sake of... well, everybody
;)

-- 
Leandro Lucarella (AKA luca)                     http://llucax.com.ar/
----------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------
SEÑOR BIELSA: CON TODO RESPETO ¿USTED LO VE JUGAR A RIQUELME?
	-- Crónica TV



More information about the Digitalmars-d mailing list