Change Log: 2.050 - D Programming Language
Description: D Programming Language
Keywords: D programming language

Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Forums
  - IRC
  - Community Discord
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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 a local clone.

# Change Log: 2.050

Download D 2.050
released Oct 29, 2010

#### New/Changed Features

- added talign() and argTypes() to TypeInfo
- Upgrade zlib support to zlib 1.2.5
- std.stdio: Added ByChunk. This struct is a InputRange like ByLine. File.byChunk returns ByChunk
- std.traits: Most higher-order ranges now work with const/immutable arrays and other ranges with a natural tail const, and ranges w/ const/immutable elements.
- Bugzilla 4888: Heavy reliance on Bug 3534 in Phobos range usage
- Bugzilla 4987: C function pointer syntax needs to be deprecated
- std.typecons: Several improvements to the Tuple struct template:
  - Tuple members are now accessible with the syntax a[0], a[1] etc.
  - Eliminated an internal union. See Bugzilla 4421 and Bugzilla 4846.
  - Worked around Bugzilla 4424. Got opAssign back.
  - Made Tuple.slice!(from, to) to preserve field names if any.
  - Added isTuple!(T) template.
- std.algorithm: changed filter() such that filter is curryable
- std.algorithm: Added function balancedParens
- std.typecons: Deprecated defineEnum
- Added relaxed purity checking rules.

#### Bugs Fixed

- Unlisted bug: std.exception.pointsTo() calls postblit on subobjects.
- Unlisted bug: std.typetuple.staticMap!() doesn't work with empty/single tuples.
- Unlisted bug: std.traits: Interfaces should have indirections, aliasing, etc.
- Unlisted bug: std.socket: Race condition - gethostbyname and gethostbyaddr on Linux return static data. The call was synchronized, but using the data wasn't
- Unlisted bug: signed long comparisons under OS X
- Bugzilla 941: std.regexp fails to match when grouping certain sub-expressions
- Bugzilla 1482: std.file docs are insufficient
- Bugzilla 1635: DirEntry.isfile() and DirEntry.isdir() broken
- Bugzilla 1733: parse() function does not handle all build-in types
- Bugzilla 2073: Variant.coerce!() fails
- Bugzilla 2142: getopt() incorrectly processes bundled command-line options
- Bugzilla 2310: Inconsistent formatting of arrays in std.stdio.write() and std.conv.to!(string)()
- Bugzilla 2424: std.functional binaryRevertArgs : "revert" should be "reverse"
- Bugzilla 2451: Adding structs that use opAssign or postblit to an AA is broken
- Bugzilla 2655: Allow alternation patterns in std.path.fnmatch
- Bugzilla 2669: Variant does not have opApply or another iteration mechanism
- Bugzilla 2718: Inconsistent string parameters in Phobos functions
- Bugzilla 2838: std.file.rmdirRecurse fails
- Bugzilla 2930: Problems in std.range documentation
- Bugzilla 2943: Struct copying in presence of alias member this only copies alias this member
- Bugzilla 2965: std.date: timezone not initialized
- Bugzilla 3157: [patch] Pipes should be closed with pclose
- Bugzilla 3318: [PATCH]Rebindable.get is not accessible
- Bugzilla 3570: mkdirRecurse throws exception on trailing empty directory.
- Bugzilla 3602: ICE(tocsym.c) compiling a class, if its super class has preconditions
- Bugzilla 3665: Regression(1.051, 2.036) Assignment with array slicing does not work
- Bugzilla 4344: Sockets with multiple threads report missing/failed WSAStartup
- Bugzilla 4398: dmd always uses Windows name mangling for _d_throw
- Bugzilla 4439: The declaration of the in6addr_* in druntime is wrong.
- Bugzilla 4465: ICE(symbol.c): immutable type inference with ^^2
- Bugzilla 4524: Regression(2.026) Bus error with nested struct
- Bugzilla 4623: Non-integer type allowed as static array size
- Bugzilla 4634: typo in levenshteinDistanceAndPath documentation
- Bugzilla 4641: Associative arrays of structs with alias this broken.
- Bugzilla 4742: int % BigInt should work.
- Bugzilla 4775: No substitution on writef("%%%s", "hi").
- Bugzilla 4825: Regression(1.057, 2.040) "Error: non-constant expression" with -inline
- Bugzilla 4866: Static-to-dynamic converted manifest constant array gets non-converted type in static/constraint if
- Bugzilla 4869: auto return + inheritance + modules = compiler crashes(toctype.c)
- Bugzilla 4873: Assertion failure: '0' on line 1483 in file 'expression.c'
- Bugzilla 4882: std.traits hasUnsharedAliasing does not work for function type.
- Bugzilla 4897: CodeView: No locals or parameters are shown when debugging, because of missing function info
- Bugzilla 4890: GC.collect() deadlocks multithreaded program.
- Bugzilla 4925: [ICE] segfault with module-scope assert(0)
- Bugzilla 4926: ICE: PREC_zero assertion failure due to unset precedence
- Bugzilla 4938: Regression(2.047) dmd segfault when compiling
- Bugzilla 4941: Built-in tuple slice boundaries are not CTFE'd
- Bugzilla 4949: ICE on invalid static if using value of 'this'
- Bugzilla 4951: InternetAddress fails to resolve host when multithreading.
- Bugzilla 4959: std.conv.parse error "no digits seen" on string starting with zero.
- Bugzilla 4992: ICE(glue.c) or segfault: using int[new]
- Bugzilla 5003: regex(replace with delegate) sample doesn't work.
- Bugzilla 5026: ICE(expression.c) Incomplete mixin expression + char[] to char assignment
- Bugzilla 5049: std.algortihm.bringToFront() returns wrong value.
- Bugzilla 5052: take!(Take!R) should return Take!R, not Take!(Take!R).
- Bugzilla 5071: passing value by ref to a function with an inner dynamic closure results in a wrong code

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Sat Jul 15 12:03:52 2023