The path to unity

Don nospam at nospam.com
Sat Feb 7 02:18:35 PST 2009


grauzone wrote:
>> I'd remove from Phobos:
>>
>> std.
>>  openrj
>>  bigint (old one, by Janice)
>>  regexp
>>  socket
>>  xml
>>  much, much more (see more complete list in my previous post[1]).
>>
>> and suggest/force users use tango instead.
> 
> std.
>   zip
>   signals
>   outbuffer (there isn't even inbuffer, whee)
>   boxer (I like it, but Variant seems to supersede it)
>   cover (highly compiler specific, why is it in the stdlib?)
> 
> Also, the following modules really belong into core:
> 
> std.
>   atomics (contains intrinsics for atomic asm instructions, right?)
>   intrinsics
>   variant (come on!)
>   complex
>   bind
>   bigint

For bigint, only the low-level O(n^2) functions, I think. A bigint 
implementation might use O(n lg n) fourier transforms for multiply when 
the numbers get big enough -- that's far too heavyweight for the core, I 
think. The low-level functions are almost intrinsics -- bigint add is 
essentially the "add-with-carry" instruction, for example.

Also std.cpuid (without toString()).

All those modules (except complex, maybe) are things which you'd have to 
rewrite when creating a new compiler, so I think using core for them is 
reasonable.

> Next steps:
> - unify the C import modules
> - move modules like std.range into core (magically enables Tango to use it)

I think you'll find Tango eventually wants to use most of the new Phobos 
  -- you'd find everything in std gets moved into core! So I don't think 
range belongs there (unless the range struct gets built into the compiler).

> - find a common I/O API (and put it into core), which wraps Tango/Phobos 
> specific I/O APIs (personally, I'd prefer having something simple like 
> std.stream [without the interfaces], instead of the clusterfuck in Tango)
> 
> PS: It's fine if it's a third stdlib, as long as both Tango and Phobos 
> people agree on it. It's too late anyway, and important, user-visible 
> types like Thread are in core.

The I/O is difficult. I think it's a legitimate design difference 
between Tango and Phobos -- we're probably stuck with it. I think it'd 
be better to leave it aside, and concentrate on unifying the simple stuff.



More information about the Digitalmars-d mailing list