Parsing, analyzing, and comparing source code across many languages

Overview

Semantic

semantic is a Haskell library and command line tool for parsing, analyzing, and comparing source code.

In a hurry? Check out our documentation of example uses for the semantic command line tool.

Table of Contents
Usage
Language support
Development
Technology and architecture
Licensing

Usage

Run semantic --help for complete list of up-to-date options.

Parse

Usage: semantic parse [--sexpression | (--json-symbols|--symbols) |
                        --proto-symbols | --show | --quiet] [FILES...]
  Generate parse trees for path(s)

Available options:
  --sexpression            Output s-expression parse trees (default)
  --json-symbols,--symbols Output JSON symbol list
  --proto-symbols          Output protobufs symbol list
  --show                   Output using the Show instance (debug only, format
                           subject to change without notice)
  --quiet                  Don't produce output, but show timing stats
  -h,--help                Show this help text

Language support

Language Parse AST Symbols† Stack graphs
Ruby
JavaScript
TypeScript 🚧
Python 🚧
Go
PHP
Java 🚧
JSON ⬜️ ⬜️
JSX
TSX
CodeQL
Haskell 🚧 🚧

† Used for code navigation on github.com.

  • — Supported
  • 🔶 — Partial support
  • 🚧 — Under development
  • - N/A ️

Development

semantic requires at least GHC 8.10.1 and Cabal 3.0. We strongly recommend using ghcup to sandbox GHC versions, as GHC packages installed through your OS's package manager may not install statically-linked versions of the GHC boot libraries. semantic currently builds only on Unix systems; users of other operating systems may wish to use the Docker images.

We use cabal's Nix-style local builds for development. To get started quickly:

git clone [email protected]:github/semantic.git
cd semantic
script/bootstrap
cabal v2-build all
cabal v2-run semantic:test
cabal v2-run semantic:semantic -- --help

You can also use the Bazel build system for development. To learn more about Bazel and why it might give you a better development experience, check the build documentation.

git clone [email protected]:github/semantic.git
cd semantic
script/bootstrap-bazel
bazel build //...

stack as a build tool is not officially supported; there is unofficial stack.yaml support available, though we cannot make guarantees as to its stability.

Technology and architecture

Architecturally, semantic:

  1. Generates per-language Haskell syntax types based on tree-sitter grammar definitions.
  2. Reads blobs from a filesystem or provided via a protocol buffer request.
  3. Returns blobs or performs analysis.
  4. Renders output in one of many supported formats.

Throughout its lifestyle, semantic has leveraged a number of interesting algorithms and techniques, including:

Contributions

Contributions are welcome! Please see our contribution guidelines and our code of conduct for details on how to participate in our community.

Licensing

Semantic is licensed under the MIT license.

Comments
  • cabal new-install fails to copy tree-sitter header files when packaging haskell-tree-sitter submodule

    cabal new-install fails to copy tree-sitter header files when packaging haskell-tree-sitter submodule

    This is probably low priority?

    When running "cabal new-install exe:semantic" after carefully following the directions at https://github.com/github/semantic#development The build for tree-sitter fails in a way I couldn't easily figure out.

    new-build, new-run, and new-test all succeed though.

    bug build 
    opened by shapr 13
  • `cabal new-test` not working on a clean checkout

    `cabal new-test` not working on a clean checkout

    Hi,

    I am trying to follow the instructions from the README, but cabal new-test yields

    Resolving dependencies...
    cabal: Cannot test the package semantic-0.7.0.0 because none of the components
    are available to build: the test suite 'test' and the test suite
    'parse-examples' are not available because the solver did not find a plan that
    included the test suites. Force the solver to enable this for all packages by
    adding the line 'tests: True' to the 'cabal.project.local' file.
    

    I don't know how this is supposed to work, but I would guess that this is unexpected? cabal new-run semantic -- --help works fine.

    This is on an up-to date 2015 MacBook Pro.

    bug build 
    opened by exterm 11
  • cabal new-build fails on GHCs installed without statically-linked boot libraries  (“files missing in the ‘base-4.12.0.0’ package”)

    cabal new-build fails on GHCs installed without statically-linked boot libraries (“files missing in the ‘base-4.12.0.0’ package”)

    I followed the development guide in the readme as below:

    git clone [email protected]:github/semantic.git
    cd semantic
    git submodule sync --recursive && git submodule update --init --recursive --force
    cabal new-update
    cabal new-build
    cabal new-test
    cabal new-run semantic -- --help
    

    It cannot find some required modules, seems the dependency configuration is missing something.

    When I ran cabal new-build, I got compilation error, below is the console output:

    Build profile: -w ghc-8.6.5 -O1
    In order, the following will be built (use -v for more details):
     - StateVar-1.2 (lib) (requires build)
     - base-compat-0.10.5 (lib) (requires build)
     - base-orphans-0.8.1 (lib) (requires build)
     - base-prelude-1.3 (lib) (requires build)
     - basement-0.0.10 (lib) (requires build)
     - blaze-builder-0.4.1.0 (lib) (requires build)
     - byteable-0.1.1 (lib) (requires build)
     - cabal-doctest-1.0.6 (lib) (requires build)
     - call-stack-0.1.0 (lib) (requires build)
     - case-insensitive-1.2.1.0 (lib) (requires build)
     - cereal-0.5.8.1 (lib) (requires build)
     - clock-0.8 (lib) (requires build)
     - cmark-gfm-0.1.8 (lib) (requires build)
     - colour-2.3.5 (lib) (requires build)
     - data-default-class-0.1.2.0 (lib:data-default-class) (requires build)
     - deepseq-generics-0.2.0.0 (lib) (requires build)
     - directory-tree-0.12.1 (lib) (requires build)
     - dlist-0.8.0.6 (lib) (requires build)
     - erf-2.0.0.0 (lib:erf) (requires build)
     - fail-4.9.0.0 (lib) (requires build)
     - fastsum-0.1.1.0 (lib) (requires build)
     - fingertree-0.1.4.2 (lib) (requires build)
     - generic-monoid-0.1.0.0 (lib) (requires build)
     - ghc-tcplugins-extra-0.3 (lib) (requires build)
     - happy-1.19.11 (exe:happy) (requires build)
     - haskeline-0.7.5.0 (lib) (requires build)
     - haskell-lexer-1.0.2 (lib:haskell-lexer) (requires build)
     - heap-1.0.4 (lib) (requires build)
     - hostname-1.0 (lib:hostname) (requires build)
     - hourglass-0.2.12 (lib) (requires build)
     - hsc2hs-0.68.4 (exe:hsc2hs) (requires build)
     - hscolour-1.24.4 (lib:hscolour) (requires build)
     - integer-logarithms-1.0.3 (lib) (requires build)
     - managed-1.0.6 (lib) (requires build)
     - mersenne-random-pure64-0.2.2.0 (lib:mersenne-random-pure64) (requires build)
     - mime-types-0.1.0.9 (lib) (requires build)
     - mmorph-1.1.3 (lib) (requires build)
     - optional-args-1.0.2 (lib) (requires build)
     - parallel-3.2.2.0 (lib) (requires build)
     - parser-combinators-1.1.0 (lib) (requires build)
     - prettyprinter-1.2.1 (lib) (requires build)
     - primitive-0.6.4.0 (lib) (requires build)
     - reflection-2.1.4 (lib) (requires build)
     - safe-0.3.17 (lib) (requires build)
     - safe-exceptions-0.1.7.0 (lib) (requires build)
     - semigroups-0.18.5 (lib) (requires build)
     - singleton-bool-0.1.4 (lib) (requires build)
     - sop-core-0.4.0.0 (lib) (requires build)
     - split-0.2.3.3 (lib) (requires build)
     - stm-chans-3.0.0.4 (lib:stm-chans) (requires build)
     - streaming-commons-0.2.1.1 (lib) (requires build)
     - syb-0.7 (lib) (requires build)
     - system-filepath-0.4.14 (lib:system-filepath) (requires build)
     - tagged-0.8.6 (lib) (requires build)
     - th-abstraction-0.3.1.0 (lib) (requires build)
     - time-locale-compat-0.1.1.5 (lib) (requires build)
     - unix-compat-0.5.1 (lib:unix-compat) (requires build)
     - unliftio-core-0.1.2.0 (lib) (requires build)
     - unordered-containers-0.2.10.0 (lib) (requires build)
     - utf8-string-1.0.1.1 (lib:utf8-string) (requires build)
     - uuid-types-1.0.3 (lib) (requires build)
     - void-0.7.3 (lib) (requires build)
     - wl-pprint-annotated-0.1.0.1 (lib) (requires build)
     - contravariant-1.5.2 (lib:contravariant) (requires build)
     - gitrev-1.3.1 (lib) (requires build)
     - base-compat-batteries-0.10.5 (lib) (requires build)
     - algebraic-graphs-0.3 (lib) (requires build)
     - transformers-base-0.4.5.2 (lib) (requires build)
     - memory-0.14.18 (lib) (requires build)
     - http-types-0.12.3 (lib) (requires build)
     - socks-0.6.0 (lib) (requires build)
     - ansi-terminal-0.8.2 (lib) (requires build)
     - cookie-0.4.4 (lib) (requires build)
     - ghc-typelits-natnormalise-0.6.2 (lib) (requires build)
     - pretty-show-1.9.5 (lib) (requires build)
     - kdt-0.2.4 (lib) (requires build)
     - terminal-size-0.3.2.1 (lib) (requires build)
     - vector-0.12.0.3 (lib) (requires build)
     - tf-random-0.5 (lib) (requires build)
     - scientific-0.3.6.2 (lib) (requires build)
     - MonadRandom-0.5.1.1 (lib) (requires build)
     - constraints-0.11 (lib) (requires build)
     - generics-sop-0.4.0.1 (lib) (requires build)
     - haskell-src-1.0.3.0 (lib) (requires build)
     - system-fileio-0.3.16.4 (lib) (requires build)
     - distributive-0.6 (lib:distributive) (requires build)
     - resourcet-1.2.2 (lib) (requires build)
     - vault-0.3.1.2 (lib:vault) (requires build)
     - semilattices-0.0.0.3 (lib) (requires build)
     - charset-0.3.7.1 (lib:charset) (requires build)
     - string-conversions-0.4.0.1 (lib) (requires build)
     - http-media-0.7.1.3 (lib) (requires build)
     - monad-control-1.0.2.3 (lib:monad-control) (requires build)
     - pem-0.2.4 (lib) (requires build)
     - cryptonite-0.26 (lib) (requires build)
     - asn1-types-0.3.2 (lib:asn1-types) (requires build)
     - ansi-wl-pprint-0.6.8.2 (lib) (requires build)
     - http-client-0.6.4 (lib) (requires build)
     - ghc-typelits-knownnat-0.6 (lib) (requires build)
     - concurrent-output-1.10.9 (lib) (requires build)
     - vector-th-unbox-0.2.1.6 (lib) (requires build)
     - vector-builder-0.3.7.2 (lib) (requires build)
     - QuickCheck-2.12.6.1 (lib) (requires build)
     - megaparsec-7.0.5 (lib) (requires build)
     - attoparsec-0.13.2.2 (lib) (requires build)
     - fused-effects-0.4.0.0 (lib) (requires build)
     - comonad-5.0.5 (lib:comonad) (requires build)
     - lifted-base-0.2.3.12 (lib) (requires build)
     - cryptohash-0.11.9 (lib) (requires build)
     - asn1-encoding-0.9.5 (lib) (requires build)
     - optparse-applicative-0.14.3.0 (lib) (requires build)
     - ghc-typelits-extra-0.3 (lib) (requires build)
     - math-functions-0.3.1.0 (lib) (requires build)
     - quickcheck-instances-0.3.19 (lib) (requires build)
     - proto3-wire-1.0.0 (lib) (first run)
     - neat-interpolation-0.3.2.4 (lib) (requires build)
     - parsers-0.12.10 (lib) (requires build)
     - attoparsec-iso8601-1.0.1.0 (lib) (requires build)
     - aeson-1.4.3.0 (lib) (requires build)
     - fused-effects-exceptions-0.1.1.0 (lib) (requires build)
     - bifunctors-5.5.4 (lib) (requires build)
     - lifted-async-0.10.0.4 (lib) (requires build)
     - enclosed-exceptions-1.0.3 (lib) (requires build)
     - asn1-parse-0.9.4 (lib:asn1-parse) (requires build)
     - mwc-random-0.14.0.0 (lib) (requires build)
     - http-api-data-0.4 (lib:http-api-data) (requires build)
     - aeson-pretty-0.8.7 (lib) (requires build)
     - semigroupoids-5.3.2 (lib:semigroupoids) (requires build)
     - profunctors-5.3 (lib) (requires build)
     - assoc-1 (lib) (requires build)
     - hedgehog-1.0 (lib) (requires build)
     - shelly-1.8.1 (lib) (requires build)
     - x509-1.7.5 (lib) (requires build)
     - servant-0.15 (lib:servant) (requires build)
     - reducers-3.12.3 (lib:reducers) (requires build)
     - invariant-0.5.3 (lib) (requires build)
     - free-5.1.1 (lib) (requires build)
     - foldl-1.4.5 (lib) (requires build)
     - haskell-tree-sitter-0.1.0 (lib:haskell-tree-sitter) (first run)
     - x509-store-1.6.7 (lib) (requires build)
     - recursion-schemes-5.1.3 (lib) (requires build)
     - keys-3.12.2 (lib) (requires build)
     - adjunctions-4.4 (lib) (requires build)
     - turtle-1.5.14 (lib) (requires build)
     - tree-sitter-typescript-0.1.0.0 (lib:tree-sitter-typescript-internal) (first run)
     - tree-sitter-tsx-0.1.0.0 (lib:tree-sitter-tsx-internal) (first run)
     - tree-sitter-ruby-0.1.0 (lib:tree-sitter-ruby-internal) (first run)
     - tree-sitter-python-0.1.0 (lib:tree-sitter-python-internal) (first run)
     - tree-sitter-php-0.1.0 (lib:tree-sitter-php-internal) (first run)
     - tree-sitter-json-0.1.0 (lib:tree-sitter-json-internal) (first run)
     - tree-sitter-java-0.1.0 (lib:tree-sitter-java-internal) (first run)
     - tree-sitter-haskell-0.1.0 (lib:tree-sitter-haskell-internal) (first run)
     - tree-sitter-go-0.1.0 (lib:tree-sitter-go-internal) (first run)
     - x509-validation-1.6.11 (lib) (requires build)
     - x509-system-1.6.6 (lib) (requires build)
     - kan-extensions-5.2 (lib:kan-extensions) (requires build)
     - tree-sitter-typescript-0.1.0.0 (lib) (first run)
     - tree-sitter-tsx-0.1.0.0 (lib) (first run)
     - tree-sitter-ruby-0.1.0 (lib) (first run)
     - tree-sitter-python-0.1.0 (lib) (first run)
     - tree-sitter-php-0.1.0 (lib) (first run)
     - tree-sitter-json-0.1.0 (lib) (first run)
     - tree-sitter-java-0.1.0 (lib) (first run)
     - tree-sitter-haskell-0.1.0 (lib) (first run)
     - tree-sitter-go-0.1.0 (lib) (first run)
     - tls-1.5.0 (lib) (requires build)
     - pointed-5.0.1 (lib:pointed) (requires build)
     - lens-4.17.1 (lib:lens) (requires build)
     - connection-0.3.0 (lib:connection) (requires build)
     - vector-instances-3.4 (lib:vector-instances) (requires build)
     - machines-0.6.4 (lib:machines) (requires build)
     - insert-ordered-containers-0.2.2 (lib) (requires build)
     - http-client-tls-0.3.5.3 (lib) (requires build)
     - these-0.8.1 (lib) (requires build)
     - swagger2-2.3.1.1 (lib:swagger2) (requires build)
     - proto3-suite-0.2.0 (lib) (first run)
     - semantic-0.6.0 (lib) (first run)
     - semantic-0.6.0 (exe:semantic) (first run)
    Starting     StateVar-1.2 (lib)
    Starting     base-prelude-1.3 (lib)
    Starting     base-orphans-0.8.1 (lib)
    Starting     byteable-0.1.1 (lib)
    Starting     cabal-doctest-1.0.6 (lib)
    Starting     blaze-builder-0.4.1.0 (lib)
    Starting     basement-0.0.10 (lib)
    Starting     base-compat-0.10.5 (lib)
    Starting     call-stack-0.1.0 (lib)
    Building     base-prelude-1.3 (lib)
    Building     base-orphans-0.8.1 (lib)
    Building     StateVar-1.2 (lib)
    Building     byteable-0.1.1 (lib)
    Building     basement-0.0.10 (lib)
    Building     call-stack-0.1.0 (lib)
    
    Failed to build StateVar-1.2.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/StateVar-1.2-428b66348c7656cc3f4fcd50d1226e3c270571a7758d53a1b39ae3924544ce24.log
    ):
    Configuring library for StateVar-1.2..
    Preprocessing library for StateVar-1.2..
    Building library for StateVar-1.2..
    [1 of 1] Compiling Data.StateVar    ( src/Data/StateVar.hs, dist/build/Data/StateVar.o )
    
    src/Data/StateVar.hs:66:8: error:
        Could not find module ‘Prelude’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    66 | module Data.StateVar
       |        ^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:80:1: error:
        Could not find module ‘Control.Concurrent.STM’
        There are files missing in the ‘stm-2.5.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    80 | import Control.Concurrent.STM
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:81:1: error:
        Could not find module ‘Control.Monad.IO.Class’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    81 | import Control.Monad.IO.Class
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:82:1: error:
        Could not find module ‘Data.IORef’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    82 | import Data.IORef
       | ^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:83:1: error:
        Could not find module ‘Data.Typeable’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    83 | import Data.Typeable
       | ^^^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:84:1: error:
        Could not find module ‘Foreign.ForeignPtr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    84 | import Foreign.ForeignPtr
       | ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:85:1: error:
        Could not find module ‘Foreign.Ptr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    85 | import Foreign.Ptr
       | ^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:86:1: error:
        Could not find module ‘Foreign.Storable’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    86 | import Foreign.Storable
       | ^^^^^^^^^^^^^^^^^^^^^^^
    
    src/Data/StateVar.hs:88:1: error:
        Could not find module ‘Data.Functor.Contravariant’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    88 | import Data.Functor.Contravariant
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Failed to build base-compat-0.10.5. The failure occurred during the configure
    step.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/base-compat-0.10.5-3b5d3efb11225e77473051317734ad1e9266f98a1ce6336434585878bd100296.log
    ):
    Configuring library for base-compat-0.10.5..
    cabal: The program 'ghc' version >=7.0.1 is required but the version of
    /usr/bin/ghc could not be determined.
    
    
    Failed to build base-orphans-0.8.1.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/base-orphans-0.8.1-580bdffa43ab1bed6cd549879d496ac8a7f4e56b047f1a0d2edd81367054945c.log
    ):
    Configuring library for base-orphans-0.8.1..
    Preprocessing library for base-orphans-0.8.1..
    Building library for base-orphans-0.8.1..
    [1 of 2] Compiling Data.Orphans     ( src/Data/Orphans.hs, dist/build/Data/Orphans.o )
    
    src/Data/Orphans.hs:38:8: error:
        Could not find module ‘Prelude’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    38 | module Data.Orphans () where
       |        ^^^^^^^^^^^^
    
    Failed to build base-prelude-1.3.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/base-prelude-1.3-640e14339e7871edd9a59c360a48ef6c2dfe60f6e4dbae5490b4110b8f161d1a.log
    ):
    Configuring library for base-prelude-1.3..
    Preprocessing library for base-prelude-1.3..
    Building library for base-prelude-1.3..
    [1 of 1] Compiling BasePrelude      ( library/BasePrelude.hs, dist/build/BasePrelude.o )
    
    library/BasePrelude.hs:31:1: error:
        Could not find module ‘Control.Applicative’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    31 | import Control.Applicative as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:32:1: error:
        Could not find module ‘Control.Arrow’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    32 | import Control.Arrow as Exports hiding (first, second)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:33:1: error:
        Could not find module ‘Control.Category’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    33 | import Control.Category as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:34:1: error:
        Could not find module ‘Control.Concurrent’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    34 | import Control.Concurrent as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:35:1: error:
        Could not find module ‘Control.Exception’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    35 | import Control.Exception as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:36:1: error:
        Could not find module ‘Control.Monad’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    36 | import Control.Monad as Exports hiding (mapM_, sequence_, forM_, msum, mapM, sequence, forM)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:37:1: error:
        Could not find module ‘Control.Monad.Fix’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    37 | import Control.Monad.Fix as Exports hiding (fix)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:39:1: error:
        Could not find module ‘Control.Monad.Fail’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    39 | import Control.Monad.Fail as Exports (MonadFail)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:42:1: error:
        Could not find module ‘Control.Monad.IO.Class’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    42 | import Control.Monad.IO.Class as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:44:1: error:
        Could not find module ‘Control.Monad.ST’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    44 | import Control.Monad.ST as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:46:1: error:
        Could not find module ‘Data.Bifunctor’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    46 | import Data.Bifunctor as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:48:1: error:
        Could not find module ‘Data.Bits’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    48 | import Data.Bits as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:49:1: error:
        Could not find module ‘Data.Bool’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    49 | import Data.Bool as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:50:1: error:
        Could not find module ‘Data.Char’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    50 | import Data.Char as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:52:1: error:
        Could not find module ‘Data.Coerce’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    52 | import Data.Coerce as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:54:1: error:
        Could not find module ‘Data.Complex’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    54 | import Data.Complex as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:55:1: error:
        Could not find module ‘Data.Data’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    55 | import Data.Data as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:56:1: error:
        Could not find module ‘Data.Dynamic’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    56 | import Data.Dynamic as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:57:1: error:
        Could not find module ‘Data.Either’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    57 | import Data.Either as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:58:1: error:
        Could not find module ‘Data.Fixed’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    58 | import Data.Fixed as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:59:1: error:
        Could not find module ‘Data.Foldable’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    59 | import Data.Foldable as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:60:1: error:
        Could not find module ‘Data.Functor’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    60 | import Data.Functor as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:62:1: error:
        Could not find module ‘Data.Functor.Classes’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    62 | import Data.Functor.Classes as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:65:1: error:
        Could not find module ‘Data.Functor.Compose’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    65 | import Data.Functor.Compose as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:68:1: error:
        Could not find module ‘Data.Functor.Identity’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    68 | import Data.Functor.Identity as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:70:1: error:
        Could not find module ‘Data.Function’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    70 | import Data.Function as Exports hiding ((.), id)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:71:1: error:
        Could not find module ‘Data.Int’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    71 | import Data.Int as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:72:1: error:
        Could not find module ‘Data.IORef’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    72 | import Data.IORef as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:73:1: error:
        Could not find module ‘Data.Ix’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    73 | import Data.Ix as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:74:1: error:
        Could not find module ‘Data.List’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    74 | import Data.List as Exports hiding (concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:76:1: error:
        Could not find module ‘Data.List.NonEmpty’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    76 | import Data.List.NonEmpty as Exports (NonEmpty(..))
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:78:1: error:
        Could not find module ‘Data.Maybe’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    78 | import Data.Maybe as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:80:1: error:
        Could not find module ‘Data.Monoid’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    80 | import Data.Monoid as Exports hiding ((<>), First(..), Last(..))
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:84:1: error:
        Could not find module ‘Data.Ord’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    84 | import Data.Ord as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:86:1: error:
        Could not find module ‘Data.Proxy’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    86 | import Data.Proxy as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:88:1: error:
        Could not find module ‘Data.Ratio’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    88 | import Data.Ratio as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:90:1: error:
        Could not find module ‘Data.Semigroup’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    90 | import Data.Semigroup as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:92:1: error:
        Could not find module ‘Data.STRef’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    92 | import Data.STRef as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:93:1: error:
        Could not find module ‘Data.String’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    93 | import Data.String as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:94:1: error:
        Could not find module ‘Data.Traversable’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    94 | import Data.Traversable as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:95:1: error:
        Could not find module ‘Data.Tuple’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    95 | import Data.Tuple as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:96:1: error:
        Could not find module ‘Data.Unique’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    96 | import Data.Unique as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:97:1: error:
        Could not find module ‘Data.Version’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    97 | import Data.Version as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:99:1: error:
        Could not find module ‘Data.Void’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    99 | import Data.Void as Exports
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:101:1: error:
        Could not find module ‘Data.Word’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    101 | import Data.Word as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:102:1: error:
        Could not find module ‘Debug.Trace’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    102 | import Debug.Trace as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:103:1: error:
        Could not find module ‘Foreign.Storable’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    103 | import Foreign.Storable as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:104:1: error:
        Could not find module ‘Foreign.Ptr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    104 | import Foreign.Ptr as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:105:1: error:
        Could not find module ‘Foreign.ForeignPtr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    105 | import Foreign.ForeignPtr as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:106:1: error:
        Could not find module ‘Foreign.StablePtr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    106 | import Foreign.StablePtr as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:107:1: error:
        Could not find module ‘GHC.Conc’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    107 | import GHC.Conc as Exports hiding (withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:108:1: error:
        Could not find module ‘GHC.Exts’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    108 | import GHC.Exts as Exports (lazy, inline, sortWith, groupWith)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:109:1: error:
        Could not find module ‘GHC.Generics’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    109 | import GHC.Generics as Exports (Generic)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:110:1: error:
        Could not find module ‘GHC.IO.Exception’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    110 | import GHC.IO.Exception as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:111:1: error:
        Could not find module ‘Numeric’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    111 | import Numeric as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:113:1: error:
        Could not find module ‘Numeric.Natural’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    113 | import Numeric.Natural as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:115:1: error:
        Could not find module ‘Prelude’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    115 | import Prelude as Exports hiding (concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:116:1: error:
        Could not find module ‘System.Environment’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    116 | import System.Environment as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:117:1: error:
        Could not find module ‘System.Exit’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    117 | import System.Exit as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:118:1: error:
        Could not find module ‘System.IO’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    118 | import System.IO as Exports (Handle, hClose)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:119:1: error:
        Could not find module ‘System.IO.Error’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    119 | import System.IO.Error as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:120:1: error:
        Could not find module ‘System.IO.Unsafe’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    120 | import System.IO.Unsafe as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:121:1: error:
        Could not find module ‘System.Mem’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    121 | import System.Mem as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:122:1: error:
        Could not find module ‘System.Mem.StableName’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    122 | import System.Mem.StableName as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:123:1: error:
        Could not find module ‘System.Timeout’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    123 | import System.Timeout as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:124:1: error:
        Could not find module ‘Text.ParserCombinators.ReadP’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    124 | import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:125:1: error:
        Could not find module ‘Text.ParserCombinators.ReadPrec’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    125 | import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:126:1: error:
        Could not find module ‘Text.Printf’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    126 | import Text.Printf as Exports (printf, hPrintf)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:127:1: error:
        Could not find module ‘Text.Read’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    127 | import Text.Read as Exports (Read(..), readMaybe, readEither)
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    library/BasePrelude.hs:128:1: error:
        Could not find module ‘Unsafe.Coerce’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
        |
    128 | import Unsafe.Coerce as Exports
        | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Failed to build basement-0.0.10.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/basement-0.0.10-a2ef69aede0fd03d7af7e70fa160a6aed5a83d5ff111e7fb6efefb5d71e68185.log
    ):
    Configuring library for basement-0.0.10..
    Preprocessing library for basement-0.0.10..
    Building library for basement-0.0.10..
    [ 1 of 84] Compiling Basement.Compat.Bifunctor ( Basement/Compat/Bifunctor.hs, dist/build/Basement/Compat/Bifunctor.o )
    
    Basement/Compat/Bifunctor.hs:32:1: error:
        Could not find module ‘Data.Bifunctor’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    32 | import Data.Bifunctor (Bifunctor(..))
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Failed to build blaze-builder-0.4.1.0. The failure occurred during the
    configure step.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/blaze-builder-0.4.1.0-4dbfabcf76a2a7a7200fc6591800886d897c788a0f9fe8d8539734f6d6d2f23f.log
    ):
    Configuring library for blaze-builder-0.4.1.0..
    cabal: The program 'ghc-pkg' is required but the version of /usr/bin/ghc-pkg
    could not be determined.
    
    
    Failed to build byteable-0.1.1.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/byteable-0.1.1-8ec6e0033127a0ea6dc9e714c8bf3d4435336f971b6b2c700b17f33ab17ec8f2.log
    ):
    Configuring library for byteable-0.1.1..
    Preprocessing library for byteable-0.1.1..
    Building library for byteable-0.1.1..
    [1 of 1] Compiling Data.Byteable    ( Data/Byteable.hs, dist/build/Data/Byteable.o )
    
    Data/Byteable.hs:8:8: error:
        Could not find module ‘Prelude’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
      |
    8 | module Data.Byteable
      |        ^^^^^^^^^^^^^
    
    Data/Byteable.hs:13:1: error:
        Could not find module ‘Foreign.Ptr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    13 | import Foreign.Ptr (Ptr, plusPtr)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:14:1: error:
        Could not find module ‘Foreign.ForeignPtr’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    14 | import Foreign.ForeignPtr (withForeignPtr)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:15:1: error:
        Could not find module ‘Data.ByteString’
        There are files missing in the ‘bytestring-0.10.8.2’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    15 | import Data.ByteString (ByteString)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:16:1: error:
        Could not find module ‘Data.List’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    16 | import Data.List (foldl')
       | ^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:17:1: error:
        Could not find module ‘Data.Word’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    17 | import Data.Word (Word8)
       | ^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:18:1: error:
        Could not find module ‘Data.ByteString’
        There are files missing in the ‘bytestring-0.10.8.2’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    18 | import qualified Data.ByteString as B (length, zipWith)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Data/Byteable.hs:19:1: error:
        Could not find module ‘Data.ByteString.Internal’
        There are files missing in the ‘bytestring-0.10.8.2’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
       |
    19 | import qualified Data.ByteString.Internal as B (toForeignPtr)
       | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    
    Failed to build cabal-doctest-1.0.6. The failure occurred during the configure
    step.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/cabal-doctest-1.0.6-121c2bf97fde51bd6f7459914f456396cb0fca88e13aec8a6f6bd78b6e142dec.log
    ):
    Configuring library for cabal-doctest-1.0.6..
    cabal: '/usr/bin/ghc' exited with an error:
    ghc: internal error: timerfd_create
    (GHC version 8.6.5 for x86_64_unknown_linux)
    Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
    
    
    Failed to build call-stack-0.1.0.
    Build log (
    /home/beenotung/.cabal/logs/ghc-8.6.5/call-stack-0.1.0-a5f47223f72d08dfa234c53eb19d2e4710fc8b4466db05cbe0b46f991276cf69.log
    ):
    Configuring library for call-stack-0.1.0..
    Preprocessing library for call-stack-0.1.0..
    Building library for call-stack-0.1.0..
    [1 of 3] Compiling Data.SrcLoc      ( src/Data/SrcLoc.hs, dist/build/Data/SrcLoc.o )
    
    src/Data/SrcLoc.hs:2:8: error:
        Could not find module ‘Prelude’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
      |
    2 | module Data.SrcLoc (SrcLoc(..)) where
      |        ^^^^^^^^^^^
    
    src/Data/SrcLoc.hs:5:1: error:
        Could not find module ‘GHC.Stack’
        There are files missing in the ‘base-4.12.0.0’ package,
        try running 'ghc-pkg check'.
        Use -v to see a list of the files searched for.
      |
    5 | import           GHC.Stack (SrcLoc(..))
      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    cabal: Failed to build StateVar-1.2 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build base-compat-0.10.5 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build base-orphans-0.8.1 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build base-prelude-1.3 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build basement-0.0.10 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build blaze-builder-0.4.1.0 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build byteable-0.1.1 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build cabal-doctest-1.0.6 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    Failed to build call-stack-0.1.0 (which is required by exe:semantic from
    semantic-0.6.0). See the build log above for details.
    
    could not reproduce build 
    opened by beenotung 10
  • Couldn't match expected type ‘GHC.Prim.Proxy# a0’ with actual type ‘Proxy (Enumerated Language)’ while 'cabal build'

    Couldn't match expected type ‘GHC.Prim.Proxy# a0’ with actual type ‘Proxy (Enumerated Language)’ while 'cabal build'

    My Env: ubuntu 18.04 cabal 2.2 ghc: 8.6.4 without sandbox

    Preprocessing library for semantic-0.6.0.0.. Building library for semantic-0.6.0.0.. [ 71 of 180] Compiling Data.Language ( src/Data/Language.hs, dist/build/Data/Language.o )

    src/Data/Language.hs:116:26: error: • Couldn't match expected type ‘GHC.Prim.Proxy# a0’ with actual type ‘Proxy (Enumerated Language)’ • In the first argument of ‘primType’, namely ‘(Proxy @(Enumerated Language))’ In the expression: primType (Proxy @(Enumerated Language)) In an equation for ‘primType’: primType _ = primType (Proxy @(Enumerated Language)) | 116 | primType _ = primType (Proxy @(Enumerated Language)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [153 of 180] Compiling Semantic.Api.V1.CodeAnalysisPB ( src/Semantic/Api/V1/CodeAnalysisPB.hs, dist/build/Semantic/Api/V1/CodeAnalysisPB.o )

    src/Semantic/Api/V1/CodeAnalysisPB.hs:1348:33: error: Not in scope: type constructor or class ‘Proto3.PrimitiveEnum’ Perhaps you meant ‘Proto3.Primitive’ (imported from Proto3.Suite) Module ‘Proto3.Suite’ does not export ‘PrimitiveEnum’. | 1348 | deriving Proto3.Primitive via Proto3.PrimitiveEnum ChangeType | ^^^^^^^^^^^^^^^^^^^^

    bug build 
    opened by Yuki-Minakami 9
  • Document the process for increasing language support

    Document the process for increasing language support

    We’re getting interest in adding support for languages, so we should document the overall process.

    Given that we’re migrating away from using assignment &c., I think we should explicitly leave that out (tho prolly we should note that we don’t support diffing for the new-style grammar-derived ASTs just yet).

    I think that makes the steps something like:

    1. Make a tree-sitter parser (link to tree-sitter docs)
    2. Add the parser to haskell-tree-sitter (link to an example PR?)
    3. Add the parser to semantic
    4. (Potentially) implement compilation to Core & build/generate a prelude

    We should also be careful to document what you get with each step. Like, the first one gives you Atom support, the second & third give you semantic support (modulo any generic functionality we haven’t implemented yet), and the fourth gives you full analysis support.

    documentation language-support 
    opened by robrix 9
  • Semantic rust

    Semantic rust

    This PR aims to solve #130

    Temporary Installation Step

    semantic-rust depends on package tree-sitter-rust, which isn't available at https://hackage.haskell.org/ yet.

    To build the content of this PR you've to execute following steps, because source-repository-package entry for haskell-tree-sitter (see a4410b68b8f5b2b6d5530a85ba0fbe3bd6be18f4) doesn't solve .gitsubmodules dependency.

    • cabal v2-update (or ./script/bootstrap)
    • cd /tmp
    • git clone --recurse-submodules [email protected]:tree-sitter/haskell-tree-sitter.git
    • cd semantic
    • find dist-newstyle/ -maxdepth 3 -type d -name "tree-sitter-rust" -exec cp -a ../haskell-tree-sitter/tree-sitter-rust/vendor {} \;
    • cabal v2-buiild
    • cd semantic-rust
    • cabal v2-test (to get testing passed two corpus files were excluded e899938e5ac0aad9edc5f451937a63143ad454a2)
    opened by p-alik 8
  • Support json format for AST output

    Support json format for AST output

    Hello. Not long ago I was able to run cabal new-run semantic -- parse --json ../redux | tail -n +2 > ~/Desktop/p_redux.json

    which parsed ../redux directory recursively, and stored json formatted output in ~/Desktop/p_redux.json.

    As far as I see now, recursive directory parsing is disabled, but that's a separate matter (which can be solved with find, for instance).

    What's more pressing is the seeming lack of ability to output parsed AST in json format. According to the README file it is still possible:

    Renders output in one of many supported formats.

    Would you please advise how one can do so? I tried --format json, but it didn't work. Thank you in advance!

    duplicate 
    opened by ch3rn0v 7
  • Cache dependencies irrespective of test failures.

    Cache dependencies irrespective of test failures.

    This PR should allow us to cache updates to dependencies even in the presence of test failures, reducing iteration time.

    🎩 @joshmgross for the suggestion.

    opened by robrix 7
  • AST datatypes should live in semantic

    AST datatypes should live in semantic

    It’s agonizing trying to work on anything in semantic that involves touching haskell-tree-sitter, not least because of the hackage releases eventually involved for each of the tree-sitter* packages.

    Further to this, there’s the cabal bug with internal libraries that keeps breaking our local builds every so often; the general painfulness of submodules; we’re really not ready for a hackage release yet; and the weird situation where semantic-source is depended upon by tree-sitter so it can’t be listed in cabal.project and that makes changing it harder.

    All of this is only going to get worse as we support more languages, too.

    Given all of that, I’m of the opinion that the AST datatypes should live in one or more semantic packages. This would mean that:

    • the tree-sitter-* packages would basically just build the parsers & vend the tree_sitter_foo symbol;
    • the semantic-* language packages will contain the ASTs; and
    • we would move codegen and unmarshalling into a semantic package, probably semantic-ast.

    Some knock-on effects:

    • the tree-sitter-* packages would really only change when we wanted to bump to the latest versions of the parsers; hackage releases aren’t a huge deal in this case
    • changing the AST types, instances, etc. would happen entirely in semantic
    • we could iterate more easily on e.g. performance of stuff like unmarshalling (which we were doing a lot of recently)
    • there’d be zero internal libraries to worry about, solving that pain once and for all
    • semantic-source could be part of the cabal.project again instead of living in a weird little universe all by itself and not being very easy to work on
    • I could add Traversable1 to semantic-ast and derive instances of it for our ASTs without having to release semantic-ast on hackage (which it is much too early for)
    bug 
    opened by robrix 7
  • Don't depend on local semantic-source package

    Don't depend on local semantic-source package

    Semantic is already depending on an external semantic-source package from hackage. Also including it as a local package dependency can sometimes create non-deterministic build failures (e.g. cabal new-build exe:semantic). To help prevent this potential friction for users, we should depend on the external package only.

    opened by rewinfrey 7
  • Could not resolve `tree-sitter-typescript`

    Could not resolve `tree-sitter-typescript`

    Just wanted to start playing around with the project and can't get it to build. Installed ghc and cabal with ghcup, so I should have the most recent version. Ran the commands in the dev docs and got a dependency issue. I'm running on a Mac and ghci starts up ok. I haven't worked with cabal before so maybe theres something missing there? I've tried a couple things and this issue keeps cropping up. I saw two other similar issues, but didn't find a resolution there.

    git clone [email protected]:github/semantic.git
    cd semantic
    script/bootstrap
    cabal new-build
    
    $ cabal new-build
    HEAD is now at 83f3352 Merge pull request #32 from joshvera/bump-version-19-03-2019
    HEAD is now at 84664e2 Merge pull request #7 from joshvera/reenable-tests
    Resolving dependencies...
    cabal: Could not resolve dependencies:
    [__0] trying: semantic-0.6.0.0 (user goal)
    [__1] unknown package: tree-sitter-typescript (dependency of semantic)
    [__1] fail (backjumping, conflict set: semantic, tree-sitter-typescript)
    After searching the rest of the dependency tree exhaustively, these were the
    goals I've had most trouble fulfilling: semantic, tree-sitter-typescript
    
    $ uname -v
    Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64
    $ ghci --version
    The Glorious Glasgow Haskell Compilation System, version 8.6.5
    $ cabal --version
    cabal-install version 2.4.1.0
    compiled using version 2.4.1.0 of the Cabal library 
    
    could not reproduce 
    opened by gregberns 7
  • Docker build failed

    Docker build failed

    src/Language/JSON/AST.hs:75:7: error: parse error on input ‘forall’ | 75 | ( forall a_1. | ^^^^^^ [1 of 4] Compiling Language.PHP.AST ( src/Language/PHP/AST.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-php-0.0.0.0/build/Language/PHP/AST.o )

    src/Language/PHP/AST.hs:352:7: error: parse error on input ‘forall’ | 352 | ( forall a_1. | ^^^^^^ [1 of 4] Compiling Language.Ruby.AST ( src/Language/Ruby/AST.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-ruby-0.0.0.0/build/Language/Ruby/AST.o ) [1 of 4] Compiling Language.TypeScript.AST ( src/Language/TypeScript/AST.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-typescript-0.0.0.0/build/Language/TypeScript/AST.o )

    src/Language/Ruby/AST.hs:329:7: error: parse error on input ‘forall’ | 329 | ( forall a_1. | ^^^^^^

    src/Language/TypeScript/AST.hs:358:7: error: parse error on input ‘forall’ | 358 | ( forall a_1. | ^^^^^^ [1 of 4] Compiling Language.TSX.AST ( src/Language/TSX/AST.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-tsx-0.0.0.0/build/Language/TSX/AST.o ) Configuring library for semantic-java-0.0.0.0..

    src/Language/TSX/AST.hs:369:7: error: parse error on input ‘forall’ | 369 | ( forall a_1. | ^^^^^^ Preprocessing library for semantic-java-0.0.0.0.. Building library for semantic-java-0.0.0.0.. [1 of 4] Compiling Language.Java.AST ( src/Language/Java/AST.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-java-0.0.0.0/build/Language/Java/AST.o )

    src/Language/Java/AST.hs:326:7: error: parse error on input ‘forall’ | 326 | ( forall a_1. | ^^^^^^ [21 of 21] Compiling Analysis.Syntax ( src/Analysis/Syntax.hs, /build/dist-newstyle/build/x86_64-linux/ghc-8.8.1/semantic-analysis-0.0.0.0/build/Analysis/Syntax.o ) cabal: Failed to build semantic-java-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1). Failed to build semantic-json-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1). Failed to build semantic-php-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1). Failed to build semantic-ruby-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1). Failed to build semantic-tsx-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1). Failed to build semantic-typescript-0.0.0.0 (which is required by exe:semantic from semantic-0.11.0.1).

    The command '/bin/sh -c cabal v2-update && cabal v2-configure --flags="release" && cabal v2-build semantic:exe:semantic' returned a non-zero code: 1

    opened by frfranck 0
  • Support `record` in Java?

    Support `record` in Java?

    They are similar to the records in Haskell. Doc: https://docs.oracle.com/en/java/javase/14/language/records.html

    Currently, GitHub does not understand Java records: image

    It does not seem to parse these methods successfully.

    opened by ice1000 1
  • Getting the line number of the end of a function definition

    Getting the line number of the end of a function definition

    Hi there,

    I would like to get the line number of the end of a function definition. Is there a way to do this?

    To give an example, suppose the source code is:

    def Foo(x): # line 1
      if x == 42:
        return True
      else:
        return False # line 5
    

    The parsed output would return where the function definition completes, i.e. line 5.

    Currently, span.end seems to point to where the symbol name definition ends but not where the whole function ends:

    {
      "symbol": "Foo",
      "kind": "Function",
      "line": "def Foo(x):",
      "span": {
        "start": {
          "line": 1,
          "column": 5
        },
        "end": {
          "line": 1,
          "column": 8
        }
      },
      "nodeType": "DEFINITION"
    },
    

    Thank you.

    opened by hendychua 0
  • C# support

    C# support

    C# has a tree-sitter and is included in Haskell binding of tree sitter. Our project requires semantic support for C#. I'll be glad contributing the C# support to the project. Unfortunately I could not get the full picture from the Semantic documentation of how to generate a new language support. How is it possible to advance with the issue? There is a related closed issue https://github.com/github/semantic/issues/156

    opened by anatolyaliev 0
  • Build dependencies in a recurring Action

    Build dependencies in a recurring Action

    Right now we have an unfortunate problem: we cabal update in CI, then build, often leading to many dependencies being rebuilt. Then we build the branch, but the build or its tests fail, and therefore we don't update the cache with the new dependencies. The next rebuild therefore has to rebuild all the dependencies again, and so on.

    @dcreager suggested a lovely idea: cabal update and rebuild the deps in a recurring (perhaps daily, perhaps weekly) Action which then updates our cache. Then the regular CI Action doesn't cabal update or build dependencies; it just fetches the cache and builds the repo & runs tests. CI is then orthogonal to dependency changes and a good time is had by all.

    I really adore this idea, the only bit I'm unsure how to do is updating the right cache using cabal-cache; maybe we shouldn't use that with this approach and should instead do what I do in e.g. fresnel's CI Action.

    build 
    opened by robrix 0
  • Re-enable bazel CI action

    Re-enable bazel CI action

    Bazel CI is currently stuck on 8.10 and is in particular using an old hedgehog which our tests don't support due to deprecations. We disabled it in #679, but would like to re-enable it.

    • [ ] Update for ghc 9.2.1
    • [ ] Re-enable the CI action
    tests build bazel 
    opened by robrix 0
Releases(sha_c1486db42dcbcc0a7748fc759017ab8d30d0f2d1)
Owner
GitHub
How people build software.
GitHub
Implementation of fast algorithms for Maximum Spanning Tree (MST) parsing that includes fast ArcMax+Reweighting+Tarjan algorithm for single-root dependency parsing.

Fast MST Algorithm Implementation of fast algorithms for (Maximum Spanning Tree) MST parsing that includes fast ArcMax+Reweighting+Tarjan algorithm fo

Miloš Stanojević 11 Oct 14, 2022
Contrastive Learning for Many-to-many Multilingual Neural Machine Translation(mCOLT/mRASP2), ACL2021

Contrastive Learning for Many-to-many Multilingual Neural Machine Translation(mCOLT/mRASP2), ACL2021 The code for training mCOLT/mRASP2, a multilingua

null 104 Jan 1, 2023
M2MRF: Many-to-Many Reassembly of Features for Tiny Lesion Segmentation in Fundus Images

M2MRF: Many-to-Many Reassembly of Features for Tiny Lesion Segmentation in Fundus Images This repo is the official implementation of paper "M2MRF: Man

null 12 Dec 14, 2022
A toolkit for developing and comparing reinforcement learning algorithms.

Status: Maintenance (expect bug fixes and minor updates) OpenAI Gym OpenAI Gym is a toolkit for developing and comparing reinforcement learning algori

OpenAI 29.6k Jan 8, 2023
OCTIS: Comparing Topic Models is Simple! A python package to optimize and evaluate topic models (accepted at EACL2021 demo track)

OCTIS : Optimizing and Comparing Topic Models is Simple! OCTIS (Optimizing and Comparing Topic models Is Simple) aims at training, analyzing and compa

MIND 478 Jan 1, 2023
Project looking into use of autoencoder for semi-supervised learning and comparing data requirements compared to supervised learning.

Project looking into use of autoencoder for semi-supervised learning and comparing data requirements compared to supervised learning.

Tom-R.T.Kvalvaag 2 Dec 17, 2021
Quickly comparing your image classification models with the state-of-the-art models (such as DenseNet, ResNet, ...)

Image Classification Project Killer in PyTorch This repo is designed for those who want to start their experiments two days before the deadline and ki

null 349 Dec 8, 2022
Source code for paper "ATP: AMRize Than Parse! Enhancing AMR Parsing with PseudoAMRs" @NAACL-2022

ATP: AMRize Then Parse! Enhancing AMR Parsing with PseudoAMRs Hi this is the source code of our paper "ATP: AMRize Then Parse! Enhancing AMR Parsing w

Chen Liang 13 Nov 23, 2022
Code and data for the EMNLP 2021 paper "Just Say No: Analyzing the Stance of Neural Dialogue Generation in Offensive Contexts". Coming soon!

ToxiChat Code and data for the EMNLP 2021 paper "Just Say No: Analyzing the Stance of Neural Dialogue Generation in Offensive Contexts". Install depen

Ashutosh Baheti 11 Jan 1, 2023
Code for the paper "Benchmarking and Analyzing Point Cloud Classification under Corruptions"

ModelNet-C Code for the paper "Benchmarking and Analyzing Point Cloud Classification under Corruptions". For the latest updates, see: sites.google.com

Jiawei Ren 45 Dec 28, 2022
An efficient and effective learning to rank algorithm by mining information across ranking candidates. This repository contains the tensorflow implementation of SERank model. The code is developed based on TF-Ranking.

SERank An efficient and effective learning to rank algorithm by mining information across ranking candidates. This repository contains the tensorflow

Zhihu 44 Oct 20, 2022
Code release for "COTR: Correspondence Transformer for Matching Across Images"

COTR: Correspondence Transformer for Matching Across Images This repository contains the inference code for COTR. We plan to release the training code

UBC Computer Vision Group 360 Jan 6, 2023
null 190 Jan 3, 2023
Implementation of Analyzing and Improving the Image Quality of StyleGAN (StyleGAN 2) in PyTorch

Implementation of Analyzing and Improving the Image Quality of StyleGAN (StyleGAN 2) in PyTorch

Kim Seonghyeon 2.2k Jan 1, 2023
Universal Adversarial Triggers for Attacking and Analyzing NLP (EMNLP 2019)

Universal Adversarial Triggers for Attacking and Analyzing NLP This is the official code for the EMNLP 2019 paper, Universal Adversarial Triggers for

Eric Wallace 248 Dec 17, 2022
A framework for analyzing computer vision models with simulated data

3DB: A framework for analyzing computer vision models with simulated data Paper Quickstart guide Blog post Installation Follow instructions on: https:

3DB 112 Jan 1, 2023
Analyzing basic network responses to novel classes

novelty-detection Analyzing how AlexNet responds to novel classes with varying degrees of similarity to pretrained classes from ImageNet. If you find

Noam Eshed 34 Oct 2, 2022
Project page of the paper 'Analyzing Perception-Distortion Tradeoff using Enhanced Perceptual Super-resolution Network' (ECCVW 2018)

EPSR (Enhanced Perceptual Super-resolution Network) paper This repo provides the test code, pretrained models, and results on benchmark datasets of ou

Subeesh Vasu 78 Nov 19, 2022
😇A pyTorch implementation of the DeepMoji model: state-of-the-art deep learning model for analyzing sentiment, emotion, sarcasm etc

------ Update September 2018 ------ It's been a year since TorchMoji and DeepMoji were released. We're trying to understand how it's being used such t

Hugging Face 865 Dec 24, 2022