perpetual: new module for mapping file into memory

Dmitry Olshansky via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Aug 17 23:52:29 PDT 2015


On 18-Aug-2015 07:45, Rikki Cattermole wrote:
> What I don't like:
> - Does not allow for calling the constructor on the type should it have one

Hm it depends - one thing is that after mmaping a file the type may 
already be constructed, if it wasn't then emplacement should be the 
right thing to do. That is there should be a default/string value.

> - Does not map to std.mmfile in any way

Which is a good thing. std.mmfile is crappy 8 year old ported crap.

> - No way to say an offset in the file to

That may be useful.

 > - You implement basically everything in std.mmfile all over again

Low-level API might be in order but it's not std.mmfile which is not 
low-level enough. Separating out a set of portable mmaping primitives 
would be awesome.

What I don't like is perpetual being a class - too bad as it won't honor 
scoping and destructor may or may not be called. Just make it a struct.

Also type should be Perputal, then perpetual is helper function that 
creates it then by means of IFTI type may be deduced. I suggest the 
following API:

// all parameters after file are either T itself
auto p = perpetual("file-name", 42);// would deduce T=int

// or args to T:
struct RGB{ int r,g,b; }
// if not in file use RGB(1,2,3)
auto p = perpetual!RGB("file-name", 1, 2, 3);

-- 
Dmitry Olshansky


More information about the Digitalmars-d-announce mailing list