Allocatoin policy in Phobos - Was: Vote for std.process
Dmitry Olshansky
dmitry.olsh at gmail.com
Fri Apr 12 07:18:16 PDT 2013
12-Apr-2013 18:12, Manu пишет:
> On 13 April 2013 00:01, Regan Heath <regan at netmail.co.nz
> <mailto:regan at netmail.co.nz>> wrote:
>
> So...
>
> If the GC were to have a hook function for allocation and for free,
> and if when these were in use it would not itself trigger collection.
>
> Then...
>
> Manu could supply hook functions, use the alloc function to supply
> pre-allocated memory, and trigger collection as/when convenient.
>
>
> Believe it or not, I'm not actually a fan of over-complexity. And I'm
> focusing here on totally unnecessary allocations.
> Isn't using the stack where applicable just a whole low easier? That's
> what it's there for.
'cause nobody can tell you how big it is. This knowledge is only
available to end user and there is still no easy way to "tell" that to
the library. The end result is utterly useless as library can't reliably
use stack space.
In the end if one library thinks it's fine to burn say 32K of stack with
alloca but then it calls into another one that burns another chunk with
alloca and so on untill happily stack overflowing (sometimes, on some
systems at the right time!). Call graphs to calculate this is only
available for the final app.
Maybe just adding a separate thread-local growable stack for data would
work - at least it wouldn't depend on sheer luck and particular OS settings.
--
Dmitry Olshansky
More information about the Digitalmars-d
mailing list