Module for manual memory management
Foo via Digitalmars-d
digitalmars-d at puremagic.com
Wed Feb 4 12:42:17 PST 2015
On Wednesday, 4 February 2015 at 20:15:37 UTC, Andrei
Alexandrescu wrote:
> On 2/4/15 9:13 AM, Foo wrote:
>> For what it's worth, today I finished the current work. Now we
>> will
>> start working with it. If someone has critique, improvement
>> suggestions
>> or want to take some ideas, he is free to do so.
>> To repeat myself: we rewrote some functionality which already
>> existed in
>> D, but were improvable. For example the existing emplace
>> method is quite
>> long, hard to understand / read and is not marked with @nogc.
>> Since we
>> want to avoid the GC wherever possible we had to rewrite it. I
>> hope it's
>> useful for someone else and that some of you guys take some
>> ideas from it.
>>
>> https://github.com/Dgame/m3
>
> Opened File.d at random:
>
> @trusted
> @nogc
> char[] read(const string filename) nothrow {
> import std.c.stdio : FILE, SEEK_END, SEEK_SET, fopen,
> fclose, fseek, ftell, fread;
>
> FILE* f = fopen(filename.ptr, READ_BINARY);
> scope(exit) fclose(f);
>
> fseek(f, 0, SEEK_END);
> immutable size_t fsize = ftell(f);
> fseek(f, 0, SEEK_SET);
>
> char[] str = m3.m3.make!(char[])(fsize);
> fread(str.ptr, fsize, 1, f);
>
> return str;
> }
>
> Then stopped right there. This is nowhere near production
> quality - there is no error checking whatsoever, does more
> operations than necessary, won't work on special files etc.
> etc. etc.
>
> I applaud the intention but there is a lot more work to be done
> on this before it's in reviewable form.
>
>
> Andrei
Yes that is correct, currently there is no error checking, maybe
it get that later. But what do you mean with "it use more
operations than necessary"? I can't see it. But both points are
helpful critique. Thanks a lot! :)
As I said above, it's currently only for our work. But I
presented it here, so that some guys can get some inspiration or
can reuse our code. :)
Maybe, but really only maybe, I will get some work done, so that
it's is ready for phobos. But since such a review can take years,
I see no use to do that work. But if someone else has the will to
do that, reuse our code!
More information about the Digitalmars-d
mailing list