Table of Contents
Toolchain Issues
Tango is in many respects pushing D to its boundaries, and as such exposes issues with the surrounding tool chains. Typically these issues have a ticket in our ticketing system, but as the repair of them usually are outside of our control, they aren't a normal part of our release processes (although they will show up in the relevant milestones when fixed). Thus you will see a list of the known issues here, with links to the relevant bug reports for the toolchains themselves.
In addition to these, there are some workarounds in Tango for compiler bugs. These doesn't always have a ticket in Tango's Trac, but may be listed here with the corresponding bugzilla entry and information on the workaround. When the compiler bug is fixed, the Tango code with the workaround should be cleaned.
Issues listed here should always have a corresponding bugzilla (or other issue tracker used) entry for it too. If it cannot be shown that the issue in fact is a problem with the tool, it should be removed from this page.
For DMD, it is now possible to vote for issues in the Bugzilla - vote for the issues below if you would like to improve the situation for Tango.
Known to affect both DMD and GDC
These will most likely need a fix in the former, and/or the specification.
- opEquals should return bool - #761 - Bugzilla 1989 - This is changed in D 2.0, there is nothing suggesting this will be fixed for D 1.0
- Variadic arguments and alignment - #1042 - Bugzilla 2004 & Bugzilla 2005
- opAssign in FilePath - #860 - Bugzilla 1792
DMD
- Non-functional pragma(lib) when used in a library - #678 - Bugzilla 2776
GDC
- Remove std.stdarg - #1001 - Bugzilla 1949
- Poly ASM problem - #467 - Bugzilla 1230 - Has workaround
Workarounds
GDC
- Variadic argument issues related to calling convention - #465 - Bugzilla 670, Bugzilla 1805 - Workaround in GNU version block in tango.text.convert.Layout, implemented in [3420].
- Unittest fails in tango.math.IEEE - #463 - Workaround implemented in [3192].
- Byte array failure on PPC64 - #1494 - Bugzilla 2688 - Workaround implemented in [4334]
Affecting 64 bit GDC through DMD's frontend:
- Implicit casting in templates - Bugzilla 617 - Workaround implemented in [3114]. 617 is now fixed in DMD, but workaround will not be reverted until a GDC release containing it.
Non-Compiler tools
dil
DSSS
- DSSS installs .svn/* files - #897 - Ticket 195 - Workaround implemented in [3770].
- Tango DSSS net install doesn't work on Win XP - #954
Other References
- General issues fought with the DMD toolchain
- Status on Debian using GDC - http://wiki.debian.org/gdc-4.1
Bad releases
Many compiler releases cause problems for Tango without the actual problems being reported as Tango tickets. Below is a list of compiler releases that are not supported by Tango (some may have been supported in the past, or work with Tango on a later date, but no work will be done to accomodate these compiler releases in the future.)
DMD
- 1.032
GDC
- 0.24
Fixed issues
DMD
- Linker error Layout - #740 - Bugzilla 1508 - Fixed in DMD 1.024 / 2.008
- Erroneous warnings due to forward references - #919 - Bugzilla 1843 - Fixed in DMD 1.028
- scope interfaces crash in unittests - #811 - Bugzilla 1719 - Fixed in DMD 1.027
- vtable error using templated interfaces - #1024 - Bugzilla 1978
- Path.created and modified are the same - #1191 - Bugzilla 2232
- Non functional pragma (lib, ) on Linux - #678 - Bugzilla 1663 - Fixed in DMD 1.037
- Warnings in tango.math.IEEE - #912 - Bugzilla 1257.
- -debuglib fallback isn't -defaultlib - #739 - Bugzilla 1662
GDC
- Float expression broken - #392
- Internal Compiler Error with GDC ("memmove") - #622 - Bugzilla 1490 - Fixed in GDC 0.25
- Casting of interfaces - #865 - Bugzilla 1844 - Fixed in GDC 0.25
- Array expansion problem - #618 - Bugzilla 929 - Fixed in GDC 0.25