Allow returning something of type void in a function that returns void
[delight/core.git] / GDC.html
blob2c893a9087a28eb8db9c7e2e2dc3402111fdbbd7
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
5 <title>D Front End for GCC</title>
6 </head>
7 <body>
8 <h2>D Front End for GCC - Release 0.24<br>
9 </h2>
10 Last update: August 22, 2007<br>
11 <h3>Supported Systems</h3>
12 <ul>
13 <li>GCC 3.4.x, 4.0.x, 4.1.x<br>
14 </li>
15 <li>Linux (tested on Fedora Core 5 x86, x86_64, and PowerPC)<br>
16 </li>
17 <li>Mac OS X 10.3.9, 10.4.x<br>
18 </li>
19 <li>FreeBSD 6.x</li>
20 <li>Cygwin</li>
21 <li>MinGW</li>
22 <li>AIX (tested on 5.1)</li>
23 </ul>
25 Similar versions of the above systems should work and other Unix
26 platforms may
27 work.&nbsp;
28 Although the compiler will
29 probably work on most architectures, the D
30 runtime library will still need to be updated to support them.<br>
32 <h3>Requirements</h3>
37 The MacOS X universal binary package requires XCode 2.4.1 or the
38 equivalent version of cctools.
39 <h3>Downloads</h3>
44 <ul>
49 <li><a href="http://sourceforge.net/projects/dgcc">Main
50 package</a></li>
55 <li><a href="install.html">Build Instructions</a></li>
60 </ul>
65 <h3>Links</h3>
70 <ul>
75 <li><a href="http://dgcc.sourceforge.net/">GDC: D
76 Compiler for GCC</a><br>
81 </li>
86 <li><a href="http://www.digitalmars.com/d/">The D
87 Programming Language</a></li>
92 <li><a href="http://digitalmars.com/d/dlinks.html">D
93 Links Page</a><br>
98 </li>
103 <li><a href="news://news.digitalmars.com/D.gnu">The
104 D.gnu newsgroup</a></li>
109 <li>For general D discussion, the <a href="news://news.digitalmars.com/digitalmars.D">digitalmars.D</a>
110 and <a href="news://news.digitalmars.com/digitalmars.D.bugs">digitalmars.D.bugs</a>
111 newsgroups<br>
116 </li>
121 <li><a href="http://gcc.gnu.org/">The GNU Compiler
122 Collection</a></li>
127 <li><a href="http://gdcmac.sourceforge.net/">Mac
128 OS X binary
129 distribution</a><br>
134 </li>
139 </ul>
144 <h3>Contact</h3>
149 David Friedman<br>
154 e-mail: dvdfrdmn &lt;at&gt; users.sf.net<br>
159 <h3>Status<br>
164 </h3>
169 <h4>Known Issues </h4>
174 <ul>
179 <li>See the <a href="http://svn.kuehne.cn/dstress/www/dstress.html">DStress</a>
180 page for known failing cases.<br>
185 </li>
190 <li>Debugging information may have a few problems. To enable D
191 name
192 mangling in gdb, apply <a href="http://dsource.org/projects/gdb-patches/">this patch</a>.<br>
197 </li>
202 <li>Some targets do not support once-only linking. A workaround
203 is to
204 manually control template emission. See the <span style="font-family: monospace;">-femit-templates</span>
205 option below. For Darwin, Apple's GCC 3.x compiler supports
206 one-only linking, but GDC does not build with those sources. There are
208 problems with the stock GCC 4.x on Darwin.<br>
213 </li>
221 <ol>
229 </ol>
234 <li>Complex floating point operations may not work the same as
235 DMD.</li>
240 <li>Some math functions behave differently due to different
241 implementations of the extended floating-point type.</li>
246 <li>Volatile statements may not always do the right thing.</li>
251 <li>Because of <a href="http://groups-beta.google.com/groups?hl=en&amp;q=%22large+executables+on+AIX%22&amp;qt_s=Search">a
252 problem on AIX</a>, the linker will pull in more modules than
253 needed.<br>
258 </li>
263 <li>Some C libraries (Cygwin, MinGW, AIX) don't handle
264 floating-point
265 formatting and parsing in a standard way.<br>
270 </li>
275 </ul>
280 <h4>Known Differences from DMD</h4>
285 <ul>
290 <li>The type of <span style="font-family: monospace;">_argptr</span>
291 in variadic functions is the target-specific <span style="font-family: monospace;">va_list</span>
292 type.&nbsp; The only
293 portable way
294 to use <span style="font-family: monospace;">_argptr</span>
295 is the <span style="font-family: monospace;">std.stdarg.va_arg</span>
296 template.&nbsp; In particular, you cannot construct a <span style="font-family: monospace;">va_list</span> from a
297 pointer to data
298 an expect it to work.<br>
303 </li>
308 <li>In assembler code, direct access to parameters in naked
309 functions
310 works differently.&nbsp; Frame relative addressing through <span style="font-family: monospace;">[ESP+4]</span> does
311 work the same way.<br>
316 </li>
321 <li>Currently, GDC uses the C calling convention for all
322 functions
323 except those declared <span style="font-family: monospace;">extern
324 (Windows)</span>.</li>
329 <li>GDC allows <span style="font-family: monospace;">catch</span> statements in <span style="font-family: monospace;">finally</span>
330 blocks.</li>
335 <li><span style="font-family: monospace;">pragma(lib)</span>
336 is not
337 supported.</li>
342 <li>Some targets do not have a distinct extended floating-point
343 type.&nbsp; On these targets, <span style="font-family: monospace;">real</span>
344 and <span style="font-family: monospace;">double</span>
345 are the same
346 size.</li>
351 <li>On Win32, GDC allocates 12 bytes for the <span style="font-family: monospace;">real</span> type,
352 while DMD allocates
353 10 bytes. This also applies to the components of the <span style="font-family: monospace;">creal</span> type.<br>
358 </li>
363 </ul>
368 <h4>Inline Assembler Notes</h4>
373 <ul>
378 <li>Getting GCC to respect the "naked" attribute is
379 difficult.&nbsp;
380 It is recommended that you use only assembler statements in a naked
381 function. &nbsp;When generating position-independent code, accessing global symbols in a naked function will result in an error.</li>
386 <li>Jumps from assembler statements will not run cleanups (auto
388 finally)</li>
393 </ul>
398 <h3>Usage</h3>
403 <h4>Invoking gdc and gdmd</h4>
408 The compiler driver is named 'gdc' and accepts the standard GCC
409 options.&nbsp; There is also a script named 'gdmd' which has the
410 same
411 interface as the Digital Mars dmd.<br>
416 <br>
421 The mapping from DMD options to GCC is as follows:<br>
426 <table style="text-align: left; width: 50%;" border="1" cellpadding="2" cellspacing="2">
431 <tbody>
436 <tr>
441 <td style="vertical-align: top;">-c<br>
446 </td>
451 <td style="vertical-align: top;">-c<br>
456 </td>
461 </tr>
466 <tr>
471 <td style="vertical-align: top;">-D<br>
476 </td>
481 <td style="vertical-align: top;">-fdoc<br>
486 </td>
491 </tr>
496 <tr>
501 <td style="vertical-align: top;">-Dd&lt;docdir&gt;<br>
506 </td>
511 <td style="vertical-align: top;">-fdoc-dir=&lt;docdir&gt;<br>
516 </td>
521 </tr>
526 <tr>
531 <td style="vertical-align: top;">-Df&lt;filename&gt;<br>
536 </td>
541 <td style="vertical-align: top;">-fdoc-file=&lt;filename&gt;<br>
546 </td>
551 </tr>
556 <tr>
561 <td style="vertical-align: top;">-d</td>
566 <td style="vertical-align: top;">-fdeprecated</td>
571 </tr>
576 <tr>
581 <td style="vertical-align: top;">-debug[=&lt;arg&gt;]<br>
586 </td>
591 <td style="vertical-align: top;">-fdebug[=&lt;arg&gt;]<br>
596 </td>
601 </tr>
606 <tr>
611 <td style="vertical-align: top;">-g<br>
616 </td>
621 <td style="vertical-align: top;">-g<br>
626 </td>
631 </tr>
636 <tr>
641 <td style="vertical-align: top;">-inline<br>
646 </td>
651 <td style="vertical-align: top;">-finline-functions<br>
656 </td>
661 </tr>
666 <tr>
671 <td style="vertical-align: top;">-I&lt;path&gt;<br>
676 </td>
681 <td style="vertical-align: top;">-I
682 &lt;path&gt;<br>
687 </td>
692 </tr>
695 <tr>
697 <td style="vertical-align: top;">-J&lt;path&gt;<br>
699 </td>
701 <td style="vertical-align: top;">-J&lt;path&gt;<br>
703 </td>
705 </tr>
707 <tr>
712 <td style="vertical-align: top;">-L&lt;arg&gt;<br>
717 </td>
722 <td style="vertical-align: top;">-Wl,&lt;arg&gt;<br>
727 </td>
732 </tr>
737 <tr>
742 <td style="vertical-align: top;">-O<br>
747 </td>
752 <td style="vertical-align: top;">-O3 without
753 inlining (may not be
754 equivalent)<br>
759 </td>
764 </tr>
769 <tr>
774 <td style="vertical-align: top;">-o-<br>
779 </td>
784 <td style="vertical-align: top;">-fsyntax-only<br>
789 </td>
794 </tr>
799 <tr>
804 <td style="vertical-align: top;">-od&lt;dir&gt;<br>
809 </td>
814 <td style="vertical-align: top;">no equivalent; use
815 the wrapper
816 script<br>
821 </td>
826 </tr>
831 <tr>
836 <td style="vertical-align: top;">-of&lt;file&gt;</td>
841 <td style="vertical-align: top;">-o
842 &lt;file&gt;<br>
847 </td>
852 </tr>
857 <tr>
862 <td style="vertical-align: top;">-op&lt;dir&gt;<br>
867 </td>
872 <td style="vertical-align: top;">no equivalent; use
873 the wrapper
874 script<br>
879 </td>
884 </tr>
889 <tr>
894 <td style="vertical-align: top;">-profile<br>
899 </td>
904 <td style="vertical-align: top;">(see the GCC manual
906 profiling
907 options)</td>
912 </tr>
917 <tr>
922 <td style="vertical-align: top;">-quiet<br>
927 </td>
932 <td style="vertical-align: top;">no equivalent<br>
937 </td>
942 </tr>
947 <tr>
952 <td style="vertical-align: top;">-release<br>
957 </td>
962 <td style="vertical-align: top;">-frelease<br>
967 </td>
972 </tr>
977 <tr>
982 <td style="vertical-align: top;">-run<br>
987 </td>
992 <td style="vertical-align: top;">no equivalent; use
993 the wrapper
994 script</td>
999 </tr>
1004 <tr>
1009 <td style="vertical-align: top;">-unittest<br>
1014 </td>
1019 <td style="vertical-align: top;">-funittest<br>
1024 </td>
1029 </tr>
1034 <tr>
1039 <td style="vertical-align: top;">-version=&lt;arg&gt;<br>
1044 </td>
1049 <td style="vertical-align: top;">-fversion=&lt;arg&gt;<br>
1054 </td>
1059 </tr>
1064 <tr>
1069 <td style="vertical-align: top;">-w<br>
1074 </td>
1079 <td style="vertical-align: top;">-Wall<br>
1084 </td>
1089 </tr>
1094 <tr>
1099 <td style="vertical-align: top;">&lt;.ddoc
1100 file&gt;<br>
1105 </td>
1110 <td style="vertical-align: top;">-fdoc-inc=&lt;.ddoc
1111 file&gt;<br>
1116 </td>
1121 </tr>
1129 </tbody>
1130 </table>
1135 <br>
1140 Other options:<br>
1145 <table style="text-align: left; width: 75%;" border="1" cellpadding="2" cellspacing="2">
1150 <tbody>
1155 <tr>
1160 <td style="vertical-align: top;">-f[no-]bounds-check<br>
1165 </td>
1170 <td style="vertical-align: top;">Controls array
1171 bounds checking<br>
1176 </td>
1181 </tr>
1186 <tr>
1191 <td style="vertical-align: top;">-femit-templates[=normal|private|all|none|auto]<br>
1196 -f[no-]emit-templates<br>
1201 </td>
1206 <td style="vertical-align: top;">Controls whether or
1207 not template
1208 code is emitted.<br>
1213 <br>
1218 "normal" -- Emit templates, expecting multiple copies to be merged by
1220 linker.<br>
1225 "private" -- Emit templates, but make them private to the translation
1226 unit.&nbsp; The executable will have multiple copies of code and
1227 data.<br>
1232 "all" -- Emit all template instances with public visibility.&nbsp;
1234 this even if they would not normally be emitted.<br>
1239 "none" -- Do not emit templates at all.<br>
1244 "auto" -- For targets that support templates, the "full" mode is
1245 used.&nbsp; Otherwise, the "private" mode is used.<br>
1250 <br>
1255 "none" and -fno-emit-templates are synonyms.<br>
1260 "auto" and -femit-templates are synonyms.<br>
1265 </td>
1270 </tr>
1275 <tr>
1280 <td style="vertical-align: top;">-fall-sources<br>
1285 </td>
1290 <td style="vertical-align: top;">For each source
1291 file on the
1292 command line, semantically process each file preceding it.&nbsp;
1294 this if
1295 compilation errors occur due to complicated circular module
1296 references.&nbsp; This will slow compilation noticeably.<br>
1301 </td>
1306 </tr>
1311 <tr>
1316 <td style="vertical-align: top;">-fdump-source<br>
1321 </td>
1326 <td style="vertical-align: top;">Dump decoded UTF-8
1327 text and
1328 source from HTML to &lt;source&gt;.utf-8 and
1329 &lt;source&gt;.d.utf-8.<br>
1334 </td>
1339 </tr>
1347 </tbody>
1348 </table>
1353 <h4>Extensions</h4>
1357 <h5>Extended Assembler</h5>
1361 GDC implements a GCC extension that allows inline assembler with D
1362 expression operands. &nbsp;It is available on nearly all targets, not
1363 just i386. &nbsp;The syntax differs from the C language extension in
1364 the follow ways.
1365 <ul>
1369 <li>Statements start with '<span style="font-family: monospace;">asm { ...</span>', just like the regular DMD inline assembler.</li>
1373 <li>It is not necesary to put parentheses around operands.</li>
1377 <li>Instruction templates can be compile-time string constants, not
1378 just string literals. &nbsp;If the template is not a string literal,
1379 use parenthesis to indicate that it is not an opcode.</li>
1383 </ul>
1387 Unlike i386 inline assembler statements, extended assembler statements do not prevent a function from being inlined.<br>
1391 <br>
1395 See the GCC manual for more information about this extension.<br>
1399 <br>
1403 Example:<br>
1407 <br>
1411 <div style="margin-left: 40px;"><span style="font-family: monospace;">uint invert(uint v)</span><br style="font-family: monospace;">
1415 <span style="font-family: monospace;">{</span><br style="font-family: monospace;">
1419 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; uint result;</span><br style="font-family: monospace;">
1423 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; version(X86)</span><br style="font-family: monospace;">
1427 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;asm{ "notl %[iov]" : [iov] "=r" result : "0" v; }</span><br style="font-family: monospace;">
1431 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; else version(PPC)</span><br style="font-family: monospace;">
1435 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;asm{ "nor %[oresult],%[iv],%[iv]" : [oresult] "=r" result : [iv] "r" v; }</span><br style="font-family: monospace;">
1439 <span style="font-family: monospace;">&nbsp;&nbsp;&nbsp; return result;</span><br style="font-family: monospace;">
1443 <span style="font-family: monospace;">}</span><br style="font-family: monospace;">
1447 </div>
1451 <h5>Declaration and Type Attributes</h5>
1455 (This extension is a work in progress.)<br>
1459 <br>
1463 GDC implements the GCC <span style="font-family: monospace;">__attribute__</span> extension with two pragmas:<br>
1467 <br>
1471 <span style="font-family: monospace;"><span style="font-weight: bold;">pragma</span>(<span style="font-weight: bold;">GNU_attribute</span>,<span style="font-style: italic;"> name1</span>(<span style="font-style: italic;">arg1</span>, <span style="font-style: italic;">arg2</span>, ...), ...) <span style="font-style: italic;">declarations</span>...</span><br style="font-family: monospace;">
1475 <br>
1479 <span style="font-family: monospace;"><span style="font-weight: bold;">pragma</span>(<span style="font-weight: bold;">GNU_set_attribute</span>, <span style="font-style: italic;">symbol</span>, <span style="font-style: italic;">name1</span>(<span style="font-style: italic;">arg1</span>, <span style="font-style: italic;">arg2</span>...), ...);</span><br>
1483 <br>
1487 If an attribute has no arguments, the argument list may be omitted.<br>
1491 <br>
1495 The first form applies to declarations directly contained in the
1496 pragma. &nbsp;The second form affects the given symbol. &nbsp;See the
1497 GCC manual for a list of attributes that can be set. &nbsp;Not all
1498 attributes are supported yet by GDC. &nbsp;Also, the interaction
1499 between these extended attributes and D languge attributes (alignment,
1500 for example) is not well defined.
1501 <h3>Changes</h3>
1503 <a name="0.24"></a>0.24:
1504 <ul>
1505 <li>Removed support for GCC 3.3.x</li>
1506 <li>Updated to DMD 1.020</li>
1507 <li>Fixed Bugzilla 1037, 1038 (gdc specific), 1043, 1045, 1046,</li>
1508 1031, 1032, 1034, 1065, 1109, 1191, 1137, 1152, 1208, 1325,</li>
1509 1329, 1898, 1400</li>
1510 <li>Fixed SourceForge issues 1689634, 1749622, 1721496, 1721435</li>
1511 </ul>
1512 <a name="0.23"></a>0.23:
1513 <ul>
1514 <li>Added support for 64-bit targets</li>
1515 <li>Added multilib support</li>
1516 <li>Updated to DMD 1.007</li>
1517 <li>Fixed Bugzilla 984, 1013</li>
1518 </ul>
1519 <a name="0.22"></a>0.22:
1520 <ul>
1521 <li>Added support for GCC 4.1.x</li>
1522 <li>Support for GCC 3.3.x is deprecated</li>
1523 <li>Updated to DMD 1.004</li>
1524 <li>Fixed Bugzilla 836, 837, 838, 839, 841, 843, 844, 889, 896</li>
1525 <li>Fixed problems with missing debug information</li>
1526 <li>Added Rick Mann's -frameowrk patch for gdmd</li>
1527 </ul>
1528 <a name="0.21"></a>0.21:
1529 <ul>
1530 <li>Updated to DMD 1.00</li>
1531 <li>Fixed Bugzilla 695, 696, 737, 738, 739, 742, 743, 745</li>
1532 <li>Implemented GCC extended assembler</li>
1533 <li>Implemented basic support for GCC attributes</li>
1534 </ul>
1535 <a name="0.20"></a>0.20:
1536 <ul>
1537 <li>Updated to DMD 0.177</li>
1538 <li>Fixes for synchronized code generation</li>
1539 <li>Better support for cross-hosted builds</li>
1540 <li>Fixed Bugzilla 307, 375, 403, 575, 578</li>
1541 <li>Applied Anders Bj&ouml;rklund's MacOS X build patches</li>
1542 </ul>
1543 <a name="0.19"></a>0.19:
1544 <ul>
1545 <li>Fixed D Bugzilla bugs 141(gdc), 157, 162, 164, 171, 174,
1546 175, 192, 229</li>
1547 <li>Applied Dave Fladebo's suggestion for -O3 in gdmd</li>
1548 <li>Updated to DMD 0.162</li>
1549 <li>The version symbol for FreeBSD is now "freebsd"</li>
1550 <li>Enabled std.loader for FreeBSD</li>
1551 <li>Implement offsetof in assembler</li>
1552 <li>Support building with Apple's GCC (4.0 only)</li>
1553 <li>Fix parallel builds</li>
1554 </ul>
1555 <a name="0.18"></a>0.18:<br>
1556 <ul>
1557 <li>Fixes</li>
1561 <ul>
1562 <li>ICE on assignment arithmetic</li>
1563 <li>Problems mixing D and assembler floating point operations</li>
1564 <li>Mac OS X 10.2 build problems</li>
1565 <li>The gdc driver no longer compiles C source as C++.<br>
1566 </li>
1567 <li>Many others...</li>
1571 </ul>
1572 <li>Improvements</li>
1576 <ul>
1577 <li>Updated to DMD 0.157.</li>
1578 <li>Added support for PowerPC Linux.<br>
1579 </li>
1580 <li>Added partial support for SkyOS.</li>
1581 <li>Compiler can be relocated to another directory.<br>
1582 </li>
1586 </ul>
1587 </ul>
1588 <a name="0.17"></a>0.17:<br>
1589 <ul>
1590 <li>Fixes</li>
1594 <ul>
1595 <li>Mixed complex/float operations on GCC 4.0 (<a href="http://www.digitalmars.com/drn-bin/wwwnews?D.gnu/1485">D.gnu/1485</a>)</li>
1596 <li>Applied Thomas Kuhne's HTML line number fix</li>
1597 <li>Foreach/nested functions in templates (<a href="http://www.digitalmars.com/drn-bin/wwwnews?D.gnu/1514">D.gnu/1514</a>)</li>
1598 <li>Use correct default initializer when allocating arrays of
1599 typedef'd types</li>
1600 <li>Recursive calls to nested functions (<a href="http://www.digitalmars.com/drn-bin/wwwnews?D.gnu/1525">D.gnu/1525</a>)</li>
1604 </ul>
1605 <li>Improvements</li>
1609 <ul>
1610 <li>Updated to DMD 0.140<br>
1611 </li>
1615 </ul>
1616 </ul>
1617 <a name="0.16"></a>0.16:<br>
1618 <ul>
1619 <li>Fixes</li>
1623 <ul>
1624 <li>Concatenating a array and single element</li>
1625 <li>"__arrayArg already defined"</li>
1626 <li>ICE on nested foreach statements (<a href="http://www.digitalmars.com/drn-bin/wwwnews?D.gnu/1393">D.gnu/1393</a>)</li>
1627 <li>Inline assembler</li>
1631 <ul>
1632 <li>Functions returning floating point types</li>
1636 </ul>
1640 <ul>
1641 <li>Spurious error on scaled register without a base
1642 register</li>
1643 <li>Access to locals by var+ofs[EBP] now works with
1644 optimization.</li>
1645 <li>Can now guess operand size from referenced variables.</li>
1649 </ul>
1650 <li>Thunks errors with reimplemented interfaces (e.g., Mango)<br>
1651 </li>
1655 </ul>
1656 <li>Improvements</li>
1660 <ul>
1661 <li>Support GCC 4.0.x</li>
1662 <li>Updated to DMD 0.137</li>
1663 <li>Support DW_LANG_D for DWARF debugging</li>
1664 <li>Support compiling multiple sources to a single object
1665 with GCC
1666 3.4.x.<br>
1667 </li>
1671 </ul>
1672 </ul>
1673 <br>
1674 <a name="0.15"></a>0.15:<br>
1675 <div style="margin-left: 40px;">&nbsp;&nbsp;&nbsp;
1676 Updated to DMD 0.128<br>
1677 </div>
1678 <br>
1679 <a name="0.14"></a>0.14:<br>
1680 <ul>
1681 <li>Fixes</li>
1685 <ul>
1686 <li>Classes nested in functions actually work now.</li>
1687 <li>Fix for newest versions of the GNU assembler.<br>
1688 </li>
1692 </ul>
1693 <li>Improvements</li>
1697 <ul>
1698 <li>Updated to DMD 0.127<br>
1699 </li>
1703 </ul>
1704 </ul>
1705 <br>
1706 <a name="0.13"></a>0.13:<br>
1707 <ul>
1708 <li>Fixes</li>
1712 <ul>
1713 <li>Cygwin/MinGW assembler problem</li>
1717 </ul>
1718 <li>Improvements</li>
1722 <ul>
1723 <li>Updated to DMD 0.126.</li>
1724 <li>Calling nested functions with delegates is faster.</li>
1725 <li>The "check-target-libphobos" uses unit tests and runtime
1726 checks.<br>
1727 </li>
1731 </ul>
1732 </ul>
1733 <a name="0.12.1"></a>0.12.1:<br>
1734 <ul>
1735 <li>Fixes</li>
1739 <ul>
1740 <li>Compilation errors and crashes with -fpic</li>
1741 <li>Crashes with interfaces on Cygwin/MinGW</li>
1742 <li>Support the -mno-cygwin option<br>
1743 </li>
1747 </ul>
1748 </ul>
1749 <a name="0.12"></a>0.12:<br>
1750 <ul>
1751 <li>Fixes</li>
1755 <ul>
1756 <li>Various problems building MinGW in MSYS</li>
1757 <li>Mango "endless output"</li>
1758 <li>Build problems with gcc 3.4.1</li>
1759 <li>Various problems revealed by dmdscript<br>
1760 </li>
1761 <li>Error message now go to standard error</li>
1762 <li>DStress catch_01, catch_02, new_04, switch_19, throw_02,
1764 others.</li>
1768 </ul>
1769 <li>Improvements</li>
1773 <ul>
1774 <li>Updated to DMD 0.125</li>
1775 <li>New target: AIX</li>
1776 <li>GDC and DMD versions are reported with "gcc --version"</li>
1777 <li>Take advantage of DMD template improvements on<br>
1778 </li>
1782 </ul>
1783 <li>Changes</li>
1787 <ul>
1788 <li>std.c.unix is now std.c.unix.unix</li>
1789 <li>The runtime library is now "libgphobos" to avoid
1790 conflicts with
1791 DMD.</li>
1792 <li>The dmd wrapper script...</li>
1796 <ul>
1797 <li>Is now named "gdmd".</li>
1798 <li>Looks for gdc in its own directory instead of searching
1800 path</li>
1801 <li>Requires a comma after the "-q" option.<br>
1802 </li>
1806 </ul>
1810 </ul>
1811 </ul>
1812 <a name="0.11"></a>0.11:<br>
1813 <ul>
1814 <li>Fixes</li>
1818 <ul>
1819 <li>Reversed structure compare</li>
1820 <li>Correct meaning of '-L' option in wrapper script</li>
1821 <li>Static data GC bug on Linux</li>
1825 </ul>
1826 <li>Improvements</li>
1830 <ul>
1831 <li>Updated to DMD 0.121</li>
1832 <li>New target: MingGW</li>
1833 <li>Included Anders F Bj&ouml;rklund's man pages.<br>
1834 </li>
1835 <li>It is now possible to build a cross-compiler.&nbsp;
1836 Only MingGW
1837 is supported out-of-the-box, however.</li>
1841 </ul>
1842 </ul>
1846 <h3>License</h3>
1850 &nbsp;&nbsp;&nbsp; This program is free software; you can redistribute it and/or modify<br>
1854 &nbsp;&nbsp;&nbsp; it under the terms of the GNU General Public License as published by<br>
1858 &nbsp;&nbsp;&nbsp; the Free Software Foundation; either version 2 of the License, or<br>
1862 &nbsp;&nbsp;&nbsp; (at your option) any later version.<br>
1866 <br>
1870 &nbsp;&nbsp;&nbsp; This program is distributed in the hope that it will be useful,<br>
1874 &nbsp;&nbsp;&nbsp; but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
1878 &nbsp;&nbsp;&nbsp; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&nbsp; See the<br>
1882 &nbsp;&nbsp;&nbsp; GNU General Public License for more details.<br>
1886 <br>
1890 &nbsp;&nbsp;&nbsp; You should have received a copy of the GNU General Public License<br>
1894 &nbsp;&nbsp;&nbsp; along with this program; if not, write to the Free Software<br>
1898 &nbsp;&nbsp;&nbsp; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA&nbsp; 02111-1307&nbsp; USA<br>
1903 </body>
1904 </html>