...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

dmd 2.014 and 1.030

主にphobosの更新かな.

Version D 2.014 May 16, 2008

New/Changed Features

Added -man switch to browse manual.
Added -lib switch to generate library files. Also causes multiple object files to be generated from one source module.
When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module.
Rewrote the rdmd utility to properly track dependencies and command-line compiler options (currently only working under Linux).
Changed the Phobos makefile linux.mak to take advantage of the new -lib feature. Improved full build speed by 3x.
std.algorithm: Changed the map() function so that it deduces the return type. Also map can be now curried.
std.contracts: Added file and line information to enforce. Added errnoEnforce that formats the error message according to errno. Added corresponding ErrnoException class.
std.conv: Made std.to curryable. Changed std.to to throw exception when object-to-object cast fails. Eliminated some superfluous printfs.
std.encoding: Added new functions encodedLength(dchar) and encode(dchar, ref E[])
std.encoding: Got rid of types Utf8, Utf16, Utf32, Ascii, Latin1, Windows1252. Introduced types AsciiChar, AsciiString, Latin1Char, Latin1String, Windows1252Char, Windows1252String.
std.encoding: For now commented out std.encoding.to.
std.file: Changed Boolean function signatures (e.g. exists) to return bool instead of int. Got rid of some gotos. Added the readText, lastModified, mkdirRecurse, and rmdirRecurse functions.
std.functional: Improved compose so it accepts an unbounded number of functions. Added the pipe function.
std.getopt: Added new option stopOnFirstNonOption. Also automatically expand dubious option groups with embedded spaces in them (useful for shebang scripts)
std.math: improved integral powers
std.md5: Improved signature of sum so it takes multiple arrays. Added getDigestString.
std.path: changed signatures of test functions from bool to int. Implemented rel2abs for Windows. Improved join so that it accepts multiple paths. Got rid of some gotos with the help of scope statements.
std.process: added getenv and setenv. Improved system() so it returns the exit code correctly on Linux.
std.random: added the dice function - a handy (possibly biased) dice.
std.typecons: Finalized and documented the stupendous Rebindable template.
std.utf: added the codeLength function. Got rid of some gotos.

Bugs Fixed

std.format: Fixed unlisted bug in raw write for arrays
std.getopt: Fixed unlisted bug in dealing with one-letter options with bundling disabled
Bugzilla 2014: fopen fails on large files.
Bugzilla 2031: Documentation: template value parameters
Bugzilla 2032: Documentation for creating a class on the stack is unintuitive
Bugzilla 2037: Article on hijacking is outdated
Bugzilla 2038: Remove hello2.html from samples directory
Bugzilla 2039: -ignore switch is missing from compiler docs
Bugzilla 2054: Const system broken on struct assignment.
Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements
Bugzilla 2056: Const system does not allow certain safe casts/conversions involving deep composite types
Bugzilla 2058: Describe hidden value passed to class member functions
Bugzilla 2063: std.xml access violation for nested, closed tags
Bugzilla 2065: Return value of std.file.exists() is inverted.
Bugzilla 2067: call from anonymous class makes access violation.
Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands
Bugzilla 2072: std.typecons documentation anomaly.
Bugzilla 2074: Variant arithmetic operations fail. For now the fix is to comment out all right-hand side operators. Suggestions for a better fix are welcome.
Bugzilla 2075: Spec does not specify how array literals are stored.
Bugzilla 2084: operator ?: does not compute the tightest type
Bugzilla 2086: Describe relationship between string and char[] more explicitly
Bugzilla 2089: Issues with CTFE and tuple indexes
Bugzilla 2090: Cannot alias a tuple member which is a template instance
Bugzilla 2100: Assertion failure: '0' on line 4842 in file 'expression.c'
Bugzilla 2109: asm {lea EAX, [0*0+EAX]; } rejected.

1系もいつもどおり.

Version D 1.030 May 16, 2008

New/Changed Features

Added -lib switch to generate library files.
Added -man switch to browse manual.
When generating an executable file, only one object file is now generated containing all the modules that were compiled, rather than one object file per module.

Bugs Fixed

Bugzilla 2031: Documentation: template value parameters
Bugzilla 2032: Documentation for creating a class on the stack is unintuitive
Bugzilla 2033: -g + circular refs => dmd hangs
Bugzilla 2039: -ignore switch is missing from compiler docs
Bugzilla 2044: -g hangs DMD
Bugzilla 2055: (ICE) Compiler crash on struct initializer with too many elements
Bugzilla 2058: Describe hidden value passed to class member functions
Bugzilla 2067: call from anonymous class makes access violation.
Bugzilla 2071: spec doesn't mention pointer arithmetic with two pointer operands
Bugzilla 2075: Spec does not specify how array literals are stored.
Bugzilla 2084: operator ?: does not compute the tightest type
Bugzilla 2086: Describe relationship between string and char[] more explicitly
Bugzilla 2089: Issues with CTFE and tuple indexes
Bugzilla 2090: Cannot alias a tuple member which is a template instance