std.uni vs std.unicode and beyond?

Jonathan M Davis jmdavisProg at gmx.com
Wed May 22 20:15:27 PDT 2013


On Thursday, May 23, 2013 03:42:56 deadalnix wrote:
> On Thursday, 23 May 2013 at 01:24:42 UTC, Idan Arye wrote:
> > Doing it while keeping `std.uni` would create a duplication in
> > both API and implementation, since `std.unicode` will contain
> > all the functionality of `std.uni`. Eventually `std.uni` would
> > have to be removed, because if Phobos would keep the old
> > versions forever whenever a better version that does the same
> > thing comes it will become very cluttered. Java walked that way.
> > 
> > Once the old `std.uni` will be finally removed - code will
> > break.
> 
> Yes, that is exactly what is needed. Today we only consider not
> breaking at all, or breaking it as of next version of DMD and
> without any support for what come before the breakage. This
> boolean choice mindset isn't helping.

Every time that a library change is introduced it's done in a way that allows 
the programmer time to migrate their code. I'm not aware of any case thus far 
where we've purposefully changed library code in a manner which immediately 
broke user code. We don't even do that with the compiler. The problem is all 
of the times that it happens on accident (particularly with compiler 
regressions). So, regardless, we're not going to immediately break code out 
from under people.

So, the question is whether it's worth making people change their code 
sometime between when we make the change and when std.uni finally goes away. 
And I don't think that making people change their code is worth it regardless 
of how gradual it is. std.uni is not as good a name as std.unicode, but it's 
just not worth forcing people to change their code in order to fix it. If we 
keep trying to tweak the names of modules and functions and whatnot, we'll 
never be in a state where people can rely on their code compiling across 
compiler versions. Tweaking some stuff is necessary, and we did a lot in the 
past to fix symbol names, but we've pretty much stopped doing that, and we have 
to draw the line somewhere. The general push has been to stabilize our the 
compiler and Phobos, and tweaking names does not help with that and generally 
has a low ROI.

- Jonathan M Davis


More information about the Digitalmars-d mailing list