1. 10 Sep, 2020 1 commit
  2. 01 Sep, 2020 1 commit
    • Sven Tennie's avatar
      Ignore more files · 380ef845
      Sven Tennie authored
      Ignore files from "new style" cabal builds (dist-newstyle folders) and
      from clangd (C language server).
      380ef845
  3. 14 Oct, 2019 1 commit
    • Ryan Scott's avatar
      Add docs/users_guide/.log to .gitignore · 78463fc5
      Ryan Scott authored
      When the users guide fails to build (as in #17346), a
      `docs/users_guide/.log` file will be generated with contents that
      look something like this:
      
      ```
      WARNING: unknown config value 'latex_paper_size' in override, ignoring
      /home/rgscott/Software/ghc5/docs/users_guide/ghci.rst:3410: WARNING: u'ghc-flag' reference target not found: -pgmo ?option?
      /home/rgscott/Software/ghc5/docs/users_guide/ghci.rst:3410: WARNING: u'ghc-flag' reference target not found: -pgmo ?port?
      
      Encoding error:
      'ascii' codec can't encode character u'\u27e8' in position 132: ordinal not in range(128)
      The full traceback has been saved in /tmp/sphinx-err-rDF2LX.log, if you want to report the issue to the developers.
      ```
      
      This definitely should not be checked in to version control, so let's
      add this to `.gitignore`.
      78463fc5
  4. 05 Oct, 2019 1 commit
    • 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.
      05419e55
  5. 04 Aug, 2019 1 commit
  6. 31 Jul, 2019 1 commit
  7. 10 Jul, 2019 1 commit
  8. 07 May, 2019 1 commit
    • Ryan Scott's avatar
      Add /includes/dist to .gitignore · 96197961
      Ryan Scott authored
      As of commit d37d91e9, the GHC build
      now autogenerates a `includes/dist/build/settings` file. To avoid
      dirtying the current `git` status, this adds `includes/dist` to
      `.gitignore`.
      
      [ci skip]
      96197961
  9. 22 Mar, 2019 1 commit
  10. 15 Mar, 2019 1 commit
  11. 06 Mar, 2019 1 commit
    • Ben Gamari's avatar
      Rip out object splitting · 37f257af
      Ben Gamari authored
      The splitter is an evil Perl script that processes assembler code.
      Its job can be done better by the linker's --gc-sections flag. GHC
      passes this flag to the linker whenever -split-sections is passed on
      the command line.
      
      This is based on @DemiMarie's D2768.
      
      Fixes Trac #11315
      Fixes Trac #9832
      Fixes Trac #8964
      Fixes Trac #8685
      Fixes Trac #8629
      37f257af
  12. 28 Feb, 2019 1 commit
    • Moritz Angermann's avatar
      Cleanup iserv/iserv-proxy · f838809f
      Moritz Angermann authored
      This adds trace messages that include the processes name and as such
      make debugging and following the communication easier.
      
      It also adds a note regarding the fwd*Call proxy-communication logic
      between the proxy and the slave.
      
      The proxy will now also poll for 60s to wait for the remote iserv
      to come up. (Alternatively you can start the remote process
      beforehand; and just have iserv-proxy connect to it)
      f838809f
  13. 20 Feb, 2019 1 commit
    • Ryan Scott's avatar
      Bump ghc version to 8.9 · aa79f65c
      Ryan Scott authored
      Along the way, I discovered that `template-haskell.cabal` was
      hard-coding the GHC version (in the form of its `ghc-boot-th` version
      bounds), so I decided to make life a little simpler in the future by
      generating `template-haskell.cabal` with autoconf.
      aa79f65c
  14. 26 Nov, 2018 1 commit
  15. 11 Nov, 2018 1 commit
  16. 02 Oct, 2018 1 commit
    • chessai's avatar
      resolve T13704 · abfb91fb
      chessai authored
      Summary: allow -main-is to change export list for default module
      header, allowing one to change the entry point to one's program.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, nomeata, mpickering
      
      Reviewed By: mpickering
      
      Subscribers: mpickering, rwbarton, carter
      
      GHC Trac Issues: #13704
      
      Differential Revision: https://phabricator.haskell.org/D5189
      abfb91fb
  17. 06 Aug, 2018 1 commit
    • Michael Sloan's avatar
      Use -fobject-code in the GHCi script for loading GHC · e94cc29e
      Michael Sloan authored
      Summary:
      My very last commit to D4904 removed -fobject-code.  I should have tested this
      more thoroughly, because it is required to do a fresh ghci load, as some code
      uses unboxed tuples.
      
      One of my motivations for doing this was that if you run the script without
      passing -odir / -hidir, it would pollute the source tree with .hi and .o files.
      This also appeared to break subsequent builds. I've made it much less likely
      that this will happen by instead specifying -odir and -hidir within the ghci
      script rather than on the commandline.
      
      I plan to open a separate diff which adds a test that these scripts work.
      
      Until this patch is merged, the workaround is to do `./utils/ghc-in-ghci/run.sh -fobject-code`
      
      Reviewers: bgamari, alpmestan, monoidal
      
      Reviewed By: alpmestan, monoidal
      
      Subscribers: alpmestan, rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D5015
      e94cc29e
  18. 14 Jun, 2018 1 commit
    • Vladislav Zavialov's avatar
      Embrace -XTypeInType, add -XStarIsType · d650729f
      Vladislav Zavialov authored
      Summary:
      Implement the "Embrace Type :: Type" GHC proposal,
      .../ghc-proposals/blob/master/proposals/0020-no-type-in-type.rst
      
      GHC 8.0 included a major change to GHC's type system: the Type :: Type
      axiom. Though casual users were protected from this by hiding its
      features behind the -XTypeInType extension, all programs written in GHC
      8+ have the axiom behind the scenes. In order to preserve backward
      compatibility, various legacy features were left unchanged. For example,
      with -XDataKinds but not -XTypeInType, GADTs could not be used in types.
      Now these restrictions are lifted and -XTypeInType becomes a redundant
      flag that will be eventually deprecated.
      
      * Incorporate the features currently in -XTypeInType into the
        -XPolyKinds and -XDataKinds extensions.
      * Introduce a new extension -XStarIsType to control how to parse * in
        code and whether to print it in error messages.
      
      Test Plan: Validate
      
      Reviewers: goldfire, hvr, bgamari, alanz, simonpj
      
      Reviewed By: goldfire, simonpj
      
      Subscribers: rwbarton, thomie, mpickering, carter
      
      GHC Trac Issues: #15195
      
      Differential Revision: https://phabricator.haskell.org/D4748
      d650729f
  19. 08 Jun, 2018 1 commit
    • Moritz Angermann's avatar
      Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` · 6fbe5f27
      Moritz Angermann authored
      This is done for consistency. We usually call the package file the same name the
      folder has.  The move into `utils` is done so that we can move the library into
      `libraries/iserv` and the proxy into `utils/iserv-proxy` and then break the
      `iserv.cabal` apart.  This will make building the cross compiler with TH
      simpler, because we can build the library and proxy as separate packages.
      
      Test Plan: ./validate
      
      Reviewers: bgamari, goldfire, erikd
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4436
      6fbe5f27
  20. 20 May, 2018 1 commit
    • patrickdoc's avatar
      Add HeapView functionality · ec22f7dd
      patrickdoc authored
      This pulls parts of Joachim Breitner's ghc-heap-view library inside GHC.
      The bits added are the C hooks into the RTS and a basic Haskell wrapper
      to these C hooks. The main reason for these to be added to GHC proper
      is that the code needs to be kept in sync with the closure types
      defined by the RTS. It is expected that the version of HeapView shipped
      with GHC will always work with that version of GHC and that extra
      functionality can be layered on top with a library like ghc-heap-view
      distributed via Hackage.
      
      Test Plan: validate
      
      Reviewers: simonmar, hvr, nomeata, austin, Phyx, bgamari, erikd
      
      Reviewed By: bgamari
      
      Subscribers: carter, patrickdoc, tmcgilchrist, rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3055
      ec22f7dd
  21. 31 Mar, 2018 1 commit
    • Tamar Christina's avatar
      Remove MAX_PATH restrictions from RTS, I/O manager and various utilities · 4de585a5
      Tamar Christina authored
      Summary:
      This shims out fopen and sopen so that they use modern APIs under the hood
      along with namespaced paths.
      
      This lifts the MAX_PATH restrictions from Haskell programs and makes the new
      limit ~32k.
      
      There are only some slight caveats that have been documented.
      
      Some utilities have not been upgraded such as lndir, since all these things are
      different cabal packages I have been forced to copy the source in different places
      which is less than ideal. But it's the only way to keep sdist working.
      
      Test Plan: ./validate
      
      Reviewers: hvr, bgamari, erikd, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, carter
      
      GHC Trac Issues: #10822
      
      Differential Revision: https://phabricator.haskell.org/D4416
      4de585a5
  22. 07 Mar, 2018 1 commit
  23. 26 Feb, 2018 1 commit
  24. 20 Feb, 2018 1 commit
  25. 15 Feb, 2018 1 commit
    • Moritz Angermann's avatar
      Move `iserv` into `utils` and change package name from `iserv-bin` to `iserv` · 7c173b90
      Moritz Angermann authored
      This is done for consistency. We usually call the package file the same name the
      folder has.  The move into `utils` is done so that we can move the library into
      `libraries/iserv` and the proxy into `utils/iserv-proxy` and then break the
      `iserv.cabal` apart.  This will make building the cross compiler with TH
      simpler, because we can build the library and proxy as separate packages.
      
      Reviewers: bgamari, simonmar, goldfire, erikd
      
      Reviewed By: simonmar
      
      Subscribers: tdammers, rwbarton, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4377
      7c173b90
  26. 22 Nov, 2017 1 commit
  27. 18 Nov, 2017 1 commit
    • Moritz Angermann's avatar
      Fix rts.cabal.in · 74070bbb
      Moritz Angermann authored
      Overlap with commit 2f463873, resulted in `hooks/LongGCSync.c`
      missing from the `rts.cabal.in` file.  As the `rts.cabal` file is only
      used by hadrian, this did not trigger with the make base build
      system which can do globbing.
      
      Also ignore the `rts.cabal` file, as it's generated by configure
      from the `rts.cabal.in`.
      74070bbb
  28. 06 Nov, 2017 1 commit
  29. 02 Nov, 2017 1 commit
  30. 27 Sep, 2017 1 commit
  31. 29 Aug, 2017 1 commit
    • Tamar Christina's avatar
      Add gen-dll as replacement for dll-split · 5f6a8204
      Tamar Christina authored
      Summary:
      This tool can be used to generate dll's for any list of object files
      given to it. It will then repartition them automatically to fit within
      a dll and generates as many dll's as needed to do this. Cyclic dependencies
      between these generated dlls are handle automatically so there is no need
      to tell it how to partition.
      
      It is also a lot more general than `dll-split` as it is able to split any
      package not just `libGHC`. It also uses a trick using GNU style import libraries
      to hide the splitting from the rest of the pipeline. Which means come linking time
      you don't need to know which dll contains what symbol or how many split dlls were
      created.
      
      The import libraries are by default created with libtool. However since libtool is BFD
      based it is very slow. So if present and detected by configure the `genlib` tool
      from the msys2 project is used. This makes a difference of about ~45 minutes when compiling.
      
      To install `genlib` run `pacman -Sy mingw-w64-$(uname -m)-tools-git`.
      
      More detailed explaination of the process can be found here
      https://ghc.haskell.org/trac/ghc/wiki/WindowsDynamicLinking
      
      Test Plan: ./validate
      
      Reviewers: austin, hvr, bgamari, erikd, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: snowleopard, rwbarton, thomie, erikd, #ghc_windows_task_force
      
      GHC Trac Issues: #5987
      
      Differential Revision: https://phabricator.haskell.org/D3883
      5f6a8204
  32. 19 Aug, 2017 2 commits
    • Andrey Mokhov's avatar
      Add ghcid.txt · 8f244c41
      Andrey Mokhov authored
      8f244c41
    • patrickdoc's avatar
      users_guide: Convert mkUserGuidePart generation to a Sphinx extension · cf8ab1ce
      patrickdoc authored
      This removes all dependencies the users guide had on `mkUserGuidePart`.
      The generation of the flag reference table and the various pieces of the
      man page is now entirely contained within the Spinx extension
      `flags.py`. You can see the man page generation on the orphan page
      https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghc.html
      
      The extension works by collecting all of the meta-data attached to the
      `ghc-flag` directives and then formatting and displaying it at
      `flag-print` directives. There is a single printing directive that can
      be customized with two options, what format to display (table, list, or
      block of flags) and an optional category to limit the output to
      (verbosity, warnings, codegen, etc.).
      
      New display formats can be added by creating a function
      `generate_flag_xxx` (where `xxx` is a description of the format) which
      takes a list of flags and a category and returns a new `xxx`. Then just
      add a reference in the dispatch table `handlers`. That display can now
      be run by passing `:type: xxx` to the `flag-print` directive.
      
      `flags.py` contains two maps of settings that can be adjusted. The first
      is a canonical list of flag categories, and the second sets default
      categories for files.
      
      The only functionality that Sphinx could not replace was the
      `what_glasgow_exts_does.gen.rst` file. `mkUserGuidePart` actually just
      reads the list of flags from `compiler/main/DynFlags.hs` which Sphinx
      cannot do. As the flag is deprecated, I added the list as a static file
      which can be updated manually.
      
      Additionally, this patch updates every single documented flag with the
      data from `mkUserGuidePart` to generate the reference table.
      
      Fixes #11654 and, incidentally, #12155.
      
      Reviewers: austin, bgamari
      
      Subscribers: rwbarton, thomie
      
      GHC Trac Issues: #11654, #12155
      
      Differential Revision: https://phabricator.haskell.org/D3839
      cf8ab1ce
  33. 02 Aug, 2017 2 commits
  34. 28 Jul, 2017 1 commit
  35. 15 Apr, 2017 1 commit
  36. 01 Feb, 2017 1 commit
  37. 11 Jan, 2017 1 commit
  38. 15 Dec, 2016 1 commit