Wiki Roadmap Timeline Tickets New Ticket Source Search Help / Guide About Trac Login

Ticket #1 (closed defect: fixed)

Opened 12 years ago

Last modified 11 years ago

Implement exception handling

Reported by: lindquist Assigned to:
Priority: major Milestone:
Component: Version:
Keywords: eh Cc:

Change History

11/14/07 23:32:38 changed by lindquist

  • milestone set to alpha release.

11/14/07 23:34:19 changed by lindquist

  • milestone deleted.

06/03/08 15:07:55 changed by ChristianK

Exception handling depends on two things:

  • the runtime that initiates throwing the exception and does the stack unwinding and
  • llvmdc's code generation that should write the tables required for stack unwinding

For runtime and EH data we could either use DMD's (found in trunk/tango/lib/compiler/llvmdc/deh2.d) or GCC's code. DMD's exception runtime has the advantage that it's easy to understand, GCC's is more complicated (and more platform independent, somehow tied into libunwind?) and might have some support already through LLVM's DwarfWriter.

Basically GCC's EH should be more future-proof, but DMD's straightforward way of implementing exceptions might be easier to get working quickly.

07/05/08 08:38:00 changed by ChristianK

  • status changed from new to closed.
  • resolution set to fixed.

Exception handling using the Dwarf EH tables and a separate unwinding library is now implemented and seems to work on x86 linux. Further issues should get their own separate bugs.

Copyright © 2008, LDC Development Team.