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