On Wed, 15 Sep 2010 20:56:14 +0900, Lars Tandle Kyllingstad <l...@kyllingen.net> wrote:

I said in an earlier e-mail that I think std.file, std.path, and
std.stdio should remain separate modules.  However, I do think that, for
a library with a flat module hierarchy, Phobos has acquired way too many
modules.  Some of them should (and will) be removed, and some could be
merged.

I agree.

The following are my suggestions for how to trim the Phobos module list
a bit.  At the bottom I'll show the resulting module list.


Modules which could be removed, most of them *right now*, because they
are superseded by other modules or built-in functionality:

        std.bind       - use lambdas or nested functions instead
        std.boxer      - superseded by std.variant
        std.contracts  - superseded by std.exception
        std.cstream    - superseded by std.stdio.File
        std.demangle   - superseded by core.demangle
        std.iterator   - superseded by std.range
        std.openrj     - obscure format, better to use std.json
        std.perf       - superseded by StopWatch
        std.regexp     - superseded by std.regex
        std.stream     - ranges are the way to go
        std.syserror   - superseded by std.windows.syserror
        std.c.*        - superseded by core.stdc.* and core.sys.*

The content of std.stdint is "public import core.stdc.stdint;" only.
I think this module doesn't need.

Modules for which there is no documentation on the D home page, and
which I suspect nobody are using:

        std.loader
        std.stdarg
        std.typelist

Modules which can be merged into a single one, possibly after
substantial/complete rewrites:

        std.compiler + std.cpuid + std.system (= std.sysinfo?)
        std.ctype + std.uni (= std.character?)
        std.date + std.dateparse + std.gregorian + std.stopwatch
          (= std.datetime?)
        std.encoding + std.utf (= std.encoding?)
        std.socket + std.socketstream (= std.socket (or std.net?))
        std.typecons + std.typetuple (= std.types?)

std.socket should be divided into std.socket, std.event and std.net(std.dns?).
I said this point in "Breaking changes for std.socket improvement".


Masahiro
_______________________________________________
phobos mailing list
phobos@puremagic.com
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to