Jump to page: 1 2
Thread overview
Exceptional News
Feb 11, 2013
David Nadlinger
Feb 11, 2013
Iain Buclaw
Feb 11, 2013
Iain Buclaw
Feb 14, 2013
Jesse Phillips
Feb 11, 2013
Sönke Ludwig
Feb 11, 2013
Dmitry Olshansky
Feb 14, 2013
David Nadlinger
Feb 11, 2013
Nick Sabalausky
Feb 14, 2013
David Nadlinger
Feb 14, 2013
bearophile
Feb 14, 2013
David Nadlinger
Feb 15, 2013
bearophile
Feb 15, 2013
David Nadlinger
Feb 14, 2013
Andrej Mitrovic
Feb 15, 2013
jerro
Feb 15, 2013
David Nadlinger
February 11, 2013
Looks like we are finally getting somewhere. :)

---
version (Windows) {} else static assert(false);
void main() {
    try {
    	throw new Exception("This exception...");
    } catch (Exception e) {
    	import std.stdio;
    	writeln(e.msg, " ... has been caught for you by ", __VENDOR__, ".");
    }
}
---
This exception... ... has been caught for you by LDC.
---

David
February 11, 2013
On 11 February 2013 13:00, David Nadlinger <see@klickverbot.at> wrote:

> Looks like we are finally getting somewhere. :)
>
> ---
> version (Windows) {} else static assert(false);
> void main() {
>     try {
>         throw new Exception("This exception...");
>     } catch (Exception e) {
>         import std.stdio;
>         writeln(e.msg, " ... has been caught for you by ", __VENDOR__,
> ".");
>     }
> }
> ---
> This exception... ... has been caught for you by LDC.
> ---
>
> David
>


Rather amusing. :-)

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


February 11, 2013
On 2/11/13 8:00 AM, David Nadlinger wrote:
> Looks like we are finally getting somewhere. :)
>
> ---
> version (Windows) {} else static assert(false);
> void main() {
> try {
> throw new Exception("This exception...");
> } catch (Exception e) {
> import std.stdio;
> writeln(e.msg, " ... has been caught for you by ", __VENDOR__, ".");
> }
> }
> ---
> This exception... ... has been caught for you by LDC.
> ---
>
> David

Awesome!!!

Andrei
February 11, 2013
On 11 February 2013 13:29, Andrei Alexandrescu < SeeWebsiteForEmail@erdani.org> wrote:

> On 2/11/13 8:00 AM, David Nadlinger wrote:
>
>> Looks like we are finally getting somewhere. :)
>>
>> ---
>> version (Windows) {} else static assert(false);
>> void main() {
>> try {
>> throw new Exception("This exception...");
>> } catch (Exception e) {
>> import std.stdio;
>> writeln(e.msg, " ... has been caught for you by ", __VENDOR__, ".");
>> }
>> }
>> ---
>> This exception... ... has been caught for you by LDC.
>> ---
>>
>> David
>>
>
> Awesome!!!
>
> Andrei
>

This feature has been around for some time (somewhere in lexer.c iirc) - have you really only just added LDC into it David?

-- 
Iain Buclaw

*(p < e ? p++ : p) = (c & 0x0f) + '0';


February 11, 2013
Am 11.02.2013 14:00, schrieb David Nadlinger:
> Looks like we are finally getting somewhere. :)
> 
> ---
> version (Windows) {} else static assert(false);
> void main() {
>     try {
>         throw new Exception("This exception...");
>     } catch (Exception e) {
>         import std.stdio;
>         writeln(e.msg, " ... has been caught for you by ", __VENDOR__, ".");
>     }
> }
> ---
> This exception... ... has been caught for you by LDC.
> ---
> 
> David

Great news!

How is it implemented? SEH? Did LLVM get any recent additions in this area?
February 11, 2013
11-Feb-2013 17:00, David Nadlinger пишет:
> Looks like we are finally getting somewhere. :)
>
> ---
> version (Windows) {} else static assert(false);
> void main() {
>      try {
>          throw new Exception("This exception...");
>      } catch (Exception e) {
>          import std.stdio;
>          writeln(e.msg, " ... has been caught for you by ", __VENDOR__,
> ".");
>      }
> }
> ---
> This exception... ... has been caught for you by LDC.
> ---

Nice one!

There got to be size_t.sizeof printed somewhere ... :)


-- 
Dmitry Olshansky
February 11, 2013
On Mon, 11 Feb 2013 14:00:17 +0100
"David Nadlinger" <see@klickverbot.at> wrote:

> Looks like we are finally getting somewhere. :)
> 
> ---
> version (Windows) {} else static assert(false);
> void main() {
>      try {
>      	throw new Exception("This exception...");
>      } catch (Exception e) {
>      	import std.stdio;
>      	writeln(e.msg, " ... has been caught for you by ",
> __VENDOR__, ".");
>      }
> }
> ---
> This exception... ... has been caught for you by LDC.
> ---
> 
> David

I took my mind a minute to process the point of that ("Is
__VENDOR__ a new thing? Is it something about nested exceptions? What's
with the version(Windows)...?")

...and then my thoughts jumped straight to: Holy shit!!

:)

Fantastic news!

February 14, 2013
On Monday, 11 February 2013 at 17:19:16 UTC, Dmitry Olshansky wrote:
> Nice one!
>
> There got to be size_t.sizeof printed somewhere ... :)

It would be 4; MinGW for Win64 uses SEH, and LLVM still doesn't support that (although there is hope).

David
February 14, 2013
On Monday, 11 February 2013 at 21:50:35 UTC, Nick Sabalausky wrote:
> ...and then my thoughts jumped straight to: Holy shit!!
>
> :)
>
> Fantastic news!

Don't get too excited. ;) There is still a lot to do, several test cases/unit tests still fail (mainly FP precision and ABI related).

But, yes, now there is a real chance of Windows being a "first-class target" for LDC in the near future.

I would very much appreciate any help on crushing the remaining bugs (it's not rocket science), see http://wiki.dlang.org/Building_LDC_on_MinGW_x86 for build instructions.

David
February 14, 2013
On Monday, 11 February 2013 at 13:33:28 UTC, Iain Buclaw wrote:
> This feature has been around for some time (somewhere in lexer.c iirc) -
> have you really only just added LDC into it David?

LLVM hasn't had support for Exceptions in Windows, Hence the begining

version (Windows) {} else static assert(false);
« First   ‹ Prev
1 2