[Issue 14488] Deprecate Imaginary and complex types

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jan 27 18:31:27 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=14488

--- Comment #5 from Iain Buclaw <ibuclaw at gdcproject.org> ---
Initial steps to get the ball rolling on this:

1. Remove all complex and imaginary unit-tests from druntime and phobos.

2. Remove/Replace the druntime compiler-library helpers.
 - cdouble *_memset128(cdouble *p, cdouble value, size_t count)
 - creal *_memset160(creal *p, creal value, size_t count)

3. Remove built-in RTTI support in the compiler and run-time library.

4. Add deprecations for internal complex/imaginary helpers
(core.internal.convert, core.internal.array.comparison, etc...)

5. Remove all support that was deprecated in (4).

6. Turn on -transition=complex in the compiler by default, so the deprecation
warning is the default, deprecate the command-line switch.

7. Add -preview=complex (https://github.com/dlang/dmd/pull/12069). Though this
could be done earlier.

8. Add new run-time support code for the "new" complex types for C ABI
compatibility, this would have to be conditionally compiled in, likely using
mixins to avoid triggering parser errors.

9. Make -preview=complex the default, deprecate the command-line switch.

10. Remove residual scaffolding around the deprecation phase of
complex/imaginary numbers.

... or ...

Jump straight to (6) and remove everything from druntime/phobos immediately.

--


More information about the Digitalmars-d-bugs mailing list