www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Current version of D.

reply "Caitlin" <bioprogrammer gmail.com> writes:
Hi all.

I recently downloaded and installed version 2.063.2, but now I 
see the current version is listed as 2.063. Is this is an error?

Also, does anyone know if a new edition of "The D Programming 
Language" is planned in the relatively near future?

Thanks,

Caitlin
Jul 05 2013
next sibling parent reply Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 03:22:57 Caitlin wrote:
 Hi all.
 
 I recently downloaded and installed version 2.063.2, but now I
 see the current version is listed as 2.063. Is this is an error?

The current release is 2.063.2, but it's the first time that we've actually released point releases like that, so there are likely to be places saying 2.063 instead of 2.063.2.
 Also, does anyone know if a new edition of "The D Programming
 Language" is planned in the relatively near future?

No, but what's there is mostly correct. There are a few things that aren't yet implemented quite as described in TDPL (e.g. we don't have multiple alias this-es yet, and synchronized still is at a function-level instead of at a class level like TDPL describes), and there are probably a couple of things that have changed since the book was released (e.g. the book describes strongly pure functions, but we now also have weakly pure functions), but it's almost all correct. So, while I'm sure that there will be a new edition eventually, there's not a lot of point in releasing another one at this point. - Jonathan M Davis
Jul 05 2013
parent reply "Tyro[17]" <ridimz yahoo.com> writes:
On 7/9/13 6:36 PM, Rob T wrote:
 On Tuesday, 9 July 2013 at 22:34:18 UTC, Rob T wrote:

 Agreed, however we should also have a pre-release package for testing
 that is clearly marked as a pre-release, it can go on a separate web
 page to avoid any possibility of confusion.

 The current release is showing as both 2.63.0 and 2.63 but I thought
 it was supposed to be 2.63.2 everywhere. This is very confusing.

 --rt

Running latest release shows this ... DMD64 D Compiler v2.063 It should show the full release number. --rt

This is what the latest release shows for me: Andrews-MacBook-Pro:vapor andrewedwards$ dmd DMD64 D Compiler v2.063.2 Copyright (c) 1999-2013 by Digital Mars written by Walter Bright Documentation: http://dlang.org/ Are you actually using the latest release?
Jul 09 2013
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 7/10/13 11:27 AM, Rob T wrote:
 On Wednesday, 10 July 2013 at 04:15:12 UTC, Kapps wrote:
 The download page has the wrong link, it doesn't seem to have been
 updated for 2.063.2. Can just manually add a .2 at the end, such as
 http://downloads.dlang.org/releases/2013/dmd.2.063.2.zip

Thanks, that worked. Yup the download page needs to be fixed asap. --rt

Fixed and synced: https://github.com/D-Programming-Language/dlang.org/commit/a5ecc6be856fe203e619fe59f96cc5ad2c844c3a Andrei
Jul 10 2013
prev sibling next sibling parent "Joseph Rushton Wakeling" <joseph.wakeling webdrake.net> writes:
On Saturday, 6 July 2013 at 01:30:49 UTC, Jonathan M Davis wrote:
 No, but what's there is mostly correct. There are a few things 
 that aren't yet
 implemented quite as described in TDPL (e.g. we don't have 
 multiple alias
 this-es yet, and synchronized still is at a function-level 
 instead of at a
 class level like TDPL describes), and there are probably a 
 couple of things
 that have changed since the book was released (e.g. the book 
 describes
 strongly pure functions, but we now also have weakly pure 
 functions), but it's
 almost all correct. So, while I'm sure that there will be a new 
 edition
 eventually, there's not a lot of point in releasing another one 
 at this point.

Are the differences from TDPL documented anywhere? Might be worth having a page on the wiki or the main website.
Jul 06 2013
prev sibling next sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 09:12:55 Joseph Rushton Wakeling wrote:
 Are the differences from TDPL documented anywhere?

Not that I'm aware of. And I'd have to read it again to compile a full list, though I could probably come up with most of them off the top of my head. - Jonathan M Davis
Jul 06 2013
prev sibling next sibling parent "TommiT" <tommitissari hotmail.com> writes:
On Saturday, 6 July 2013 at 07:18:03 UTC, Jonathan M Davis wrote:
 On Saturday, July 06, 2013 09:12:55 Joseph Rushton Wakeling 
 wrote:
 Are the differences from TDPL documented anywhere?

Not that I'm aware of. And I'd have to read it again to compile a full list, though I could probably come up with most of them off the top of my head. - Jonathan M Davis

I read TDPL again quite recently. And although it's missing a bunch of language features and there's a bunch of typos, I can't think of any language feature mentioned there that's changed since then (and I probably just don't know about it). So, I'd be interested in seeing that list.
Jul 06 2013
prev sibling next sibling parent "monarch_dodra" <monarchdodra gmail.com> writes:
On Saturday, 6 July 2013 at 07:18:03 UTC, Jonathan M Davis wrote:
 On Saturday, July 06, 2013 09:12:55 Joseph Rushton Wakeling 
 wrote:
 Are the differences from TDPL documented anywhere?

Not that I'm aware of. And I'd have to read it again to compile a full list, though I could probably come up with most of them off the top of my head. - Jonathan M Davis

Depends what you mean by "the differences"? In any case, there is an erratum available: http://erdani.com/tdpl/errata/ Any piece of code that doesn't compile, chances are there is a correction here.
Jul 06 2013
prev sibling next sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 09:43:24 TommiT wrote:
 On Saturday, 6 July 2013 at 07:18:03 UTC, Jonathan M Davis wrote:
 On Saturday, July 06, 2013 09:12:55 Joseph Rushton Wakeling
 
 wrote:
 Are the differences from TDPL documented anywhere?

Not that I'm aware of. And I'd have to read it again to compile a full list, though I could probably come up with most of them off the top of my head. - Jonathan M Davis

I read TDPL again quite recently. And although it's missing a bunch of language features and there's a bunch of typos, I can't think of any language feature mentioned there that's changed since then (and I probably just don't know about it). So, I'd be interested in seeing that list.

The main one that's changed is pure. TDPL basically describes strong purity, whereas we now also have weak purity. The main two that simply haven't yet been implemented as described are multiple alias this-es, and synchronized classes. Some of what TDPL says about shared is wrong (e.g. about it adding write barriers), but exactly what we're going to do about shared at this point is up for debate. We need it, and we're going to have it, but some of the details need to be further ironed out (e.g. it's unlikely that it'll ever have write barriers, because that would be too expensive and IIRC isn't even portable outside of x86/x86_64). As part of that, synchronized may or may not end up quite as described in TDPL. Beyond that, I'd probably have to re-read the book. I don't think that there are any other major differences, but there may be some minor ones. Most of those should have been caught by the errata though. - Jonathan M Davis
Jul 06 2013
prev sibling next sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 01:03:01 Jonathan M Davis wrote:
 The main one that's changed is pure. TDPL basically describes strong purity,
 whereas we now also have weak purity.

However, we may end up with a few more changes to it within the next few months, depending on how quickly we resolve some of our outstanding issues. 1. If we ever manage to remove toString, toHash, opEquals, and opCmp from Object like we decided to do, there will be a few more things in TDPL which will be wrong. 2. property still needs to be sorted out, and we don't know quite what properties are going to look like when we're done. 3. As I mentioned, shared still needs to be sorted out. 4. We might be changing it so that member functions are virtual by default (Walter seems to have been recently convinced that this would be the right thing to do, but AFAIK, he never decided that we were definitely going to do it). And that would invalidate parts of TDPL. 5. It looks like we're not going to be doing anything with ref which would make it contradict TDPL, but there's still some debate as to what exactly we're going to do with ref and safe (Walter has a solution, but some people object to it). And that may have an effect on the auto ref issue. There are probably others as well, but we do risk making some changes in the near future in order to resolve some longstanding issues, and some of them would make TDPL less accurate. Thus far though, most of the changes post-TDPL have been purely additive and don't contradict it at all.
 The main two that simply haven't yet been implemented as described are

Ah, there's also auto ref. The way TDPL describes it, it should work on the parameters of non-templated functions as well as templated ones, but it has yet to be implemented that way. And there's some debate as to what to do about that. And I'm not sure if the stuff with private and interfaces that TDPL describes has been implemented yet. So, that might increase the number of not fully implemented items. - Jonathan M Davis
Jul 06 2013
prev sibling next sibling parent "TommiT" <tommitissari hotmail.com> writes:
On Saturday, 6 July 2013 at 08:14:06 UTC, Jonathan M Davis wrote:
 Ah, there's also auto ref. The way TDPL describes it, it should 
 work on the
 parameters of non-templated functions as well as templated 
 ones, but it has
 yet to be implemented that way. And there's some debate as to 
 what to do about
 that.

TDPL doesn't mention auto ref at all (not even as a function return type). The spec talks about auto ref as both function return type and parameter type for function templates. So, it seems auto ref as parameter for regular functions doesn't seem to documented anywhere (which is good if it's not ready yet).
Jul 06 2013
prev sibling next sibling parent "Namespace" <rswhite4 googlemail.com> writes:
 4. We might be changing it so that member functions are virtual 
 by default

You mean final by default, don't you? AFAIK they are currently virtual by default.
Jul 06 2013
prev sibling next sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 11:44:43 TommiT wrote:
 On Saturday, 6 July 2013 at 08:14:06 UTC, Jonathan M Davis wrote:
 Ah, there's also auto ref. The way TDPL describes it, it should
 work on the
 parameters of non-templated functions as well as templated
 ones, but it has
 yet to be implemented that way. And there's some debate as to
 what to do about
 that.

TDPL doesn't mention auto ref at all (not even as a function return type). The spec talks about auto ref as both function return type and parameter type for function templates.

Really? Are you sure? I was certain that it did. But it's been a while now since I read it, so I'm not necessarily as clear on what's in it as I used to be. I should probably reread it one of these days, but I don't really have time right now.
 So, it
 seems auto ref as parameter for regular functions doesn't seem to
 documented anywhere (which is good if it's not ready yet).

I know that the original proposal for auto ref was not specifically for templated functions but that Walter misunderstood what Andrei had meant and just implemented them for templated functions (and the implementation used for templated functions wouldn't work with non-templated ones). It would be trivial to implement auto ref for non-templated functions, and I think that there's a good chance that we will, but there's a some debate over that, primarily because some people think that the term "auto ref" doesn't make sense with what a non-templated function would have to do (which would be to be ref underneath the hood and then assigne rvalues to lvalues on the stack so that they could be passed to the function by ref). - Jonathan M Davis
Jul 06 2013
prev sibling next sibling parent Jonathan M Davis <jmdavisProg gmx.com> writes:
On Saturday, July 06, 2013 11:56:43 Namespace wrote:
 4. We might be changing it so that member functions are virtual
 by default

You mean final by default, don't you? AFAIK they are currently virtual by default.

Yeah. I mean changed to non-virtual / final by default. I mistyped. - Jonathan M Davis
Jul 06 2013
prev sibling next sibling parent "TommiT" <tommitissari hotmail.com> writes:
On Saturday, 6 July 2013 at 09:58:25 UTC, Jonathan M Davis wrote:
 On Saturday, July 06, 2013 11:44:43 TommiT wrote:
 On Saturday, 6 July 2013 at 08:14:06 UTC, Jonathan M Davis 
 wrote:
 Ah, there's also auto ref. The way TDPL describes it, it 
 should
 work on the
 parameters of non-templated functions as well as templated
 ones, but it has
 yet to be implemented that way. And there's some debate as to
 what to do about
 that.

TDPL doesn't mention auto ref at all (not even as a function return type). The spec talks about auto ref as both function return type and parameter type for function templates.

Really? Are you sure?

Yep, 100% sure.
Jul 06 2013
prev sibling next sibling parent "mike james" <foo bar.com> writes:
 The current release is 2.063.2, but it's the first time that 
 we've actually
 released point releases like that, so there are likely to be 
 places saying
 2.063 instead of 2.063.2.

Maybe it's time to make the odd-numbered releases the work in progress releases and the even-numbered releases the official releases? -<mike>-
Jul 06 2013
prev sibling next sibling parent "Dicebot" <public dicebot.lv> writes:
On Saturday, 6 July 2013 at 13:24:06 UTC, mike james wrote:
 Maybe it's time to make the odd-numbered releases the work in 
 progress releases and the even-numbered releases the official 
 releases?

What is the point? All releases are official releases, "work in progress" == git master.
Jul 06 2013
prev sibling next sibling parent "mike james" <foo bar.com> writes:
On Saturday, 6 July 2013 at 13:26:38 UTC, Dicebot wrote:
 On Saturday, 6 July 2013 at 13:24:06 UTC, mike james wrote:
 Maybe it's time to make the odd-numbered releases the work in 
 progress releases and the even-numbered releases the official 
 releases?

What is the point? All releases are official releases, "work in progress" == git master.

So you can keep track of the interim releases. Some people like to get their releases from the D website as an install and not from git-hub.
Jul 06 2013
prev sibling next sibling parent "Dicebot" <public dicebot.lv> writes:
On Saturday, 6 July 2013 at 13:36:41 UTC, mike james wrote:
 So you can keep track of the interim releases. Some people like 
 to get their releases from the D website as an install and not 
 from git-hub.

Released content does not differ from repository one. It only means that exactly this state was tested and expected to work. Unreasonable preferences are not worth extra useless work.
Jul 06 2013
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sat, 2013-07-06 at 15:24 +0200, mike james wrote:
 The current release is 2.063.2, but it's the first time that=20
 we've actually
 released point releases like that, so there are likely to be=20
 places saying
 2.063 instead of 2.063.2.

Maybe it's time to make the odd-numbered releases the work in=20 progress releases and the even-numbered releases the official=20 releases?

Everyone, cf. Linux, who used to operate such a strategy has now stopped. A release is a release and should be releasable. Finding problems in a release is natural which is why the maj.min.bug release numbering is so popular. The issue here is that the releases should be numbered this way always so as to make a monotonic increasing sequence. Thus 2.063 should have been numbered 2.63.0. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 07 2013
prev sibling next sibling parent "Rob T" <alanb ucora.com> writes:
On Sunday, 7 July 2013 at 07:36:41 UTC, Russel Winder wrote:
 On Sat, 2013-07-06 at 15:24 +0200, mike james wrote:
 The current release is 2.063.2, but it's the first time that 
 we've actually
 released point releases like that, so there are likely to be 
 places saying
 2.063 instead of 2.063.2.

Maybe it's time to make the odd-numbered releases the work in progress releases and the even-numbered releases the official releases?

Everyone, cf. Linux, who used to operate such a strategy has now stopped. A release is a release and should be releasable. Finding problems in a release is natural which is why the maj.min.bug release numbering is so popular. The issue here is that the releases should be numbered this way always so as to make a monotonic increasing sequence. Thus 2.063 should have been numbered 2.63.0.

Agreed, however we should also have a pre-release package for testing that is clearly marked as a pre-release, it can go on a separate web page to avoid any possibility of confusion. The current release is showing as both 2.63.0 and 2.63 but I thought it was supposed to be 2.63.2 everywhere. This is very confusing. --rt
Jul 09 2013
prev sibling next sibling parent "Rob T" <alanb ucora.com> writes:
On Tuesday, 9 July 2013 at 22:34:18 UTC, Rob T wrote:

 Agreed, however we should also have a pre-release package for 
 testing that is clearly marked as a pre-release, it can go on a 
 separate web page to avoid any possibility of confusion.

 The current release is showing as both 2.63.0 and 2.63 but I 
 thought it was supposed to be 2.63.2 everywhere. This is very 
 confusing.

 --rt

Running latest release shows this ... DMD64 D Compiler v2.063 It should show the full release number. --rt
Jul 09 2013
prev sibling next sibling parent "Rob T" <alanb ucora.com> writes:
On Tuesday, 9 July 2013 at 22:46:36 UTC, Tyro[17] wrote:
 On 7/9/13 6:36 PM, Rob T wrote:
 On Tuesday, 9 July 2013 at 22:34:18 UTC, Rob T wrote:

 Agreed, however we should also have a pre-release package for 
 testing
 that is clearly marked as a pre-release, it can go on a 
 separate web
 page to avoid any possibility of confusion.

 The current release is showing as both 2.63.0 and 2.63 but I 
 thought
 it was supposed to be 2.63.2 everywhere. This is very 
 confusing.

 --rt

Running latest release shows this ... DMD64 D Compiler v2.063 It should show the full release number. --rt

This is what the latest release shows for me: Andrews-MacBook-Pro:vapor andrewedwards$ dmd DMD64 D Compiler v2.063.2 Copyright (c) 1999-2013 by Digital Mars written by Walter Bright Documentation: http://dlang.org/ Are you actually using the latest release?

I did a full removal, and install of latest version as of today downloaded from here: http://dlang.org/download.html dmd_2.063-0_amd64.deb The version on download page is showing 2.063-0, and so does the deb file name, and also the installation process shows 2.063-0 was installed. Running compiler shows DMD64 D Compiler v2.063 Something has gone wrong somewhere. --rt
Jul 09 2013
prev sibling next sibling parent "Kapps" <opantm2+spam gmail.com> writes:
On Tuesday, 9 July 2013 at 22:53:08 UTC, Rob T wrote:
 I did a full removal, and install of latest version as of today 
 downloaded from here: http://dlang.org/download.html

 dmd_2.063-0_amd64.deb

 The version on download page is showing 2.063-0, and so does 
 the deb file name, and also the installation process shows 
 2.063-0 was installed.

 Running compiler shows

 DMD64 D Compiler v2.063

 Something has gone wrong somewhere.

 --rt

The download page has the wrong link, it doesn't seem to have been updated for 2.063.2. Can just manually add a .2 at the end, such as http://downloads.dlang.org/releases/2013/dmd.2.063.2.zip
Jul 09 2013
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Jul 10, 2013 at 06:15:08AM +0200, Kapps wrote:
[...]
 The download page has the wrong link, it doesn't seem to have been
 updated for 2.063.2. Can just manually add a .2 at the end, such as
 http://downloads.dlang.org/releases/2013/dmd.2.063.2.zip

This sounds pretty serious. Can somebody who has access please fix this ASAP? We don't want our users to think they're getting 2.063.2 but actually it's still 2.063. T -- They say that "guns don't kill people, people kill people." Well I think the gun helps. If you just stood there and yelled BANG, I don't think you'd kill too many people. -- Eddie Izzard, Dressed to Kill
Jul 09 2013
prev sibling next sibling parent "Rob T" <alanb ucora.com> writes:
On Wednesday, 10 July 2013 at 04:15:12 UTC, Kapps wrote:
 The download page has the wrong link, it doesn't seem to have 
 been updated for 2.063.2. Can just manually add a .2 at the 
 end, such as 
 http://downloads.dlang.org/releases/2013/dmd.2.063.2.zip

Thanks, that worked. Yup the download page needs to be fixed asap. --rt
Jul 10 2013
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2013-07-10 at 00:34 +0200, Rob T wrote:
[=E2=80=A6]
 Agreed, however we should also have a pre-release package for=20
 testing that is clearly marked as a pre-release, it can go on a=20
 separate web page to avoid any possibility of confusion.

Well most people use X.Y.Z-alpha-N for bleeding edge releases, X.Y.Z-beta-N for getting close to a release, X.Y.Z-RC-N for actual release candidates, the last of which becomes the release simply by relabelling to X.Y.Z without any other change. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Jul 13 2013
prev sibling parent "Rob T" <alanb ucora.com> writes:
On Saturday, 13 July 2013 at 15:20:44 UTC, Russel Winder wrote:
 Well most people use X.Y.Z-alpha-N for bleeding edge releases,
 X.Y.Z-beta-N for getting close to a release, X.Y.Z-RC-N for 
 actual
 release candidates, the last of which becomes the release 
 simply by
 relabelling to X.Y.Z without any other change.

Hopefully one day we'll see something like that with D releases. --rt
Jul 14 2013