Thread

  1. Re: Some efforts to get rid of "long" in our codebase

    David Rowley <dgrowleyml@gmail.com> — 2025-11-06T20:06:42Z

    On Fri, 7 Nov 2025 at 07:33, Peter Eisentraut <peter@eisentraut.org> wrote:
    >
    > On 06.11.25 12:46, David Rowley wrote:
    > > 0002: MemSet / MemSetAligned macros. It's probably about time someone
    > > made these disappear, but that's likely for another thread with more
    > > research than I'd like to do here. I replaced "long" with "Size". I
    > > also considered "uintptr_t", but after some reading of the C standard,
    > > I settled on Size as it seems it's possible for platforms to exist
    > > where the pointer width is smaller than the processor's width. I
    > > suspect it might not matter for the platforms we support? Size could
    > > also be smaller than the processor's width, but I feel that's less
    > > likely.
    >
    > I think size_t/Size could be misleading here.  You're not measuring any
    > size, you're just chunking up the bytes to zero into something that we
    > thing the compiler or CPU can handle very efficiently.
    >
    > So in a sense, using long isn't wrong here.  It might well be the best
    > for this.  If there is an aversion to using any long at all, why not
    > long long.
    
    The point in changing this was that long isn't a good fit as it's not
    64-bit on 64-bit Windows. My aim is to find a type with a width the
    same as the processor's word size. long long tends to be 64-bit on
    32-bit platforms, so doesn't seem a very good fit. Someone might argue
    that doesn't matter now since we no longer have 4-byte Datums, but
    IMO, this isn't any reason to make things even worse for 32-bit
    builds.
    
    David