1. 08 Oct, 2019 3 commits
  2. 07 Oct, 2019 12 commits
  3. 05 Oct, 2019 13 commits
    • Ben Gamari's avatar
      rts: Fix CNF dirtying logic · 241921a0
      Ben Gamari authored
      Previously due to a silly implementation bug CNFs would never have their
      dirty flag set, resulting in their being added again and again to the
      `mut_list`. Fix this.
      Fixes #17297.
    • John Ericson's avatar
      Clean up `#include`s in the compiler · ee8118ca
      John Ericson authored
       - Remove unneeded ones
       - Use <..> for inter-package.
         Besides general clean up, helps distinguish between the RTS we link
         against vs the RTS we compile for.
    • matthewbauer's avatar
      Add musl systems to llvm-targets · 8039b625
      matthewbauer authored
      This was done in Nixpkgs, but never upstreamed. Musl is pretty much
      the same as gnu, but with a different libc. I’ve used the same values
      for everything.
    • Roland Senn's avatar
      New fix for #11647. Avoid side effects like #17171 · 93f02b62
      Roland Senn authored
      If a main module doesn't contain a header, we omit the check whether the main module is exported.
      With this patch GHC, GHCi and runghc use the same code.
    • Artem Pyanykh's avatar
      [linker, macho] Don't map/allocate zero size sections and segments · 0d31ccdd
      Artem Pyanykh authored
      Zero size sections are common even during regular build on MacOS. For
      $ ar -xv libHSghc-prim-0.6.1.a longlong.o
      $ otool -l longlong.o
      Mach header
            magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
       0xfeedfacf 16777223          3  0x00           1     2        176 0x00002000
      Load command 0
            cmd LC_SEGMENT_64
        cmdsize 152
         vmaddr 0x0000000000000000
         vmsize 0x0000000000000000 <-- segment size = 0
        fileoff 208
       filesize 0
        maxprot 0x00000007
       initprot 0x00000007
         nsects 1
          flags 0x0
        sectname __text
         segname __TEXT
            addr 0x0000000000000000
            size 0x0000000000000000 <-- section size = 0
          offset 208
           align 2^0 (1)
          reloff 0
          nreloc 0
           flags 0x80000000
       reserved1 0
       reserved2 0
             cmd LC_BUILD_VERSION
         cmdsize 24
        platform macos
             sdk 10.14
           minos 10.14
          ntools 0
      The issue of `mmap`ing 0 bytes was resolved in !1050, but the problem
      remained. These 0 size segments and sections were still allocated in
      object code, which lead to failed `ASSERT(size > 0)` in
      `addProddableBlock` further down the road.
      With this change zero size segments **and** sections are not
      mapped/allocated at all.
      Test plan:
      1. Build statically linked GHC.
      2. Run `ghc --interactive`. Observe that REPL loads
      successfully (which was not the case before).
      3. Load several more compiled hs files into repl. No failures.
    • John Ericson's avatar
      Always enable the external interpreter · 0dded5ec
      John Ericson authored
      You can always just not use or even build `iserv`. I don't think the
      maintenance cost of the CPP is worth...I can't even tell what the
      benefit is.
    • John Ericson's avatar
    • John Ericson's avatar
      Pull out the settings file parsing code into it's own module. · d15b44d6
      John Ericson authored
      This has two benefits:
      1. One less hunk of code dependent on DynFlags
      2. Add a little bit of error granularity to distrinugish between missing
         data and bad data. This could someday be shared with ghc-pkg which
         aims to work even with a missing file. I also am about to to make
         --supported-extensions use this too.
    • John Ericson's avatar
    • Daroc Alden's avatar
      Deprecate -fwarn-hi-shadowing, because it was never implemented and is · b538476b
      Daroc Alden authored
      not used.
      This fixes #10913.
    • John Ericson's avatar
      Remove {Build,Host}Platform_NAME from header · 75a5dd8e
      John Ericson authored
      They are only used in a file we construct directly, so just skip CPP.
    • John Ericson's avatar
      Per stage headers, ghc_boot_platform.h -> stage 0 ghcplatform.h · 05419e55
      John Ericson authored
      The generated headers are now generated per stage, which means we can
      skip hacks like `ghc_boot_platform.h` and just have that be the stage 0
      header as proper. In general, stages are to be embraced: freely generate
      everything in each stage but then just build what you depend on, and
      everything is symmetrical and efficient. Trying to avoid stages because
      bootstrapping is a mind bender just creates tons of bespoke
      mini-mind-benders that add up to something far crazier.
      Hadrian was pretty close to this "stage-major" approach already, and so
      was fairly easy to fix. Make needed more work, however: it did know
      about stages so at least there was a scaffold, but few packages except
      for the compiler cared, and the compiler used its own counting system.
      That said, make and Hadrian now work more similarly, which is good for
      the transition to Hadrian. The merits of embracing stage aside, the
      change may be worthy for easing that transition alone.
    • Fumiaki Kinoshita's avatar
  4. 03 Oct, 2019 12 commits