Re: dmd 2.063 released with 260 bugfixes and enhancements
What a great release! Great work! I really like the new langugage changes. One change caught my attention: #10 The Template This Parameter now changes the member function qualifier. Does this mean that const/immutable ranges can implement a useful opSlice? Like struct MyRange!T { T[] data; MyRange!(ElementType!data) opSlice(this T)() { return MyRange(data); } } So that given the other range primitves this will work: const myConstRange = MyRange([5, 6, 7, 8]); foreach(x; myConstRange) {} Could this be made work with 2.063? Mafi
Re: dmd 2.063 released with 260 bugfixes and enhancements
On Thursday, 30 May 2013 at 18:09:22 UTC, Jonathan M Davis wrote: On Thursday, May 30, 2013 20:00:24 Mafi wrote: What a great release! Great work! I really like the new langugage changes. One change caught my attention: #10 The Template This Parameter now changes the member function qualifier. Does this mean that const/immutable ranges can implement a useful opSlice? Like struct MyRange!T { T[] data; MyRange!(ElementType!data) opSlice(this T)() { return MyRange(data); } } So that given the other range primitves this will work: const myConstRange = MyRange([5, 6, 7, 8]); foreach(x; myConstRange) {} Could this be made work with 2.063? No, because you still have the fundamental problem that MyRange!T and MyRange! (const T) are different types which potentially have no relation to one another aside from the fact that they were generated by the same template. In the general case, you can't just convert MyRange!T to MyRange!(const T). It only works with arrays because the compiler understands them. - Jonathan M Davis Well I'm aware of the fact that MyRange!T and MyRange!const(T) could be unrelated types. But they're not and the author the range provided a conversion function and called it opSlice(). Foreach shouldn't care if they're related or not, it should just call opSlice().
Re: dmd 1.068 and 2.053 release
Am 14.05.2011 18:14, schrieb Mafi: Am 14.05.2011 17:09, schrieb Extrawurst: On 14.05.2011 15:23, Mafi wrote: Am 13.05.2011 23:27, schrieb Walter Bright: Thanks for everyone's hard work on this release! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.067.zip Now includes FreeBSD: http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.052.zip I just wanted to say that you made my day but then I tried to compile one of my projetcs and assertion failures in the compiler! :0 ! Finally I've tracked it done and the problem is import std.conv; enum s1 = to!string('\uE000'+ 6); //works without s enum s2 = cast(dchar)('\uE000'+ 6); //works without s enum s = to!string(cast(dchar)('\uE000'+ 6)); causes Assertion failure: '(newval-op == TOKarrayliteral || newval-op == TOKassocarrayliteral || newval-op == TOKstring || newval-op == TOKslice || newval-op == TOKnull)' on line 2680 in file 'interpret.c' posted bugzilla ? http://d.puremagic.com/issues/ Could somebody please do this for me. Mafi Thanks http://d.puremagic.com/issues/show_bug.cgi?id=6001
Re: dmd 1.068 and 2.053 release
Am 13.05.2011 23:27, schrieb Walter Bright: Thanks for everyone's hard work on this release! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.067.zip Now includes FreeBSD: http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.052.zip I just wanted to say that you made my day but then I tried to compile one of my projetcs and assertion failures in the compiler! :0 ! Finally I've tracked it done and the problem is import std.conv; enum s1 = to!string('\uE000'+ 6);//works without s enum s2 = cast(dchar)('\uE000'+ 6); //works without s enum s = to!string(cast(dchar)('\uE000'+ 6)); causes Assertion failure: '(newval-op == TOKarrayliteral || newval-op == TOKassocarrayliteral || newval-op == TOKstring || newval-op == TOKslice || newval-op == TOKnull)' on line 2680 in file 'interpret.c'
Re: dmd 1.068 and 2.053 release
Am 14.05.2011 17:09, schrieb Extrawurst: On 14.05.2011 15:23, Mafi wrote: Am 13.05.2011 23:27, schrieb Walter Bright: Thanks for everyone's hard work on this release! http://www.digitalmars.com/d/1.0/changelog.html http://ftp.digitalmars.com/dmd.1.067.zip Now includes FreeBSD: http://www.digitalmars.com/d/2.0/changelog.html http://ftp.digitalmars.com/dmd.2.052.zip I just wanted to say that you made my day but then I tried to compile one of my projetcs and assertion failures in the compiler! :0 ! Finally I've tracked it done and the problem is import std.conv; enum s1 = to!string('\uE000'+ 6); //works without s enum s2 = cast(dchar)('\uE000'+ 6); //works without s enum s = to!string(cast(dchar)('\uE000'+ 6)); causes Assertion failure: '(newval-op == TOKarrayliteral || newval-op == TOKassocarrayliteral || newval-op == TOKstring || newval-op == TOKslice || newval-op == TOKnull)' on line 2680 in file 'interpret.c' posted bugzilla ? http://d.puremagic.com/issues/ Could somebody please do this for me. Mafi
Re: D Programming Language source (dmd, phobos, etc.) has moved to github
Am 28.01.2011 12:30, schrieb Russel Winder: On Thu, 2011-01-27 at 13:33 -0800, Bill Baxter wrote: On Thu, Jan 27, 2011 at 1:13 PM, Nick Sabalauskya@a.a wrote: [ . . . ] Yea, and that's pretty much the original thing I was saying: It's nice that Hg seems to have it, but Git doesn't appear to be particularly interested in it. I think it's very handy for all the reasons you said. I don't think I've every had to use a big hex string when dealing with mercurial. Maybe once or twice max. Most of the stuff you do with repo history as an individual developer is all about the local copy of the tree on your system. Globally unique identifiers aren't needed for that. It looks like Bzr does something similar. Not sure why Git hasn't gotten this particular nicety. Bazaar does indeed have revision numbers per branch. Note that branch and repository is a different concept in Bazaar, unlike Git and Mercurial where they are fundamentally the same. I don't know Git but in Mercurial speech a branch is what you get when using the 'hg branch' command. It's like a tag but a commit can only belongs to exactly one branch ('default' is the default branch). All commits to all branches are put together in one repository. Mafi