[phobos] [Fwd: Network in phobos]
Lars Tandle Kyllingstad
lars at kyllingen.net
Thu Apr 8 01:11:24 PDT 2010
I have two comments to this.
1. Style guide:
There really should be a formal set of guidelines. Currently, as a new
contributor to the project, I have to look at the various modules, try
to guess which ones are up-to-date, and then mimic the style of those
modules as best I can.
It seems that someone (Jesse Phillips?) has done quite some work on this
page, which looks to me like a good starting point:
http://prowiki.org/wiki4d/wiki.cgi?DProgrammingGuidelines
Some notable things which are missing from this page:
- Capitalisation of enums and immutables
- Free functions vs. static member functions:
auto r = acquireResource();
auto r = Resource.acquire();
- Function template parameters vs. ordinary function parameters:
enum Option { foo, ... }
doStuff(someData, Option.foo);
doStuff!(Option.foo)(someData);
- Templates vs. new symbols:
enum Option { bar, baz }
struct Foo(Option opt) { ... }
struct FooBar { ... }
struct FooBaz { ... }
2. Code review:
It seems to me that the sensible thing to do when making major changes
to a part of the library is to create a new branch. (Steve did this for
the std.process development.) Before merging the branch back into
trunk, one can send an e-mail to this list requesting feedback and approval.
What is not clear to me, is where to draw the line between a major
change that needs approval by the project leader/group, and a minor
change that doesn't.
-Lars
Andrei Alexandrescu wrote:
> [Context: the tail of an exchange between Adam Ruppe and myself. You may
> want to chime in with thoughts regarding admission of code into Phobos.]
>
> On 04/01/2010 09:33 AM, Adam Ruppe wrote:
>> Yes, that'd be very cool!
>
> Sorry for being slow on this. Great! Please send me your username and
> I'll add it to Phobos.
>
>> Do you guys have a guide as to what goes in and what doesn't? I lot of
>> the stuff I write is "hey, look what I hacked up over the weekend. It
>> works for me!" - I assume phobos should be held to a higher standard
>> than that, but where is the line?
>
> We don't have a formal set of guidelines, and unfortunately there is no
> mechanism in place to do code reviews before they are checked in. (See
> my other email.)
>
> There is some code in Phobos that I'm not very fond of (streams) and
> some code that is well-intended but just "not there" (std.encoding).
> There's some good code that doesn't conform almost at all with the
> prevalent Phobos style (std.json).
>
>> There's two levels to this question too: what kind of functionality is
>> in and what is out, and also what kind of sloppiness is out? For
>> example, this code is only set for Linux - before committing, should I
>> test on Windows, or is a "this is linux only for now" function ok too?
>
> I think it's ok to implement something only on one OS initially. It has
> happened before, and it's actually beneficial because people get
> encouraged to submit their own port.
>
>
> Andrei
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list