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.

Reply via email to