[phobos] phobos commit, revision 1851

Andrei Alexandrescu andrei at erdani.com
Sat Aug 14 10:25:40 PDT 2010


Great work! A few nits:

* Generally the prevalent Phobos (and I hope D) style is to declare 
local values as late as possible. This is pretty much ubiquitous in 
today's style guides for all languages (Code Complete, C++ Coding 
Standards etc.) Even C99 caved in and allows declarations intermixed 
with statements.

* In D, use of auto is recommended unless you want to make a specific 
point by mentioning the type. So, a suggested rewrite:

sock.hostent* h;
sock.sockaddr_in addr;
h = sock.gethostbyname(std.string.toStringz(host));

=>

auto h = sock.gethostbyname(std.string.toStringz(host));
// Define addr upon first use

* The pattern if (cond) throw new X(args) is best encoded with enforce:

if(h is null)
     throw new StdioException("gethostbyname");

=>

enforce(h !is null, new StdioException("gethostbyname"));

enforce() has a special overload that detects the presence of a 
Throwable in the second position and does what it should do.

* Phobos currently uses full bracing after if, while etc. I've tried to 
follow that but on occasion I slip. I'm not sure whether we should 
enforce such rules; this might be a good time to discuss that.

* Generally I encourage economy of vertical space, e.g.

auto imp = new File.Impl(fp, 1, host ~ ":" ~ to!string(port));
f.p = imp;

=>

f.p = new File.Impl(fp, 1, host ~ ":" ~ to!string(port));

This is an awesome development. I'll play with the code today.


Andrei

On 08/14/2010 12:12 PM, dsource.org wrote:
> phobos commit, revision 1851
>
>
> user: adr
>
> msg:
> commiting my first attempt at network support in the File interface.
>
> http://www.dsource.org/projects/phobos/changeset/1851
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos


More information about the phobos mailing list