PageRenderTime 139ms CodeModel.GetById 17ms app.highlight 114ms RepoModel.GetById 1ms app.codeStats 0ms

Unknown | 466 lines | 445 code | 21 blank | 0 comment | 0 complexity | d7f5c927db8a8435898cfe1077759cce MD5 | raw file
  1$(VERSION 061, ddd mm, 2012, =================================================,
  2    $(WHATSNEW
  3        $(LI std.string: $(RED The implementations of std.string.format and string.sformat have
  4             been replaced with improved implementations which conform to writef. In some,
  5             rare cases, this will break code. Please see the documentation for std.string.format
  6             and std.string.sformat for details.))
  7        $(LI std.string.format now works in CTFE.)
  8        $(LI std.range.hasSlicing has been made stricter in an effort to make it more reliable.
  9             opSlice for infinite ranges must now return the result of std.range.take, and any
 10             range with slicing which supports $(D $) must now support it with the same semantics
 11             as arrays (including supporting subtraction for finite ranges).)
 12        $(LI std.range.isRandomAccessRange now requires hasLength for finite ranges, as it makes no
 13             sense for such ranges not to define length and many random-access algorithms rely
 14             on length.)
 15        $(LI std.digest: Added new package for digests. This replaces std.md5 and the internal crc32
 16             implementation.)
 17        $(LI std.digest.sha: Added SHA1 digest implementation, including a fast SSSE3 version.)
 18        $(LI std.digest.ripemd: Added RIPEMD-160 digest implementation.)
 19        $(LI std.uuid: Support SHA1 UUIDs.)
 20        $(LI std.uuid: md5UUID and sha1UUID can now be used in pure code.)
 21        $(LI Added operationTimeout.)
 22        $(LI std.md5 has been scheduled for deprecation (Use instead).)
 23        $(LI crc32 has been scheduled for deprecation (Use std.digest.crc instead).)
 24        $(LI std.string.xformat and std.string.xsformat have been scheduled for deprecation. Please
 25             use std.string.format and std.string.xsformat instead (which now use the same
 26             implementation as xformat and xsformat).)
 27    )
 30        $(LI Unlisted Bug: dataTimeout fixed. (Used to set operation timeout
 31             instead of inactivity timeout))
 32    )
 35$(VERSION 060, ddd mm, 2012, =================================================,
 37    $(WHATSNEW
 38        $(LI std.string: $(RED The current implementations of std.string.format and string.sformat are
 39             scheduled to be replaced in November 2012 with improved implementations
 40             which conform to writef. In some, rare cases, this will break code.
 41             Please see the documentation for std.string.format and std.string.sformat for details.))
 42        $(LI std.bitmanip: Added peek, read, write, and append for converting
 43             ranges of bytes to and from integral types.)
 44        $(LI std.container: Added DList, which is an implementation of a doubly-linked list.)
 45        $(LI Added std.file.tempDir which returns the path to a directory
 46             where a program can put temporary files.)
 47        $(LI std.process: Added escapeShellCommand, escapeShellFileName, and
 48             escapeWindowsArgument. Documented browse function.)
 49        $(LI std.range: Added RefRange, which effectively makes it possible to
 50             pass a range by reference.)
 51        $(LI std.traits: Added KeyType, ValueType, isScalarType, isBasicType, and
 52             SetFunctionAttributes templates.)
 53        $(LI std.traits: areAllSafe has been scheduled for deprecation. Please use
 54             allSatisfy(isSafe, ...) instead.)
 55        $(LI std.utf: Added overload of codeLength which operates on a string.)
 56        $(LI Capitalized std.traits.pointerTarget to PointerTarget. Old one is
 57             scheduled for deprecation.)
 58        $(LI std.algorithm.indexOf - which was scheduled for deprecation - has been deprecated (it was
 59             easily confused with std.string.indexOf). Please use countUntil instead.)
 60        $(LI std.cpuid - which was scheduled for deprecation - has been deprecated.
 61             Please use core.cpuid instead.)
 62        $(LI std.conv.ConvError and ConvOverflowException - which were scheduled for deprecation - have
 63             been deprecated. Please catch ConvException and ConvOverflowException instead.)
 64        $(LI The overloads of which were scheduled for deprecation
 65             because formattedWrite replaced them have now been deprecated.
 66             Please use std.format.formattedWrite instead.)
 67        $(LI The overload of std.exception.enforce which takes the file and line number as template
 68             arguments has been scheduled for deprecation (as it causes unnecessary template bloat).
 69             Please use the overload which takes them as function arguments instead. This will have no
 70             effect on any calls to enforce which do not explicitly pass the file or line number.)
 71        $(LI std.format.FormatError - which was scheduled for deprecation - has been deprecated.
 72             Please catch FormatException instead.)
 73        $(LI std.file.listDir has been deprecated. Please use std.file.dirEntries instead.)
 74        $(LI std.range.replicate - which was scheduled for deprecation - has been deprecated.
 75             Please use repeat instead.)
 76        $(LI std.range.SortedRange.canFind - which was scheduled for deprecation - has been deprecated.
 77             Please use SortedRange.contains instead.)
 78        $(LI std.socket: timeval and linger - which were scheduled for deprecation - have been deprecated.
 79             Please use TimeVal and Linger.)
 80        $(LI std.stdio.isStreamingDevice has been scheduled for deprecation. Please use
 81             isFileHandle instead.)
 82        $(LI The deprecated std.typecons.defineEnum has been removed.)
 83        $(LI UtfException - which was scheduled for deprecation - has been deprecated.
 84             Please use UTFException instead.)
 85        $(LI The deprecated overloads of std.array.insert and std.array.replace
 86             have been removed. Please use insertInPlace and replaceInPlace instead.)
 87        $(LI The deprecated toISOExtendedString and fromISOExtendedString
 88             functions in std.datetime have been removed. Please use
 89             toISOExtString and fromISOExtString instead.)
 90        $(LI The deprecated std.file.getTimesPosix has been removed.
 91             Please use std.file.getTimes instead.)
 92        $(LI The deprecated overloads of isFile, isDir, and isSymLink in
 93             std.file which took uint have been removed. Please use
 94             attrIsFile, attrIsDir, and attrIsSymlink instead.)
 95        $(LI The deprecated std.file.DirEntry.timeStatusChanged has been removed.
 96             Please use std.file.DirEntry.attributes to get at that information
 97             if you need it.)
 98        $(LI The deprecated std.contracts module has been removed. Please use
 99             std.exception instead.)
100        $(LI The deprecated std.arg, std.bind, and std.loader modules have been
101             removed.)
102    )
105        $(LI $(BUGZILLA 2328): setTypeInfo in gc.d backwards.)
106        $(LI $(BUGZILLA 2588): std.signals should not use 'length' stealth keyword in indexing)
107        $(LI $(BUGZILLA 4405): all function - returns whether predicate is true for all elements in a range)
108        $(LI $(BUGZILLA 4603): array(iota(1, 0))  error)
109        $(LI $(BUGZILLA 4605): Wrong print of an int[string] aa)
110        $(LI $(BUGZILLA 4629): BufferedFile.printf() wants char[] as first argument)
111        $(LI $(BUGZILLA 4695): is broken)
112        $(LI $(BUGZILLA 4744): std.conv: string->enum doesn't look for longer match)
113        $(LI $(BUGZILLA 4822): Problem with std.stdio.File.writef("%c"))
114        $(LI $(BUGZILLA 5011): std.container: SList linearRemove produces wrong results)
115        $(LI $(BUGZILLA 5089): feqrel does not compile for floats)
116        $(LI $(BUGZILLA 5260): std.math.feqrel() returns negative number)
117        $(LI $(BUGZILLA 5346): instantiation of std.conv.toImpl and std.format.formatValue fails for unions)
118        $(LI $(BUGZILLA 5354): formatValue: range templates introduce 3 bugs related to class & struct cases)
119        $(LI $(BUGZILLA 5786): std.algorithm.sort does not work with std.container.Array: Range violation)
120        $(LI $(BUGZILLA 5843): Unable to convert a struct with an alias-this to long/ulong to int, using!int.)
121        $(LI $(BUGZILLA 5970): fix BigInt.toString)
122        $(LI $(BUGZILLA 6027): bigint to!string conversion and its implications)
123        $(LI $(BUGZILLA 6175): String corruption when passing static char arrays to std.conv)
124        $(LI $(BUGZILLA 6191): removechars doesn't accept a const string)
125        $(LI $(BUGZILLA 6197): std.traits.isImplicitlyConvertible returns some wrong results.)
126        $(LI $(BUGZILLA 6222): A problem with iota() using size_t)
127        $(LI $(BUGZILLA 6231): [patch] Structs with toString and isInputRange match multiple templates.)
128        $(LI $(BUGZILLA 6273): Tuple [] operator in pure function)
129        $(LI $(BUGZILLA 6379): std.container.SList fails to compile)
130        $(LI $(BUGZILLA 6437): Refcounted calls dtor before ctor, never calls dtor for globals)
131        $(LI $(BUGZILLA 6547): Call to std.algorithm.remove causes compile error)
132        $(LI $(BUGZILLA 6580): scoped classes are aligned incorrectly)
133        $(LI $(BUGZILLA 6597): to!SomeString should use std.format.formatValue)
134        $(LI $(BUGZILLA 6642): SysTime should not be hasUnsharedAliasing)
135        $(LI $(BUGZILLA 6892): Formatted write with specified length of enum member)
136        $(LI $(BUGZILLA 6926): std.process.system return wrong exit code)
137        $(LI $(BUGZILLA 7022): File.byLine doesn't release file handle)
138        $(LI $(BUGZILLA 7138): Can't call array() on dirEntries)
139        $(LI $(BUGZILLA 7317): writeln cannot handle alias this of array type)
140        $(LI $(BUGZILLA 7326): write interprets enum with byte backing type as a character)
141        $(LI $(BUGZILLA 7348): to!string(null) matches more than one template declaration)
142        $(LI $(BUGZILLA 7356): Implement KeyType, ValueType for hashes in std.traits)
143        $(LI $(BUGZILLA 7360): Predicate templates in std.traits should consider alias this)
144        $(LI $(BUGZILLA 7515): The new std.string.translate is slow for ASCII text)
145        $(LI $(BUGZILLA 7537): `File.tmpfile` requires administrator rights on Windows)
146        $(LI $(BUGZILLA 7561): broken)
147        $(LI $(BUGZILLA 7660): toImpl conflict in std.conv)
148        $(LI $(BUGZILLA 7796): std.typecons.Unique is using writeln without importing std.stdio)
149        $(LI $(BUGZILLA 7824): isInputRange fails to recognize inout(T)[])
150        $(LI $(BUGZILLA 7831): Unlisted @@@BUG in File.detach causes FILE* leaks when reopening)
151        $(LI $(BUGZILLA 7878): A problem with purity and general templated algorithms)
152        $(LI $(BUGZILLA 7898): [CTFE] std.algorithm:copy fails when used with two arrays)
153        $(LI $(BUGZILLA 7909): to!(enum)(string) and to!(string)(enum) break when enum is integral)
154        $(LI $(BUGZILLA 7919): Sample code works on GDC but fails with DMD)
155        $(LI $(BUGZILLA 7936): std.random.randomSample always returns the same first value when passed a random number generator)
156        $(LI $(BUGZILLA 7937): Range iota.Result should be const where possible)
157        $(LI $(BUGZILLA 7944): std.range.iota.popFront() cycles when the range is empty)
158        $(LI $(BUGZILLA 7948): broken with requireSameLength)
159        $(LI $(BUGZILLA 7962): std.regex: Captures.length() returns incorrect value)
160        $(LI $(BUGZILLA 7973): BigInt %= long/ulong gives wrong value)
161        $(LI $(BUGZILLA 7975): Incorrect quotes escaping in std.format)
162        $(LI $(BUGZILLA 7982): iota broken when start and end are unsigned and step is negative.)
163        $(LI $(BUGZILLA 7993): BigInt divide-by-1 error)
164        $(LI $(BUGZILLA 8003): Phobos uses deprecated std.path sep symbol)
165        $(LI $(BUGZILLA 8011): BigInt ++ and -- do wrong thing on negative numbers)
166        $(LI $(BUGZILLA 8015): std.typecons.Tuple does not support struct with alias method this)
167        $(LI $(BUGZILLA 8022): BigInt division bug (2))
168        $(LI $(BUGZILLA 8026): Fix or disallow randomShuffle() on fixed-sized arrays)
169        $(LI $(BUGZILLA 8031): If a class have some signals it's impossible for a derived class to have any signals)
170        $(LI $(BUGZILLA 8037): hasElaborateDestructor is false for non-zero-length static array of structs with elaborate destructor)
171        $(LI $(BUGZILLA 8039): `scoped` doesn't call any elaborate destructors for struct fields)
172        $(LI $(BUGZILLA 8040): writeln(null) too)
173        $(LI $(BUGZILLA 8055): [Regression 2.059] std.algorithm.move corrupts moved object field)
174        $(LI $(BUGZILLA 8057): std.algorithm.move cannot use for nested struct)
175        $(LI $(BUGZILLA 8080): 'alias this' causes toString to be shadowed by aliased object)
176        $(LI $(BUGZILLA 8112): std.algorithm.fill must accept InputRange)
177        $(LI $(BUGZILLA 8158): std.algorithm.min fails to compile with user-defined types)
178        $(LI $(BUGZILLA 8164): BigInt from char[] too)
179        $(LI $(BUGZILLA 8165): BigInt opAssign return value)
180        $(LI $(BUGZILLA 8171): [Regression 2.060head] Broken std.algorithm.move for nested struct has no member)
181        $(LI $(BUGZILLA 8186): Formatting class object has an alias this to int* field is broken.)
182        $(LI $(BUGZILLA 8187): replaceFirst doesn't work for string[] haystack)
183        $(LI $(BUGZILLA 8191): cstream.printf is completely unusable on x86_64)
184        $(LI $(BUGZILLA 8195): Segfault when comparing a VariantN to a non-variant type which it holds)
185        $(LI $(BUGZILLA 8203): Use of std.regex.match() generates "not enough preallocated memory" error)
186        $(LI $(BUGZILLA 8214): blocking option for TaskPool.finish())
187        $(LI $(BUGZILLA 8233): std.array.array fails to compile with ranges of immutable elements which have a length property)
188        $(LI $(BUGZILLA 8240): std.algorithm.joiner and empty inputRangeObject)
189        $(LI $(BUGZILLA 8264): [] constructing conversion doesn't work with alias this)
190        $(LI $(BUGZILLA 8310): writeln of Range of fixed size array)
191        $(LI $(BUGZILLA 8323): std.string.chompPrefix does not handle differing string types properly)
192        $(LI $(BUGZILLA 8362): std.traits.isSafe doesn't work with unsafe lamdba functions)
193        $(LI $(BUGZILLA 8386): writeln stopped working with wstring)
194        $(LI $(BUGZILLA 8398): enforceEx cannot be used with OutOfMemoryError)
195        $(LI $(BUGZILLA 8450): measureTime doesn't work with unsafe template functions)
196        $(LI $(BUGZILLA 8459): std.traits.isSafe behavior silently changed)
197    )
198 )
200$(VERSION 059, ddd mm, 2012, =================================================,
201    $(WHATSNEW
202        $(LI std.array: replaceInto, an alternative for replace that outputs result directly
203        to an output range, avoiding extra allocation.)
204        $(LI The deprecated, std.dateparse, and std.gregorian modules
205             have been removed. Please use std.datetime instead.)
206        $(LI Several deprecated functions in std.file have been removed.)
207        $(LI The old functions in std.path which were scheduled for deprecation
208             have now been deprecated. Please use the new ones which were
209             introduced in 2.055. However, note that curdir and pardir do not
210             have replacements, because they're "." and ".." respectively on all
211             OSes so variables for them were seen as unnecessary. Also, one major
212             change to note about the new std.path functions is that when operating
213             on extensions, they expect "." to be part of the extension whereas the
214             old ones did not (e.g. "file.txt".extension == ".txt" whereas
215             "file.txt".getExt() == "txt").)
216        $(LI The version of std.exception.enforceEx which was scheduled for
217             deprecation has been deprecated. Please use the version which
218             takes exceptions which can be constructed with new E(msg, file, line)
219             (rather than just new E(msg) as the old version did). That way,
220             exceptions constructed with enforceEx will give the file and line
221             number where enforceEx was called.)
222        $(LI Get rid of Win9x support.)
223        $(LI std.typecons: Added Proxy mixin template.)
224        $(LI std.format: Added documentation about compound format specifier.)
225    )
228        $(LI $(BUGZILLA 4604): A stack overflow with writeln)
229        $(LI $(BUGZILLA 5523): std.regex handles "\s" and "\W" (etc.) inside square brackets improperly)
230        $(LI $(BUGZILLA 5652): Add \p and \P unicode properties to std.regex)
231        $(LI $(BUGZILLA 5674): AssertError in std.regex)
232        $(LI $(BUGZILLA 5964): std.stdio.readln can throw a UnicodeException)
233        $(LI $(BUGZILLA 6217): [GSOC] result of is not movable)
234        $(LI $(BUGZILLA 6403): Upgrade std.regex to Unicode UTS #18 Level 1 support)
235        $(LI $(BUGZILLA 6892): Formatted write with specified length of enum member)
236        $(LI $(BUGZILLA 7111): New regex engine cannot match beginning of empty string)
237        $(LI $(BUGZILLA 7138): Can't call array() on dirEntries)
238        $(LI $(BUGZILLA 7264): Can't iterate result from 4-arg dirEntries as string)
239        $(LI $(BUGZILLA 7299): std.uni missing doc comments)
240        $(LI $(BUGZILLA 7300): std.regex.ShiftOr! is broken)
241        $(LI $(BUGZILLA 7374): stdin.byLine() throws AssertError on empty input)
242        $(LI $(BUGZILLA 7460): reports a false exception message)
243        $(LI $(BUGZILLA 7476): Write(ln) functions no longer accept retro range)
244        $(LI $(BUGZILLA 7628): std.format formatValue incorrect overload)
245        $(LI $(BUGZILLA 7674): regex replace requires escaped format)
246        $(LI $(BUGZILLA 7679): std.regex.split and splitter don't work w/ ctRegex)
247        $(LI $(BUGZILLA 7718): regex and ctRegex produce different results)
248        $(LI $(BUGZILLA 6116): May not join spawn()'ed threads)
249     )
250 )
252$(VERSION 058, ddd mm, 2012, =================================================,
254    $(WHATSNEW
255       $(LI Added std.csv for reading CSV files.)
256       $(LI Added as D-ified wrapper over etc.c.curl and libcurl.)
257       $(LI Added templates PackageName, ModuleName and FullyQualifiedName into std.traits.)
258       $(LI The overload of std.concurrency.receiveTimeout which takes a long has
259            been deprecated. Please use the overload which takes a core.time.Duration.)
260       $(LI Moved std.datetime.abs to core.time.)
261       $(LI The overload of which used a member function named to on the
262            type being converted has been deprecated. Please define opCast on the type
263            instead, and will use that.)
264       $(LI std.datetime's endOfMonthDay functions have been deprecated. Please use
265            daysInMonth instead.)
266       $(LI std.ctype has been deprecated. Please use std.ascii instead.)
267       $(LI std.string's hexdigits, digits, octdigits, lowercase, letters, uppercase,
268            whitespace, and newline have been deprecated. Please use the
269            corresponding symbols in std.ascii instead.)
270       $(LI std.string's LS and PS have been deprecated. Please use the corresponding
271            symbols in std.uni instead.)
272       $(LI std.string's iswhite has been deprecated. Please use either
273            std.ascii.isWhite or std.uni.isWhite instead.)
274       $(LI std.string's tolower, tolowerInPlace, toupper, toupperInPlace, splitlines,
275            stripl, stripr, ljustify, rjustify, and expandtabs have been deprecated.
276            Please use the new versions of these functions with properly camelcased names.)
277       $(LI std.string's zfill has been deprecated. Please use rightJustify instead.)
278       $(LI std.string's capwords has been deprecated.)
279       $(LI The overloads of std.string's isNumeric which takes anything and
280            which takes a va_list have been deprecated. The other overloads remain.)
281       $(LI std.uni's isUniLower, isUniUpper, toUniLower, toUniUpper, and isUniAlpha
282            have been deprecated. Please use the versions of these functions which do
283            not have Uni in their name.)
284       $(LI Get rid of Windows 3.x and Windows 9x support. Affected modules: std.file,
285            std.mmfile,, and
286     )
289       $(LI $(BUGZILLA 4295): IID_IUnknown symbol undefined in phobos.lib)
290       $(LI $(BUGZILLA 5614): version(Win32) vs version(Windows) in Phobos)
291       $(LI $(BUGZILLA 5718): Can't demangle symbol defined inside unittest block)
292       $(LI $(BUGZILLA 6255): Add support for different base conversions in std.conv)
293       $(LI $(BUGZILLA 6472): RedBlackTree.removeKey)
294       $(LI $(BUGZILLA 6642): SysTime should not be hasUnsharedAliasing)
295       $(LI $(BUGZILLA 6874): heap corruption caused by std.array.insertInPlaceImpl or gc.gcx)
296       $(LI $(BUGZILLA 6944): stdio.File.byLine can't handle an empty file)
297       $(LI $(BUGZILLA 7092): std.concurrency.receive does not accept free functions)
298       $(LI $(BUGZILLA 7141): std.regex - escaped characters can form operators in character classes)
299       $(LI $(BUGZILLA 7230): Crash during printing anonymous union with writeln family functions.)
300       $(LI $(BUGZILLA 7241): std.format can't read into array of dchar)
301       $(LI $(BUGZILLA 7302): std.conv.parse with radix doesn't work on ranges)
302       $(LI $(BUGZILLA 7397): [Regression] std.path.buildPath can't be used with string[])
303       $(LI $(BUGZILLA 7480): Unhelpful formatting specifier mismatch exception message for pointers)
304       $(LI $(BUGZILLA 7484): std.algorithm.copy overlapping array copy)
305     )
306 )
308$(VERSION 057, ddd mm, 2011, =================================================,
310    $(WHATSNEW
311      $(LI Major overhaul of std.regex module's implementation.
312        $(RED Breaking change) in std.regex.replace with delegate,
313        use Captures!string instead of RegexMatch!string as delegate parameter.)
314      $(LI As typedef has been deprecated, overloads of which use
315           typedef have now been deprecated.)
316      $(LI std.array.insert has been deprecated. Please use std.array.insertInPlace instead.)
317      $(LI The overload of std.array.replace which replaces in place has been deprecated.
318           Please use std.array.replaceInPlace instead.)
319      $(LI The toISOExtendedString and fromISOExtendedString functions on SysTime, Date,
320           TimeOfDay, and DateTime in std.datetime have been deprecated. Please use
321           toISOExtString and fromISOExtString instead.)
322      $(LI std.file.getTimesPosix has been deprecated. Please use std.file.getTimes instead.)
323      $(LI The overloads for isDir, isFile, and isSymlink in std.file which take a uint
324           have been deprecated. Please use attrIsDir, attrIsFile, and attrIsSymlink instead.)
325     )
328        $(LI Unlisted bug: std.conv: Fix to!float("-0"))
329        $(LI Unlisted bug: std.file broken on OS X x86_64 due to wrong stat64 declaration.)
330        $(LI $(BUGZILLA 2936): std.regex.match() short string optimization)
331        $(LI $(BUGZILLA 4765): std.math.modf always returns 0)
332        $(LI $(BUGZILLA 5193): SList cannot have struct elements that have immutable members.)
333        $(LI $(BUGZILLA 5620): Implicit conversion of RegexMatch to bool.)
334        $(LI $(BUGZILLA 5712): [patch] std.regex.replace disallows w/dstring)
335        $(LI $(BUGZILLA 6204): emplace() for classes accepts larger chunk but fails in array assignment)
336        $(LI $(BUGZILLA 6887): Regression of getopt)
337        $(LI $(BUGZILLA 6888): std.getopt.getopt: one-letter hash option causes range violation)
338        $(LI $(BUGZILLA 6935): struct with @disable this cannot make range)
339        $(LI $(BUGZILLA 6973): static assert(isOutputRange!(OutputRange!int, int)) is false)
340        $(LI $(BUGZILLA 6976): GetLastError called as property)
341        $(LI $(BUGZILLA 6977): getErrno called as property in std.stdio)
342        $(LI $(BUGZILLA 6979): hasUnsharedAliasing cannot accept plural parameters)
343        $(LI $(BUGZILLA 6990): std.string.splitlines deprecation doc missing a word)
344        $(LI $(BUGZILLA 7000): missing import of std.stdio in std.regex?)
345        $(LI $(BUGZILLA 7039): Posix 2.057 Makefile error breaking 64bit build)
346        $(LI $(BUGZILLA 7040): Phobos must use "version/else version" blocks for proper
347                               documentation generation.)
348        $(LI $(BUGZILLA 7045): AssertError in std.regex on line 1573)
349        $(LI $(BUGZILLA 7055): to!float("INF2") == 2)
350     )
351 )
353$(VERSION 056, ddd mm, 2011, =================================================,
355    $(WHATSNEW
356      $(LI std.exception: enforce/enforceEx now can use in @safe pure function.)
357      $(LI Added optional KeepTerminator param to std.string.splitLines.)
358      $(LI Added std.string.outdent.)
359      $(LI std.utf: More @safe and pure.)
360      $(LI now use *W functions in order to deal properly with Unicode.)
361     )
364        $(LI $(BUGZILLA 5522): fails on arrays of Object.)
365        $(LI $(BUGZILLA 6009): std/container disabled on freebsd/64)
366        $(LI $(BUGZILLA 6160): Ignore _ to match the rest of D)
367        $(LI $(BUGZILLA 6181): assert fails in datetime.d while runining Phobos unittest)
368        $(LI $(BUGZILLA 6258):!real("-") fetches the front of an empty array.)
369        $(LI $(BUGZILLA 6275): Const values in tuples)
370        $(LI $(BUGZILLA 6288): removes const/immutable when converting a class)
371        $(LI $(BUGZILLA 6609): std.conv.parse!Integer should consider sign when radix == 10)
372        $(LI $(BUGZILLA 6634): std.path.globMatch throws wrong assertion)
373        $(LI $(BUGZILLA 6640): More formatting consistency between string and range of char)
374        $(LI $(BUGZILLA 6761): Strange behavior of RedBlackTree causing a dangling pointer)
375     )
376 )
378$(VERSION 055, ddd mm, 2011, =================================================,
380    $(WHATSNEW
381      $(LI std.algorithm.copy now specializes on arrays for 10-80x improved
382           performance.)
383      $(LI std.path has been rewritten from scratch and has a completely new API.)
384      $(LI std.utf.toUTFz allows you to get a zero-terminated string of any
385           character type and of any type of mutability.)
386      $(LI Added symlink and readLink to std.file for Posix systems.)
387      $(LI Values for GDC and LDC were added to std.compiler.Vendor.)
388      $(LI Added functions to std.bitswap for generically handling swapping
389           endianness.)
390      $(LI Added std.parallelism.TaskPool.workerIndex.)
391      $(LI Added buffer recycling overload of std.parallelism.asyncBuf)
392      $(LI std.math.tgamma, lgamma, erf, and erfc are now deprecated. The
393           equivalent functions in std.mathspecial should be used instead.)
394      $(LI The names of the values of std.mmfile.Mode, std.system.Endian,
395           std.traits.FunctionAttributes, std.traits.ParameterStorageClass,
396           and std.traits.Variadic were changed to match Phobos' naming conventions.)
397      $(LI std.range:  Added indexed and chunks)
398      $(LI std.string.translate has been updated to work with unicode. As a
399           result, its signature has been changed. The old version and
400           std.string.maketrans have been scheduled for deprecation.)
401      $(LI has been updated so that it works with any string type.)
402      $(LI std.conv.parse works for associative array and static array)
403      $(LI std.format: Improvement of formatValue and unformatValue.
404           They now works for associative array, consider element escaping,
405           and treat range format spec more properly.)
406     )
409        $(LI Unlisted bug:  std.range.transversal should have length)
410        $(LI $(BUGZILLA 3890): Bad writeln of a nested struct)
411        $(LI $(BUGZILLA 4977): cannot use nothrow or pure with Rebindable)
412        $(LI $(BUGZILLA 5237): writefln doesn't respect Complex.toString)
413        $(LI $(BUGZILLA 5645): std.range.drop())
414        $(LI $(BUGZILLA 5825): write is calling a deprecated function)
415        $(LI $(BUGZILLA 6064): std.array.join is unnecssarily slow for strings)
416        $(LI $(BUGZILLA 6194): [GSoC] Destructor gets called on object before it is copied when calling writeln())
417        $(LI $(BUGZILLA 6261): [2.054 beta regression] Regex cannot take a char[])
418        $(LI $(BUGZILLA 6377): should check range when changing signedness)
419        $(LI $(BUGZILLA 6587): std.parallelism's Task cannot handle immutable values)
420        $(LI $(BUGZILLA 6606): RefCounted doesn't work with unions due to use of format)
421        $(LI $(BUGZILLA 6608): Tuple field is not escaped)
422     )
423 )
425$(VERSION 054, ddd mm, 2011, =================================================,
427    $(WHATSNEW
428        $(LI std.array.insertInPlace supports inserting of multiple ranges/elements in one go)
429        $(LI Added std.array.uninitializedArray and std.array.minimallyInitializedArray)
430        $(LI Various functions in std.string were renamed to match Phobos'
431             naming conventions and be properly camelcased. The old names
432             are still there but have been scheduled for deprecation.)
433        $(LI The deprecated std.string.toString and std.string.atoi functions
434             were removed. If you were still using them for any reason,
435             replace them with calls to
436        $(LI Various functions in std.uni were renamed so that they don't have
437             "Uni" in their name, since it was decided that it was not desirable to
438             repeat a module's name in its functions' names. The old names
439             are still there but have been scheduled for deprecation.)
440        $(LI std.ctype has been scheduled for deprecation. std.ascii has been
441             added to replace it.)
442        $(LI Major performance improvements for std.algorithm.sort)
443     )
446        $(LI $(BUGZILLA 876): std.intrinsic.bswap overloads)
447        $(LI $(BUGZILLA 2108): regexp.d: The greedy dotstar isn't so greedy)
448        $(LI $(BUGZILLA 2117): Please add more byteswapping support)
449        $(LI $(BUGZILLA 3136): Incorrect and strange behavior of std.regexp.RegExp if using a pattern with optional prefix and suffix longer than 1 char)
450        $(LI $(BUGZILLA 3457): rdmd fails silently in a particular setup where the compiler is not the expected)
451        $(LI $(BUGZILLA 3479): writef/writefln: positional precision not working)
452        $(LI $(BUGZILLA 3564): Rdmd failing to link external C libraries)
453        $(LI $(BUGZILLA 3752): File.byLine fetches lines in a confusing manner)
454        $(LI $(BUGZILLA 4367): std.regex: Captures is not a random access range)
455        $(LI $(BUGZILLA 4574): std.regex: breaks with empy string regex)
456        $(LI $(BUGZILLA 4608): std.string.chomp documentation mismatch implementation)
457        $(LI $(BUGZILLA 5019): In std.regex, empty capture at end of string causes error)
458        $(LI $(BUGZILLA 5511): std.regex optional capture with no-match cause error)
459        $(LI $(BUGZILLA 5673): Add lookahead and forgetful matching support std.regex)
460        $(LI $(BUGZILLA 5857): std.regex (...){n,m} is bogus when (...) contains repetitions)
461        $(LI $(BUGZILLA 6076): regression, std.regex: "c.*|d" matches "mm")
462        $(LI $(BUGZILLA 6113): singletons in std.datetime are not created early enough)
463        $(LI $(BUGZILLA 5705): Swapping identical struct with hasElaborateAssign causes "overlapping array copy" exception)
464        $(LI $(BUGZILLA 6193): Appender.clear() functionality or documentation)
465     )