Skip to content

Commit

Permalink
Create Cabal-syntax for .cabal parsing and types
Browse files Browse the repository at this point in the history
  • Loading branch information
patrickdoc committed Sep 15, 2021
1 parent d9ec979 commit 9da489e
Show file tree
Hide file tree
Showing 185 changed files with 596 additions and 281 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ jobs:
- uses: actions/checkout@v2
- name: Package project
run: |
cabal v2-sdist --builddir=sdist Cabal cabal-install-solver cabal-install
python3.8 release.py --tarlib=sdist/sdist/Cabal-*.tar.gz --tarsolver=sdist/sdist/cabal-install-solver-3.*.tar.gz --tarexe=sdist/sdist/cabal-install-3.*.tar.gz
cabal v2-sdist --builddir=sdist Cabal-syntax Cabal cabal-install-solver cabal-install
python3.8 release.py --tarsyntax=sdist/sdist/Cabal-syntax-*.tar.gz --tarlib=sdist/sdist/Cabal-3*.tar.gz --tarsolver=sdist/sdist/cabal-install-solver-3.*.tar.gz --tarexe=sdist/sdist/cabal-install-3.*.tar.gz
- uses: actions/upload-artifact@v2
with:
name: cabal-linux
Expand Down Expand Up @@ -62,8 +62,8 @@ jobs:
- uses: actions/checkout@v2
- name: Package project
run: |
cabal v2-sdist --builddir=sdist Cabal cabal-install-solver cabal-install
python3 release.py --tarlib=sdist/sdist/Cabal-*.tar.gz --tarsolver=sdist/sdist/cabal-install-solver-3.*.tar.gz --tarexe=sdist/sdist/cabal-install-3.*.tar.gz
cabal v2-sdist --builddir=sdist Cabal-syntax Cabal cabal-install-solver cabal-install
python3 release.py --tarsyntax=sdist/sdist/Cabal-syntax-*.tar.gz --tarlib=sdist/sdist/Cabal-*.tar.gz --tarsolver=sdist/sdist/cabal-install-solver-3.*.tar.gz --tarexe=sdist/sdist/cabal-install-3.*.tar.gz
- uses: actions/upload-artifact@v2
with:
name: cabal-macos
Expand Down Expand Up @@ -93,9 +93,9 @@ jobs:
- name: Package project
# We hardcode version 3 here to make first glob not overlap with cabal-install
run: |
cabal v2-sdist --builddir=sdist Cabal cabal-install-solver cabal-install
cabal v2-sdist --builddir=sdist Cabal-syntax Cabal cabal-install-solver cabal-install
New-Item -Path "_build" -ItemType "directory"
python release.py --tarlib=$(Resolve-Path -Path sdist/sdist/Cabal-3.*.tar.gz) --tarsolver=$(Resolve-Path -Path sdist/sdist/cabal-install-solver-3.*.tar.gz) --tarexe=$(Resolve-Path -Path sdist/sdist/cabal-install-3.*.tar.gz)
python release.py --tarsyntax=$(Resolve-Path -Path sdist/sdist/Cabal-syntax*.tar.gz) --tarlib=$(Resolve-Path -Path sdist/sdist/Cabal-3.*.tar.gz) --tarsolver=$(Resolve-Path -Path sdist/sdist/cabal-install-solver-3.*.tar.gz) --tarexe=$(Resolve-Path -Path sdist/sdist/cabal-install-3.*.tar.gz)
- uses: actions/upload-artifact@v2
with:
name: cabal-windows
Expand Down
5 changes: 3 additions & 2 deletions Cabal-QuickCheck/Cabal-QuickCheck.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,9 @@ library
build-depends:
, base
, bytestring
, Cabal ^>=3.7.0.0
, QuickCheck ^>=2.13.2 || ^>=2.14
, Cabal ^>=3.7.0.0
, Cabal-syntax ^>=3.7.0.0
, QuickCheck ^>=2.13.2 || ^>=2.14

if !impl(ghc >= 8.0)
build-depends: semigroups
Expand Down
1 change: 1 addition & 0 deletions Cabal-described/Cabal-described.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ library
build-depends:
, base
, Cabal ^>=3.7.0.0
, Cabal-syntax ^>=3.7.0.0
, containers
, pretty
, QuickCheck
Expand Down
246 changes: 246 additions & 0 deletions Cabal-syntax/Cabal-syntax.cabal
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
cabal-version: >=1.10
name: Cabal-syntax
version: 3.7.0.0
copyright: 2003-2021, Cabal Development Team (see AUTHORS file)
license: BSD3
license-file: LICENSE
author: Cabal Development Team <cabal-devel@haskell.org>
maintainer: cabal-devel@haskell.org
homepage: http://www.haskell.org/cabal/
bug-reports: https://github.com/haskell/cabal/issues
synopsis: A library for working with .cabal files
description:
This library provides tools for reading and manipulating the .cabal file
format.
category: Distribution
build-type: Simple

extra-source-files:
README.md ChangeLog.md

source-repository head
type: git
location: https://github.com/haskell/cabal/
subdir: Cabal-syntax

flag bundled-binary-generic
default: False

library
default-language: Haskell2010
hs-source-dirs: src

build-depends:
array >= 0.4.0.1 && < 0.6,
base >= 4.6 && < 5,
bytestring >= 0.10.0.0 && < 0.12,
containers >= 0.5.0.0 && < 0.7,
deepseq >= 1.3.0.1 && < 1.5,
directory >= 1.2 && < 1.4,
filepath >= 1.3.0.1 && < 1.5,
mtl >= 2.1 && < 2.3,
parsec >= 3.1.13.0 && < 3.2,
pretty >= 1.1.1 && < 1.2,
text >= 1.2.3.0 && < 1.3,
time >= 1.4.0.1 && < 1.12,
-- transformers-0.4.0.0 doesn't have record syntax e.g. for Identity
-- See also https://github.com/ekmett/transformers-compat/issues/35
transformers (>= 0.3 && < 0.4) || (>=0.4.1.0 && <0.6)

if flag(bundled-binary-generic)
build-depends: binary >= 0.5.1.1 && < 0.7
else
build-depends: binary >= 0.7 && < 0.9

if os(windows)
build-depends: Win32 >= 2.3.0.0 && < 2.13
else
build-depends: unix >= 2.6.0.0 && < 2.8

ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates
if impl(ghc >= 8.0)
ghc-options: -Wcompat -Wnoncanonical-monad-instances

if impl(ghc <8.8)
ghc-options: -Wnoncanonical-monadfail-instances

if !impl(ghc >= 8.0)
-- at least one of lib:Cabal's dependency (i.e. `parsec`)
-- already depends on `fail` and `semigroups` transitively
build-depends: fail == 4.9.*, semigroups >= 0.18.3 && < 0.20

if !impl(ghc >= 7.10)
build-depends: void >= 0.7.3 && < 0.8

if !impl(ghc >= 7.8)
-- semigroups depends on tagged.
build-depends: tagged >=0.8.6 && <0.9, bytestring-builder >= 0.10.8 && <0.11

exposed-modules:
Distribution.Backpack
Distribution.CabalSpecVersion
Distribution.Compat.Binary
Distribution.Compat.CharParsing
Distribution.Compat.DList
Distribution.Compat.Exception
Distribution.Compat.Graph
Distribution.Compat.Lens
Distribution.Compat.MonadFail
Distribution.Compat.Newtype
Distribution.Compat.NonEmptySet
Distribution.Compat.Parsing
Distribution.Compat.Prelude
Distribution.Compat.Semigroup
Distribution.Compat.Typeable
Distribution.Compiler
Distribution.FieldGrammar
Distribution.FieldGrammar.Class
Distribution.FieldGrammar.FieldDescrs
Distribution.FieldGrammar.Newtypes
Distribution.FieldGrammar.Parsec
Distribution.FieldGrammar.Pretty
Distribution.Fields
Distribution.Fields.ConfVar
Distribution.Fields.Field
Distribution.Fields.Lexer
Distribution.Fields.LexerMonad
Distribution.Fields.ParseResult
Distribution.Fields.Parser
Distribution.Fields.Pretty
Distribution.InstalledPackageInfo
Distribution.License
Distribution.ModuleName
Distribution.Package
Distribution.PackageDescription
Distribution.PackageDescription.Configuration
Distribution.PackageDescription.FieldGrammar
Distribution.PackageDescription.Parsec
Distribution.PackageDescription.PrettyPrint
Distribution.PackageDescription.Quirks
Distribution.PackageDescription.Utils
Distribution.Parsec
Distribution.Parsec.Error
Distribution.Parsec.FieldLineStream
Distribution.Parsec.Position
Distribution.Parsec.Warning
Distribution.Pretty
Distribution.SPDX
Distribution.SPDX.License
Distribution.SPDX.LicenseExceptionId
Distribution.SPDX.LicenseExpression
Distribution.SPDX.LicenseId
Distribution.SPDX.LicenseListVersion
Distribution.SPDX.LicenseReference
Distribution.System
Distribution.Text
Distribution.Types.AbiDependency
Distribution.Types.AbiHash
Distribution.Types.Benchmark
Distribution.Types.Benchmark.Lens
Distribution.Types.BenchmarkInterface
Distribution.Types.BenchmarkType
Distribution.Types.BuildInfo
Distribution.Types.BuildInfo.Lens
Distribution.Types.BuildType
Distribution.Types.Component
Distribution.Types.ComponentId
Distribution.Types.ComponentName
Distribution.Types.ComponentRequestedSpec
Distribution.Types.CondTree
Distribution.Types.Condition
Distribution.Types.ConfVar
Distribution.Types.Dependency
Distribution.Types.DependencyMap
Distribution.Types.ExeDependency
Distribution.Types.Executable
Distribution.Types.Executable.Lens
Distribution.Types.ExecutableScope
Distribution.Types.ExposedModule
Distribution.Types.Flag
Distribution.Types.ForeignLib
Distribution.Types.ForeignLib.Lens
Distribution.Types.ForeignLibOption
Distribution.Types.ForeignLibType
Distribution.Types.GenericPackageDescription
Distribution.Types.GenericPackageDescription.Lens
Distribution.Types.HookedBuildInfo
Distribution.Types.IncludeRenaming
Distribution.Types.InstalledPackageInfo
Distribution.Types.InstalledPackageInfo.Lens
Distribution.Types.InstalledPackageInfo.FieldGrammar
Distribution.Types.LegacyExeDependency
Distribution.Types.Lens
Distribution.Types.Library
Distribution.Types.Library.Lens
Distribution.Types.LibraryName
Distribution.Types.LibraryVisibility
Distribution.Types.Mixin
Distribution.Types.Module
Distribution.Types.ModuleReexport
Distribution.Types.ModuleRenaming
Distribution.Types.MungedPackageId
Distribution.Types.MungedPackageName
Distribution.Types.PackageDescription
Distribution.Types.PackageDescription.Lens
Distribution.Types.PackageId
Distribution.Types.PackageId.Lens
Distribution.Types.PackageName
Distribution.Types.PackageVersionConstraint
Distribution.Types.PkgconfigDependency
Distribution.Types.PkgconfigName
Distribution.Types.PkgconfigVersion
Distribution.Types.PkgconfigVersionRange
Distribution.Types.SetupBuildInfo
Distribution.Types.SetupBuildInfo.Lens
Distribution.Types.SourceRepo
Distribution.Types.SourceRepo.Lens
Distribution.Types.TestSuite
Distribution.Types.TestSuite.Lens
Distribution.Types.TestSuiteInterface
Distribution.Types.TestType
Distribution.Types.UnitId
Distribution.Types.UnqualComponentName
Distribution.Types.Version
Distribution.Types.VersionInterval
Distribution.Types.VersionInterval.Legacy
Distribution.Types.VersionRange
Distribution.Types.VersionRange.Internal
Distribution.Utils.Base62
Distribution.Utils.Generic
Distribution.Utils.MD5
Distribution.Utils.Path
Distribution.Utils.ShortText
Distribution.Utils.String
Distribution.Utils.Structured
Distribution.Version
Language.Haskell.Extension

other-extensions:
BangPatterns
CPP
DefaultSignatures
DeriveDataTypeable
DeriveFoldable
DeriveFunctor
DeriveGeneric
DeriveTraversable
ExistentialQuantification
FlexibleContexts
FlexibleInstances
GeneralizedNewtypeDeriving
ImplicitParams
KindSignatures
NondecreasingIndentation
OverloadedStrings
RankNTypes
RecordWildCards
ScopedTypeVariables
StandaloneDeriving
Trustworthy
TypeFamilies
TypeOperators
TypeSynonymInstances
UndecidableInstances

if impl(ghc >= 7.11)
other-extensions: PatternSynonyms
Empty file added Cabal-syntax/ChangeLog.md
Empty file.
34 changes: 34 additions & 0 deletions Cabal-syntax/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Copyright (c) 2003-2020, Cabal Development Team.
See the AUTHORS file for the full list of copyright holders.

See */LICENSE for the copyright holders of the subcomponents.

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.

* Neither the name of Isaac Jones nor the names of other
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Loading

0 comments on commit 9da489e

Please sign in to comment.