dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance 
(finally).


http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Nick Sabalausky
Walter Bright newshou...@digitalmars.com wrote in message 
news:hac8nb$26j...@digitalmars.com...
 Another OSX 10.5 release :-)

 Anyhow, this should work with gdb now, and has contract inheritance 
 (finally).

 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.048.zip


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.033.zip

 Many thanks to the numerous people who contributed to this update.

Compiler now detects some cases of illegal null dereferencing when compiled 
with -O

A bug-detection feature that's turned on with -O? I assume that's just a 
temporary situation and is related to either it currently being detected by 
the optimizer and the feature maybe being in a trial phase? Or maybe just 
a typo? ;) 




Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Denis Koroskin

On Mon, 05 Oct 2009 14:23:26 +0400, Nick Sabalausky a...@a.a wrote:


Walter Bright newshou...@digitalmars.com wrote in message
news:hac8nb$26j...@digitalmars.com...

Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance
(finally).

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Compiler now detects some cases of illegal null dereferencing when  
compiled

with -O

A bug-detection feature that's turned on with -O? I assume that's just a
temporary situation and is related to either it currently being detected  
by
the optimizer and the feature maybe being in a trial phase? Or maybe  
just

a typo? ;)




No, it's not:

void main() {
Object o;
o.toString();
}

# dmd test.d // fine
# dmd test.d -O // test.d(4): Error: null dereference in function _Dmain  
(mangled name, is it done on purpose?)


Nice start, anyway, I'm looking forward to having a complete code flow  
analysis soon :)


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread bearophile
Can someone show an usage example of contract inheritance? (where inheritance 
is useful).


Regarding the fixed bugs 2702 and 2469, I'm having problems still, at the 
bottom y is 0:

import std.stdio: writeln;
import std.conv: to;

struct Ranged(int RANGED_MIN, int RANGED_MAX) {
int x_ = RANGED_MIN;

int x() { return this.x_; }
int x(int xx) { this.x_ = xx; return xx; }
alias x this;

invariant() {
//assert(this.x_ = RANGED_MIN, Ranged value too much small);
assert(this.x_  RANGED_MAX, Ranged value too much big);
}

//Ranged opCast(int xx) { return Ranged(xx); }

string toString() { return to!string(this.x_); }
}

void main() {
typedef Ranged!(10, 20) ranged;
ranged x;
writeln(x);
//ranged y = 1000; // temp.d(23): Error: cannot implicitly convert 
expression (1000) of type int to ranged
ranged y = cast(ranged)100;
writeln(y); // 0?
}

Bye,
bearophile


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Steven Schveighoffer
On Mon, 05 Oct 2009 03:54:22 -0400, Walter Bright  
newshou...@digitalmars.com wrote:



Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance  
(finally).


http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Excellent work!  It looks like a lot of mundane bugs are getting fixed,  
which is a good sign :)


A couple questions:

1. The result type of the typeid(type) is now the most derived TypeInfo  
class, rather than the TypeInfo base class  Why can't this be propogated  
to D1?  I can't imagine code that depends on the return value being typed  
as TypeInfo that would not simply just work with the most derived return  
type...


2. A while ago, (I can't find the post, it may have been on reddit) you  
mentioned that you were going to add property notation.  Is that still  
going to happen?  I'm really looking forward to that, and if not, is there  
a reason?


-Steve


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Denis Koroskin

On Mon, 05 Oct 2009 16:55:49 +0400, Jacob Carlborg d...@me.com wrote:


On 10/5/09 13:49, Steven Schveighoffer wrote:

On Mon, 05 Oct 2009 03:54:22 -0400, Walter Bright
newshou...@digitalmars.com wrote:


Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance
(finally).

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Excellent work! It looks like a lot of mundane bugs are getting fixed,
which is a good sign :)

A couple questions:

1. The result type of the typeid(type) is now the most derived TypeInfo
class, rather than the TypeInfo base class Why can't this be propogated
to D1? I can't imagine code that depends on the return value being typed
as TypeInfo that would not simply just work with the most derived return
type...

2. A while ago, (I can't find the post, it may have been on reddit) you
mentioned that you were going to add property notation. Is that still
going to happen? I'm really looking forward to that, and if not, is
there a reason?


There are some traces of it in the code:  
http://www.dsource.org/projects/dmd/changeset/195 search for property.



-Steve




int bar() @property
{
return 42;
}

writeln(bar);

Yay! :)


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Steven Schveighoffer
On Mon, 05 Oct 2009 09:12:32 -0400, Denis Koroskin 2kor...@gmail.com  
wrote:



On Mon, 05 Oct 2009 16:55:49 +0400, Jacob Carlborg d...@me.com wrote:


On 10/5/09 13:49, Steven Schveighoffer wrote:

On Mon, 05 Oct 2009 03:54:22 -0400, Walter Bright
newshou...@digitalmars.com wrote:


Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance
(finally).

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Excellent work! It looks like a lot of mundane bugs are getting fixed,
which is a good sign :)

A couple questions:

1. The result type of the typeid(type) is now the most derived  
TypeInfo
class, rather than the TypeInfo base class Why can't this be  
propogated
to D1? I can't imagine code that depends on the return value being  
typed
as TypeInfo that would not simply just work with the most derived  
return

type...

2. A while ago, (I can't find the post, it may have been on reddit) you
mentioned that you were going to add property notation. Is that still
going to happen? I'm really looking forward to that, and if not, is
there a reason?


There are some traces of it in the code:  
http://www.dsource.org/projects/dmd/changeset/195 search for property.



-Steve




int bar() @property
{
 return 42;
}

writeln(bar);

Yay! :)


Cool :)

Unfortunately, this still compiles :(

int bar()
{
   return 42;
}

writeln(%d, bar);

And this too:

int bar() @property
{
  return 42;
}

writeln(%d, bar());

So it appears that @property is a noop for now, but is valid syntax.

Also interesting from this revelation is that attributes are coming :D

int bar() @blah
{
  return 42;
}

#../dmd-2.033/linux/bin/dmd -w testme.d
testme.d(8): valid attribute identifiers are property, not blah

-Steve


Re: DMD svn and contract inheritance

2009-10-05 Thread Kagamin
Walter Bright Wrote:

 It's outlined in the code comments, but it's implemented by making the 
 contract code a nested function. The overriding function calls those 
 nested functions of the overridden function(s). In order for this to 
 work successfully, the 'this' pointer and the stack parameters must wind 
 up in the same relative position on the stack.

'this' pointer could be passed as a regular argument just like stack pointer.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Jacob Carlborg

On 10/5/09 15:46, Steven Schveighoffer wrote:

On Mon, 05 Oct 2009 09:12:32 -0400, Denis Koroskin 2kor...@gmail.com
wrote:


On Mon, 05 Oct 2009 16:55:49 +0400, Jacob Carlborg d...@me.com wrote:


On 10/5/09 13:49, Steven Schveighoffer wrote:

On Mon, 05 Oct 2009 03:54:22 -0400, Walter Bright
newshou...@digitalmars.com wrote:


Another OSX 10.5 release :-)

Anyhow, this should work with gdb now, and has contract inheritance
(finally).

http://www.digitalmars.com/d/1.0/changelog.html
http://ftp.digitalmars.com/dmd.1.048.zip


http://www.digitalmars.com/d/2.0/changelog.html
http://ftp.digitalmars.com/dmd.2.033.zip

Many thanks to the numerous people who contributed to this update.


Excellent work! It looks like a lot of mundane bugs are getting fixed,
which is a good sign :)

A couple questions:

1. The result type of the typeid(type) is now the most derived
TypeInfo
class, rather than the TypeInfo base class Why can't this be
propogated
to D1? I can't imagine code that depends on the return value being
typed
as TypeInfo that would not simply just work with the most derived
return
type...

2. A while ago, (I can't find the post, it may have been on reddit) you
mentioned that you were going to add property notation. Is that still
going to happen? I'm really looking forward to that, and if not, is
there a reason?


There are some traces of it in the code:
http://www.dsource.org/projects/dmd/changeset/195 search for property.


-Steve




int bar() @property
{
return 42;
}

writeln(bar);

Yay! :)


Cool :)

Unfortunately, this still compiles :(

int bar()
{
return 42;
}

writeln(%d, bar);

And this too:

int bar() @property
{
return 42;
}

writeln(%d, bar());

So it appears that @property is a noop for now, but is valid syntax.

Also interesting from this revelation is that attributes are coming :D


I just hope that they also will be user defined.


int bar() @blah
{
return 42;
}

#../dmd-2.033/linux/bin/dmd -w testme.d
testme.d(8): valid attribute identifiers are property, not blah

-Steve




Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Leandro Lucarella
Jacob Carlborg, el  5 de octubre a las 16:08 me escribiste:
 2. A while ago, (I can't find the post, it may have been on reddit) you
 mentioned that you were going to add property notation. Is that still
 going to happen? I'm really looking forward to that, and if not, is
 there a reason?
 
 There are some traces of it in the code:
 http://www.dsource.org/projects/dmd/changeset/195 search for property.
 
 -Steve
 
 
 int bar() @property
 {
 return 42;
 }
 
 writeln(bar);
 
 Yay! :)
 
 Cool :)
 
 Unfortunately, this still compiles :(
 
 int bar()
 {
 return 42;
 }
 
 writeln(%d, bar);
 
 And this too:
 
 int bar() @property
 {
 return 42;
 }
 
 writeln(%d, bar());
 
 So it appears that @property is a noop for now, but is valid syntax.
 
 Also interesting from this revelation is that attributes are coming :D
 
 I just hope that they also will be user defined.

Ok, this is getting interesting... 8-)

-- 
Leandro Lucarella (AKA luca)  http://llucax.com.ar/
--
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
--
Dentro de 30 aƱos Argentina va a ser un gran supermercado con 15
changuitos, porque esa va a ser la cantidad de gente que va a poder
comprar algo.
-- Sidharta Wiki


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread bearophile
Steven Schveighoffer:
 Also interesting from this revelation is that attributes are coming :D

Despite all, it seems sometimes Walter listens :-)

Maybe this syntax will be allowed (attribute before instead of after function 
name):
@property int bar() {...

Bye,
bearophile


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Lutger
Nick Sabalausky wrote:

 Walter Bright newshou...@digitalmars.com wrote in message
 news:hac8nb$26j...@digitalmars.com...
 Another OSX 10.5 release :-)

 Anyhow, this should work with gdb now, and has contract inheritance
 (finally).

 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.048.zip


 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.033.zip

 Many thanks to the numerous people who contributed to this update.
 
 Compiler now detects some cases of illegal null dereferencing when
 compiled with -O
 
 A bug-detection feature that's turned on with -O? I assume that's just a
 temporary situation and is related to either it currently being detected
 by the optimizer and the feature maybe being in a trial phase? Or maybe
 just a typo? ;)

Somewhere in the huge thread(s) on the topic Walter mentioned the optimizer 
does (some of) the required flow analysis, so presumably it needs to run in 
order for this to work.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

Nick Sabalausky wrote:
Compiler now detects some cases of illegal null dereferencing when compiled 
with -O


A bug-detection feature that's turned on with -O? I assume that's just a 
temporary situation and is related to either it currently being detected by 
the optimizer and the feature maybe being in a trial phase? Or maybe just 
a typo? ;) 


No, it's deliberate. Turns out, in order for it to work reliably and not 
give false positives, it needs the full attention of the optimizer. 
Otherwise, you get false positives like:


  int* p = null;
  ...
  if (p)
 *p = 7;



Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

Steven Schveighoffer wrote:
1. The result type of the typeid(type) is now the most derived TypeInfo 
class, rather than the TypeInfo base class  Why can't this be 
propogated to D1?  I can't imagine code that depends on the return value 
being typed as TypeInfo that would not simply just work with the most 
derived return type...


Changing the spec constantly for D1 makes it not stable.

2. A while ago, (I can't find the post, it may have been on reddit) you 
mentioned that you were going to add property notation.  Is that still 
going to happen?  I'm really looking forward to that, and if not, is 
there a reason?


It's high on the list, it's just that there were some important 
improvements that I felt should be released now rather than holding them 
back.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

#ponce wrote:
I think it's disabled in debug mode to keep the compilation time low. 


That, and the optimizer tends to scramble the relationship between 
source and assembler, making source debugging next to impossible.



I guess it's more expensive CPU-wise than escape analysis which is done in both 
modes.
So it seems the right thing to do for me.


Re: DMD svn and contract inheritance

2009-10-05 Thread Robert Clipsham

Leandro Lucarella wrote:

Thanks for finally taking this way, Walter =)

http://www.dsource.org/projects/dmd/timeline


Now that DMD is under version control it should be fairly easy for me to 
adapt the automated build system used for ldc for dmd. I can set it up 
to automatically build dmd after a commit, and run dstress/build popular 
projects and libraries, even package up dmd for Nightly builds and 
maybe even post the results to the D newsgroups/IRC channels.


If you'd be interested to see this Walter, let me know what exactly you 
want automating/how and where you want results and I'll see about 
setting it up for you.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Nick Sabalausky
Walter Bright newshou...@digitalmars.com wrote in message 
news:hadbml$1mb...@digitalmars.com...
 Nick Sabalausky wrote:
 Compiler now detects some cases of illegal null dereferencing when 
 compiled with -O

 A bug-detection feature that's turned on with -O? I assume that's just a 
 temporary situation and is related to either it currently being detected 
 by the optimizer and the feature maybe being in a trial phase? Or maybe 
 just a typo? ;)

 No, it's deliberate. Turns out, in order for it to work reliably and not 
 give false positives, it needs the full attention of the optimizer. 
 Otherwise, you get false positives like:

   int* p = null;
   ...
   if (p)
  *p = 7;


I see, but is that just a temporary situation? I'm fine with it for now, but 
optimizers are known for conflicting with debugging, so in the long run I'd 
hate to have to split my debug builds into separate maximum static 
analysis vs debuggable builds (I already had been forced to split my 
debug builds into separate debug with warnings and debug without 
warnings builds, which was a real pain in the ass until I started hacking 
in that optionally treat warnings as warnings patch...but I've had to 
temporarily abandon use of even that since I'm working on a 
multi-build-version tool, used by some projects I've released, and none of 
those should have to be reliant on a feature that only exists in a custom 
build of DMD).




Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread BCS

Hello Walter,


#ponce wrote:


I think it's disabled in debug mode to keep the compilation time low.


That, and the optimizer tends to scramble the relationship between
source and assembler, making source debugging next to impossible.



How hard would it be to have the code generate run on the unoptimized code 
and then do the optimizer backed test and only if no bugs jump out, move 
the results into the object file? 





Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

Nick Sabalausky wrote:
I see, but is that just a temporary situation? I'm fine with it for now, but 
optimizers are known for conflicting with debugging, so in the long run I'd 
hate to have to split my debug builds into separate maximum static 
analysis vs debuggable builds (I already had been forced to split my 
debug builds into separate debug with warnings and debug without 
warnings builds, which was a real pain in the ass until I started hacking 
in that optionally treat warnings as warnings patch...but I've had to 
temporarily abandon use of even that since I'm working on a 
multi-build-version tool, used by some projects I've released, and none of 
those should have to be reliant on a feature that only exists in a custom 
build of DMD).


Just build your releases with -O.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

BCS wrote:

Hello Walter,


#ponce wrote:


I think it's disabled in debug mode to keep the compilation time low.


That, and the optimizer tends to scramble the relationship between
source and assembler, making source debugging next to impossible.



How hard would it be to have the code generate run on the unoptimized 
code and then do the optimizer backed test and only if no bugs jump out, 
move the results into the object file?




It seems even easier to just compile with -0.


Re: DMD svn and contract inheritance

2009-10-05 Thread Walter Bright

Robert Clipsham wrote:

Leandro Lucarella wrote:

Thanks for finally taking this way, Walter =)

http://www.dsource.org/projects/dmd/timeline


Now that DMD is under version control it should be fairly easy for me to 
adapt the automated build system used for ldc for dmd. I can set it up 
to automatically build dmd after a commit, and run dstress/build popular 
projects and libraries, even package up dmd for Nightly builds and 
maybe even post the results to the D newsgroups/IRC channels.


If you'd be interested to see this Walter, let me know what exactly you 
want automating/how and where you want results and I'll see about 
setting it up for you.


The problem is if some package fails, then I have a large debugging 
problem trying to figure out unfamiliar code.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Ary Borenszweig

bearophile wrote:

Steven Schveighoffer:

Also interesting from this revelation is that attributes are coming :D


Despite all, it seems sometimes Walter listens :-)


Wow, indeed he does. :-D


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Nick Sabalausky
Nick Sabalausky a...@a.a wrote in message 
news:hadst9$58...@digitalmars.com...
 Walter Bright newshou...@digitalmars.com wrote in message 
 news:hadqcs$30n...@digitalmars.com...
 BCS wrote:
 Hello Walter,

 #ponce wrote:

 I think it's disabled in debug mode to keep the compilation time low.

 That, and the optimizer tends to scramble the relationship between
 source and assembler, making source debugging next to impossible.


 How hard would it be to have the code generate run on the unoptimized 
 code and then do the optimizer backed test and only if no bugs jump out, 
 move the results into the object file?


 It seems even easier to just compile with -0.

 It isn't. *Very* typical workflow:

[stuff]

 None of those are particularly good options, and I don't see any other 
 possibilities.


...Plus it's just plain unintuitive.




Re: DMD svn and contract inheritance

2009-10-05 Thread Jason House
Walter Bright Wrote:

 Robert Clipsham wrote:
  Leandro Lucarella wrote:
  Thanks for finally taking this way, Walter =)
 
  http://www.dsource.org/projects/dmd/timeline
  
  Now that DMD is under version control it should be fairly easy for me to 
  adapt the automated build system used for ldc for dmd. I can set it up 
  to automatically build dmd after a commit, and run dstress/build popular 
  projects and libraries, even package up dmd for Nightly builds and 
  maybe even post the results to the D newsgroups/IRC channels.
  
  If you'd be interested to see this Walter, let me know what exactly you 
  want automating/how and where you want results and I'll see about 
  setting it up for you.
 
 The problem is if some package fails, then I have a large debugging 
 problem trying to figure out unfamiliar code.

With small commits to dmd, it should be trivial to know what small change in 
dmd caused a user observable change in behavior. If things look good on the dmd 
side, I'd really hope the code authors would help with debugging their code.

Knowing of a failure within an hour is way better than finding out a month 
later.

BTW, such regression tests work much better when all failing tests can be 
identified. It can help with figuring out patterns. Stopping on the first 
failure can be somewhat limiting, especially if the failure will stick around 
for a week.


Re: DMD svn and contract inheritance

2009-10-05 Thread Andrei Alexandrescu

Jason House wrote:

Walter Bright Wrote:


Robert Clipsham wrote:

Leandro Lucarella wrote:

Thanks for finally taking this way, Walter =)

http://www.dsource.org/projects/dmd/timeline

Now that DMD is under version control it should be fairly easy
for me to adapt the automated build system used for ldc for dmd.
I can set it up to automatically build dmd after a commit, and
run dstress/build popular projects and libraries, even package up
dmd for Nightly builds and maybe even post the results to the D
newsgroups/IRC channels.

If you'd be interested to see this Walter, let me know what
exactly you want automating/how and where you want results and
I'll see about setting it up for you.

The problem is if some package fails, then I have a large debugging
 problem trying to figure out unfamiliar code.


With small commits to dmd, it should be trivial to know what small
change in dmd caused a user observable change in behavior. If things
look good on the dmd side, I'd really hope the code authors would
help with debugging their code.

Knowing of a failure within an hour is way better than finding out a
month later.

BTW, such regression tests work much better when all failing tests
can be identified. It can help with figuring out patterns. Stopping
on the first failure can be somewhat limiting, especially if the
failure will stick around for a week.


We clearly can't define the language around a best-effort kind of flow 
analysis. I consider Walter's extra checks during optimization a nice 
perk, but definitely not something we can consider a part of the 
language. The language definition must work without those.


Andrei


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Vladimir Panteleev
On Mon, 05 Oct 2009 10:54:22 +0300, Walter Bright  
newshou...@digitalmars.com wrote:



gdb stack trace should work now


Could someone please elaborate on this a bit (what exactly was changed),  
or at least point to the respective SVN revision or something?


--
Best regards,
 Vladimir  mailto:thecybersha...@gmail.com


Re: DMD svn and contract inheritance

2009-10-05 Thread Leandro Lucarella
Andrei Alexandrescu, el  5 de octubre a las 19:17 me escribiste:
 Jason House wrote:
 Walter Bright Wrote:
 
 Robert Clipsham wrote:
 Leandro Lucarella wrote:
 Thanks for finally taking this way, Walter =)
 
 http://www.dsource.org/projects/dmd/timeline
 Now that DMD is under version control it should be fairly easy
 for me to adapt the automated build system used for ldc for dmd.
 I can set it up to automatically build dmd after a commit, and
 run dstress/build popular projects and libraries, even package up
 dmd for Nightly builds and maybe even post the results to the D
 newsgroups/IRC channels.
 
 If you'd be interested to see this Walter, let me know what
 exactly you want automating/how and where you want results and
 I'll see about setting it up for you.
 The problem is if some package fails, then I have a large debugging
  problem trying to figure out unfamiliar code.
 
 With small commits to dmd, it should be trivial to know what small
 change in dmd caused a user observable change in behavior. If things
 look good on the dmd side, I'd really hope the code authors would
 help with debugging their code.
 
 Knowing of a failure within an hour is way better than finding out a
 month later.
 
 BTW, such regression tests work much better when all failing tests
 can be identified. It can help with figuring out patterns. Stopping
 on the first failure can be somewhat limiting, especially if the
 failure will stick around for a week.
 
 We clearly can't define the language around a best-effort kind of
 flow analysis. I consider Walter's extra checks during optimization
 a nice perk, but definitely not something we can consider a part of
 the language. The language definition must work without those.

I guess you answered to the wrong mail, Jason is talking about Robert's
offering to set up a build/test bot for DMD, to build and test each
commit, using dstress and maybe other popular libraries/programs.

-- 
Leandro Lucarella (AKA luca)  http://llucax.com.ar/
--
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
--
When I was a child I had a fever
My hands felt just like two balloons.
Now I've got that feeling once again
I can't explain you would not understand
This is not how I am.
I have become comfortably numb.


Re: DMD svn and contract inheritance

2009-10-05 Thread Walter Bright

Jason House wrote:

With small commits to dmd, it should be trivial to know what small
change in dmd caused a user observable change in behavior.


The problem is, one doesn't know if it is a problem with the change or 
if it is a problem with the user code. To determine that requires 
working with and understanding the user code. It's just impractical for 
me to do that with a large base of code like that.



If things
look good on the dmd side, I'd really hope the code authors would
help with debugging their code.

Knowing of a failure within an hour is way better than finding out a
month later.

BTW, such regression tests work much better when all failing tests
can be identified. It can help with figuring out patterns. Stopping
on the first failure can be somewhat limiting, especially if the
failure will stick around for a week.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Walter Bright

Vladimir Panteleev wrote:
On Mon, 05 Oct 2009 10:54:22 +0300, Walter Bright 
newshou...@digitalmars.com wrote:



gdb stack trace should work now


Could someone please elaborate on this a bit (what exactly was changed), 
or at least point to the respective SVN revision or something?




All the changes are in dwarf.c.


Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Stewart Gordon

Denis Koroskin wrote:
snip

int bar() @property
{
return 42;
}


What is @ going to be used for generally?  (What is the essential 
difference between an attribute that's an @word and one that's a simple 
keyword before or after the type?)


Stewart.


Re: DMD svn and contract inheritance

2009-10-05 Thread BCS

Hello Walter,


I can set it
up to automatically build dmd after a commit, and run dstress/build
popular projects and libraries


The problem is if some package fails, then I have a large debugging
problem trying to figure out unfamiliar code.



Or it could just inform the owner of the lib and they can cut out a test 
cases or even do most of the detective work for you.





Re: dmd 1.048 and 2.033 releases

2009-10-05 Thread Jason House
Which gdb should this release work with?

I seem to have misplaced my patched gdb.  The standard gdb 6.8 can show 
backtraces but can't list code, even if the code is linked in libraries from 
C++.

Walter Bright wrote:

 Another OSX 10.5 release :-)
 
 Anyhow, this should work with gdb now, and has contract inheritance
 (finally).
 
 http://www.digitalmars.com/d/1.0/changelog.html
 http://ftp.digitalmars.com/dmd.1.048.zip
 
 
 http://www.digitalmars.com/d/2.0/changelog.html
 http://ftp.digitalmars.com/dmd.2.033.zip
 
 Many thanks to the numerous people who contributed to this update.