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.098.1

Download D 2.098.1
released Dec 19, 2021

2.098.1 comes with 106 fixed Bugzilla issues. A huge thanks goes to the 18 contributors who made 2.098.1 possible.
List of all bug fixes and enhancements in D 2.098.1.

List of all bug fixes and enhancements in D 2.098.1:

#### DMD Compiler regression fixes

1. Bugzilla 20133: [REG2.084.0] Bogus slice assignment in recursive CTFE call
2. Bugzilla 20236: spurious deprecation warnings on function calls within with(X) blocks while X has a deprecated alias this target
3. Bugzilla 20860: OpDispatch does not work for structs with constructor and destructor
4. Bugzilla 20998: error in static struct initialization causes wrong position for subsequent members, producing extra errors
5. Bugzilla 21039: alias this returns 'null' for ref types when put into array initializer
6. Bugzilla 21073: Rebindable does not work when class has alias this to inout property
7. Bugzilla 21380: A case of compiler crash when using auto ref
8. Bugzilla 21414: Spurious "non-constant expression" error with immutable constructors
9. Bugzilla 21438: Compiler segfault on static array in a struct at CTFE
10. Bugzilla 22004: [REG2.097] Error: mismatched function return type inference of void and noreturn
11. Bugzilla 22151: Compiler crash when attempting to assign to function
12. Bugzilla 22300: [REG 2.098-rc.2] -checkaction=context of a shared type with an opCast fails to compile
13. Bugzilla 22385: CTFE fails to iterate over associative array previously indexed with implicit conversion to enum base type
14. Bugzilla 22410: [REG2.094] function with tuple parameter with default argument fails if there's a qualifier
15. Bugzilla 22420: [REG2.098] Apparent CTFE regression wrt. alias this
16. Bugzilla 22472: Invalid error message for void return from non-void functions
17. Bugzilla 22512: importC: incomplete array type must have initializer
18. Bugzilla 22514: Invalid duplicate case error when the switched value has errors
19. Bugzilla 22516: Segfault for function literal in struct initializer with previous errors
20. Bugzilla 22529: wrong deprecation about empty statement
21. Bugzilla 22558: [REG 2.098] Error: function 'core.stdc.stdio.vfprintf' 'pragma(printf)' functions must be 'extern(C) int vfprintf([parameters...], const(char)*, va_list)'
22. Bugzilla 22570: more arguments than fields allowed in struct constructor
23. Bugzilla 22584: importC: Error: undefined reference to 'parameter' when no parameter names in forward declaration
24. Bugzilla 22585: importC: Error: variable 'var' extern symbols cannot have initializers
25. Bugzilla 22592: importC: Segmentation fault indexing global array at run-time
26. Bugzilla 22593: ICE on overloaded constructors

#### DMD Compiler bug fixes

1. Bugzilla 16579: ReturnStatement[CallExp(DotVarExp)]: Corrupted runtime on missed manifest constant propagation
2. Bugzilla 18054: Wrong cast of float constant to bool
3. Bugzilla 19660: 'export' keyword on OSX/Linux globals causing segfaults
4. Bugzilla 21093: [ICE] AssertError@dmd/optimize.d(691): Assertion failure
5. Bugzilla 21794: Internal compiler assertion
6. Bugzilla 21930: ICE (illegal instruction) with bad code
7. Bugzilla 21950: cod1: Assertion failure for noreturn parameter
8. Bugzilla 21952: ice for global / tls variable of type noreturn
9. Bugzilla 21957: ice when dmd computes the alignment of an union containing a noreturn
10. Bugzilla 22104: importC: Parser accepts arrays with incomplete element types
11. Bugzilla 22315: ImportC: #pragma pack is not implemented
12. Bugzilla 22323: Link error for virtual destructor of C++ class in DLL
13. Bugzilla 22362: ImportC: error parsing compound literal with more than one value at function scope.
14. Bugzilla 22375: importC: Error: C non-array initializer not supported yet
15. Bugzilla 22376: importC: Error: cannot use non-constant CTFE pointer in an initializer
16. Bugzilla 22388: Wrong overload selected for @safe delegate
17. Bugzilla 22389: noreturn functions are allowed to return normally
18. Bugzilla 22398: importC: Error: unknown, when compiling source with non-constant initializer.
19. Bugzilla 22399: importC: Error: static variable cannot be read at compile time
20. Bugzilla 22400: importC: Error: unknown, when compiling source with typedef'd initializer
21. Bugzilla 22402: importC: Error: can't subtract '__tag2[1]' from pointer
22. Bugzilla 22403: importC: Error: cannot pass argument '0' of type 'int' to parameter 'const(char)*'
23. Bugzilla 22405: importC: Error: cannot modify 'const' expression '(*s).field'
24. Bugzilla 22406: importC: Error: 'switch' statement without a 'default'; use 'final switch' or add 'default: assert(0);' or add 'default: break;'
25. Bugzilla 22407: importC: Error: cannot implicitly convert expression of type 'extern (C) int(int a)' to 'const(extern (C) int function(int))'
26. Bugzilla 22409: importC: [ICE] Error: struct no size because of forward reference
27. Bugzilla 22411: importC: Error: cannot implicitly convert expression of type 'const(char*)' to 'char*'
28. Bugzilla 22413: importC: Error: array index 0 is out of bounds
29. Bugzilla 22422: ImportC: parse gnu attributes after a function parameter
30. Bugzilla 22428: importC: static variables/functions emit global symbols
31. Bugzilla 22432: ImportC: casting result of postfix operator on a parenthesized expression to a typedef’d type is parsed incorrectly
32. Bugzilla 22461: OpenBSD: Use fmodl
33. Bugzilla 22462: OpenBSD: bash lives in /usr/local
34. Bugzilla 22463: OpenBSD: Allow DMD to work on 32-bit OpenBSD
35. Bugzilla 22500: ImportC: Lots of errors when compiling tomlc99
36. Bugzilla 22513: ImportC: address of member of struct can’t be taken at compile time.
37. Bugzilla 22517: [REG 2.093][ICE] Bus error at dmd/lexer.d:398
38. Bugzilla 22530: Explicit cast between classes incorrectly goes through 'alias this' inside CTFE
39. Bugzilla 22531: importC: D name mangling applied to forward declaration of function inside function
40. Bugzilla 22534: ImportC: const pointer (not pointer to const) is treated as transitive const
41. Bugzilla 22538: importC: function 'func' conflicts with function 'func' when using static in forward declaration
42. Bugzilla 22549: importC: float literal should support leading zero
43. Bugzilla 22560: ImportC: extra semicolon not allowed outside of functions
44. Bugzilla 22573: DMD compiler errors on Illumos/Solaris
45. Bugzilla 22576: ImportC: cannot implicitly convert expression S(0) of type S to int in an S array
46. Bugzilla 22577: ImportC: decay of function to typedef'd const function pointer causes ICE.
47. Bugzilla 22589: importC: Error: undefined reference to '__builtin_va_start' and '__builtin_va_end'
48. Bugzilla 22591: importC: Debug information for C sources have DW_AT_language set to D.
49. Bugzilla 22597: importC: Segmentation fault initializing va_list with __builtin_va_start
50. Bugzilla 22602: importC: Error: cannot convert string literal to 'void*'

#### DMD Compiler enhancements

1. Bugzilla 22474: OpenBSD: Add support to test/runnable/dhry.d
2. Bugzilla 22475: OpenBSD: Disable test/compilable/cdcmp.d on OpenBSD
3. Bugzilla 22476: OpenBSD: Add OpenBSD to the fail_compilation/fail21227_win.d ignore list
4. Bugzilla 22477: OpenBSD: Add to fail_compilation/fail3753.d ignore list
5. Bugzilla 22478: OpenBSD: Add to fail_compilation/invalid_lib.d

#### Phobos regression fixes

1. Bugzilla 16705: [REG2.069] TaskPool.reduce fails to compile "cannot get frame pointer to D main"

#### Phobos bug fixes

1. Bugzilla 22458: OpenBSD: Add OpenBSD to std/system.d OS list
2. Bugzilla 22487: Array!T.init.data crashes

#### Phobos enhancements

1. Bugzilla 22393: OpenBSD: Add polyImpl implementation for x86
2. Bugzilla 22488: data should work with const/immutable Array's
3. Bugzilla 22511: Nullable is not copyable when templated type has elaborate copy ctor
4. Bugzilla 22557: std.traits.fqnType is missing support for typeof(null)

#### Druntime regression fixes

1. Bugzilla 21656: [REG2.091] Wrong file read during exception stringification leads to SIGBUS
2. Bugzilla 22210: std.meta.allSatisfy in mutual recursion classes cannot be compiled
3. Bugzilla 22235: core.demangle does not support noreturn

#### Druntime bug fixes

1. Bugzilla 21919: darwin: SEGV in core.thread tests on OSX 11
2. Bugzilla 22416: Unify polyImpl implementations
3. Bugzilla 22440: OpenBSD: Sync sysctl.d
4. Bugzilla 22443: OpenBSD: Fix Fiber support by adding MAP_STACK
5. Bugzilla 22453: OpenBSD: Add a dummy value for AI_V4MAPPED
6. Bugzilla 22455: Remove useless conditional assignment of DISABLED_TESTS in posix.mak
7. Bugzilla 22456: OpenBSD: timer_* functions don't exist on OpenBSD
8. Bugzilla 22485: OpenBSD: Fix core.sys.openbsd.unistd imports

#### Druntime enhancements

1. Bugzilla 22395: OpenBSD: Add more OpenBSD-specific function prototypes in string.d and unistd.d
2. Bugzilla 22439: OpenBSD: Sync mman.d
3. Bugzilla 22448: OpenBSD: Add OpenBSD-specific alloc and free function prototypes from stdlib.h
4. Bugzilla 22454: OpenBSD: Add prototypes for pthread_np.h
5. Bugzilla 22457: OpenBSD: enableDwarf in opApply in runtime.d
6. Bugzilla 22542: Explicitly cast backtrace results to int
7. Bugzilla 22545: OpenBSD: Always use system backtrace

### Contributors to this release (18)

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

- Ate Eskola
- Boris Carvajal
- Brian Callahan
- Dennis
- dkorpel
- Florian
- Iain Buclaw
- lucica28
- Martin Kinkelin
- Martin Nowak
- Max Haughton
- MoonlightSentinel
- Per Nordlöw
- Razvan Nitu
- Tim Schendekehl
- Tomoya Tanjo
- Walter Bright
- Ömer Faruk IRMAK

Copyright © 1999-2023 by the D Language Foundation | Page generated by Ddoc on Sun Jul 2 00:31:13 2023