Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - 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.086.1

Download D 2.086.1
released Jun 15, 2019

2.086.1 comes with 1 major change and 41 fixed Bugzilla issues. A huge thanks goes to the 19 contributors who made 2.086.1 possible.

#### Compiler changes

1. Interface contracts retrieve arguments correctly

List of all bug fixes and enhancements in D 2.086.1.

#### Compiler changes

1. Interface contracts retrieve arguments correctly

   Fixed regression 15984.

   As a side effect, contracts are not ABI compatible with previous releases.

       interface I
       {
           void fun(int i)
           out { assert(i == 5); } // succeeds
       }

       class C : I
       {
           void fun(int i)
           do { }
       }

       unittest
       {
           auto c = new C;
           c.fun(5);
       }

List of all bug fixes and enhancements in D 2.086.1:

#### DMD Compiler regressions

1. Bugzilla 19584: Illegal optimization: Shift-or -> imul
2. Bugzilla 19631: Segfault on simple nested templated struct
3. Bugzilla 19871: Copy constructor rejects valid code if default construction is disabled
4. Bugzilla 19887: Segfault with void tuple default parameter
5. Bugzilla 19901: importing export symbols causes link errors
6. Bugzilla 19936: Deprecated alias get this falsely triggers on appending to array

#### DMD Compiler bugs

1. Bugzilla 12950: Lexer interprets UFCS on hex integer as hex float literal
2. Bugzilla 13819: ICE: backend\cg87.c with -O: "a % 2 != 0" for a double
3. Bugzilla 17258: Pass by name doesn't work reliably and can sometimes lead to memory corruption
4. Bugzilla 17793: [ICE] Internal error: ddmd/backend/cod1.c 3976 using simd.double4
5. Bugzilla 18439: Error: cannot use operator ~= in @nogc delegate 'main.test.__lambda1'
6. Bugzilla 18772: [ICE] Internal error: dmd\backend\cgcod.c 607 no optimizations
7. Bugzilla 18784: Segfault due to dmd codegen interfacing with C++
8. Bugzilla 19002: __FUNCTION__ and __PRETTY_FUNCTION__ cannot be used as C string literals
9. Bugzilla 19386: Destructor not called when constructed inside if condition, leading to memory leak
10. Bugzilla 19557: extern(C++, ns) and extern(C++, class) interact weird
11. Bugzilla 19713: dmd crashes generating code for C++ template function
12. Bugzilla 19825: Memory corruption involving lazy variadic, stdio and json
13. Bugzilla 19831: throw/catch in scope(exit) crashes with illegal instruction
14. Bugzilla 19857: Name mangling mismatch when compiling with -dip1000
15. Bugzilla 19881: Escaping reference to local through return scope with -dip1000 and @safe
16. Bugzilla 19888: default parameters in templates with tuple parameters+defaults are thrown away
17. Bugzilla 19895: Floating point exception casting zero length array
18. Bugzilla 19897: dinterpret.d:6439: Internal Compiler Error: null field
19. Bugzilla 19898: ICE: in sizemask at dmd/mtype.d(2563): Assertion failure
20. Bugzilla 19911: ICE: Segmentation fault with struct object and variadic function
21. Bugzilla 19912: [module] No implicit import of object module when an object declaration exists.
22. Bugzilla 19913: ICE: Segmentation fault with mixin and enum
23. Bugzilla 19914: ICE: Segmentation fault with mixin and templated class
24. Bugzilla 19915: ICE: Segmentation fault with alias and templated class
25. Bugzilla 19922: ICE: Segmentation fault with typeid()
26. Bugzilla 19923: ICE: typesem.d(3809): Assertion failure with .classinfo
27. Bugzilla 19941: [ICE] Segmentation fault in ImplicitConvTo::visit(AddrExp*) at dmd/dcast.d(980)
28. Bugzilla 19942: [ICE] Segmentation fault in resolvePropertiesX at dmd/expressionsem.d:1112
29. Bugzilla 19954: ICE: Casting AliasSeq to array and passing to a function
30. Bugzilla 19955: [ICE] Segmentation fault in StatementSemanticVisitor::visit(SwitchStatement*) at dmd/statementsem.d:2558

#### Phobos bugs

1. Bugzilla 19837: std.random.isUniformRNG(Rng, ElementType) should not require Rng.front to be annotated @property
2. Bugzilla 19850: double nested joiner .back falsely thinks the range is empty

#### Druntime regressions

1. Bugzilla 19701: undefined reference to `_D6object__T6hashOf

#### Druntime bugs

1. Bugzilla 17248: Multiple wrong function definitions in core.sys.windows.winldap (causing runtime issues)
2. Bugzilla 19847: no GC memory above 4GB reported with --DRT-gcopt=profile:1

### Contributors to this release (19)

A huge thanks goes to all the awesome people who made this release possible.

- Basile Burg
- Eugen Wissner
- Hiroki Noda
- Iain Buclaw
- Jan Jurzitza
- kinke
- Les De Ridder
- look-at-me
- Martin Nowak
- Mathis Beer
- Mike Franklin
- Nathan Sashihara
- Nicholas Wilson
- Rainer Schuetze
- Razvan Nitu
- Sebastian Wilzbach
- Spoov
- Walter Bright
- سليمان السهمي (Suleyman Sahmi)

Copyright © 1999-2019 by the D Language Foundation | Page generated by Ddoc on Sun Sep 1 19:49:14 2019