April 14, 2012
On 4/14/12, Alex Rønne Petersen <xtzgzorex@gmail.com> wrote:
> That sounds like an error in TDPL. AFAIK nothrow means "may only throw Error".

But Error is a subclass of Throwable.
April 14, 2012
On Saturday, April 14, 2012 02:13:45 Andrej Mitrovic wrote:
> On 4/14/12, Alex Rønne Petersen <xtzgzorex@gmail.com> wrote:
> > That sounds like an error in TDPL. AFAIK nothrow means "may only throw Error".
> 
> But Error is a subclass of Throwable.

A nothrow function cannot throw anything derived from Exception. It _can_ throw types derived from Error. Normally, no one should be using exception types which aren't derived from Exception or Error. So, this should be a complete non-issue.

It looks like TDPL lists Throwable as throwable in nothrow functions (so, basically any Throwable which is _not_ derived from Exception), whereas the compiler specifically makes Error throwable but disallows throwing Throwable.

Honestly, it probably doesn't really matter which it is. Certainly, it won't matter in good code, since I'm pretty sure there's no valid reason for throwing anything which is not derived from Exception or Error.

But clearly TDPL and the compiler need to be brought in line with one another (either by changing TDPL or changing the compiler). I'd be inclined to go with TDPL on this one, but I don't see how it matters all that much, since it shouldn't impact any real world code either way.

- Jonathan M Davis
April 14, 2012
On Friday, 13 April 2012 at 05:54:26 UTC, Walter Bright wrote:
> Another big pile of bug fixes. More contributors than ever!
>
> http://www.digitalmars.com/d/1.0/changelog.html
> http://ftp.digitalmars.com/dmd.1.074.zip
>
> http://www.digitalmars.com/d/2.0/changelog.html
> https://github.com/downloads/D-Programming-Language/dmd/dmd.2.059.zip
>
> Note that the changelogs on dlang.org haven't been updated yet. Hope to get that done soon.

Not Found

The requested URL /dmd.2.059.dmg was not found on this server.

Can I play too please.
April 14, 2012
This program doesn't work.

import std.stdio;

void main() {
    writeln(1);
}

I get this:
C:\jpro\dpro2\small>dmd dmd59.d
OPTLINK (R) for Win32  Release 8.00.12
Copyright (C) Digital Mars 1989-2010  All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
dmd59.obj(dmd59)
 Error 42: Symbol Undefined _D3std3utf6toUTF8FNaNbNfJG4awZAa
--- errorlevel 1

C:\jpro\dpro2\small>_

Is it to do with qualifiers?

Thanks for any help.

-joelcnz

April 14, 2012
Never mind, I installed wrong, I was still was using 58's lib files.

-joelcnz

April 14, 2012
On 04/13/2012 05:47 PM, Tyro[17] wrote:
> On Friday, 13 April 2012 at 05:54:26 UTC, Walter Bright wrote:
>> Another big pile of bug fixes. More contributors than ever!
>>
>> http://www.digitalmars.com/d/1.0/changelog.html
>> http://ftp.digitalmars.com/dmd.1.074.zip
>>
>> http://www.digitalmars.com/d/2.0/changelog.html
>> https://github.com/downloads/D-Programming-Language/dmd/dmd.2.059.zip
>>
>> Note that the changelogs on dlang.org haven't been updated yet. Hope
>> to get that done soon.
>
> Not Found
>
> The requested URL /dmd.2.059.dmg was not found on this server.
>
> Can I play too please.

The 64-bit .deb file worked fine on my Ubuntu system:

  http://dlang.org/download.html

Ali
April 14, 2012
On 4/13/2012 5:47 PM, Tyro[17] wrote:
> The requested URL /dmd.2.059.dmg was not found on this server.

Hmm, I overlooked that one.
April 14, 2012
On 14-04-2012 02:13, Andrej Mitrovic wrote:
> On 4/14/12, Alex Rønne Petersen<xtzgzorex@gmail.com>  wrote:
>> That sounds like an error in TDPL. AFAIK nothrow means "may only throw
>> Error".
>
> But Error is a subclass of Throwable.

Which is why I said it's probably an error in TDPL. :P

-- 
- Alex
April 14, 2012
On 14-04-2012 03:45, Alex Rønne Petersen wrote:
> On 14-04-2012 02:13, Andrej Mitrovic wrote:
>> On 4/14/12, Alex Rønne Petersen<xtzgzorex@gmail.com> wrote:
>>> That sounds like an error in TDPL. AFAIK nothrow means "may only throw
>>> Error".
>>
>> But Error is a subclass of Throwable.
>
> Which is why I said it's probably an error in TDPL. :P
>

I.e. nothrow specifically lets you throw anything deriving from Error, nothing else. Anywhere else, you can throw whatever derives from Throwable.

-- 
- Alex
April 14, 2012
Gah, I just ruined by night by actually
trying to use this release.

78 lines of template instantiation error spam
on code that worked perfectly on 2.058 :(

Including such gems as:

.../phobos/std/conv.d(244): Error: template std.conv.toImpl does not match any function template declaration

and

.../phobos/std/conv.d(244): Error: template std.conv.toImpl matches more than one template declaration, /home/me/d/dmd2/linux/bin32/../../src/phobos/std/conv.d(1034):toImpl(T,S) if (!isImplicitlyConvertible!(S,T) && is(S == enum) && isSomeString!(T)) and /home/me/d/dmd2/linux/bin32/../../src/phobos/std/conv.d(1155):toImpl(T,S) if (isIntegral!(S) && isSigned!(S) && isSomeString!(T))

and

.../phobos/std/conv.d(244): Error: template std.conv.toImpl does not match any function template declaration


They all seem to be enum <-> string related.

std.conv rox, but it is one very fragile baby :(

It breaks often, and is always a pain to figure out why.