Finalizing D2

Tomas Lindquist Olsen tomas.l.olsen at gmail.com
Sat May 23 02:10:35 PDT 2009


On Sat, May 23, 2009 at 7:25 AM, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> 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.
>

How do you plan to handle ABI compatibility with C if complex becomes
a library type? Drop it?

> * 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
>



More information about the Digitalmars-d mailing list