Support covariant maybe return types
[delight/core.git] / README
blob2d1fdb3b128cf5919c615046173397aa5b555a5a
1 D Front End for GCC - Release 0.24
3 Last update: August 22, 2007
5 Release Notes for 0.24
6   * Removed support for GCC 3.3.x
7   * Updated to DMD 1.020
8   * Fixed Bugzilla 1037, 1038 (gdc specific), 1043, 1045, 1046,
9     1031, 1032, 1034, 1065, 1109, 1191, 1137, 1152, 1208, 1325,
10     1329, 1898, 1400
11   * Fixed SourceForge issues 1689634, 1749622, 1721496, 1721435
13 Supported Systems
15     * GCC 3.4.x, 4.0.x, 4.1.x
16     * Linux (tested on Fedora Core 5 x86, x86_64, and PowerPC)
17     * Mac OS X 10.3.9 and 10.4.x
18     * FreeBSD 6.x
19     * Cygwin
20     * MinGW
21     * AIX (tested on 5.1)
23 Similar versions of the above systems should work and other Unix
24 platforms may work.  Although the compiler will probably work on most
25 architectures, the D runtime library will still need to be
26 updated to support them.
28 Requirements
29     * The base developer package for your system.  Generally, this
30       means binutils and a C runtime library.
31     * The MacOS X universal binary package requires XCode 2.4.1 or the
32       equivalent version of cctools.
33     * The gdmd wrapper script requires Perl.
35 Downloads
37     * Main package
38       http://sourceforge.net/projects/dgcc
39     * Build Instructions
40       http://dgcc.sourceforge.net/gdc/install.html
41       (or see INSTALL included in the main package)
43 Links
45     * This Project -- http://dgcc.sourceforge.net/
46     * The D Programming Language -- http://www.digitalmars.com/d/
47     * D Links Page -- http://digitalmars.com/d/dlinks.html
48     * The D.gnu newsgroup -- news://news.digitalmars.com/D.gnu
49     * For general D discussion, the digitalmars.D and
50       digitalmars.D.bugs newsgroups
51     * The GNU Compiler Collection -- http://gcc.gnu.org/
52     * Mac OS X binary distribution -- http://gdcmac.sourceforge.net/
54 Contact
55 David Friedman
56 e-mail: dvdfrdmn@users.sf.net
58 Status
60 Known Issues
61     * See the DStress (http://svn.kuehne.cn/dstress/www/dstress.html)
62       page for known failing cases.
63     * Debugging information may have a few problems.  To enable D name
64       mangling in gdb, apply this patch.
65       (http://dsource.org/projects/gdb-patches/)
66     * Some targets do not support once-only linking which is needed
67       for templates to work smoothly. A workaround is to manually
68       control template emission.  See the -femit-templates option
69       below.  For Darwin, Apple's GCC 3.x compiler supports one-only
70       linking, but GDC does not build with those sources.  There are
71       no problems with the stock GCC 4.x on Darwin.
72     * Complex floating point operations may not work the same as DMD.
73     * Some math functions behave differently due to different
74       implementations of the extended floating-point type.
75     * Volatile statements may not always do the right thing.
76     * Because of a problem on AIX, the linker will pull in more
77       modules than needed.
78       See: http://groups-beta.google.com/groups?hl=en&q=%22large+executables+on+AIX%22&qt_s=Search
79     * Some C libraries (Cygwin, MinGW, AIX) don't handle
80       floating-point formatting and parsing in a standard way.
82 Known Differences from DMD
84     * The type of _argptr in variadic functions is the target-specific
85       va_list type.  The only portable way to use _argptr is the
86       std.stdarg.va_arg template.  In particular, you cannot construct
87       a va_list from a pointer to data and expect it to work.
88     * In assembler code, direct access to parameters in naked
89       functions works differently.  Frame relative addressing through
90       [ESP+4] does work the same way.
91     * Currently, GDC uses the C calling convention for all functions
92       except those declared extern (Windows).
93     * GDC allows catch statements in finally blocks.
94     * pragma(lib) is not supported.
95     * Some targets do not have a distinct extended floating-point
96       type.  On these targets, real and double are the same size.
97     * On Win32 targets, GDC allocates 12 bytes for the real type, while
98       DMD allocates 10 bytes. This also applies to the components of
99       the creal type.
101 Inline Assembler Notes
103     * Getting GCC to respect the "naked" attribute is difficult.  It
104       is recommended that you use only assembler statements in a naked
105       function.
106     * Jumps from assembler statements will not run cleanups (auto and
107       finally)
109 See GDC.html for more information
111 License
113     This program is free software; you can redistribute it and/or modify
114     it under the terms of the GNU General Public License as published by
115     the Free Software Foundation; either version 2 of the License, or
116     (at your option) any later version.
118     This program is distributed in the hope that it will be useful,
119     but WITHOUT ANY WARRANTY; without even the implied warranty of
120     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
121     GNU General Public License for more details.
123     You should have received a copy of the GNU General Public License
124     along with this program; if not, write to the Free Software
125     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA