Re: dmd 2.063 released with 260 bugfixes and enhancements

2013-05-30 Thread Mafi

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

2013-05-30 Thread Mafi

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

2011-05-15 Thread Mafi

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

2011-05-14 Thread Mafi

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

2011-05-14 Thread 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


Re: D Programming Language source (dmd, phobos, etc.) has moved to github

2011-01-28 Thread Mafi

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