Languages for servers (Go, D, and more)

Chris Cain via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 4 13:25:23 PDT 2014


On Friday, 4 July 2014 at 19:46:40 UTC, Remo wrote:
> Who want to use C-style memory management today ?
> How about C++ style memory management, is this easy to this in 
> D2
> now ?

The big problem with that is "C++ style memory management" 
implies we're going to have new/delete which AFAIK delete is 
depreciated and new is currently hardcoded to use the GC.

But malloc/free works, so C-style memory management is already 
here.

> IMHO @nogc is the right direction.
>
> But it would be great if one could compile at least this code.
> int main(string[] argv) @nogc {
>    writeln("Hello D-World!");
>    return 0;
> }

I'm sure we'll get there. There's some decent ground to cover 
before we can get that, though. We need to make it so phobos code 
doesn't need to allocate exceptions everywhere first (which 
should be doable). Plus we'll also need to keep having exceptions 
that have good error messages. I've posted a "proof of concept" 
of such a thing in the IRC, but here it is as well (obviously, 
it's really rough because I'm just throwing ideas together in a 
blender at this point...):
https://gist.github.com/Zshazz/47ed52c3246e5348062a

I'm also working on a few helpers for @nogc code that'll make the 
above more concise and readable (again, *very* preliminary ... 
SemiStackSink is a mixin template in here, but that's only 
because I was trying out weird ideas; as it stands now it should 
just be a simple template struct):
https://gist.github.com/Zshazz/fed0400674f034e09495

As a bonus, SemiStackSink working on 200_000_000 chars takes 
around 1/6 of the time as a pure GC implementation. Obviously for 
very small numbers of chars (<60), it's basically instant because 
it allocates on the stack at that point.

So yeah, 2.066 will probably spur more work in code that doesn't 
need the GC. Once std.allocator lands and we start developing 
usage patterns on that, the amount of code that needs the GC will 
shrink even further.


More information about the Digitalmars-d mailing list