GithubHelp home page GithubHelp logo

Comments (13)

hasufell avatar hasufell commented on July 19, 2024

llvm13 is used via brew for 8.10.7

from bytestring.

clyring avatar clyring commented on July 19, 2024

Ugh. It doesn't make sense to fail because of -Wundef inside of compiler-supplied headers. But there's no obvious convenient way to say "just -Werror=undef for the code in this package."

Thanks for reporting. Does adding --ghc-options="-optP -Wno-error=undef -optc -Wno-error=undef" work around the problem?

from bytestring.

Bodigrim avatar Bodigrim commented on July 19, 2024

I think the immediate action is to make a revision for bytestring-0.12.1.0 prohibiting any builds with GHC < 9. While blunt, I don't believe it to hurt anyone and should resolve @hasufell's immediate issue (which is, I imagine, Cabal keen to use the latest and greatest releases).

from bytestring.

clyring avatar clyring commented on July 19, 2024

I was thinking rather of making a revision that just removes the -Werror=undef bits. Or is that not allowed? I'm not too clear on the extent of what Hackage revisions can and can't do.

from bytestring.

Bodigrim avatar Bodigrim commented on July 19, 2024

No, you cannot change build flags, only dependency versions: https://hackage.haskell.org/package/bytestring-0.12.1.0/bytestring.cabal/edit

from bytestring.

clyring avatar clyring commented on July 19, 2024

I see. It also looks possible to use our existing if (arch(aarch64)) block to only add the old-ghc-blocking base >= 4.15 constraint on that platform, which is a fair amount less blunt if it works. (But without having traced the bad included #if on a failing platform it's not a priori obvious exactly what the right condition is.)

from bytestring.

Bodigrim avatar Bodigrim commented on July 19, 2024

IIRC my experiments at https://github.com/haskell/bytestring/actions/runs/7791721116/job/21289850270, nothing before GHC 9.4 worked reliably on macOS aarch64.

from bytestring.

clyring avatar clyring commented on July 19, 2024

It looks like this gets worked around on GHC's end since !10750 which appears starting with 9.4.6, 9.6.3, and 9.8.1.

from bytestring.

clyring avatar clyring commented on July 19, 2024

Conveniently, both of the minor releases 9.4.6 and 9.6.3 bumped the base version. I've pushed a revision that checks for the corresponding base versions on aarch64. (It occurs to me now that a user could probably still get into trouble with -fpure-haskell on ghc-9.6.2. I'm inclined to not worry about that unless someone complains.)

from bytestring.

hasufell avatar hasufell commented on July 19, 2024

The defaults should be the most portable imo, not the most performant.

from bytestring.

clyring avatar clyring commented on July 19, 2024

I'm not sure what you're getting at.

from bytestring.

hasufell avatar hasufell commented on July 19, 2024

I misread the flags, I was under the impression this is related to the standard C routines.

Then I'd suggest to make a new point release that removes Werror and manually enables it for CI.

from bytestring.

clyring avatar clyring commented on July 19, 2024

I agree about removing -Werror=undef from the package configuration in the future to reduce the likelihood of this sort of problem re-occurring.

If there was an easy way to make -Werror=undef apply to only our CPP (and not stupid upstream CPP like this) I'd really like to keep it on, though, because if it fires in our code that is nearly 100% likely to be a bug. (And the flag has saved me a lot of debug time while refactoring already...)

from bytestring.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.