[phobos] Phobos has way too many modules
Jacob Carlborg
doob at me.com
Thu Sep 16 05:54:07 PDT 2010
I think it's time for Phobos to start using sub packages and drop the flat module hierarchy.
On 15 sep 2010, at 13:56, Lars Tandle Kyllingstad 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.
>
> 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.*
>
> 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?)
>
> And finally, some renaming suggestions (which were actually posed by
> Andrei):
>
> std.conv -> std.convert
> std.stdio -> std.io
>
>
> All this gives us the following, nice and short (well... shorter, at
> least) module list:
>
> std.algorithm
> std.array
> std.base64
> std.bigint
> std.bitmanip
> std.character
> std.complex
> std.concurrency
> std.container
> std.convert
> std.datetime
> std.encoding
> std.exception
> std.file
> std.format
> std.functional
> std.getopt
> std.intrinsic
> std.io
> std.json
> std.math
> std.md5
> std.metastrings
> std.mmfile
> std.numeric
> std.outbuffer
> std.path
> std.process
> std.random
> std.range
> std.regex
> std.signals
> std.socket
> std.stdint
> std.string
> std.sysinfo
> std.traits
> std.types
> std.variant
> std.xml
> std.zip
> std.linux
> std.windows
>
>
> Just something to think about.
>
> -Lars
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
--
/Jacob Carlborg
More information about the phobos
mailing list