On Monday, 29 September 2014 at 15:18:40 UTC, Andrei Alexandrescu wrote:
On 9/29/14, 5:29 AM, Dicebot wrote:
Any assumption that library code can go away with some set of
pre-defined allocation strategies is crap. This whole discussion was about how important it is to move allocation decisions to user code (ranges are just one tool to achieve that, Don has been presenting examples of how we do that with plain arrays in DConf 2014 talk).

That's making exactly the confusion I was - that memory allocation strategy is the same as memory management strategy.

Yes but neither decision belongs to library code except for very rare cases.


In that regard allocators + ranges are still the way to go in my opinion. Yes, sometimes those result in very hard to use API - providing GC-heavy but friendly alternatives for those shouldn't do any harm. But in general full decoupling of algorithms from allocations is necessary. If that makes D poor cousin of C++ we may have a learn few tricks from C++.

As long as things are trivial they can be done with relative ease, albeit with more pain. But consider e.g. the recent JSON library by Sönke. It needs to create a lookup data structure and return things like strings from it. What primitives do you think could it define?

Sounds like it may have to define own kind of allocator with certain implementation restrictions (and implement it in terms of GC by default). I have not actually read the code for that proposal so hard to guess. Will need to do it if it really matters.

Reply via email to