Skip to content
This repository has been archived by the owner on Oct 12, 2022. It is now read-only.

rt.util: Define D complex types, use them in rt instead of the C complex types #3432

Merged
merged 1 commit into from
Apr 6, 2021
Merged

Conversation

ibuclaw
Copy link
Member

@ibuclaw ibuclaw commented Apr 6, 2021

The creal interfaces in rt.memset and rt.util.typeinfo are not compatible with C complex reals, so define our own type internally distinct from core.stdc.config.

Based on @kinke's original work, and unblocks #3428.

@dlang-bot
Copy link
Contributor

Thanks for your pull request, @ibuclaw!

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub run digger -- build "master + druntime#3432"

@dlang-bot dlang-bot merged commit 6bc9aeb into dlang:master Apr 6, 2021
@ibuclaw ibuclaw deleted the rtcomplex branch April 6, 2021 17:20
@kinke
Copy link
Contributor

kinke commented Apr 10, 2021

Thanks Iain.

kinke added a commit to kinke/ldc that referenced this pull request Apr 10, 2021
clrpackages pushed a commit to clearlinux-pkgs/ldc that referenced this pull request Aug 5, 2021
Hiroki Noda (3):
      Fix comments in abi-aarch-64.h (#3707)
      Use new OpenFlags enumeration (#3710)
      Travis CI: fix cache directory name (#3776)

Johan Engelen (8):
      Fix Github workflow Lit install: use Python 3.x (#3725)
      Fix Circle CI: use python 3 (#3727)
      Fix Cirrus build: use python3 (#3726)
      Switch to using Python 3 and move from Ubuntu 16.04 to 18.04 on Azure (#3728)
      Add MSan compiler-rt library to LDC install and add it to linkerline for --fsanitize=memory (#3751)
      Update druntime to get the fix for core.bitop.ror/rol inlining (#3752)
      Add -cov-increment option to specify the type of increment instruction. Add atomic, non-atomic, and boolean increment types. (#3724)
      CMake: Add `ALTERNATIVE_MALLOC_O` option for user to link LDC with a malloc-overriding allocator like mimalloc.o (#3758)

Martin Kinkelin (171):
      Upgrade frontend & libs to v2.096.0-beta.1+ (dlang/dmd@0c2d8bd2ab)
      Fix little C++ header regressions
      Add support for 'noreturn' type
      Phobos: Fix little std.math regressions
      Adapt to expression-less `synchronized` statement change (with GC-backed critical section)
      Fix ICE for ref/out params of opaque structs
      druntime: Adapt coverage integration test to work on Windows
      dmd-testsuite: Slightly adapt some new tests for LDC
      GitHub Actions: Disable new @LiVe tests for ltsmaster job
      Fix orphaned CondExp __cond variable refs in codegen AST
      Fix TypeInfo_Interface.info regression
      CI: Use `-k0` for ninja cmdlines potentially running into out-of-memory errors
      CI: Fix pip download URL after annoying change
      -i: Exclude ldc.* modules by default (#3679)
      SysV x64 ABI: Add support for new magic __c_complex_real enum
      x86 ABI: Add support for new magic __c_complex_{float,double,real} enums
      Merge upstream stable (dlang/dmd@75fe50f497)
      dmd-testsuite: Minimally adapt runnable/test42.d
      Bump versions of bundled dlang tools & dub
      dmd-testsuite: Make runnable_cxx/extra-files/test21515.cpp compile with clang too
      CMake: Work around issue #3690 by disabling -linkonce-templates for D executables
      Treat temporaries as rvalue expressions when ABI-rewriting function call arguments
      dmd-testsuite: Minimally relax compilable/ctfe_math.d for quadruple real precision
      Don't enforce the frame pointer for functions with GCC-style inline asm (#3685)
      Win64: Relax tests/dynamiccompile/bind_opt.d due to issue #3695
      Merge upstream stable (dlang/dmd@128d40a86b)
      Skip tests/driver/cleanup_obj_gh3643.d if x86 LLVM backend is missing
      CMake: Compile druntime with -transition=complex too
      Fix overzealous toBasetype'ing for debuginfo types
      DI: Emit delegate `funcptr` member as function *pointer*
      DI: Emit enums with floating-point base type as typedefs
      Remove superfluous DIBuilder::CreateCompositeTypeDescription
      DI: Fix up a few names
      DI: Remove 2 more superfluous helpers
      Merge upstream stable (dlang/dmd@655278312e)
      druntime: Cherry-pick dlang/druntime#3432 and dlang/druntime#3428
      ldmd2: Add support for new -gdwarf=<version>
      Cirrus CI: Work around strange FreeBSD std.experimental.allocator unittest regression (#3696)
      Fix insufficient alignment of BaseBitcastABIRewrite allocas (#3698)
      Adapt to Windows-specific LLVM 12 API change (#3697)
      Merge upstream stable (dlang/dmd@37b74d7219) (#3706)
      LLVM 12: Add type information to sret and byval parameter attributes
      Cirrus CI: Adapt to Ubuntu rolling now shipping with LLVM 12
      GitHub Actions: Add LLVM 12 job
      Changelog: Add v1.26
      Windows: Make -fvisibility=public export all defined symbols
      Windows: Try to make implicit dllimport work for data symbols
      Windows: Only export all external and weak_odr symbols with -fvisibility=public
      Windows: Don't bother with dllimport/dllexport for thread-local globals
      (Optimize if-chain order)
      Windows: Disable @weak emulation for dllexported functions
      Windows: Dllimport aggregate globals too
      Windows: Dllexport ModuleInfos with -fvisibility=public
      Add manual dllimport 'relocation' pass for static data initializers
      Fix dllimport relocation pass wrt. multiple definitions
      Windows: Default to dllexport with -shared, and enforce dllimport with -link-defaultlib-shared
      CMake: Run the druntime integration tests in debug mode too
      DI: Streamline file path components ('filename', 'directory') with clang
      druntime: Add -L--export-dynamic for a few exceptions integration tests
      druntime: Adapt 'shared' integration test for recent macOS versions
      GitHub Actions Mac: Disable druntime-test-exceptions-debug (requires LDC-LLVM)
      Work around race condition for debug/release coverage druntime integration tests
      Merge pull request #3734 from kinke/travis
      dmd-testsuite: Cherry-pick fix for recent GDB versions
      Adapt tests/debuginfo/print_gdb.d for recent GDB versions
      DI: Don't use a forward declaration for base class inheritance info
      DI: Try switching module parent from CU to source file
      Azure CI Linux: Downgrade gdb from v10.2 to v8.1
      Merge pull request #3712 from kinke/sections_shared
      Cirrus CI: Fix little regression for Mac jobs
      CMake: Support BUILD_SHARED_LIBS for Windows too
      CMake: Link Windows druntime & Phobos DLLs against *dynamic* MSVCRT
      Windows: Link against dynamic MSVCRT when linking against shared druntime/Phobos
      CMake: Get shared test runners to link on Windows
      CMake: Install shared .dll/.pdb files into bin dir
      CMake: Link special rt.dso_windows module into Phobos DLL and shared test runner executables
      CMake: Make sure shared Phobos test runners on Windows depend on/load the Phobos unittest DLL
      CMake: Copy & install special dso_windows.obj object file to lib dir
      Windows: Link rt.dso_windows object file automatically into each binary linked against shared druntime
      Windows: Default to dllexport with -shared, and enforce dllimport with -link-defaultlib-shared
      CMake: Compile rt.dso_windows separately to enable binaries without any exports with -link-defaultlib-shared
      Azure CI: Add druntime/Phobos DLL dir to PATH to fix dmd-testsuite's dshell/dll.d
      druntime: Fix test/shared integration test on Windows
      CMake: Enforce .pdb generation for debug druntime/Phobos DLLs
      Azure CI: Fix shared libs integration test for Win32
      druntime: Fix race condition for debug/release 'shared' integration tests
      Phobos: Fix std.format.internal.write for druntime DLL
      Azure CI Windows: Add shared libs smoke test for multilib package
      druntime: Generalize 'shared' integration tests to include Windows
      druntime: Use debug druntime for debug integration tests
      druntime: Fix rt.dso_windows not unregistering the DSO from druntime
      druntime: Disable/adapt remaining 2 'shared' integration test failures on Windows
      druntime: Adapt/simplify core.sys.windows.dll for shared druntime DLL
      druntime: Implement little Windows TODO in 'shared/load' integration test
      CI: Make curl downloads more robust (#3740)
      Upgrade frontend & libs to early v2.097.0 (dlang/dmd@cb0457daf3)
      Adapt to upstream global.params.* -> target.* shuffling
      Fix upstream regression wrt. mutual init dependency of Type and Target
      Phobos: Fix regressions after std.math split-up
      Adapt to user-defined init symbol declarations
      Adapt lit-test codegen/inlining_stdlib.d to std.math split-up
      Merge upstream stable (dlang/dmd@2adf6ff4f6)
      Move target `real` selection from ir/irtype.cpp to gen/target.cpp
      CI: Ship reggae with prebuilt packages (#3739)
      Cherry-pick upstream support for enforcing ANSI colors for redirected stderr on Windows (#3744)
      druntime: Add support for vectors in core.internal.dassert.miniFormat()
      dmd-testsuite: Adapt a few LDC-specific tests wrt. new deprecations
      druntime: Add missing core.sys.posix.stdio.flockfile() etc. for Android/Bionic
      ldmd2: Add support for -check=on|off
      Exclude `assert(0)` from lines coverage
      Support type `noreturn` in return statements codegen
      Support type `noreturn` in ternary expressions (CondExp)
      dmd-testsuite: Disable/adapt 2 new tests for LDC
      Phobos: Revert 'faster' pow implementation for integral exponents
      dmd.expression: Remove obsolete?/problematic LDC specificum wrt. overriding lambda function type
      Phobos: Slightly revise std.math.operations.extractBitpattern()
      Phobos: Minimally relax a pow() unittest for targets with 64-bit real
      Phobos: Minimally relax 2 std.complex unittests for targets with 64-bit real
      GitHub Actions: Disable new __traits(getOverloads) test with ltsmaster host compiler
      Phobos: Restore compilability of std.format.internal.floats unittests for targets with quadruple real precision
      Phobos: Disable std.math.traits.signbit(-NaN) CTFE tests for AArch64
      dmd-testsuite: Fix compilable/test21672.d for non-x86 targets
      Phobos: Restore compilability of std.stdio unittests for iOS
      Merge upstream stable (dlang/dmd@bffc721251)
      Bump bundled dub & dlang tools versions
      CI: Bump LDC-LLVM to v12.0.0
      CI: Bump LDC-LLVM to v12.0.0 final
      Minimally adapt lit-test PGO/indirect_calls.d for LLVM 12
      Phobos: Avoid undefined bytes in std.conv.toChars() results for radix 10
      Cirrus CI: Bump FreeBSD to v12.2
      GitHub Actions: Bump Ubuntu to 18.04
      Cirrus CI: Allow Ubuntu rolling job to fail (gdb v10)
      CI: Bump LDC-LLVM to v12.0.0 for remaining Darwin jobs (#3749)
      Travis CI: Pin host compiler to v1.26.0 (#3754)
      Bump bundled dub, allowing for longer paths on Windows (#3756)
      CMake: Compile shared druntime/Phobos libs to a single object file
      CMake: Revert to multiple object files for shared druntime
      druntime: Fix teardown of DLLs with static druntime using the .exe GC (#3755)
      Windows: Make implicit dllimport more selective
      Add -dllimport CLI option for explicitly controlling implicit dllimports
      Azure CI: Build and bundle shared libs for iOS too (#3764)
      isDefaultLibSymbol(): Recognize std.package module as Phobos module
      isDefaultLibSymbol(): Exclude all instantiated symbols with -linkonce-templates
      Phobos: Add std.getopt TLS workaround for Windows Phobos DLL
      isDefaultLibSymbol(): Add ugly special case for std.io dub package
      Refactoring: Push/pop FuncGenState for naked asm functions in DtoDefineFunction() too
      Fix bad assumption of FuncGenStates stack reflecting lexical parent/child relationships
      Refactoring: Add little dllimportSymbol() helper
      README: Add latest release badge, incl. prereleases
      README: Update notes about prebuilt packages
      Azure CI: Use mimalloc for Linux and macOS x64 packages
      Azure CI: Use mimalloc for macOS arm64 package
      README: Move cross-compilation section out of 'Installation' section
      Fix DtoCreateNestedContextType() for -linkonce-templates (#3766)
      Merge upstream stable (dlang/dmd@5f214609d9) (#3770)
      README: Add Alpine distro package
      README: Remove Shippable badge
      druntime: Merge upstream stable (#3771)
      Add __traits(initSymbol, <aggregate type>) (#3774)
      druntime: Prefer __traits(initSymbol) over TypeInfo.initializer() (#3775)
      CMake: Export zlib symbols from Phobos DLL on Windows (#3782)
      Merge upstream stable (dlang/dmd@f2fbdcacaa) (#3790)
      Make sure special struct TypeInfo members are semantically analyzed before emitting the TypeInfo (#3783)
      Fix #3778 - in-place construct <temporary>.ctor(args) (#3779)
      CI: Bump LDC-LLVM to v12.0.1 (#3789)
      Fix lit 12.0.1 installation regression (#3791)
      Merge upstream stable (dlang/dmd@f9e8117fd7) (#3794)
      Merge upstream stable (dlang/dmd@9337377c8a) (#3796)
      Merge upstream stable (dlang/dmd@d03f144b07)
      Bump bundled dub & dlang tools versions
      Changelog: Add v1.27

Mathias LANG (1):
      Driver: Use CppRuntime_Gcc by default with Musl (#3769)

Nicholas Wilson (1):
      Fix compilation on MacOS with read-only root filesystems

bcarneal (2):
      extend valid_cuda_versions thru 800
      accept i1 types as dlang bool
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants