Jason House wrote:
Andrei Alexandrescu Wrote:
Jason House wrote:
BCS wrote:
Hello Jason,
Should the final freezing of D2 be delayed until major D1 libraries
port to D2? I'm mostly thinking of Tango, but I bet there are others.
It may even be good if major libraries could use a Phobos-compatible
license and become part of the releases by digital mars.
Maybe it should be declared "done" as in it's got everything that Walter,
Andrei, Barotsz and friends what in it, but it might be changed if the Lib
writers as for some tweaks. Sort of a "feature" freaze.
Yes!
"Walter, Andrei, Bartosz, and friends": If you're reading this, can you shed
some light on what's happening before D2 is declared stable? And when?
I've submitted the first three chapters to Rough Cuts. I will make
progress towards writing up until the end of August. The last chapter
concerns concurrency and is the fuzziest one.
Ok, so pen down in three months?
Yah.
Thank you for your initiative to enlist help from the community. There's
a lot of very visible help already happening: there's been a sharp
increase in bug reports and patches recently. Walter and I are still
scratching our head over that (it's not like dmd got much crappier
overnight). I can only infer that more people have started using more of D.
The increase is interesting. Out of curiosity, is the increase dominantly for
the backend? I wonder if having a sense of D2 stabilizing is increasing usage
of D2 overall.
Walter has no specific statistics.
I'd be thrilled to add more stuff to Phobos. Stuff can be done with
ranges that's almost indistinguishable from poetry. But ranges aren't
everything, Georg :o). I think Shin's BlackHole and WhiteHole slammed
open a door to a world of amazing possibilities. Things like
compile-time reflection, run-time reflection, and dynamic loading are
very hot and the possibilities are huge. Among other things, Variant can
with relative ease implement a function var.call("fun", arg1, arg2) that
forwards everything dynamically to a member function of the embedded object.
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.
* std.array: we need to make a decision about differentiating arrays
from slices.
* std.base64: doesn't deserve a separate module
* std.bind: eliminate?
* std.bitmanip: define a range for BitArray and eliminate opApply. Add
opSlice.
* std.vendor: should this go in core?
* 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.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.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.outbuffer: I think this shouldn't be a class and shouldn't have
that name.
* std.outofmemory: why???
* std.process: add pipe() for Windows. Actually that should be in stdio.
* std.regex, std.regexp: merge and finalize.
* std.signals: I don't know much. A review wouldn't hurt.
* std.socket, std.socketstream: We need a real networking library.
* std.stdio: implement readf and various I/O specific ranges
* 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
* std.thread: replace
* std.variant: add dynamic method invocation capabilities
* std.xml: replace with something that moves faster than molasses.
* std.zip: rewrite
Well there's much other stuff I'm sure but I just dumped what came to
mind when taking a look.
Andrei