digitalmars.D - DMD now does Dwarf style exception handling!
- Walter Bright (10/10) Jan 02 2016 What I've been working on for the last month or so.
- Jack Stouffer (4/16) Jan 02 2016 Congrats!
- Walter Bright (3/5) Jan 02 2016 DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format...
- Temtaime (7/13) Jan 04 2016 Useless work.
- Jonathan M Davis (23/33) Jan 05 2016 Facebook was doing it back in 2013 and had to deal with figuring
- Walter Bright (9/15) Jan 05 2016 Andrei and I believe that directly connecting D to C++ is critical for D...
- wobbles (6/20) Jan 05 2016 That's a bit harsh!
- welkam (3/3) Jan 05 2016 People who pay 0$ should not dictate what Walther should be doing.
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (12/16) Jan 05 2016 I agree.
- welkam (9/16) Jan 05 2016 I dont think there are plans for full C++ interoperability but
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (12/14) Jan 05 2016 You can just rename an Objective-C or C++ file to ".mm" and you
- Jacob Carlborg (7/9) Jan 05 2016 It's not possible to interface Swift and C++ directly. One needs to go
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (5/14) Jan 05 2016 Yes, which is why I wrote "indirectly". ;-) But does it work for
- Jacob Carlborg (10/13) Jan 05 2016 Hmm. From this blog post [1]:
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (5/13) Jan 05 2016 Thanks, that makes sense. I think ARC can be faster without the
- Jacob Carlborg (5/9) Jan 05 2016 D can already interface with C++ templates, as long as they are
- Walter Bright (3/4) Jan 05 2016 It's the other way around. O-C++ is a C++ compiler that supports O-C ext...
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (13/19) Jan 05 2016 The difference is marginal. C++ on clang support C99 extensions
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (14/14) Jan 05 2016 An example from
- Walter Bright (3/4) Jan 05 2016 Interfacing with C doesn't mean jack when someone needs to interface wit...
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (6/8) Jan 05 2016 Yes, but if you want ARC or high performance GC you have to pay a
- Walter Bright (4/5) Jan 05 2016 CF is an interface to C, not C++, and it uses wrappers and such, not dir...
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (18/25) Jan 05 2016 I think I wasn't clear in what I wrote. CoreFoundation is
- Walter Bright (3/4) Jan 05 2016 At the moment I'm only interested in directly interfacing D to C++, not ...
- Ola Fosheim =?UTF-8?B?R3LDuHN0YWQ=?= (6/11) Jan 05 2016 The topic someone in this subthread raised was whether other
- watcher (2/16) Jan 05 2016 +1000
- Jason Jeffory (10/24) Jan 05 2016 Seriously? Walter has every right to work on what he wants,
- Iain Buclaw via Digitalmars-d (10/25) Jan 05 2016 32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with
- Walter Bright (8/11) Jan 05 2016 Doing unwinding in D frames when foreign exceptions are in-flight is eas...
- Iain Buclaw via Digitalmars-d (6/21) Jan 05 2016 I gave a very abridged example here:
- Jacob Carlborg (6/14) Jan 05 2016 Catching Objective-C exceptions might be interesting. If if catching C++...
- Jonathan M Davis (3/3) Jan 02 2016 So, we have ELF binaries and DWARF exceptions. Are we going to
- Walter Bright (2/4) Jan 02 2016 Naw, but I am secretly working on the Eye of Sauron.
- Jonathan M Davis (3/8) Jan 02 2016 LOL. And wouldn't _that_ show how powerful D is. ;)
- blm768 (3/6) Jan 02 2016 I don't know about that, but with better C++ interop, it might be
- Dan Olson (6/17) Jan 04 2016 Very cool. Is it conceivable that DMD, GDC, and LDC might one day share
- Walter Bright (2/5) Jan 04 2016 Probably not the personality routine, though that won't matter.
- Ilya (9/21) Jan 04 2016 Is this hack required for dmd 2.070 to get stack-trace on Linux
What I've been working on for the last month or so. https://github.com/D-Programming-Language/dmd/pull/5324 For Linux 64 anyway. Anyone who wants to do PRs to extend it to Linux 32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with Win64, which uses its own unique system. DMD for Win32 already can catch C++ exceptions, but Win32 is a dead platform. This is an enabling technology that will confer on D the ability to catch C++ exceptions, which is key to interaction with native C++ libraries. Next up: actually catching C++ exceptions! Thanks to everyone who helped out with this.
Jan 02 2016
On Saturday, 2 January 2016 at 21:16:38 UTC, Walter Bright wrote:What I've been working on for the last month or so. https://github.com/D-Programming-Language/dmd/pull/5324 For Linux 64 anyway. Anyone who wants to do PRs to extend it to Linux 32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with Win64, which uses its own unique system. DMD for Win32 already can catch C++ exceptions, but Win32 is a dead platform. This is an enabling technology that will confer on D the ability to catch C++ exceptions, which is key to interaction with native C++ libraries. Next up: actually catching C++ exceptions! Thanks to everyone who helped out with this.Congrats! What is involved in catching C++ exceptions? Was this the hard part of the whole thing?
Jan 02 2016
On 1/2/2016 4:17 PM, Jack Stouffer wrote:What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 02 2016
On Sunday, 3 January 2016 at 02:05:38 UTC, Walter Bright wrote:On 1/2/2016 4:17 PM, Jack Stouffer wrote:Useless work. Almost nobody will throw exceptions from C++ code to D code. Same old same old : Walter could fix regressions, but instead he found a new nice useless toy to play, and after that, it will be a cause of new regressions. That's why D is always dead in the water.What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 04 2016
On Tuesday, 5 January 2016 at 01:39:51 UTC, Temtaime wrote:On Sunday, 3 January 2016 at 02:05:38 UTC, Walter Bright wrote:Facebook was doing it back in 2013 and had to deal with figuring out how to propagate them from the C++ code to the D code (which involved catching them on the C++ side and then wrapping them to hand over to D). So, folks have already been writing code that would benefit from being able to have C++ exceptions go from C++ code to D code. And since the D code can't control what a C++ function is going to throw, if we don't support C++ exceptions being caught in D, then a lot of extern(C++) functions will really need to be wrappers which catch any C++ exceptions that are thrown and then either handle them or hand them off to the D code somehow. And that's a lot more work than calling an existing C++ function for which you just write a signature for in D as extern(C++) and then call it normally, catching an exceptions that it throws just like you would in C++. So, yes. This work is valuable. Whether it's the best use of Walter's time out of all of the things he could be doing for D, I don't know, and that's a highly subjective debate. But I don't think that there's any question that this work is of real value and will really help folks who want to use D but need to integrate with existing C++ code - and that's a lot of the folks who would be looking to use D in a professional project. - Jonathan M DavisOn 1/2/2016 4:17 PM, Jack Stouffer wrote:Useless work. Almost nobody will throw exceptions from C++ code to D code.What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 05 2016
On 1/5/2016 12:18 AM, Jonathan M Davis wrote:So, yes. This work is valuable. Whether it's the best use of Walter's time out of all of the things he could be doing for D, I don't know, and that's a highly subjective debate. But I don't think that there's any question that this work is of real value and will really help folks who want to use D but need to integrate with existing C++ code - and that's a lot of the folks who would be looking to use D in a professional project.Andrei and I believe that directly connecting D to C++ is critical for D's future. Catching C++ exceptions is a key component of that. This feature has been on the table for a year now, and it has become clear that either I do it or it never happens. (Making it work right requires in depth understanding of the other mechanisms for EH that dmd uses, how the global optimizer works, how the code generator works, how the dwarf support works, how code is converted from ASTs to the back end notation, etc. That pretty much just leaves me.)
Jan 05 2016
On Tuesday, 5 January 2016 at 01:39:51 UTC, Temtaime wrote:On Sunday, 3 January 2016 at 02:05:38 UTC, Walter Bright wrote:That's a bit harsh! Getting D to play nice with C++ is, I feel at least, one of the most important pieces of work to getting more D adoption. The vast amount of C++ libs out there that will be usable in the D sphere is immense (think Game engines!)On 1/2/2016 4:17 PM, Jack Stouffer wrote:Useless work. Almost nobody will throw exceptions from C++ code to D code. Same old same old : Walter could fix regressions, but instead he found a new nice useless toy to play, and after that, it will be a cause of new regressions. That's why D is always dead in the water.What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 05 2016
People who pay 0$ should not dictate what Walther should be doing. I guess D will have best interoperability with c++ out of all languages.
Jan 05 2016
On Tuesday, 5 January 2016 at 11:13:30 UTC, welkam wrote:People who pay 0$ should not dictate what Walther should be doing.I agree. What should be questioned is the viability of the strategy. 1. The core of game engine libraries don't use exceptions... So the exception handling focus is misguided. 2. Modern performant C++ libraries use templating through and through... D has not strategy for interfacing with these. How are you going to solve that with D? D's C++ support will be obsolete before it is finished. Meaning: it only make sense if you bind to your own C++ libraries or legacy C++ code.I guess D will have best interoperability with c++ out of all languages.Nope. Objective-C++ has full C++ support.
Jan 05 2016
On Tuesday, 5 January 2016 at 11:21:48 UTC, Ola Fosheim Grøstad wrote:1. The core of game engine libraries don't use exceptions... So the exception handling focus is misguided. 2. Modern performant C++ libraries use templating through and through... D has not strategy for interfacing with these. How are you going to solve that with D? D's C++ support will be obsolete before it is finished.I dont think there are plans for full C++ interoperability but some interop is better than none. People wont be rewriting millions of c++ code to D so interop is must, but supporting full c++ 14 spec is just too much to ask. If you cant modify c++ library and it is using templates then you`ll have to stick to c++.Nope. Objective-C++ has full C++ support.first time hearing about it
Jan 05 2016
On Tuesday, 5 January 2016 at 12:51:11 UTC, welkam wrote:You can just rename an Objective-C or C++ file to ".mm" and you get an Objetive-C++ file. So if I have some files in Objective-C where I need interop with C++ I rename it to ".mm" and can include C++ headers directly. Or the other way, if I want to add Objective-C interfacing to C++ code. I assume I can use it for interfacing indirectly with Swift on Linux as well?? So, for me Swift/Objective-C++/C++/C currently looks more attractive than D2/C++ because I _should_ be able to get 100% C++14/17 support by having an Objective-C++ binding layer below Swift. (might not make sense for people that don't know Objective-C)Nope. Objective-C++ has full C++ support.first time hearing about it
Jan 05 2016
On 2016-01-05 14:30, Ola Fosheim Grøstad wrote:I assume I can use it for interfacing indirectly with Swift on Linux as well??It's not possible to interface Swift and C++ directly. One needs to go though Objective-C++. There's a tool that can automatically generate bindings [1]. I have no idea how well that works. [1] https://github.com/sandym/swiftpp -- /Jacob Carlborg
Jan 05 2016
On Tuesday, 5 January 2016 at 13:45:53 UTC, Jacob Carlborg wrote:On 2016-01-05 14:30, Ola Fosheim Grøstad wrote:Yes, which is why I wrote "indirectly". ;-) But does it work for Swift on Linux? Is Objective-C++ and Swift compatible on Linux yet?I assume I can use it for interfacing indirectly with Swift on Linux as well??It's not possible to interface Swift and C++ directly. One needs to go though Objective-C++.There's a tool that can automatically generate bindings [1]. I have no idea how well that works. [1] https://github.com/sandym/swiftppThanks for the reference!
Jan 05 2016
On 2016-01-05 14:49, Ola Fosheim Grøstad wrote:Yes, which is why I wrote "indirectly". ;-)Ah, I missed that.But does it work for Swift on Linux? Is Objective-C++ and Swift compatible on Linux yet?Hmm. From this blog post [1]: "Swift on Linux does not depend on the Objective-C runtime nor includes it" I'm guessing that Swift is compatible with Apple's Objective-C runtime, which is not the same as the GNUStep Objective-C runtime. On the other hand, I'm guessing it's possible to create a C bridge as well. [1] https://swift.org/blog/swift-linux-port/ -- /Jacob Carlborg
Jan 05 2016
On Tuesday, 5 January 2016 at 15:40:40 UTC, Jacob Carlborg wrote:"Swift on Linux does not depend on the Objective-C runtime nor includes it" I'm guessing that Swift is compatible with Apple's Objective-C runtime, which is not the same as the GNUStep Objective-C runtime.Thanks, that makes sense. I think ARC can be faster without the Objective-C dependency.On the other hand, I'm guessing it's possible to create a C bridge as well. [1] https://swift.org/blog/swift-linux-port/Yep. Linux is dominated by C so it makes perfect sense to focus on Swift + C and make it perform well.
Jan 05 2016
On 2016-01-05 12:21, Ola Fosheim Grøstad wrote:2. Modern performant C++ libraries use templating through and through... D has not strategy for interfacing with these. How are you going to solve that with D? D's C++ support will be obsolete before it is finished.D can already interface with C++ templates, as long as they are instantiated on the C++ side already. Then it's only a matter of mangling. -- /Jacob Carlborg
Jan 05 2016
On 1/5/2016 3:21 AM, Ola Fosheim Grøstad wrote:Nope. Objective-C++ has full C++ support.It's the other way around. O-C++ is a C++ compiler that supports O-C extensions. This is amply illustrated by Swift's total lack of C++ interoperability.
Jan 05 2016
On Tuesday, 5 January 2016 at 16:10:38 UTC, Walter Bright wrote:On 1/5/2016 3:21 AM, Ola Fosheim Grøstad wrote:The difference is marginal. C++ on clang support C99 extensions to C++, like VLA (which I use quite frequently).Nope. Objective-C++ has full C++ support.It's the other way around. O-C++ is a C++ compiler that supports O-C extensions.This is amply illustrated by Swift's total lack of C++ interoperability.Actually, I think that is completely unrelated. Swift is a separate language that has been designed to work well with Cocoa rather than plain C IMO. Swift has a Objective-C/C++ compatible runtime, and _bridging_ to CoreFoundation (Apple's C allocated objects) just like Objective-C/C++. For non-CoreFoundation objects the situation is more troubled AFAIK. So to have good interfacing with Apple tech, you need Foundation or CoreFoundation objects... Not C++, C or D objects... I rarely deal with bridging, did I get this right?
Jan 05 2016
An example from http://www.sitepoint.com/using-legacy-c-apis-swift/: Calling the C function "void takesAnObject(void *theObject);" from Swift: var test = 42 withUnsafePointer(&test, { (ptr: UnsafePointer<Int>) -> Void in var voidPtr: UnsafePointer<Void> = unsafeBitCast(ptr, UnsafePointer<Void>.self) takesAnObject(voidPtr) }) Maybe it can be done better, but I think it is rather obvious that if interfacing looks like that, one doesn't loose much from implementing the app using Objective-C++ and Swift without bridging much between C++ and Swift.
Jan 05 2016
On 1/5/2016 10:45 AM, Ola Fosheim Grøstad wrote:Calling the C function "void takesAnObject(void *theObject);" from Swift:Interfacing with C doesn't mean jack when someone needs to interface with C++. D interfaced seamlessly with C from day 1.
Jan 05 2016
On Tuesday, 5 January 2016 at 18:52:38 UTC, Walter Bright wrote:Interfacing with C doesn't mean jack when someone needs to interface with C++. D interfaced seamlessly with C from day 1.Yes, but if you want ARC or high performance GC you have to pay a price when crossing boundaries. Objective-C/C++ provides easy interfacing with C/C++... CoreFoundation provides easy bridging with Objective-C/Swift. Foundation provides seamless interfacing.
Jan 05 2016
On 1/5/2016 10:57 AM, Ola Fosheim Grøstad wrote:CoreFoundation provides easy bridging with Objective-C/Swift.CF is an interface to C, not C++, and it uses wrappers and such, not direct APIs. It also has COM-like support - D also supported COM since Day 1. That isn't remotely good enough to be called an interface to C++.
Jan 05 2016
On Tuesday, 5 January 2016 at 21:33:07 UTC, Walter Bright wrote:On 1/5/2016 10:57 AM, Ola Fosheim Grøstad wrote:I think I wasn't clear in what I wrote. CoreFoundation is implemented in C, but CF objects aren't really an interface to C, but memory objects that (may) provide a toll free bridge to NSObject ARC protocols. Thus supports ARC by recasting a pointer rather than wrapping or conversion. My point was more that in order to interface well with Swift I should generate objects that are toll free castable to ARC objects when I allocate. But I don't want that in my C++ code anyway, so therefore I might as well have a Objective-C++ layer between Swift and C++ on iOS. I don't want lots of raw C malloc or C++ objects on the Swift side... As Jacob pointed out, that does not work on Linux, but I am ok with C interfaces to C++ code on Linux. iOS is different since so many OS calls _requires_ Objective-C function calls, so on iOS you often need to mix Objective-C and C++ (or whatever language you use).CoreFoundation provides easy bridging with Objective-C/Swift.CF is an interface to C, not C++, and it uses wrappers and such, not direct APIs. It also has COM-like support - D also supported COM since Day 1. That isn't remotely good enough to be called an interface to C++.
Jan 05 2016
On 1/5/2016 1:48 PM, Ola Fosheim Grøstad wrote:I think I wasn't clear in what I wrote.At the moment I'm only interested in directly interfacing D to C++, not C (which D already does very well) or ARC (a totally different subject).
Jan 05 2016
On Wednesday, 6 January 2016 at 00:08:35 UTC, Walter Bright wrote:On 1/5/2016 1:48 PM, Ola Fosheim Grøstad wrote:The topic someone in this subthread raised was whether other comparable languages have better C++ support than D or not. And my answer to that is that Objective-C++ and Swift over Objective-C++ has 100% support for C++. That's the discussion you entered.I think I wasn't clear in what I wrote.At the moment I'm only interested in directly interfacing D to C++, not C (which D already does very well) or ARC (a totally different subject).
Jan 05 2016
On Tuesday, 5 January 2016 at 01:39:51 UTC, Temtaime wrote:On Sunday, 3 January 2016 at 02:05:38 UTC, Walter Bright wrote:+1000On 1/2/2016 4:17 PM, Jack Stouffer wrote:Useless work. Almost nobody will throw exceptions from C++ code to D code. Same old same old : Walter could fix regressions, but instead he found a new nice useless toy to play, and after that, it will be a cause of new regressions. That's why D is always dead in the water.What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 05 2016
On Tuesday, 5 January 2016 at 01:39:51 UTC, Temtaime wrote:On Sunday, 3 January 2016 at 02:05:38 UTC, Walter Bright wrote:Seriously? Walter has every right to work on what he wants, regardless. D is his child, not yours! How bout you contribute to the problems you see and let him contribute in his way and the world would be a better place? At least is he is working on what he thinks is correct! Lazy people that just bitch and complain about what other people do is the downfall of humanity.... so how does it feel knowing that you are contributing to the death and decay of the greatest species this planet has known(possibly universe)? Grow up!On 1/2/2016 4:17 PM, Jack Stouffer wrote:Useless work. Almost nobody will throw exceptions from C++ code to D code. Same old same old : Walter could fix regressions, but instead he found a new nice useless toy to play, and after that, it will be a cause of new regressions. That's why D is always dead in the water.What is involved in catching C++ exceptions? Was this the hard part of the whole thing?DMD doesn't catch them yet. But C++ on Linux throws them in Dwarf format, so supporting that is the first step.
Jan 05 2016
On 3 Jan 2016 1:20 am, "Jack Stouffer via Digitalmars-d" < digitalmars-d puremagic.com> wrote:On Saturday, 2 January 2016 at 21:16:38 UTC, Walter Bright wrote:32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with Win64, which uses its own unique system. DMD for Win32 already can catch C++ exceptions, but Win32 is a dead platform.What I've been working on for the last month or so. https://github.com/D-Programming-Language/dmd/pull/5324 For Linux 64 anyway. Anyone who wants to do PRs to extend it to Linuxcatch C++ exceptions, which is key to interaction with native C++ libraries.This is an enabling technology that will confer on D the ability tothe whole thing? Catching from any foreign language that interacts with the same EH interface should be easy. Just bear in mind that each language may put the thrown object proper in a different place.Next up: actually catching C++ exceptions! Thanks to everyone who helped out with this.Congrats! What is involved in catching C++ exceptions? Was this the hard part of
Jan 05 2016
On 1/5/2016 1:17 AM, Iain Buclaw via Digitalmars-d wrote:Catching from any foreign language that interacts with the same EH interface should be easy. Just bear in mind that each language may put the thrown object proper in a different place.Doing unwinding in D frames when foreign exceptions are in-flight is easy, because no knowledge of those FEs is required. Catching them, however, requires detailed knowledge of exactly how they work. This is not so easy. Catching C++ exceptions in D code will require some careful study and work, and that work will not be transferable to other FEs. But since there seems to be 0 demand for catching other FEs, or even interfacing D to other languages, this shouldn't be a problem.
Jan 05 2016
On 5 January 2016 at 17:24, Walter Bright via Digitalmars-d < digitalmars-d puremagic.com> wrote:On 1/5/2016 1:17 AM, Iain Buclaw via Digitalmars-d wrote:I gave a very abridged example here: http://forum.dlang.org/post/mailman.2091.1447287382.22025.digitalmars-d puremagic.com Referenced unwind-cxx.h is found in a github mirror: https://github.com/gcc-mirror/gcc/blob/1e9147dd7b41b6e32c25501b50df73e74b75387f/libstdc%2B%2B-v3/libsupc%2B%2B/unwind-cxx.h#L58-L98Catching from any foreign language that interacts with the same EH interface should be easy. Just bear in mind that each language may put the thrown object proper in a different place.Doing unwinding in D frames when foreign exceptions are in-flight is easy, because no knowledge of those FEs is required. Catching them, however, requires detailed knowledge of exactly how they work. This is not so easy. Catching C++ exceptions in D code will require some careful study and work, and that work will not be transferable to other FEs. But since there seems to be 0 demand for catching other FEs, or even interfacing D to other languages, this shouldn't be a problem.
Jan 05 2016
On 2016-01-05 17:24, Walter Bright wrote:Doing unwinding in D frames when foreign exceptions are in-flight is easy, because no knowledge of those FEs is required. Catching them, however, requires detailed knowledge of exactly how they work. This is not so easy. Catching C++ exceptions in D code will require some careful study and work, and that work will not be transferable to other FEs. But since there seems to be 0 demand for catching other FEs, or even interfacing D to other languages, this shouldn't be a problem.Catching Objective-C exceptions might be interesting. If if catching C++ exceptions work, it should be trivial to add support for catching Objective-C exceptions as well. -- /Jacob Carlborg
Jan 05 2016
So, we have ELF binaries and DWARF exceptions. Are we going to get something related to orcs or goblins next? ;) - Jonathan M Davis
Jan 02 2016
On 1/2/2016 5:51 PM, Jonathan M Davis wrote:So, we have ELF binaries and DWARF exceptions. Are we going to get something related to orcs or goblins next? ;)Naw, but I am secretly working on the Eye of Sauron.
Jan 02 2016
On Sunday, 3 January 2016 at 02:04:40 UTC, Walter Bright wrote:On 1/2/2016 5:51 PM, Jonathan M Davis wrote:LOL. And wouldn't _that_ show how powerful D is. ;) - Jonathan M DavisSo, we have ELF binaries and DWARF exceptions. Are we going to get something related to orcs or goblins next? ;)Naw, but I am secretly working on the Eye of Sauron.
Jan 02 2016
On Sunday, 3 January 2016 at 01:51:35 UTC, Jonathan M Davis wrote:So, we have ELF binaries and DWARF exceptions. Are we going to get something related to orcs or goblins next? ;) - Jonathan M DavisI don't know about that, but with better C++ interop, it might be easier to bind to OGRE. (See http://www.ogre3d.org/)
Jan 02 2016
Walter Bright <newshound2 digitalmars.com> writes:What I've been working on for the last month or so. https://github.com/D-Programming-Language/dmd/pull/5324 For Linux 64 anyway. Anyone who wants to do PRs to extend it to Linux 32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with Win64, which uses its own unique system. DMD for Win32 already can catch C++ exceptions, but Win32 is a dead platform. This is an enabling technology that will confer on D the ability to catch C++ exceptions, which is key to interaction with native C++ libraries. Next up: actually catching C++ exceptions! Thanks to everyone who helped out with this.Very cool. Is it conceivable that DMD, GDC, and LDC might one day share common support code in druntime (personality, etc)? Could be many benefits like a larger test population. -- Dan
Jan 04 2016
On 1/4/2016 4:18 PM, Dan Olson wrote:Very cool. Is it conceivable that DMD, GDC, and LDC might one day share common support code in druntime (personality, etc)? Could be many benefits like a larger test population.Probably not the personality routine, though that won't matter.
Jan 04 2016
On Saturday, 2 January 2016 at 21:16:38 UTC, Walter Bright wrote:What I've been working on for the last month or so. https://github.com/D-Programming-Language/dmd/pull/5324 For Linux 64 anyway. Anyone who wants to do PRs to extend it to Linux 32, OSX and FreeBSD, feel free! Unfortunately, this is of no help with Win64, which uses its own unique system. DMD for Win32 already can catch C++ exceptions, but Win32 is a dead platform. This is an enabling technology that will confer on D the ability to catch C++ exceptions, which is key to interaction with native C++ libraries. Next up: actually catching C++ exceptions! Thanks to everyone who helped out with this.Is this hack required for dmd 2.070 to get stack-trace on Linux 64? ---------- import etc.linux.memoryerror; static if (is(typeof(registerMemoryErrorHandler))) registerMemoryErrorHandler(); ---------- -- Ilya
Jan 04 2016