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
- Bugzilla 20133: [REG2.084.0] Bogus slice assignment in recursive CTFE call
- Bugzilla 20236: spurious deprecation warnings on function calls within with(X) blocks while X has a deprecated alias this target
- Bugzilla 20860: OpDispatch does not work for structs with constructor and destructor
- Bugzilla 20998: error in static struct initialization causes wrong position for subsequent members, producing extra errors
- Bugzilla 21039: alias this returns 'null' for ref types when put into array initializer
- Bugzilla 21073: Rebindable does not work when class has alias this to inout property
- Bugzilla 21380: A case of compiler crash when using auto ref
- Bugzilla 21414: Spurious "non-constant expression" error with immutable constructors
- Bugzilla 21438: Compiler segfault on static array in a struct at CTFE
- Bugzilla 22004: [REG2.097] Error: mismatched function return type inference of void and noreturn
- Bugzilla 22151: Compiler crash when attempting to assign to function
- Bugzilla 22300: [REG 2.098-rc.2] -checkaction=context of a shared type with an opCast fails to compile
- Bugzilla 22385: CTFE fails to iterate over associative array previously indexed with implicit conversion to enum base type
- Bugzilla 22410: [REG2.094] function with tuple parameter with default argument fails if there's a qualifier
- Bugzilla 22420: [REG2.098] Apparent CTFE regression wrt. alias this
- Bugzilla 22472: Invalid error message for void return from non-void functions
- Bugzilla 22512: importC: incomplete array type must have initializer
- Bugzilla 22514: Invalid duplicate case error when the switched value has errors
- Bugzilla 22516: Segfault for function literal in struct initializer with previous errors
- Bugzilla 22529: wrong deprecation about empty statement
- 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)'
- Bugzilla 22570: more arguments than fields allowed in struct constructor
- Bugzilla 22584: importC: Error: undefined reference to 'parameter' when no parameter names in forward declaration
- Bugzilla 22585: importC: Error: variable 'var' extern symbols cannot have initializers
- Bugzilla 22592: importC: Segmentation fault indexing global array at run-time
- Bugzilla 22593: ICE on overloaded constructors
DMD Compiler bug fixes
- Bugzilla 16579: ReturnStatement[CallExp(DotVarExp)]: Corrupted runtime on missed manifest constant propagation
- Bugzilla 18054: Wrong cast of float constant to bool
- Bugzilla 19660: 'export' keyword on OSX/Linux globals causing segfaults
- Bugzilla 21093: [ICE] AssertError@dmd/optimize.d(691): Assertion failure
- Bugzilla 21794: Internal compiler assertion
- Bugzilla 21930: ICE (illegal instruction) with bad code
- Bugzilla 21950: cod1: Assertion failure for noreturn parameter
- Bugzilla 21952: ice for global / tls variable of type noreturn
- Bugzilla 21957: ice when dmd computes the alignment of an union containing a noreturn
- Bugzilla 22104: importC: Parser accepts arrays with incomplete element types
- Bugzilla 22315: ImportC: #pragma pack is not implemented
- Bugzilla 22323: Link error for virtual destructor of C++ class in DLL
- Bugzilla 22362: ImportC: error parsing compound literal with more than one value at function scope.
- Bugzilla 22375: importC: Error: C non-array initializer not supported yet
- Bugzilla 22376: importC: Error: cannot use non-constant CTFE pointer in an initializer
- Bugzilla 22388: Wrong overload selected for @safe delegate
- Bugzilla 22389: noreturn functions are allowed to return normally
- Bugzilla 22398: importC: Error: unknown, when compiling source with non-constant initializer.
- Bugzilla 22399: importC: Error: static variable cannot be read at compile time
- Bugzilla 22400: importC: Error: unknown, when compiling source with typedef'd initializer
- Bugzilla 22402: importC: Error: can't subtract '__tag2[1]' from pointer
- Bugzilla 22403: importC: Error: cannot pass argument '0' of type 'int' to parameter 'const(char)*'
- Bugzilla 22405: importC: Error: cannot modify 'const' expression '(*s).field'
- Bugzilla 22406: importC: Error: 'switch' statement without a 'default'; use 'final switch' or add 'default: assert(0);' or add 'default: break;'
- Bugzilla 22407: importC: Error: cannot implicitly convert expression of type 'extern (C) int(int a)' to 'const(extern (C) int function(int))'
- Bugzilla 22409: importC: [ICE] Error: struct no size because of forward reference
- Bugzilla 22411: importC: Error: cannot implicitly convert expression of type 'const(char*)' to 'char*'
- Bugzilla 22413: importC: Error: array index 0 is out of bounds
- Bugzilla 22422: ImportC: parse gnu attributes after a function parameter
- Bugzilla 22428: importC: static variables/functions emit global symbols
- Bugzilla 22432: ImportC: casting result of postfix operator on a parenthesized expression to a typedef’d type is parsed incorrectly
- Bugzilla 22461: OpenBSD: Use fmodl
- Bugzilla 22462: OpenBSD: bash lives in /usr/local
- Bugzilla 22463: OpenBSD: Allow DMD to work on 32-bit OpenBSD
- Bugzilla 22500: ImportC: Lots of errors when compiling tomlc99
- Bugzilla 22513: ImportC: address of member of struct can’t be taken at compile time.
- Bugzilla 22517: [REG 2.093][ICE] Bus error at dmd/lexer.d:398
- Bugzilla 22530: Explicit cast between classes incorrectly goes through 'alias this' inside CTFE
- Bugzilla 22531: importC: D name mangling applied to forward declaration of function inside function
- Bugzilla 22534: ImportC: const pointer (not pointer to const) is treated as transitive const
- Bugzilla 22538: importC: function 'func' conflicts with function 'func' when using static in forward declaration
- Bugzilla 22549: importC: float literal should support leading zero
- Bugzilla 22560: ImportC: extra semicolon not allowed outside of functions
- Bugzilla 22573: DMD compiler errors on Illumos/Solaris
- Bugzilla 22576: ImportC: cannot implicitly convert expression S(0) of type S to int in an S array
- Bugzilla 22577: ImportC: decay of function to typedef'd const function pointer causes ICE.
- Bugzilla 22589: importC: Error: undefined reference to '__builtin_va_start' and '__builtin_va_end'
- Bugzilla 22591: importC: Debug information for C sources have DW_AT_language set to D.
- Bugzilla 22597: importC: Segmentation fault initializing va_list with __builtin_va_start
- Bugzilla 22602: importC: Error: cannot convert string literal to 'void*'
DMD Compiler enhancements
- Bugzilla 22474: OpenBSD: Add support to test/runnable/dhry.d
- Bugzilla 22475: OpenBSD: Disable test/compilable/cdcmp.d on OpenBSD
- Bugzilla 22476: OpenBSD: Add OpenBSD to the fail_compilation/fail21227_win.d ignore list
- Bugzilla 22477: OpenBSD: Add to fail_compilation/fail3753.d ignore list
- Bugzilla 22478: OpenBSD: Add to fail_compilation/invalid_lib.d
Phobos regression fixes
- Bugzilla 16705: [REG2.069] TaskPool.reduce fails to compile "cannot get frame pointer to D main"
Phobos bug fixes
- Bugzilla 22458: OpenBSD: Add OpenBSD to std/system.d OS list
- Bugzilla 22487: Array!T.init.data crashes
Phobos enhancements
- Bugzilla 22393: OpenBSD: Add polyImpl implementation for x86
- Bugzilla 22488: data should work with const/immutable Array's
- Bugzilla 22511: Nullable is not copyable when templated type has elaborate copy ctor
- Bugzilla 22557: std.traits.fqnType is missing support for typeof(null)
Druntime regression fixes
- Bugzilla 21656: [REG2.091] Wrong file read during exception stringification leads to SIGBUS
- Bugzilla 22210: std.meta.allSatisfy in mutual recursion classes cannot be compiled
- Bugzilla 22235: core.demangle does not support noreturn
Druntime bug fixes
- Bugzilla 21919: darwin: SEGV in core.thread tests on OSX 11
- Bugzilla 22416: Unify polyImpl implementations
- Bugzilla 22440: OpenBSD: Sync sysctl.d
- Bugzilla 22443: OpenBSD: Fix Fiber support by adding MAP_STACK
- Bugzilla 22453: OpenBSD: Add a dummy value for AI_V4MAPPED
- Bugzilla 22455: Remove useless conditional assignment of DISABLED_TESTS in posix.mak
- Bugzilla 22456: OpenBSD: timer_* functions don't exist on OpenBSD
- Bugzilla 22485: OpenBSD: Fix core.sys.openbsd.unistd imports
Druntime enhancements
- Bugzilla 22395: OpenBSD: Add more OpenBSD-specific function prototypes in string.d and unistd.d
- Bugzilla 22439: OpenBSD: Sync mman.d
- Bugzilla 22448: OpenBSD: Add OpenBSD-specific alloc and free function prototypes from stdlib.h
- Bugzilla 22454: OpenBSD: Add prototypes for pthread_np.h
- Bugzilla 22457: OpenBSD: enableDwarf in opApply in runtime.d
- Bugzilla 22542: Explicitly cast backtrace results to int
- 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-2022 by the D Language Foundation | Page generated by
Ddoc on (no date time)