Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Change Log: 2.032
Download D 2.032
released Sep 2, 2009
New/Changed Features
- Improved exception message for assert(0) in Windows -release builds
- Added support for:
a[i].var = e2
and:a[] = e
in CTFE. (thanks, Don!) - Member functions can now be used in CTFE
- Operator overloading can now be used in CTFE
- Nested functions can now be used in CTFE
- CTFE error messages now explain why the function could not be interpreted at compile time
- synchronized member functions now implicitly typed as shared.
- std.algorithm: added minPos
- std.format: added raw specifier for reading
- added File.byChunk
- std.algorithm: added more unittests and checks for user-based comparison passed to topN
- std.math: replaced std.c with core.stdc; improved approxEqual to work with ranges, not only numbers or arrays
- std.range: defined Take.popBack whenever sensible; improved iota to accept negative ranges and steps
Bugs Fixed
- Bugzilla 601: statement.html - Formatting/markup errors in BNF
- Bugzilla 1461: Local variable as template alias parameter breaks CTFE
- Bugzilla 1600: Functions taking only one array cannot be called with property syntax
- Bugzilla 1604: Non-final method on final struct is too restrictive (closed with "invalid" advise)
- Bugzilla 1605: break in switch with goto breaks in ctfe
- Bugzilla 1616: std/metastrings.d
- Bugzilla 1940: Phobos buildscripts do not work on x86_64
- Bugzilla 1948: CTFE fails when mutating a struct in an array
- Bugzilla 1950: CTFE doesn't work correctly for structs passed by ref
- Bugzilla 1969: ICE(cod1.c) using undefined operator with one const operand
- Bugzilla 1972: Foreach range statement breaks CTFE
- Bugzilla 2150: cannot get values from const variant
- Bugzilla 2277: array ops and const arrays incompatible
- Bugzilla 2398: writef("%x") for a pointer is always uppercase
- Bugzilla 2560: ICE(cod4.c) on invoking method that takes ref const struct parameter
- Bugzilla 2564: CTFE: the index in a tuple foreach is uninitialized (bogus error)
- Bugzilla 2569: static arrays in CTFE functions don't compile
- Bugzilla 2575: gdb can not show code
- Bugzilla 2587: std.process.shell doesn't work for win32
- Bugzilla 2604: DW_TAG_module and GDB
- Bugzilla 2665: ICE(cod4.c) on certain const struct function return types
- Bugzilla 2784: Interfaces should be able to require type definitions (closed with "invalid" advise)
- Bugzilla 2785: Interfaces should be able to require non-member functions (closed with "invalid" advise)
- Bugzilla 2786: Interfaces should be able to require constructors (closed with "invalid" advise)
- Bugzilla 2882: std.random.MersenneTwisterEngine without no seed
- Bugzilla 2925: Destructor not called
- Bugzilla 2937: postblit not called for foreach arg over array of structs
- Bugzilla 2940: null is null cannot be evaluated at compile time
- Bugzilla 2976: rename retreatN to retreat
- Bugzilla 2979: Xml tags with only attributes return as without attributes ElementParser.parse
- Bugzilla 2980: compiler error when writefln( uint )
- Bugzilla 2987: D2 phobos BigInt opMul doesn't work correctly
- Bugzilla 2988: Chain needs opIndexAssign.
- Bugzilla 2989: std.typetuple: add support for any static tuples
- Bugzilla 2992: (closed with "later" advise)
- Bugzilla 2996: std.typetuple: add support for any static tuples
- Bugzilla 3000: iota should work with floats
- Bugzilla 3017: doc errors in std.range (on behalf of Steven Schveighoffer)
- Bugzilla 3025: uniform(float,float) pops first, uniform(int,int) pops last
- Bugzilla 3037: Off-by-one error in Stride.length
- Bugzilla 3039: -vtls compiler flag not listed in man file
- Bugzilla 3058: [CTFE] Cannot return out of foreach range statement
- Bugzilla 3074: std.conv.to!(string)(int.min)
- Bugzilla 3077: 3077 crash exiting main() without result code
- Bugzilla 3087: std.range.retro.opIndex out of range
- Bugzilla 3098: std.algorithm.reduce example can not compile
- Bugzilla 3100: ICE(cast.c) struct with members is shared
- Bugzilla 3132: std.string.split should be templated on mutable/const/immutable
- Bugzilla 3148: syntax error using invariant
- Bugzilla 3153: win32.mak tries to copy phobos.lib, gcstub.obj to nonexistent folder lib
- Bugzilla 3162: can't fully use compile-time floats as template parameters
- Bugzilla 3165: What kind of integer division does D use?
- Bugzilla 3166: "positive" -> "non-negative" in modulo operator description
- Bugzilla 3169: Segfault(cast.c) dividing ulong by int
- Bugzilla 3170: Forward reference of nested class fails if outer class is not plain
- Bugzilla 3183: Spec of align attribute needs work
- Bugzilla 3184: std.algorithm.until should work like "find"
- Bugzilla 3185: osx is not a directory (complains cannot read std/c/osx/socket.d)
- Bugzilla 3186: corrections for http://www.digitalmars.com/d/2.0/dmd-osx.html
- Bugzilla 3189: std.conv.to : check for a custom to method in classes/structs
- Bugzilla 3192: asm in a anonymous delegate crash the compiler
- Bugzilla 3195: std.conv pureness (closed with "later" advise)
- Bugzilla 3196: Segfault(mtype.c) after almost any error involving a delegate literal
- Bugzilla 3197: Minor fixes and additions to std.traits
- Bugzilla 3199: sort(chain(...)) doesn't work in some cases
- Bugzilla 3205: CTFE: $ cannot be used in lvalues
- Bugzilla 3212: Error message says "mutable"; should say "immutable"
- Bugzilla 3217: std.functional.binaryFunImpl doesn't support UDT with string functions , therefore neither does many std.algorithm functions
- Bugzilla 3218: Performance of std.xml.encode must be improved
- Bugzilla 3219: Inaccurate std.conv.to!(numeric)(numeric) error messages
- Bugzilla 3224: std.random documentation bugs
- Bugzilla 3229: No return or assert(0) at end of function
- Bugzilla 3236: Postblit called but no matching destructor
- Bugzilla 3239: std.conv.roundTo does not accept const/immutable/shared
- Bugzilla 3240: std.numeric.findRoot only works with real
- Bugzilla 3242: splitter does not handle input range made of a unique separator correctly
- Bugzilla 3245: Easy bug fix available for disabled unit test code in std.encoding
- Bugzilla 3246: ICE(init.c) using indexed array initializer on local array
- Bugzilla 3249: sort and setIntersection on array of struct or class
- Bugzilla 3253: DMD crashes on function pointer struct member initialization with function literal
- Bugzilla 3255: final switch broken with -w switch
- Bugzilla 3257: Spec is unclear describing string switch case labels
- Bugzilla 3260: "Error: undefined identifier backend" when compiling 'write' with 'wchar'
- Bugzilla 3264: -O causes wrong "used before set" error when using enum.
- Bugzilla 3281: ICE(cod1.c) append returned struct to array
- Fixed bug processing spaces in dmd's directory
- Fixed assert failure on line 4823 in expression.c
- Fixed OSX compile error on samples/d/dhry.d
- std.format: fixed unlisted bug in documentation
- std.random: uniform does not work when passed immutable data
- std.range: fixed unlisted bug in Take.back
- unlisted: made entropy work on const/immutable arrays