forked from dlang/phobos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.dd
336 lines (317 loc) · 21.3 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
$(VERSION 060, ddd mm, 2012, =================================================,
$(WHATSNEW
$(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.string: Added xformat and xsformat, they are compatible with writef.)
$(LI Capitalized std.traits.pointerTarget to PointerTarget. Old one is
scheduled for deprecation.)
$(LI std.traits: Added KeyType, ValueType, isScalarType, isBasicType, and
SetFunctionAttributes templates.)
$(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 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 4744): std.conv: string->enum doesn't look for longer match)
$(LI $(BUGZILLA 5650): A RedBlackTree performance problem)
$(LI $(BUGZILLA 6175): String corruption when passing static char arrays to std.conv)
$(LI $(BUGZILLA 6222): A problem with iota() using size_t)
$(LI $(BUGZILLA 6580): scoped classes are aligned incorrectly)
$(LI $(BUGZILLA 6595): std.string.format() and sformat() are obsolete)
$(LI $(BUGZILLA 6926): std.process.system return wrong exit code)
$(LI $(BUGZILLA 7022): File.byLine doesn't release file handle)
$(LI $(BUGZILLA 7348): to!string(null) matches more than one template declaration)
$(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 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 7944): std.range.iota.popFront() cycles when the range is empty)
$(LI $(BUGZILLA 7962): std.regex: Captures.length() returns incorrect value)
$(LI $(BUGZILLA 7975): Incorrect quotes escaping in std.format)
$(LI $(BUGZILLA 7982): unsigned reverse iota broken)
$(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 8026): Fix or disallow randomShuffle() on fixed-sized arrays)
$(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 8171): Broken std.algorithm.move for nested struct has no member)
)
)
$(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)
)
)