Finalizing D2
Jason House
jason.james.house at gmail.com
Sat May 23 07:55:51 PDT 2009
Would it be a good idea to transcribe this list onto a "Phobos Help Wanted"
page?
I'm thinking they should be categorized into 4 basic categories.
Theoretically, as time goes on higher numbered items should be convertible
to lower numbered items.
1. Pure library work
-> Should include basic status info such as:
"Nobody is working on it"
"As of XXXX, Mr. Z. has started working on a patch"
"Andrei has said D2 Phobos needs this"
2. Blocked or partially blocked by bugzilla issues
-> Should list a bugzilla link for the issues limiting the implementation
-> Each issue should have a basic status info such as:
"Nobody is working on it"
"As of XXXX, Mr. Z. has started working on a patch"
"Andrei confirmed with Walter this fix is worthwhile for D2"
etc...
3. Mostly requires discussion / agreement within the community
-> Links to relevant threads on the D newsgroup (with two lines of recap)
4. Language design work
-> Links to relevant threads on the D newsgroup
-> Short paragraphs with design ideas (may need to be on a separate page)
I'd imagine items 3 and 4 would inspire discussions on the newsgroup for
ironing out the details. Below, I reordered your list with an initial cut
at categories. There are a few category 1 items that are in there simply
because there's so much rework to be done that I doubt anyone would complain
about any attempt to clean it up. For smaller tweaks (such as where to move
something), I put it into category 3 since little stuff is more likely to
generate opinions.
Andrei Alexandrescu wrote:
> Jason House wrote:
>> What do you / others consider the weakest / missing parts of Phobos?
>
> Wow. Where should I start. Let me go down the list of modules and share
> a few thoughts.
category 1 (pure library work)
---------------------------------
> * std.base64: doesn't deserve a separate module
> * std.bitmanip: define a range for BitArray and eliminate opApply. Add
> opSlice.
> * std.complex: IMPLEMENT. Eliminate any trace of built-in complex.
> * std.conv: define operations to stream data out and in in binary and
> text formats.
> * std.encoding, std.utf: we need a massive overhaul of all
> encoding-specific stuff. Massive. Epic. The current pile of...
> functionality makes the simplest stuff look like rocket surgery.
> * std.md5: we should add more such encryption devices.
> * std.metastrings: I hate the name. Merge into std.string using ctfe
> * std.mmfile: integrate with the garbage collector. It should be there.
> * std.process: add pipe() for Windows. Actually that should be in stdio.
> * std.regex, std.regexp: merge and finalize.
> * std.socket, std.socketstream: We need a real networking library.
> * std.stdio: implement readf and various I/O specific ranges
> * std.thread: replace
> * std.variant: add dynamic method invocation capabilities
> * std.xml: replace with something that moves faster than molasses.
> * std.zip: rewrite
category 2 (Blocked by bugzilla issues)
---------------------------------
category 3 (requires community discussion)
---------------------------------
> * std.bind: eliminate?
> * std.vendor: should this go in core?
> * std.cover: another little module that should be merged somewhere
> * std.date: unnecessarily clunky and low-level. Also, somehow Walter
> thinks that std.dateparse has absolutely nothing to do with date.
> * std.demangle: another small module. Should be merged with e.g. other
> compiler-specific stuff.
> * std.outbuffer: I think this shouldn't be a class and shouldn't have
> that name.
> * std.outofmemory: why???
> * std.signals: I don't know much. A review wouldn't hurt.
> * std.cstream, std.stream: eliminate.
> * std.string: arrange so there's no overlapping/conflict with
> std.algorithm. Implement bidir range for reading strings correctly
> (already done that).
> * std.system: merge somewhere
category 4 (language design work)
---------------------------------
> * std.array: we need to make a decision about differentiating arrays
> from slices.
More information about the Digitalmars-d
mailing list