Vote for std.process
Paulo Pinto
pjmlp at progtools.org
Fri Apr 12 02:31:30 PDT 2013
On Friday, 12 April 2013 at 08:34:15 UTC, Johannes Pfau wrote:
> Am Fri, 12 Apr 2013 17:04:08 +1000
> schrieb Manu <turkeyman at gmail.com>:
>
>>
>> I've said before, I sadly have to avoid phobos like the
>> plague. Some
>> modules (like this one) that provide fundamental functionality
>> - not
>> just helper functions - can't be avoided. Requirements for
>> those
>> should be extra strict in my opinion.
>>
>
> Most (GC) allocations could be fixed without breaking the API.
> I can
> see 2 places where the API forces _GC_ allocations:
> * string[string]
> * thrown Exceptions are allocated with the GC
>
> There is no simple solution for these. Maybe we'll have a
> hashtable in
> the standard library at some point which will allow to use
> custom
> allocators. Then std.process could use these. Exceptions
> require some
> thinking. You can of course allocate them using any allocator,
> but
> freeing them is difficult...
>
> If you want to get rid of all (not only GC) allocations,
> there's another
> issue: As D strings are not zero terminated we'll always have
> allocations passing those to C code. Maybe we should have a
> cstring
> type in phobos which would just be a string which is guaranteed
> to be
> zero terminated.
>
> http://dpaste.dzfl.pl/e76aa995 (needs some inout though)
This is the Object Pascal way, although you can reach to a point
where you get language native strings and C strings mixed all
over the place.
Not to mention that C strings should not be allowed in safe code.
--
Paulo
More information about the Digitalmars-d
mailing list