[phobos] Phobos has way too many modules
Masahiro Nakagawa
repeatedly at gmail.com
Wed Sep 15 06:08:20 PDT 2010
On Wed, 15 Sep 2010 20:56:14 +0900, Lars Tandle Kyllingstad
<lars at 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
More information about the phobos
mailing list