This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH 1/2, d] Fix hashing of complex reals
- From: Iain Buclaw <ibuclaw at gdcproject dot org>
- To: Johannes Pfau <johannespfau at gmail dot com>
- Cc: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 29 Nov 2018 11:51:04 +0100
- Subject: Re: [PATCH 1/2, d] Fix hashing of complex reals
- References: <20181128214423.22414-1-johannespfau@gmail.com>
On Wed, 28 Nov 2018 at 22:44, Johannes Pfau <johannespfau@gmail.com> wrote:
>
> Hashing of complex types where the floating point type used
> for the real and imaginary parts has padding (such as X86 80 bit reals)
> has padding, is currently broken in druntime.
>
> Fixed by backporting https://github.com/dlang/druntime/pull/2356
> from druntime commit 29ce0543cb62229f005b2bc8540416dbccd1130e
>
> Tested at https://github.com/D-Programming-GDC/GDC/pull/768
>
> --
> Johannes
>
> ---
> libphobos/ChangeLog:
>
> 2018-11-28 Johannes Pfau <johannespfau@gmail.com>
>
> * libdruntime/core/internal/convert.d: Backport from latest druntime.
> * libdruntime/core/internal/hash.d: Likewise.
> * libdruntime/core/internal/traits.d: Likewise.
> * libdruntime/rt/util/typeinfo.d: Likewise.
>
> libphobos/libdruntime/core/internal/convert.d | 136 ++-
> libphobos/libdruntime/core/internal/hash.d | 1044 +++++++++++------
> libphobos/libdruntime/core/internal/traits.d | 19 +
> libphobos/libdruntime/rt/util/typeinfo.d | 33 +-
> 4 files changed, 815 insertions(+), 417 deletions(-)
>
I had a quick look at the associated druntime PRs, and this looks like
we're only selectively applying many partial patches. It would be
better to apply each dependent patch one at a time, so we don't have a
half complete backport.
These would be for instance PRs 2197, 2202, 2210, 2200, 2227, 2209,
2198, 2243, 2240, 2246, 2311 - I stopped here but there are a few more
to catch up with the internal/hash implementation, and maybe a few
more in-between that I didn't spot.
This would make transition from this 2.076+backports to 2.08x or 2.09x
a little simpler, and we can test these for any problems ahead of
time.
--
Iain