It's not as bad as the new documentation implies. I left public aliases for all moved symbols. The only issue I found with them is that under certain circumstances, the compiler thinks those aliases are conflicting with their originals. (I was unable to reduce that to a simple case.)

Andrei

On 1/22/11 1:40 AM, Brad Roberts wrote:
I'm not sure I'd bother.  Given all the changes, aren't there likely to be a lot
of things broken?  This app used just one or two things that were, but it's
tiny.  I'll bet that in the wider realm of d2 users that it's going to be a
whole lot more and not just replace.



On 1/21/2011 11:32 PM, Andrei Alexandrescu wrote:
I guess I'll change the code to be backwards compatible.

Andrei

On 1/22/11 1:18 AM, Brad Roberts wrote:
Ok, I had to not just to!string(envData.sep), but also change it to:
     s = replace(...);

I predict lots of pain from the next release.  User impacting changes suck.  I'm
tempted to suggest that we pile on as many as we can squeeze into this one just
to concentrate the pain into one release rather than spread out over several
that are individually painful.

Thoughts?

On 1/21/2011 6:13 PM, Brad Roberts wrote:
Ok.

On Fri, 21 Jan 2011, Andrei Alexandrescu wrote:

Date: Fri, 21 Jan 2011 18:57:31 -0600
From: Andrei Alexandrescu<[email protected]>
Reply-To: Discuss the phobos library for D<[email protected]>
To: Discuss the phobos library for D<[email protected]>
Subject: Re: [phobos] phobos commit, revision 2354

That's due to replace()'s inability to deal with fixed-size immutable arrays.
I don't want to do surgery on it because I think we need to look for a
principled solution for the future.

I can't commit d_do_test.d. To make it work, replace envData.sep with
to!string(envData.sep) in lines 132 and 139.


Andrei

On 1/21/11 1:04 PM, Brad Roberts wrote:
On 1/21/2011 12:39 AM, dsource.org wrote:
phobos commit, revision 2354


user: andrei

msg:
Improvements to replicate(); documented splitter() for strings; renamed
replace() in place to replaceInPlace(); removed replace() that takes void*
in the last position; moved replace() from string to array and generalized
it; attached constraint to functional.not; more cleanup of std.string;
improved std.algorithm.util and count to accept ranges; improved
constraint in std.algorithm.remove

http://www.dsource.org/projects/phobos/changeset/2354

paths changed:
U   trunk/phobos/std/algorithm.d
U   trunk/phobos/std/array.d
U   trunk/phobos/std/functional.d
U   trunk/phobos/std/path.d
U   trunk/phobos/std/string.d

Sigh.. since this submit, the dmd test suite has been failing since the
driver
no longer builds.

               s = replace(s, "/", envData.sep);

d_do_test.d(132): Error: template std.array.replace(R1,R2,R3) if
(isDynamicArray!(R1)&&    isForwardRange!(R2)&&    isForwardRange!(R3)) does not
match any function template declaration
d_do_test.d(132): Error: template std.array.replace(R1,R2,R3) if
(isDynamicArray!(R1)&&    isForwardRange!(R2)&&    isForwardRange!(R3)) cannot
deduce template function from argument types
!()(string,string,const(immutable(char)[]))

I tried changing it to: replaceInPlace(s, "/", envData.sep); with no
improvement.

d_do_test.d(132): Error: template std.array.replaceInPlace(T,Range) if
(isDynamicArray!(Range)&&    is(ElementType!(Range) : T)) does not match any
function template declaration
d_do_test.d(132): Error: template std.array.replaceInPlace(T,Range) if
(isDynamicArray!(Range)&&    is(ElementType!(Range) : T)) cannot deduce
template
function from argument types !()(string,string,const(immutable(char)[]))


_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to