Language Specification /
Current Diff
Difference (previous author) (Change, Edit, normal page display)
Changed: 1c1,641
|
Describe the new page here. |
|
From LanguageSpecification. I'm sorry that I currently (after release 0.66, Jun 9 2003) can't provide an update to the PDF. For some people this raw diff output may be helpful to locate the differences in the documentation at least. -- HelmutLeitner <pre> =================== acknowledgements.html ==================== =================== alpha.html ==================== 17c17 < <p><small>Last update Feb 20, 2003</small> --- > <small>Last update May 15, 2003</small> 22c22,47 < This is the D compiler for Win32. --- > <ul> > <li> D for <a href="#Win32">Win32</a> > <li> D for <a href="#linux">x86 Linux</a> > <li> <a href="#general">general</a> > </ul> > > <h2>Files Common to Win32 and Linux</h2> > > <dl> > > <dt>\dmd\src\phobos\ > <dd>D runtime library source > > <dt>\dmd\src\dmd\ > <dd>D compiler front end source under dual (GPL and Artistic) license > > <dt>\dmd\html\d\ > <dd>Documentation > > <dt>\dmd\samples\d\ > <dd>Sample D programs > > </dl> > > <hr> > <a name="Win32"><h1>Win32 D Compiler</h1></a> 40,51d64 < <dt>\dmd\src\phobos\ < <dd>D runtime library source < < <dt>\dmd\src\dmd\ < <dd>D compiler front end source under dual (GPL and Artistic) license < < <dt>\dmd\html\d\ < <dd>Documentation < < <dt>\dmd\samples\d\ < <dd>Sample D programs < 228a242,453 > > <hr> > <a name="linux"><h1>Linux D Compiler</h1></a> > > <h2>Files</h2> > > <dl> > > <dt>/dmd/bin/dmd > <dd>D compiler executable > > <dt>/dmd/bin/dumpobj > <dd>Elf file dumper > > <dt>/dmd/bin/obj2asm > <dd>Elf file disassembler > > <dt>/dmd/bin/dmd.conf > <dd>Global compiler settings (copy to /etc/dmd.conf) > > <dt>/dmd/lib/libphobos.a > <dd>D runtime library (copy to /usr/lib/libphobos.a) > > </dl> > > <h2>Requirements</h2> > > <ul> > <li> 32 bit x86 Linux operating system > > <li> > <a HREF=" > D compiler</a> for Linux > > <li> Gnu C compiler (gcc) > > </ul> > > <h2>Installation</h2> > > <ol> > > <li> Unzip the archive into your home directory. > It will create > a ~/dmd directory with all the files in it. > All the tools are command line tools, which means > they are run from a console window. > > <li> Edit the file ~/dmd/bin/dmd.conf to put the path in to > where the phobos source files are. > > <li> Copy dmd.conf to /etc: > > <pre> > cp dmd/bin/dmd.conf /etc > </pre> > > <li> Give execute permission to the following files: > > <pre> > chmod u+x dmd/bin/dmd dmd/bin/obj2asm dmd/bin/dumpobj > </pre> > > <li> Put dmd/bin on your PATH, > or copy the linux executables > to /usr/local/bin > > <li> Copy the library to /usr/lib: > > <pre> > cp dmd/lib/libphobos.a /usr/lib > </pre> > > </ol> > > <h2>Compiler Arguments and Switches</h2> > > <dl><dl> > <dt>dmd files... -switch... > <p> > <dt>files... > <dd> > <table border=1 cellpadding=4 cellspacing=0 summary="File Extensions"> > <tr> > <th>Extension > <th>File Type > <tr> > <td>none > <td>D source files > <tr> > <td>.d > <td>D source files > <tr> > <td>.o > <td>Object files to link in > <tr> > <td>.a > <td>Library files to link in > <tr> > </table> > <dt>-c</dt> > <dd>compile only, do not link > <dt>-d</dt> > <dd>allow deprecated features > <dt>-debug</dt> > <dd>compile in debug code > <dt>-debug=level</dt> > <dd>compile in debug code <= level > <dt>-debug=ident</dt> > <dd>compile in debug code identified by ident > <dt>-g</dt> > <dd>add symbolic debug info > <dt>-gt</dt> > <dd>add trace profiling hooks (not supported under linux) > <dt>-inline > <dd>inline expand functions > <dt>-Ipath > <dd>where to look for imports. path is a ; separated > list of paths. Multiple -I's can be used, and the paths > are searched in the same order. > <dt>-Llinkerflag > <dd>pass linkerflag to the linker, for example, > -M > <dt>-O</dt> > <dd>optimize > <dt>-oobjdir</dt> > <dd>write object files to directory objdir instead > of to the current directory > <dt>-o filename</dt> > <dd>name object file (-c) or executable > file (no -c) filename > <dt>-release</dt> > <dd>compile release version > <dt>-unittest</dt> > <dd>compile in unittest code > <dt>-v</dt> > <dd>verbose > <dt>-version=level</dt> > <dd>compile in version code >= level > <dt>-version=ident</dt> > <dd>compile in version code identified by ident > </dl></dl> > > <h2>Linking</h2> > > Linking is done directly by the dmd compiler after a successful > compile. To prevent dmd from running the linker, use the > -c switch. > <p> > > The actual linking is done by running gcc. > This ensures compatibility with modules compiled with gcc. > > <h2>Environment Variables</h2> > > The D compiler dmd uses the following environment variables: > > <dl> > > <dt>DFLAGS > <dd>The value of DFLAGS is treated as if it were appended to the > command line to dmd. > > </dl> > > <h2>dmd.conf Initialization File</h2> > > dmd will look for the initialization file dmd.conf > in the directory /etc. If found, environment variable > settings in the file will override any existing settings. > This is handy to make dmd independent of programs with > conflicting use of environment variables. > <p> > > Environment variables follow the [Environment] section > heading, in name=value pairs. Comments are lines that start with ;. > For example: > <pre> > ; dmd.conf file for dmd > ; Names enclosed by %% are searched for in the existing environemnt > ; and inserted. The special name %@P% is replaced with the path > ; to this file. > [Environment] > DFLAGS="-I%@P%\..\src\phobos" > </pre> > > <h2>Differences from Win32 version</h2> > > <ul> > <li> String literals are read-only. Attempting to write to them > will cause a segment violation. > > <li> The configuration file is /etc/dmd.conf > </ul> > > <h2>Linux Bugs</h2> > > <ul> > <li> -g is not implemented, because I haven't figured out how to > do it yet. gdb still works, though, at the global symbol level. > > <li> The code generator output has not been tuned yet, so it > can be bloated. > > <li> Shared libraries cannot be generated. > > <li> The exception handling is not compatible with the way g++ > does it. I don't know if this is an issue or not. > </ul> > > <hr> > <a name="general"><h1>General</h1></a> =================== arrays.html ==================== =================== attribute.html ==================== =================== changelog.html ==================== 26a27,30 > <li> What's new for <a href="#new066">D 0.66</a> > <li> What's new for <a href="#new065">D 0.65</a> > <li> What's new for <a href="#new064">D 0.64</a> > <li> What's new for <a href="#new063">D 0.63</a> 46c50 < D compiler</a> for Win32 --- > D compiler</a> for Win32 and x86 linux 47a52,110 > </ul> > > <hr><!-- ======================================================= --> > <a name="new066"><h3>What's New for D 0.66</h3></a> > > <small>Jun 8, 2003</small> > > <ul> > <li> Added <a href="phobos.html#uri">uri</a> module. > <li> Added <a href="phobos.html#utf">utf</a> module. > <li> Added constant folding for ?: operator. > <li> Zero initialized structs no longer need to link to > the module the struct was defined in. > <li> Private imports now supported. > <li> Class names common to multiple modules no longer collide, > but this required a change to how class names are mangled. > Hence, existing libraries will need to be recompiled. > <li> templates of the form: > <pre> > template foo(T:T[]) > </pre> > now correctly resolve T in foo(int[]) to int rather than int[]. > </ul> > > <hr><!-- ======================================================= --> > <a name="new065"><h3>What's New for D 0.65</h3></a> > > <small>May 13, 2003</small> > > <h4>linux version</h4> > > <ul> > <li> Another bad section name bug is hopefully fixed. > </ul> > > <hr><!-- ======================================================= --> > <a name="new064"><h3>What's New for D 0.64</h3></a> > > <small>May 12, 2003</small> > > <h4>linux version</h4> > > <ul> > <li> dmd.conf now needs to be installed as > /etc/dmd.conf. > <li> phobos.a has been renamed as libphobos.a > and been placed in the /usr/lib directory. > <li> dmd will now do the link step automatically. > <li> The bad section name bug is hopefully fixed. > </ul> > > <hr><!-- ======================================================= --> > <a name="new063"><h3>What's New for D 0.63</h3></a> > > <small>May 10, 2003</small> > > <ul> > <li> Added linux version. Thanks to Burton Radons and > Pat Nelson for the help. =================== class.html ==================== =================== comparison.html ==================== 21c21 < <small>Last modified Mar 30, 2003.</small> --- > <small>Last modified May 30, 2003.</small> 112,119d111 < <td>Covariant return types < <td align="center" bgcolor="#00FF00"><a href="function.html#covariant">Yes</a> < <td align="center" bgcolor="red">No < <td align="center" bgcolor="#00FF00">Yes < <td align="center" bgcolor="red">No < <td align="center" bgcolor="red">No < < <tr> 248c240 < <td>Modules --- > <td><a href="#Modules">Modules</a> 440c432 < <td>Support all C types --- > <td><a href="#Ctypes">Support all C types</a> 482,483c474,475 < <td align="center" bgcolor="#00FF00">Yes < <td align="center" bgcolor="#00FF00">Yes --- > <td align="center" bgcolor="red">No > <td align="center" bgcolor="red">No 542a535,540 > <dt><a name="Modules">Modules</a> > <dd> Many correctly argue that C++ doesn't really have modules. > But C++ namespaces coupled with header files share many features > with modules. > <p> > 562a561,564 > <p> > > <dt><a name="Ctypes">Support all C types</a> > <dd>C99 adds many new types not supported by C++. =================== cpptod.html ==================== =================== ctod.html ==================== =================== dbc.html ==================== =================== declaration.html ==================== =================== dlinks.html ==================== 22c22 < <small>Last update Apr 3, 2003</small> --- > <small>Last update May 4, 2003</small> 129a130,133 > > <li> <a href=" > > <li> <a href=" 158a163 > <img src="d001.jpg" border=1 alt="by Christopher Sauls"> =================== dstyle.html ==================== 19c19 < <p><small>Last update Aug 16, 2002</small> --- > <p><small>Last update May 25, 2002</small> 93c93,94 < <dd>Module names are all lower case. --- > <dd>Module names are all lower case. This avoids problems dealing > with case insensitive file systems. =================== errors.html ==================== =================== expression.html ==================== =================== faq.html ==================== =================== float.html ==================== =================== function.html ==================== 21c21 < <small>Last update Feb 28, 2003</small> --- > <small>Last update May 30, 2003</small> 324a325,354 > Nested functions always have the D function linkage type. > <p> > > Unlike module level declarations, declarations within function > scope are processed in order. This means that two nested functions > cannot mutually call each other: > > <pre> > void test() > { > void foo() { bar(); } // error, bar not defined > void bar() { foo(); } // ok > } > </pre> > > The solution is to use a delegate: > > <pre> > void test() > { > void delegate() fp; > void foo() { fp(); } > void bar() { foo(); } > fp = &bar; > } > </pre> > > Future directions: This restriction may be removed. > > 406a437,440 > <p> > > Future directions: Function pointerss and delegates may merge > into a common syntax and be interchangable with each other. =================== future.html ==================== =================== garbage.html ==================== =================== html.html ==================== =================== iasm.html ==================== =================== interface.html ==================== =================== intro.html ==================== 17c17 < <small>Last update Mar 13, 2003</small> --- > <small>Last update May 25, 2003</small> 60,66c60,68 < Download the <a href="alpha.html">current</a> < version of the compiler for Win32 and try it out! < Burton Radons has also prepared a < <a href=" < < <p> < --- > Download the <a href="alpha.html">current version</a> > of the compiler for Win32 and x86 Linux and try it out! > Burton Radons has also prepared a > <a href=" > <p> > > Alternatively, this document also exists as a > <a href=" > suitable for printing. =================== lex.html ==================== =================== memory.html ==================== =================== model.html ==================== =================== module.html ==================== 19c19 < <p><small>Last update Mar 19, 2002</small> --- > <small>Last update May 28, 2003</small> 141c141 < into another module, all its top level declarations are --- > into another module, by default all its top level declarations are 189a190,198 > > If the import is private, such as: > > <pre> > module abc; > private import def; > </pre> > > then def is not searched when another module imports abc. =================== operatoroverloading.html ==================== =================== overview.html ==================== =================== phobos.html ==================== 21c21 < <p><small>Last update Feb 15, 2003</small> --- > <small>Last update May 24, 2003</small> 169a170,175 > <dt><a href="#uri">uri</a> > <dd>Encode and decode Uniform Resource Identifiers (URIs). > > <dt><a href="#utf">utf</a> > <dd>Encode and decode utf character encodings. > 2237a2244,2356 > > </dl></dl> > > <hr><!-- ===================================== --> > <a name="uri"><h2>uri</h2></a> > > Encode and decode Uniform Resource Identifiers (URIs). > URIs are used in internet transfer protocols. > Valid URI characters consist of letters, digits, and > the characters ;/?:@&=+$,-_.!~*'(). Escape sequences > consist of '%' followed by two hex digits. > > <dl><dl> > <dt> char[] decode(char[] encodedURI) > <dd> Decodes the URI string encodedURI into a UTF-8 string > and returns it. Escape sequences that resolve to valid URI > characters are not replaced. Escape sequences that resolve > to the '#' character are not replaced. > <p> > > <dt> char[] decodeComponent(char[] encodedURIComponent) > <dd> Decodes the URI string encodedURI into a UTF-8 string > and returns it. All escape sequences are decoded. > <p> > > <dt> char[] encode(char[] uri) > <dd> Encodes the UTF-8 string uri into a URI and returns > that URI. Any character not a valid URI character is escaped. > The '#' character is not escaped. > <p> > > <dt> char[] encodeComponent(char[] uriComponent) > <dd> Encodes the UTF-8 string uri into a URI and returns > that URI. Any character not a letter, digit, or one of > -_.!~*'() is escaped. > > </dl></dl> > > <hr><!-- ===================================== --> > <a name="utf"><h2>utf</h2></a> > > Encode and decode UTF-8, UTF-16 and UTF-32 strings. > For more information on UTF-8, see > <a href=" > <p> > > Note: For Win32 systems, the C wchar_t type > is UTF-16 and corresponds to the D wchar type. > For linux systems, the C wchar_t type > is UTF-32 and corresponds to the D utf.dchar type. > <p> > > UTF character support is restricted to (0 <= character <= 0x10FFFF). > > <dl><dl> > <dt> class UtfError? > <dd> Exception class that is thrown upon any errors. > The members are: > <dl> > <dt>idx > <dd>Set to the index of the start of the offending UTF sequence. > </dl> > <p> > > <dt> alias ... dchar > <dd> An alias for a single UTF-32 character. This may > become a D basic type in the future. > <p> > > <dt> bit isValidDchar(dchar c) > <dd> Test if c is a valid UTF-32 character. > Returns true if it is, false if not. > <p> > > <dt> dchar decode(char[] s, inout uint idx) > <dt> dchar decode(wchar[] s, inout uint idx) > <dt> dchar decode(dchar[] s, inout uint idx) > <dd> Decodes and returns character starting at s[idx]. > idx is advanced past the decoded character. > If the character is not well formed, a UriError? > is thrown and idx remains unchanged. > <p> > > <dt> void encode(inout char[] s, dchar c) > <dt> void encode(inout wchar[] s, dchar c) > <dt> void encode(inout dchar[] s, dchar c) > <dd> Encodes character c and appends it to array s. > <p> > > <dt> void validate(char[] s) > <dt> void validate(wchar[] s) > <dt> void validate(dchar[] s) > <dd> Checks to see if string is well formed or not. > Throws a UtfError? if it is not. > Use to check all untrusted input for correctness. > <p> > > <dt> char[] toUTF8(char[] s) > <dt> char[] toUTF8(wchar[] s) > <dt> char[] toUTF8(dchar[] s) > <dd> Encodes string s into UTF-8 and returns the encoded string. > <p> > > <dt> wchar[] toUTF16(char[] s) > <dt> wchar[] toUTF16(wchar[] s) > <dt> wchar[] toUTF16(dchar[] s) > <dd> Encodes string s into UTF-16 and returns the encoded string. > <p> > > <dt> dchar[] toUTF32(char[] s) > <dt> dchar[] toUTF32(wchar[] s) > <dt> dchar[] toUTF32(dchar[] s) > <dd> Encodes string s into UTF-32 and returns the encoded string. =================== portability.html ==================== =================== pretod.html ==================== =================== property.html ==================== =================== statement.html ==================== =================== struct.html ==================== =================== template.html ==================== =================== toc.html ==================== =================== type.html ==================== =================== version.html ==================== =================== wc.html ==================== =================== windows.html ==================== </pre> |
From LanguageSpecification.
I'm sorry that I currently (after release 0.66, Jun 9 2003) can't provide an update to the PDF. For some people this raw diff output may be helpful to locate the differences in the documentation at least. -- HelmutLeitner
=================== acknowledgements.html ====================
=================== alpha.html ====================
17c17
< <p><small><i>Last update Feb 20, 2003</i></small>
---
> <br><small><i>Last update May 15, 2003</i></small>
22c22,47
< This is the D compiler for Win32.
---
> <ul>
> <li> D for <a href="#Win32">Win32</a>
> <li> D for <a href="#linux">x86 Linux</a>
> <li> <a href="#general">general</a>
> </ul>
>
> <h2>Files Common to Win32 and Linux</h2>
>
> <dl>
>
> <dt><tt>\dmd\src\phobos\</tt>
> <dd>D runtime library source
>
> <dt><tt>\dmd\src\dmd\</tt>
> <dd>D compiler front end source under dual (GPL and Artistic) license
>
> <dt><tt>\dmd\html\d\</tt>
> <dd>Documentation
>
> <dt><tt>\dmd\samples\d\</tt>
> <dd>Sample D programs
>
> </dl>
>
> <hr>
> <a name="Win32"><h1>Win32 D Compiler</h1></a>
40,51d64
< <dt><tt>\dmd\src\phobos\</tt>
< <dd>D runtime library source
<
< <dt><tt>\dmd\src\dmd\</tt>
< <dd>D compiler front end source under dual (GPL and Artistic) license
<
< <dt><tt>\dmd\html\d\</tt>
< <dd>Documentation
<
< <dt><tt>\dmd\samples\d\</tt>
< <dd>Sample D programs
<
228a242,453
>
> <hr>
> <a name="linux"><h1>Linux D Compiler</h1></a>
>
> <h2>Files</h2>
>
> <dl>
>
> <dt><tt>/dmd/bin/dmd</tt>
> <dd>D compiler executable
>
> <dt><tt>/dmd/bin/dumpobj</tt>
> <dd>Elf file dumper
>
> <dt><tt>/dmd/bin/obj2asm</tt>
> <dd>Elf file disassembler
>
> <dt><tt>/dmd/bin/dmd.conf</tt>
> <dd>Global compiler settings (copy to <tt>/etc/dmd.conf</tt>)
>
> <dt><tt>/dmd/lib/libphobos.a</tt>
> <dd>D runtime library (copy to <tt>/usr/lib/libphobos.a</tt>)
>
> </dl>
>
> <h2>Requirements</h2>
>
> <ul>
> <li> 32 bit x86 Linux operating system
>
> <li>
> <a HREF="ftp://ftp.digitalmars.com/dmd.zip" title="download D compiler">
> D compiler</a> for Linux
>
> <li> Gnu C compiler (gcc)
>
> </ul>
>
> <h2>Installation</h2>
>
> <ol>
>
> <li> Unzip the archive into your home directory.
> It will create
> a <tt>~/dmd</tt> directory with all the files in it.
> All the tools are command line tools, which means
> they are run from a console window.
>
> <li> Edit the file <tt>~/dmd/bin/dmd.conf</tt> to put the path in to
> where the phobos source files are.
>
> <li> Copy <tt>dmd.conf</tt> to <tt>/etc</tt>:
>
> <如re>
> cp dmd/bin/dmd.conf /etc
> </如re>
>
> <li> Give execute permission to the following files:
>
> <如re>
> chmod u+x dmd/bin/dmd dmd/bin/obj2asm dmd/bin/dumpobj
> </如re>
>
> <li> Put <tt>dmd/bin</tt> on your <b>PATH</b>,
> or copy the linux executables
> to <tt>/usr/local/bin</tt>
>
> <li> Copy the library to <tt>/usr/lib</tt>:
>
> <如re>
> cp dmd/lib/libphobos.a /usr/lib
> </如re>
>
> </ol>
>
> <h2>Compiler Arguments and Switches</h2>
>
> <dl><dl>
> <dt><b>dmd</b> <i>files</i>... -<i>switch</i>...
> <p>
> <dt><i>files</i>...
> <dd>
> <table border=1 cellpadding=4 cellspacing=0 summary="File Extensions">
> <tr>
> <th>Extension
> <th>File Type
> <tr>
> <td><i>none</i>
> <td>D source files
> <tr>
> <td><b>.d</b>
> <td>D source files
> <tr>
> <td><b>.o</b>
> <td>Object files to link in
> <tr>
> <td><b>.a</b>
> <td>Library files to link in
> <tr>
> </table>
> <dt><b>-c</b></dt>
> <dd>compile only, do not link
> <dt><b>-d</b></dt>
> <dd>allow deprecated features
> <dt><b>-debug</b></dt>
> <dd>compile in debug code
> <dt><b>-debug=</b><i>level</i></dt>
> <dd>compile in debug code <= <i>level</i>
> <dt><b>-debug=</b><i>ident</i></dt>
> <dd>compile in debug code identified by <i>ident</i>
> <dt><b>-g</b></dt>
> <dd>add symbolic debug info
> <dt><b>-gt</b></dt>
> <dd>add trace profiling hooks (not supported under linux)
> <dt><b>-inline</b>
> <dd>inline expand functions
> <dt><b>-I</b><i>path</i>
> <dd>where to look for imports. <i>path</i> is a ; separated
> list of paths. Multiple <b>-I</b>'s can be used, and the paths
> are searched in the same order.
> <dt><b>-L</b><i>linkerflag</i>
> <dd>pass <i>linkerflag</i> to the linker, for example,
> <tt>-M</tt>
> <dt><b>-O</b></dt>
> <dd>optimize
> <dt><b>-o</b><i>objdir</i></dt>
> <dd>write object files to directory <i>objdir</i> instead
> of to the current directory
> <dt><b>-o</b> <i>filename</i></dt>
> <dd>name object file (<b>-c</b>) or executable
> file (no <b>-c</b>) <i>filename</i>
> <dt><b>-release</b></dt>
> <dd>compile release version
> <dt><b>-unittest</b></dt>
> <dd>compile in unittest code
> <dt><b>-v</b></dt>
> <dd>verbose
> <dt><b>-version=</b><i>level</i></dt>
> <dd>compile in version code >= <i>level</i>
> <dt><b>-version=</b><i>ident</i></dt>
> <dd>compile in version code identified by <i>ident</i>
> </dl></dl>
>
> <h2>Linking</h2>
>
> Linking is done directly by the <b>dmd</b> compiler after a successful
> compile. To prevent <b>dmd</b> from running the linker, use the
> <b>-c</b> switch.
> <p>
>
> The actual linking is done by running <b>gcc</b>.
> This ensures compatibility with modules compiled with <b>gcc</b>.
>
> <h2>Environment Variables</h2>
>
> The D compiler dmd uses the following environment variables:
>
> <dl>
>
> <dt><b>DFLAGS</b>
> <dd>The value of <b>DFLAGS</b> is treated as if it were appended to the
> command line to <b>dmd</b>.
>
> </dl>
>
> <h2>dmd.conf Initialization File</h2>
>
> <b>dmd</b> will look for the initialization file <b>dmd.conf</b>
> in the directory <tt>/etc</tt>. If found, environment variable
> settings in the file will override any existing settings.
> This is handy to make <b>dmd</b> independent of programs with
> conflicting use of environment variables.
> <p>
>
> Environment variables follow the <tt>[Environment]</tt> section
> heading, in name=value pairs. Comments are lines that start with ;.
> For example:
> <如re>
> ; dmd.conf file for dmd
> ; Names enclosed by %% are searched for in the existing environemnt
> ; and inserted. The special name %@P% is replaced with the path
> ; to this file.
> [Environment]
> DFLAGS="-I%@P%\..\src\phobos"
> </如re>
>
> <h2>Differences from Win32 version</h2>
>
> <ul>
> <li> String literals are read-only. Attempting to write to them
> will cause a segment violation.
>
> <li> The configuration file is <tt>/etc/dmd.conf</tt>
> </ul>
>
> <h2>Linux Bugs</h2>
>
> <ul>
> <li> <b>-g</b> is not implemented, because I haven't figured out how to
> do it yet. <b>gdb</b> still works, though, at the global symbol level.
>
> <li> The code generator output has not been tuned yet, so it
> can be bloated.
>
> <li> Shared libraries cannot be generated.
>
> <li> The exception handling is not compatible with the way <b>g++</b>
> does it. I don't know if this is an issue or not.
> </ul>
>
> <hr>
> <a name="general"><h1>General</h1></a>
=================== arrays.html ====================
=================== attribute.html ====================
=================== changelog.html ====================
26a27,30
> <li> What's new for <a href="#new066">D 0.66</a>
> <li> What's new for <a href="#new065">D 0.65</a>
> <li> What's new for <a href="#new064">D 0.64</a>
> <li> What's new for <a href="#new063">D 0.63</a>
46c50
< D compiler</a> for Win32
---
> D compiler</a> for Win32 and x86 linux
47a52,110
> </ul>
>
> <hr><!-- ======================================================= -->
> <a name="new066"><h3>What's New for D 0.66</h3></a>
>
> <small><i>Jun 8, 2003</i></small>
>
> <ul>
> <li> Added <a href="phobos.html#uri">uri</a> module.
> <li> Added <a href="phobos.html#utf">utf</a> module.
> <li> Added constant folding for ?: operator.
> <li> Zero initialized structs no longer need to link to
> the module the struct was defined in.
> <li> Private imports now supported.
> <li> Class names common to multiple modules no longer collide,
> but this required a change to how class names are mangled.
> Hence, existing libraries will need to be recompiled.
> <li> templates of the form:
> <如re>
> template foo(T:T[])
> </如re>
> now correctly resolve T in foo(int[]) to int rather than int[].
> </ul>
>
> <hr><!-- ======================================================= -->
> <a name="new065"><h3>What's New for D 0.65</h3></a>
>
> <small><i>May 13, 2003</i></small>
>
> <h4>linux version</h4>
>
> <ul>
> <li> Another bad section name bug is hopefully fixed.
> </ul>
>
> <hr><!-- ======================================================= -->
> <a name="new064"><h3>What's New for D 0.64</h3></a>
>
> <small><i>May 12, 2003</i></small>
>
> <h4>linux version</h4>
>
> <ul>
> <li> <tt>dmd.conf</tt> now needs to be installed as
> <tt>/etc/dmd.conf</tt>.
> <li> <tt>phobos.a</tt> has been renamed as <tt>libphobos.a</tt>
> and been placed in the <tt>/usr/lib</tt> directory.
> <li> <b>dmd</b> will now do the link step automatically.
> <li> The bad section name bug is hopefully fixed.
> </ul>
>
> <hr><!-- ======================================================= -->
> <a name="new063"><h3>What's New for D 0.63</h3></a>
>
> <small><i>May 10, 2003</i></small>
>
> <ul>
> <li> Added linux version. Thanks to Burton Radons and
> Pat Nelson for the help.
=================== class.html ====================
=================== comparison.html ====================
21c21
< <br><small><i>Last modified Mar 30, 2003.</i></small>
---
> <br><small><i>Last modified May 30, 2003.</i></small>
112,119d111
< <td>Covariant return types
< <td align="center" bgcolor="#00FF00"><a href="function.html#covariant">Yes</a>
< <td align="center" bgcolor="red">No
< <td align="center" bgcolor="#00FF00">Yes
< <td align="center" bgcolor="red">No
< <td align="center" bgcolor="red">No
<
< <tr>
248c240
< <td>Modules
---
> <td><a href="#Modules">Modules</a>
440c432
< <td>Support all C types
---
> <td><a href="#Ctypes">Support all C types</a>
482,483c474,475
< <td align="center" bgcolor="#00FF00">Yes
< <td align="center" bgcolor="#00FF00">Yes
---
> <td align="center" bgcolor="red">No
> <td align="center" bgcolor="red">No
542a535,540
> <dt><a name="Modules">Modules</a>
> <dd> Many correctly argue that C++ doesn't really have modules.
> But C++ namespaces coupled with header files share many features
> with modules.
> <p>
>
562a561,564
> <p>
>
> <dt><a name="Ctypes">Support all C types</a>
> <dd>C99 adds many new types not supported by C++.
=================== cpptod.html ====================
=================== ctod.html ====================
=================== dbc.html ====================
=================== declaration.html ====================
=================== dlinks.html ====================
22c22
< <br><small><i>Last update Apr 3, 2003</i></small>
---
> <br><small><i>Last update May 4, 2003</i></small>
129a130,133
>
> <li> <a href="http://www.geocities.com/jccalvarese/d/tutor">Simple D Tutorial</a>
>
> <li> <a href="http://www.dprogramming.com/">Dprogramming.com</a>
158a163
> <img src="d001.jpg" border=1 alt="by Christopher Sauls">
=================== dstyle.html ====================
19c19
< <p><small><i>Last update Aug 16, 2002</i></small>
---
> <p><small><i>Last update May 25, 2002</i></small>
93c93,94
< <dd>Module names are all lower case.
---
> <dd>Module names are all lower case. This avoids problems dealing
> with case insensitive file systems.
=================== errors.html ====================
=================== expression.html ====================
=================== faq.html ====================
=================== float.html ====================
=================== function.html ====================
21c21
< <br><small><i>Last update Feb 28, 2003</i></small>
---
> <br><small><i>Last update May 30, 2003</i></small>
324a325,354
> Nested functions always have the D function linkage type.
> <p>
>
> Unlike module level declarations, declarations within function
> scope are processed in order. This means that two nested functions
> cannot mutually call each other:
>
> <如re>
> void test()
> {
> void foo() { bar(); } // error, bar not defined
> void bar() { foo(); } // ok
> }
> </如re>
>
> The solution is to use a delegate:
>
> <如re>
> void test()
> {
> void delegate() fp;
> void foo() { fp(); }
> void bar() { foo(); }
> fp = &bar;
> }
> </如re>
>
> <b>Future directions:</b> This restriction may be removed.
>
>
406a437,440
> <p>
>
> <b>Future directions:</b> Function pointerss and delegates may merge
> into a common syntax and be interchangable with each other.
=================== future.html ====================
=================== garbage.html ====================
=================== html.html ====================
=================== iasm.html ====================
=================== interface.html ====================
=================== intro.html ====================
17c17
< <br><small><i>Last update Mar 13, 2003</i></small>
---
> <br><small><i>Last update May 25, 2003</i></small>
60,66c60,68
< Download the <a href="alpha.html">current</a>
< version of the compiler for Win32 and try it out!
< Burton Radons has also prepared a
< <a href="http://www.opend.org/dli/DLinux.html">linux port</a>.
<
< <p>
<
---
> Download the <a href="alpha.html">current version</a>
> of the compiler for Win32 and x86 Linux and try it out!
> Burton Radons has also prepared a
> <a href="http://www.opend.org/dli/DLinux.html">linux version</a>.
> <p>
>
> Alternatively, this document also exists as a
> <a href="http://www.prowiki.org/wiki4d/wiki.cgi?LanguageSpecification">pdf file</a>
> suitable for printing.
=================== lex.html ====================
=================== memory.html ====================
=================== model.html ====================
=================== module.html ====================
19c19
< <p><small><i>Last update Mar 19, 2002</i></small>
---
> <br><small><i>Last update May 28, 2003</i></small>
141c141
< into another module, all its top level declarations are
---
> into another module, by default all its top level declarations are
189a190,198
>
> If the import is private, such as:
>
> <如re>
> module <i>abc</i>;
> private import <i>def</i>;
> </如re>
>
> then <i>def</i> is not searched when another module imports <i>abc</i>.
=================== operatoroverloading.html ====================
=================== overview.html ====================
=================== phobos.html ====================
21c21
< <p><small><i>Last update Feb 15, 2003</i></small>
---
> <br><small><i>Last update May 24, 2003</i></small>
169a170,175
> <dt><a href="#uri"><b>uri</b></a>
> <dd>Encode and decode Uniform Resource Identifiers (URIs).
>
> <dt><a href="#utf"><b>utf</b></a>
> <dd>Encode and decode utf character encodings.
>
2237a2244,2356
>
> </dl></dl>
>
> <hr><!-- ===================================== -->
> <a name="uri"><h2>uri</h2></a>
>
> Encode and decode Uniform Resource Identifiers (URIs).
> URIs are used in internet transfer protocols.
> Valid URI characters consist of letters, digits, and
> the characters ;/?:@&=+$,-_.!~*'(). Escape sequences
> consist of '%' followed by two hex digits.
>
> <dl><dl>
> <dt> char[] <b>decode</b>(char[] encodedURI)
> <dd> Decodes the URI string <i>encodedURI</i> into a UTF-8 string
> and returns it. Escape sequences that resolve to valid URI
> characters are not replaced. Escape sequences that resolve
> to the '#' character are not replaced.
> <p>
>
> <dt> char[] <b>decodeComponent</b>(char[] encodedURIComponent)
> <dd> Decodes the URI string <i>encodedURI</i> into a UTF-8 string
> and returns it. All escape sequences are decoded.
> <p>
>
> <dt> char[] <b>encode</b>(char[] uri)
> <dd> Encodes the UTF-8 string <i>uri</i> into a URI and returns
> that URI. Any character not a valid URI character is escaped.
> The '#' character is not escaped.
> <p>
>
> <dt> char[] <b>encodeComponent</b>(char[] uriComponent)
> <dd> Encodes the UTF-8 string <i>uri</i> into a URI and returns
> that URI. Any character not a letter, digit, or one of
> -_.!~*'() is escaped.
>
> </dl></dl>
>
> <hr><!-- ===================================== -->
> <a name="utf"><h2>utf</h2></a>
>
> Encode and decode UTF-8, UTF-16 and UTF-32 strings.
> For more information on UTF-8, see
> <a href="http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8">http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8</a>.
> <p>
>
> <b>Note:</b> For Win32 systems, the C <b>wchar_t</b> type
> is UTF-16 and corresponds to the D <b>wchar</b> type.
> For linux systems, the C <b>wchar_t</b> type
> is UTF-32 and corresponds to the D <b>utf.dchar</b> type.
> <p>
>
> UTF character support is restricted to (0 <= character <= 0x10FFFF).
>
> <dl><dl>
> <dt> class <b>UtfError</b>
> <dd> Exception class that is thrown upon any errors.
> The members are:
> <dl>
> <dt><b>idx</b>
> <dd>Set to the index of the start of the offending UTF sequence.
> </dl>
> <p>
>
> <dt> alias ... <b>dchar</b>
> <dd> An alias for a single UTF-32 character. This may
> become a D basic type in the future.
> <p>
>
> <dt> bit <b>isValidDchar</b>(dchar c)
> <dd> Test if <i>c</i> is a valid UTF-32 character.
> Returns <b>true</b> if it is, <b>false</b> if not.
> <p>
>
> <dt> dchar <b>decode</b>(char[] s, inout uint idx)
> <dt> dchar <b>decode</b>(wchar[] s, inout uint idx)
> <dt> dchar <b>decode</b>(dchar[] s, inout uint idx)
> <dd> Decodes and returns character starting at <i>s[idx]</i>.
> <i>idx</i> is advanced past the decoded character.
> If the character is not well formed, a <b>UriError</b>
> is thrown and <i>idx</i> remains unchanged.
> <p>
>
> <dt> void <b>encode</b>(inout char[] s, dchar c)
> <dt> void <b>encode</b>(inout wchar[] s, dchar c)
> <dt> void <b>encode</b>(inout dchar[] s, dchar c)
> <dd> Encodes character <i>c</i> and appends it to array <i>s</i>.
> <p>
>
> <dt> void <b>validate</b>(char[] s)
> <dt> void <b>validate</b>(wchar[] s)
> <dt> void <b>validate</b>(dchar[] s)
> <dd> Checks to see if string is well formed or not.
> Throws a <b>UtfError</b> if it is not.
> Use to check all untrusted input for correctness.
> <p>
>
> <dt> char[] <b>toUTF8</b>(char[] s)
> <dt> char[] <b>toUTF8</b>(wchar[] s)
> <dt> char[] <b>toUTF8</b>(dchar[] s)
> <dd> Encodes string <i>s</i> into UTF-8 and returns the encoded string.
> <p>
>
> <dt> wchar[] <b>toUTF16</b>(char[] s)
> <dt> wchar[] <b>toUTF16</b>(wchar[] s)
> <dt> wchar[] <b>toUTF16</b>(dchar[] s)
> <dd> Encodes string <i>s</i> into UTF-16 and returns the encoded string.
> <p>
>
> <dt> dchar[] <b>toUTF32</b>(char[] s)
> <dt> dchar[] <b>toUTF32</b>(wchar[] s)
> <dt> dchar[] <b>toUTF32</b>(dchar[] s)
> <dd> Encodes string <i>s</i> into UTF-32 and returns the encoded string.
=================== portability.html ====================
=================== pretod.html ====================
=================== property.html ====================
=================== statement.html ====================
=================== struct.html ====================
=================== template.html ====================
=================== toc.html ====================
=================== type.html ====================
=================== version.html ====================
=================== wc.html ====================
=================== windows.html ====================