This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. 14 Oct, 2017 2 commits
  2. 20 Sep, 2017 1 commit
    • Oleg Grenrus's avatar
      Introduce FIeldGrammar. · c72fd0e7
      Oleg Grenrus authored
      This commit reworks how GenericPackageDescription is parsed from
      `[Field Position]` and pretty-printed to `Doc`.
      
      This also fixes few issues:
      - Fix #4697: `cabal format` doesn't output custom-setup stanza (nor
        foreign-lib stanzas)
      - Fix #4719: `parse . pretty . parse = parse`  for all Hackage cabal files.
          - `parser-hackage-tests roundtrip` is the test program.
      
      The handling of `license-file` and `license-files` is changed.
      Now they behave the same.
      c72fd0e7
  3. 17 Aug, 2017 1 commit
  4. 16 Aug, 2017 1 commit
    • Oleg Grenrus's avatar
      Use alex in latin1 mode · 541c415f
      Oleg Grenrus authored
      At the moment we have very lax "name" lexer, which is essentially
      *everything else* than otherwise specified characters: parens, space,
      symbols (but not hyphen -)
      
      This removes `TokNum` and `SecArgNum`, both are merged into `TokSym` and
      `SecArgSym` respectively.
      541c415f
  5. 15 Aug, 2017 3 commits
  6. 19 Feb, 2017 1 commit
  7. 26 Jan, 2017 1 commit
  8. 06 Jan, 2017 1 commit
  9. 14 Nov, 2016 1 commit
  10. 31 Oct, 2016 2 commits
  11. 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
  12. 26 Oct, 2016 10 commits
    • Oleg Grenrus's avatar
      Use SnocList to accumulate CondTrees · dc449c73
      Oleg Grenrus authored
      dc449c73
    • Oleg Grenrus's avatar
      Don't use GPDS type, instead use functions · 982516ae
      Oleg Grenrus authored
      982516ae
    • Oleg Grenrus's avatar
      Add comments and reformat imports · 51e75f3e
      Oleg Grenrus authored
      51e75f3e
    • Oleg Grenrus's avatar
      Add more parsec warning tests · 211d9a56
      Oleg Grenrus authored
      211d9a56
    • Oleg Grenrus's avatar
      73492bd2
    • Oleg Grenrus's avatar
      Test parsers on travis, fix haddock · bac3f60d
      Oleg Grenrus authored
      bac3f60d
    • Oleg Grenrus's avatar
    • Oleg Grenrus's avatar
      726112d6
    • Oleg Grenrus's avatar
      c87d5b5b
    • 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