associative arrays with manual memory management

2015-08-24 Thread Ilya Yaroshenko via Digitalmars-d-announce
http://code.dlang.org/packages/aammm/~master # aammm Associative arrays with manual memory management All enries and buckets would be dealocated and disposed by internal implementation's destructor. The destructor is called by garbage collector (by default). Example

Re: associative arrays with manual memory management

2015-08-24 Thread extrawurst via Digitalmars-d-announce
On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: http://code.dlang.org/packages/aammm/~master # aammm Associative arrays with manual memory management [...] Awesome, I was waiting for something like that. Thank you!

Re: associative arrays with manual memory management

2015-08-25 Thread via Digitalmars-d-announce
On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: Nice! I'll try this! auto a = AA!(string, int, shared Mallocator) When does the third parameter need to be qualified as `shared`?

Re: associative arrays with manual memory management

2015-08-25 Thread via Digitalmars-d-announce
On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: http://code.dlang.org/packages/aammm/~master It would be nice to have a test example for other allocators. I'm especially interested in how much speed we can gain with using a non-shared BlockAllocator in combination with aammm

Re: associative arrays with manual memory management

2015-08-25 Thread Dmitry Olshansky via Digitalmars-d-announce
On 24-Aug-2015 15:01, Ilya Yaroshenko wrote: http://code.dlang.org/packages/aammm/~master # aammm Associative arrays with manual memory management All enries and buckets would be dealocated and disposed by internal implementation's destructor. The destructor is called by garbage collecto

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 06:41:41 UTC, Per Nordlöw wrote: On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: Nice! I'll try this! auto a = AA!(string, int, shared Mallocator) When does the third parameter need to be qualified as `shared`? Only if you would use a

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 06:50:26 UTC, Per Nordlöw wrote: On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: http://code.dlang.org/packages/aammm/~master It would be nice to have a test example for other allocators. I'm especially interested in how much speed we can gain

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 06:50:26 UTC, Per Nordlöw wrote: On Monday, 24 August 2015 at 12:01:52 UTC, Ilya Yaroshenko wrote: http://code.dlang.org/packages/aammm/~master It would be nice to have a test example for other allocators. I'm especially interested in how much speed we can gain

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 06:52:01 UTC, Dmitry Olshansky wrote: auto a = AA!(string, int, shared Mallocator)(Mallocator.instance); Sure hope a factory to do IFTI is available? So that the following works: auto a = aa!(string, int)(Mallocator.instance); // 3rd CT param is deduc

Re: associative arrays with manual memory management

2015-08-26 Thread via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 10:48:11 UTC, Ilya Yaroshenko >> auto a = aa!(string, int)(Mallocator.instance); // 3rd CT highlights It would be nice to also see an example at https://github.com/arexeu/aammm that shows AA-usage in conjunction with some other allocator such as FreeList and a

Re: associative arrays with manual memory management

2015-08-26 Thread via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 09:20:33 UTC, Ilya Yaroshenko wrote: Only if you would use a shared allocator like Mallocator or GCAllocator. Are there cases where a non-shared version of Mallocator or GCAllocator is motivated? If not could, maybe the shared-ness could be inferred?

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 13:12:38 UTC, Per Nordlöw wrote: On Wednesday, 26 August 2015 at 09:20:33 UTC, Ilya Yaroshenko wrote: Only if you would use a shared allocator like Mallocator or GCAllocator. Are there cases where a non-shared version of Mallocator or GCAllocator is motivated?

Re: associative arrays with manual memory management

2015-08-26 Thread via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 14:21:41 UTC, Ilya Yaroshenko wrote: It is possible but not so useful, thought. Why is it not so useful? `AA!(...).Entry.sizeof` and `AA!(...).Entry.alignof` should be accessible from user code since v0.0.3 . They can be used to construct allocators. I will ad

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 12:10:17 UTC, Per Nordlöw wrote: highlights It would be nice to also see an example at https://github.com/arexeu/aammm that shows AA-usage in conjunction with some other allocator such as FreeList and add a note about the performance improvement this gives. I

Re: associative arrays with manual memory management

2015-08-26 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 14:24:54 UTC, Per Nordlöw wrote: On Wednesday, 26 August 2015 at 14:21:41 UTC, Ilya Yaroshenko wrote: It is possible but not so useful, thought. Why is it not so useful? Because looks like allocators have different additional params, that dose not related to

Re: associative arrays with manual memory management

2015-09-13 Thread Ilya Yaroshenko via Digitalmars-d-announce
On Wednesday, 26 August 2015 at 12:10:17 UTC, Per Nordlöw wrote: On Wednesday, 26 August 2015 at 10:48:11 UTC, Ilya Yaroshenko >> auto a = aa!(string, int)(Mallocator.instance); // 3rd CT highlights It would be nice to also see an example at https://github.com/arexeu/aammm that shows AA-usage