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.052
Download D 2.052
released Feb 17, 2011
New/Changed Features
- 64 bit support for Linux
- Implemented exception chaining, as described in TDPL. Currently Windows-only.
- std.random: Added Xorshift random generator
- Support HTML5 entities
- Added std.datetime for handling dates and times. std.date and std.gregorian are now scheduled for deprecation. Any functions in other modules of Phobos which used std.date.d_time have been changed to use std.datetime.SysTime or are scheduled for deprecation with new functions with the same functionality added which use SysTime (done in cases where switching existing functions to use SysTime would have broken code). New code should use std.datetime instead of std.date.
- Various functions in std.file were renamed to match Phobos' naming conventions (e.g. isFile instead of isfile). The old names are aliased and scheduled for deprecation.
Bugs Fixed
- Bugzilla 190: Cannot forward reference typedef/alias in default value for function parameter
- Bugzilla 1513: try/catch/finally misbehavior on windows
- Bugzilla 1899: AA of fixed-length arrays fails to initialize
- Bugzilla 1914: Array initialisation from const array yields memory trample
- Bugzilla 2581: DDoc doesn't work for functions with auto return type.
- Bugzilla 2810: Bogus forward reference error with auto function
- Bugzilla 2874: phobos docs issues
- Bugzilla 3198: wrong initializer for structs arrays
- Bugzilla 3334: std.demangle doesn't parse ref, pure, nothrow
- Bugzilla 3681: ICE(go.c): when function takes too long to optimize, only with -O.
- Bugzilla 3848: functions in std.file don't take symbolic links into account
- Bugzilla 4013: Inconsistent codeview debug info for classes derived from IUnknown
- Bugzilla 4069: Issue 4069 - std.xml.Document.pretty saves empty elements with spaces and line breaks
- Bugzilla 4245: Declaring conflicting symbols in single function scope allowed
- Bugzilla 4307: spawn()'ed thread doesn't terminate
- Bugzilla 4328: templated unittests fail to link when instantiated from other file if compiler order isn't correct
- Bugzilla 4379: ICE(blockopt.c): foreach over huge tuple, only with -O
- Bugzilla 4389: ICE(constfold.c, expression.c), or wrong code: string~=dchar in CTFE
- Bugzilla 4486: CodeView debug info should contain absolute path names
- Bugzilla 4598: std.xml check is too restrictive
- Bugzilla 4601: Spawned threads frequently don't terminate or let other threads ever run if you spawn more than one thread
- Bugzilla 4732: __traits(identifier) performs constant folding on symbols
- Bugzilla 4753: fail_compilation/fail116.d sends dmd into a loop, exhausting memory
- Bugzilla 4807: Examples for std.array insert and replace
- Bugzilla 4852: core.demangle cannot demangle functions with class/struct return types
- Bugzilla 4878: Ddoc: Default arguments can break Ddoc output
- Bugzilla 4913: Implicit opCast!bool in if statement doesn't work with declarator
- Bugzilla 4973: map file with spaces in file name passed without quotes to linker
- Bugzilla 5025: ICE(cast.c) shared struct literal
- Bugzilla 5090: ICE(todt.c) struct literal initializing zero length array
- Bugzilla 5105: Member function template cannot be synchronized
- Bugzilla 5197: Ddoc: access-attributed auto template function crashes dmd
- Bugzilla 5198: Appender much slower when appending ranges of elements than individual elements
- Bugzilla 5209: posix/sys/select.d: FD_ISSET function should return bool
- Bugzilla 5221: entity.c: Merge Walter's list with Thomas'
- Bugzilla 5242: self referencing template constraint crashes compiler
- Bugzilla 5244: PATCH: fix use of uninitialised variable in toObj.c
- Bugzilla 5246: PATCH(s): fix a couple more uninitialised variables
- Bugzilla 5248: CTFE Segfault when calling a function on an enum struct
- Bugzilla 5271: Not constant RAND_MAX
- Bugzilla 5320: gcstub/gc.d: SEGV because of missing returns
- Bugzilla 5349: ICE(toir.c): nested class in static member function
- Bugzilla 5365: Regression (2.051) implicit conversions via alias this are broken
- Bugzilla 5381: Regression (2.051) switch fails for wstring and dstring
- Bugzilla 5382: [regression 2.051] DLL multi-threading broken
- Bugzilla 5391: Crash with recursive alias declaration
- Bugzilla 5400: Add const to FD_ISSET
- Bugzilla 5439: 64bit struct alignment inconsistent with C ABI
- Bugzilla 5447: Should be illegal to throw a non-Throwable
- Bugzilla 5455: ICE(cgcod.c): Optimization (register allocation?) regression in DMD 1.065
- Bugzilla 5486: Missing define for running dmd as 64 bit
- Bugzilla 5488: Spawned threads hang in a way that suggests allocation or gc issue
- Bugzilla 5504: Regression(2.051): Template member functions of a shared class don't compile
- Bugzilla 5534: [64-bit] Inexplicable segfault in small code snippet, -O -release -m64 only
- Bugzilla 5536: Array append with dollar op on 64-bit
- Bugzilla 5545: [64-bit] DMD fails to postincrement ubytes.
- Bugzilla 5549: [64-bit] Internal error: backend/cgcod.c 1845
- Bugzilla 5552: std.datetime.d DosFileTimeToSysTime has a bug
- Bugzilla 5556: [64-bit] Wrong Implicit Conversion to Double
- Bugzilla 5557: [64-Bit] FP (alignment?) issues with Rvalues
- Bugzilla 5564: [64-bit] loading of wrong constant byte value
- Bugzilla 5565: [64-bit] Wrong Floating Point Results, Related to Mixing With size_t
- Bugzilla 5566: [64-bit] More erratic FP results with size_t
- Bugzilla 5579: Segfault on first call to GC after starting new thread
- Bugzilla 5580: [64-bit] String switch statements broken in 64-bit mode
- Bugzilla 5581: [64-bit] Wrong code with bitwise operations on bools
- Bugzilla 5592: Previous definition different: __arrayExpSliceMulSliceAddass_d
- Bugzilla 5595: Compiler crash on heavy std.algorithm use