Re: DMD svn and contract inheritance

2009-10-23 Thread Dejan Lekic
LDC2 does not work at all on my 64bit GNU/Linux box, while GDC works  
without any problems (v2.014). Also D2 applications I wrote work well too.  
Sure, old version of D2 is supported so many cool features are missing,  
that is why I hoped some more up-to-date version of GDC will soon be  
released.


D is loosing in popularity these days. Personally, i think one of the  
major reasons is the stale development of GDC. (Yes I am aware of the LDC  
project, but it is quite new one, and lacks working D2 support).


Re: DMD svn and contract inheritance

2009-10-13 Thread Moritz Warning
On Tue, 06 Oct 2009 21:28:58 -0300, Leandro Lucarella wrote:

> Walter Bright, el  6 de octubre a las 12:07 me escribiste:
>> Robert Clipsham wrote:
>> >Walter Bright wrote:
>> >>Then please go ahead and set it up.
>> >
>> >What exactly would you like setting up? Currently I'm thinking:
>> >
>> >* Automated builds of dmd 1 and 2
>> >* Automated builds of druntime, phobos and tango * Automated DStress
>> >runs
>> >* Automated dmd test suite runs (if you're willing to provide me
>> >access to the test suite)
>> >* Automated builds of more popular projects from dsource (with
>> >permission from the maintainers obviously)
>> >
>> >Is there anything else you want?
>> >
>> >I also need to know how you would like results to be reported. Would
>> >you like them to sit on a web page with an RSS feed, email the results
>> >to a specified list of email addresses, post to the nextgroups, post
>> >to IRC?
>> 
>> I suggest setting it up to email the maintainers of the packages being
>> compiled any problems with compiling them.
> 
> I think it would be best to have a newsgroup/mailing list/RSS for this.
> At least being able to see the result in a website.
> 
> I'm very curious, I'd love to be able to see the results of this
> automated tests =)

A website would be my personal favorite.
It's open to everyone and don't spam the mail folder
in times of broken code.


Re: DMD svn and contract inheritance

2009-10-06 Thread Leandro Lucarella
Walter Bright, el  6 de octubre a las 12:07 me escribiste:
> Robert Clipsham wrote:
> >Walter Bright wrote:
> >>Then please go ahead and set it up.
> >
> >What exactly would you like setting up? Currently I'm thinking:
> >
> >* Automated builds of dmd 1 and 2
> >* Automated builds of druntime, phobos and tango
> >* Automated DStress runs
> >* Automated dmd test suite runs (if you're willing to provide me
> >access to the test suite)
> >* Automated builds of more popular projects from dsource (with
> >permission from the maintainers obviously)
> >
> >Is there anything else you want?
> >
> >I also need to know how you would like results to be reported.
> >Would you like them to sit on a web page with an RSS feed, email
> >the results to a specified list of email addresses, post to the
> >nextgroups, post to IRC?
> 
> I suggest setting it up to email the maintainers of the packages
> being compiled any problems with compiling them.

I think it would be best to have a newsgroup/mailing list/RSS for this.
At least being able to see the result in a website.

I'm very curious, I'd love to be able to see the results of this automated
tests =)

-- 
Leandro Lucarella (AKA luca)  http://llucax.com.ar/
--
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
--
HACIA NEUQUEN: EL JUEVES SALDRA CARAVANA CON PERROS
DESDE CAPITAL EN APOYO AL CACHORRO CONDENADO A MUERTE
-- Crónica TV


Re: DMD svn and contract inheritance

2009-10-06 Thread Walter Bright

Robert Clipsham wrote:

Walter Bright wrote:

Then please go ahead and set it up.


What exactly would you like setting up? Currently I'm thinking:

* Automated builds of dmd 1 and 2
* Automated builds of druntime, phobos and tango
* Automated DStress runs
* Automated dmd test suite runs (if you're willing to provide me access 
to the test suite)
* Automated builds of more popular projects from dsource (with 
permission from the maintainers obviously)


Is there anything else you want?

I also need to know how you would like results to be reported. Would you 
like them to sit on a web page with an RSS feed, email the results to a 
specified list of email addresses, post to the nextgroups, post to IRC?


I suggest setting it up to email the maintainers of the packages being 
compiled any problems with compiling them.


Re: DMD svn and contract inheritance

2009-10-06 Thread Christian Kamm
Robert Clipsham wrote:
>> There are quite a few incorrect dstress tests. I've been making tickets
>> for them as I find them.
> 
> I believe Christian is the maintainer for the dstress project on
> dsource, he should be able to give you commit access if you have patches.

That's true. I've updated the front page with my email address and the 
request for help.





Re: DMD svn and contract inheritance

2009-10-06 Thread Robert Clipsham

Walter Bright wrote:

Then please go ahead and set it up.


What exactly would you like setting up? Currently I'm thinking:

* Automated builds of dmd 1 and 2
* Automated builds of druntime, phobos and tango
* Automated DStress runs
* Automated dmd test suite runs (if you're willing to provide me access 
to the test suite)
* Automated builds of more popular projects from dsource (with 
permission from the maintainers obviously)


Is there anything else you want?

I also need to know how you would like results to be reported. Would you 
like them to sit on a web page with an RSS feed, email the results to a 
specified list of email addresses, post to the nextgroups, post to IRC?


Re: DMD svn and contract inheritance

2009-10-06 Thread Robert Clipsham

Don wrote:
I think that'd be fantastic. It'd be helpful if you could at least get 
dstress to run after the main releases. The dstress test page from LDC 
doesn't seem to operate any more.


http://www.incasoftware.de/~kamm/ldc/tests/index.html


This page gets updated manually by Christian as he feels fit. For more 
up to date pages, see:


http://ldc.octarineparrot.com/x86-32/web/
http://ldc.octarineparrot.com/x86-64/web/

For x86-32 and x86-64 respectively (these aren't completely automated 
yet, they require me to run a command to generate them every now and 
again... I'll sort this out when I get it set up for dmd). They still 
compare to dmd 1.045 as ldc still uses the 1.045 front end (I believe 
there were some regressions from 1.046+, not sure on the current status 
of this).


I'd really like to see the results for the latest DMD, almost all of the 
 "ERROR" (segfault/ICE) bugs should be fixed now.


This will get run when I set it up :)

Walter doesn't necessarily ever have to look at it, but it'd be good as 
a pre-release check.


Agreed.

There are quite a few incorrect dstress tests. I've been making tickets 
for them as I find them.


I believe Christian is the maintainer for the dstress project on 
dsource, he should be able to give you commit access if you have patches.


Re: DMD svn and contract inheritance

2009-10-06 Thread Lutger
Walter Bright wrote:

> 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.

But you don't have to take the stance that no regressions may occur (for 
this very reason). 

I think automated builds + tests can be useful in different ways:
- the authors of the code can be notified and look at the problem. Some will 
care and help you spot bugs earlier or may fix their own code earlier. This 
is at no cost to you. Eventually, this task can perhaps be delegated 
completely?
- when a lot of stuff breaks, it is an indicator at least.
- while you may need a lot of investment to determine all problems, at least 
some category of problems you may recognize quickly.




Re: DMD svn and contract inheritance

2009-10-06 Thread Walter Bright

BCS wrote:

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.


Then please go ahead and set it up.


Re: DMD svn and contract inheritance

2009-10-06 Thread Don

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.


I think that'd be fantastic. It'd be helpful if you could at least get 
dstress to run after the main releases. The dstress test page from LDC 
doesn't seem to operate any more.


http://www.incasoftware.de/~kamm/ldc/tests/index.html

I'd really like to see the results for the latest DMD, almost all of the 
 "ERROR" (segfault/ICE) bugs should be fixed now.


Walter doesn't necessarily ever have to look at it, but it'd be good as 
a pre-release check.


There are quite a few incorrect dstress tests. I've been making tickets 
for them as I find them.


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 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 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 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 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 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 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 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 svn and contract inheritance

2009-10-02 Thread Stewart Gordon

Walter Bright wrote:

Stewart Gordon wrote:
I'm still none the wiser about why it absolutely has to be done like 
this instead of the simpler solution I proposed years ago.


Can you refresh my memory?


Seems straightforward to find to me, but here it is:

http://www.digitalmars.com/d/archives/digitalmars/D/31595.html

(The nested function approach is fairly simple in terms of lines of code 
to implement.)


I can imagine how it works now.  Essentially it's a function that can 
act as a nested function to the function for which it is originally 
defined or any override of it, which works since a nested function is 
really just a function with a pointer to the outer function's stack 
frame as a parameter.  Correct?


BTW I just rediscovered this old thread

http://www.digitalmars.com/d/archives/digitalmars/D/9775.html

which is making me think we probably ought to enable contracts on 
bodyless functions some time.


Stewart.


Re: DMD svn and contract inheritance

2009-10-01 Thread Walter Bright

Stewart Gordon wrote:
I'm still none the wiser about why it absolutely has to be done like 
this instead of the simpler solution I proposed years ago.


Can you refresh my memory?

(The nested function approach is fairly simple in terms of lines of code 
to implement.)


Re: DMD svn and contract inheritance

2009-10-01 Thread Stewart Gordon

Walter Bright wrote:

Stewart Gordon wrote:

Walter Bright wrote:

There are some tricky bits to doing contract inheritance, I hope gdc 
and ldc don't have trouble with it.


What tricky bits are those?


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.


I'm still none the wiser about why it absolutely has to be done like 
this instead of the simpler solution I proposed years ago.  But in any 
case, thank you for finally getting round to it!


Stewart.


Re: DMD svn and contract inheritance

2009-10-01 Thread Walter Bright

Stewart Gordon wrote:

Walter Bright wrote:

There are some tricky bits to doing contract inheritance, I hope gdc 
and ldc don't have trouble with it.


What tricky bits are those?


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.


Re: DMD svn and contract inheritance

2009-10-01 Thread Stewart Gordon

Walter Bright wrote:

There are some tricky bits to doing contract inheritance, I hope gdc and 
ldc don't have trouble with it.


What tricky bits are those?

Stewart.


Re: DMD svn and contract inheritance

2009-09-30 Thread Robert Clipsham

Dejan Lekic wrote:

You guys are doing awesome job with GDC, thank you _VERY MUCH_!

GDC is the only D2 compiler for 64bit architecture...


Actually, there are no D2 compilers for 64 bit. GDC's support for D2 is 
very minimal, I don't know how it compares to LDC's, but I'd guess they 
were about the same (GDC might be slightly further ahead actually, I've 
never tried it). Either way, DMD is pretty much the only choice for a D2 
compiler currently.


Re: DMD svn and contract inheritance

2009-09-30 Thread Dejan Lekic

You guys are doing awesome job with GDC, thank you _VERY MUCH_!

GDC is the only D2 compiler for 64bit architecture...


Re: DMD svn and contract inheritance

2009-09-28 Thread Walter Bright

Vincenzo Ampolo wrote:
Now, thanks to the public svn we can track changes easily. This will help 
development of gdc too!


I'm glad you guys have picked up gdc.

There are some tricky bits to doing contract inheritance, I hope gdc and 
ldc don't have trouble with it.


Re: DMD svn and contract inheritance

2009-09-28 Thread Vincenzo Ampolo
Leandro Lucarella wrote:

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

Thanks Walter.

;)

Now, thanks to the public svn we can track changes easily. This will help 
development of gdc too!

Btw today Michael merged dmd 1.035 and i'm close to finish dmd 2.015

See you.



Re: DMD svn and contract inheritance

2009-09-27 Thread Leandro Lucarella
Walter Bright, el 27 de septiembre a las 13:45 me escribiste:
> Leandro Lucarella wrote:
> >Thanks for finally taking this way, Walter =)
> 
> You're welcome. I hadn't done it before because I couldn't figure
> out a reasonable way of implementing it.

I don't know if you are talking about DMD being in a public repo, the
contract inheritance or both. But anyway, I'm glad you could finally do
both =)

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/

GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)

JUNTAN FIRMAS Y HUELLAS POR EL CACHORRO CONDENADO A MUERTE...
-- Crónica TV


Re: DMD svn and contract inheritance

2009-09-27 Thread Walter Bright

Leandro Lucarella wrote:

Thanks for finally taking this way, Walter =)


You're welcome. I hadn't done it before because I couldn't figure out a 
reasonable way of implementing it.