This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 19 Feb, 2017 1 commit
    • Edward Z. Yang's avatar
      Refactor setupMessage use in Cabal library. · bc9d5ada
      Edward Z. Yang authored
      
      
      I noticed that I was repeatedly writing the same code
      to print out more elaborate information when we do builds,
      so I refactored it all into one place.  In the process,
      I think that I have made the build output more generally
      useful.
      
      The key changes:
      
          - There is a new function setupMessage' which takes in
            more information than the conventional setupMessage
            does, and prints a more informative message: whereas
            setupMessage will only tell you about the package
            it is being run in, setupMessage' will also tell
            you about the component and instantiation.
      
          - I applied this function to applicable sites, in some
            cases moving around messages to be closer to the place
            where an actual operation takes place.  For example,
            the 'Building' message previously only was triggered
            at the beginning of the build process; now it is
            emitted immediately before we call out to GHC.  This
            is a lot more informative, and avoids people thinking
            that we are slow because of preprocessing (we're not.)
            Something similar happened for Haddock as well.
      
      Before:
      
      Preprocessing library 'spider' for reflex-backpack-0.5.0..
      [1 of 1] Compiling Reflex.Spider.Backpack ( src/Reflex/Spider/Backpack.hs, /srv/code/reflex-backpack/dist-newstyle/build/x86_64-linux/ghc-8.1.20170123/reflex-backpack-0.5.0/c/spider/build/spider/Reflex/Spider/Backpack.o )
      
      After:
      
      Preprocessing library 'host' for reflex-backpack-0.5.0..
      Building library 'host' instantiated with
        Reflex.Host.Sig = reflex-backpack-0.5.0-inplace-spider:Reflex.Spider.Backpack
        Reflex.Sig = reflex-backpack-0.5.0-inplace-spider:Reflex.Spider.Backpack
      for reflex-backpack-0.5.0..
      [1 of 8] Compiling Reflex.Host.Sig[sig] ( host/Reflex/Host/Sig.hsig, /srv/code/reflex-backpack/dist-newstyle/build/x86_64-linux/ghc-8.1.20170123/reflex-backpack-0.5.0/c/host/reflex-backpack-0.5.0-inplace-host+FDoWUmUc0MMBtBRwItgjj9/build/reflex-backpack-0.5.0-inplace-host+FDoWUmUc0MMBtBRwItgjj9/Reflex/Host/Sig.o ) [Reflex.Basics changed]
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      bc9d5ada
  2. 18 Feb, 2017 1 commit
  3. 17 Feb, 2017 3 commits
  4. 11 Feb, 2017 1 commit
  5. 03 Feb, 2017 1 commit
  6. 23 Jan, 2017 1 commit
  7. 11 Jan, 2017 1 commit
  8. 06 Jan, 2017 3 commits
  9. 27 Dec, 2016 1 commit
    • Edward Z. Yang's avatar
      Refactor Backpack data structures to be less flexible. · 28af355b
      Edward Z. Yang authored
      
      
      There were a number of fields in 'LinkedComponent' which
      were "too" flexible, in that they were fully determined by
      other fields in the structure.  This refactor deletes those
      fields and replaces them with functions that refer to the
      fields directly.
      
      I also introduce a new type, ComponentInclude, to take
      the place of tuples which were used to represent includes
      (mixins) in Backpack.
      
      There's also more documentation for lots of bits.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      28af355b
  10. 21 Dec, 2016 1 commit
  11. 13 Dec, 2016 1 commit
  12. 07 Dec, 2016 2 commits
  13. 14 Nov, 2016 2 commits
  14. 05 Nov, 2016 1 commit
    • Edward Z. Yang's avatar
      Add fingerprint of Generic representation when serializing. · ebcae71d
      Edward Z. Yang authored
      
      
      The idea is we can use Rep to get a full, structural representation
      of a type, and the fingerprint it using Typeable.  This gives
      us a very concise way of fingerprinting our Binary representation.
      
      This patch is not completely correct; the fingerprint needs
      to be overridable when someone writes a custom Binary instance.
      But this should be "good enough" in practice; we're not using
      these fingerprints to check anything security critical.
      
      TODO: Not sure if I have tagged all the call-sites which could
      profit from this.
      
      Fixes #4059.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      ebcae71d
  15. 01 Nov, 2016 1 commit
  16. 31 Oct, 2016 1 commit
  17. 29 Oct, 2016 1 commit
  18. 28 Oct, 2016 1 commit
    • Edsko de Vries's avatar
      Add support for foreign libraries. · 382143aa
      Edsko de Vries authored
      A stanza for a platform library looks something like
      
          platform-library test-package
            type:                native-shared
      
            if os(Windows)
              options: standalone
              mod-def-file: TestPackage.def
      
            other-modules:       MyPlatformLib.Hello
                                 MyPlatformLib.SomeBindings
            build-depends:       base >=4.7 && <4.9
            hs-source-dirs:      src
            c-sources:           csrc/MyPlatformLibWrapper.c
            default-language:    Haskell2010
      
      where native-shared means that we want to build a native shared library
      (.so on Linux, .dylib on OSX, .dll on Windows). The parser also
      recognizes native-static but this is not currently supported anywhere.
      The standalone option means that the we merge all library dependencies
      into the dynamic library (i.e., ghc options -shared -static), rather
      than make the created dynamic library just record its dependencies (ghc
      options -shared -dynamic); it is currently compulsory on Windows and
      unsupported anywhere else. The mod-def-file can be used to specify a
      module definition file, and is also Windows specific.
      
      There is a bit of refactoring in Build: gbuild is the old buildOrReplExe
      and now deals with both executables and platform libraries.
      382143aa
  19. 27 Oct, 2016 2 commits
  20. 26 Oct, 2016 8 commits
    • Oleg Grenrus's avatar
      Use SnocList to accumulate CondTrees · dc449c73
      Oleg Grenrus authored
      dc449c73
    • Oleg Grenrus's avatar
      Add more parsec warning tests · 211d9a56
      Oleg Grenrus authored
      211d9a56
    • Oleg Grenrus's avatar
      Add nbsp warning test · 9771c366
      Oleg Grenrus authored
      Note: we notify only about nbsp at the beginning of the line
      nbsp inside fields get just parsed atm
      9771c366
    • Oleg Grenrus's avatar
      Add parser BOM warning test · 4a4cea68
      Oleg Grenrus authored
      4a4cea68
    • Oleg Grenrus's avatar
      Lens additions · ee5e64fb
      Oleg Grenrus authored
      ee5e64fb
    • Oleg Grenrus's avatar
      PVP alex bound · 0ee50bc6
      Oleg Grenrus authored
      0ee50bc6
    • Oleg Grenrus's avatar
      Hide StructDiff behind the flag · 722e030f
      Oleg Grenrus authored
      722e030f
    • Oleg Grenrus's avatar
      Parsec parser · 512db606
      Oleg Grenrus authored
      - Initial import of stuff
      - Add hackage index parsing test for parsec
      - We can parse name and version
      - Add generics-sop dep
      - Use D.C.Prelude
      - Add StructDiff
      - Fix integral
      - Add Parsec -class
      - Add licence parsing
      - Free text fields (parsed as ascii atm)
      - Better StructDiff
      - Parsec BuildType
      - Implement VersionRange parser
      - Section parsing first steps
      - Sketch parseCondTree
      - more sec parsing
      - Module name
      - hs-source-dirs
          ::: composition/0.1/composition.cabal
          ::: composition/0.2/composition.cabal
          ::: composition/0.2.1/composition.cabal
          ::: composition/1.0.0.0/composition.cabal
      - PError (Position 20 1) "Unknown section: \"source-repository\""
      - Parses condition
      - Add some notes, address few comments
      - Install alex on linux travis
      - Make ParseResult strict state monad
      - Use withinVersion
      - No warnings
      - Move to Distribution.PackageDescription.Parsec.FieldDescr
      - extensions
      - SourceRepo (sans kind) parsing
      - RepoKind
      - Few more stuff
      - Add Distribution.Compat.Parsec
      - We can parse all 'composition*' packages cabal files \o/
      - fromUtf8BS
      - Clean up abit
      - More stuff
      - And more stuff
      - Traling whitespace :(
      - Executables
      - Benchmarks
      - spaceListField
      - Parse flag sections
      - a ~ Char,
      - tested with
      - package description x-fields
      - Conditions
      - reformat
      - Handle old syntax
      - More fields
      - More stuff
      - ^co ok,
      - more stuff
      - ^c ok
      - some of hackage ok
      - A-Z ok
      - Works [A-al)
      - to the h
      - rest of Hackage
      - Introduce parsec -flag
      - Count warnings
      - Verify we get not less warnings from parsec parser
      - fixup! Introduce parsec -flag
      - Warn about old/new syntax and cabal-version
      - Invalid UTF warning
      - Deprecated fields
      - Fix meta
      - Move transformers dep under parsec flag
      - Add parsec travis job
      512db606
  21. 25 Oct, 2016 1 commit
    • Edward Z. Yang's avatar
      Don't use installedPkgs for internal library library dirs. · a1107e21
      Edward Z. Yang authored
      In 1.24, installedPkgs contained only references to the external package
      database, not any internal libraries. In particular, when we built a
      dynamically linked executable, installedPkgs did NOT have a reference to
      the internal library; instead, depLibraryPaths has a special case
      (hasInternalDeps) to add the final libdir to the RPATH.
      
      In HEAD, after 0d15edef
      
      , we started adding internal libraries (with the
      INPLACE registrations) to installedPkgs to fix #2971.  But depLibraryPaths
      was not updated, which means that the inplace registrations got picked
      up and added to the RPATH, resulting in bad temporary directories
      showing up in RPATHs.
      
      In this commit, we just filter out internal entries from installedPkgs
      and compute the library dirs for them from scratch (this code already
      existed, so no loss!)
      
      Fixes #4025.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      a1107e21
  22. 20 Oct, 2016 1 commit
  23. 19 Oct, 2016 1 commit
  24. 18 Oct, 2016 3 commits