Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
February 26, 2014 Manual Memory Management Example for dlang.org Docs (Code Review) | ||||
---|---|---|---|---|
| ||||
As I study D, I am running across quite a few unmaintained examples in dlang.org's documentation. Rather than leaving them for the next guy to step in, I'm (one-by-one) submitting pull request to fix them. I need an good manual memory management example, but the one at http://dlang.org/memory.html#newdelete uses the deprecated allocators. Daniel Gibson posted an example here (http://forum.dlang.org/post/ip76fa$2o7k$3@digitalmars.com) back in 2011. I've modified that example and posted a new one here (http://dpaste.dzfl.pl/f4b09b9e6c46) using destroy. I'm quite new to D, so I'm asking the community to please review this example so I can submit a pull and update the docs. Thanks, Mike |
February 26, 2014 Re: Manual Memory Management Example for dlang.org Docs (Code Review) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike | On Wednesday, 26 February 2014 at 02:23:47 UTC, Mike wrote: > > I've modified that example and posted a new one here (http://dpaste.dzfl.pl/f4b09b9e6c46) using destroy. > I modified this based on Adam D. Ruppe's example here( http://arsdnet.net/dcode/malloc.d). Please review this (http://dpaste.dzfl.pl/2377217c7870) instead. |
February 26, 2014 Re: Manual Memory Management Example for dlang.org Docs (Code Review) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Mike | On Wednesday, 26 February 2014 at 04:43:30 UTC, Mike wrote: > Please review this (http://dpaste.dzfl.pl/2377217c7870) instead. > throw new Exception("Out of memory"); I don't think it is a good thing to do. Of course GC is likely to have some memory left in hs internal pools but in general once you hit out-of-memory state last thing you want is not allocate even more. > // Deallocate test > heapDeallocate(test); More idiomatic D is to put `scope(exit) heapDeallocate(test);` immediately after allocation line. |
February 27, 2014 Re: Manual Memory Management Example for dlang.org Docs (Code Review) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On Wednesday, 26 February 2014 at 15:00:13 UTC, Dicebot wrote: > On Wednesday, 26 February 2014 at 04:43:30 UTC, Mike wrote: >> Please review this (http://dpaste.dzfl.pl/2377217c7870) instead. > >> throw new Exception("Out of memory"); > > I don't think it is a good thing to do. Of course GC is likely to have some memory left in hs internal pools but in general once you hit out-of-memory state last thing you want is not allocate even more. > >> // Deallocate test >> heapDeallocate(test); > > More idiomatic D is to put `scope(exit) heapDeallocate(test);` immediately after allocation line. Thanks, I've made changes and I guess this is the one I'll use for the pull. (http://dpaste.dzfl.pl/31367860c005) |
February 27, 2014 Re: Manual Memory Management Example for dlang.org Docs (Code Review) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Dicebot | On Wednesday, 26 February 2014 at 15:00:13 UTC, Dicebot wrote:
> On Wednesday, 26 February 2014 at 04:43:30 UTC, Mike wrote:
>> Please review this (http://dpaste.dzfl.pl/2377217c7870) instead.
>
>> throw new Exception("Out of memory");
>
> I don't think it is a good thing to do. Of course GC is likely to have some memory left in hs internal pools but in general once you hit out-of-memory state last thing you want is not allocate even more.
For certain standard errors, the proper approach is probably to call the appropriate handler in core.exception.
|
Copyright © 1999-2021 by the D Language Foundation