Parsing, analyzing, and comparing source code across many languages

Related tags

Deep Learningsemantic
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
Image transformations designed for Scene Text Recognition (STR) data augmentation. Published at ICCV 2021 Workshop on Interactive Labeling and Data Augmentation for Vision.

Data Augmentation for Scene Text Recognition (ICCV 2021 Workshop) (Pronounced as "strog") Paper Arxiv Why it matters? Scene Text Recognition (STR) req

Rowel Atienza 152 Dec 28, 2022
Repository for the paper "PoseAug: A Differentiable Pose Augmentation Framework for 3D Human Pose Estimation", CVPR 2021.

PoseAug: A Differentiable Pose Augmentation Framework for 3D Human Pose Estimation Code repository for the paper: PoseAug: A Differentiable Pose Augme

Pyjcsx 328 Dec 17, 2022
Create Own QR code with Python

Create-Own-QR-code Create Own QR code with Python SO guys in here, you have to install pyqrcode 2. open CMD and type python -m pip install pyqrcode

JehanKandy 10 Jul 13, 2022
An NLP library with Awesome pre-trained Transformer models and easy-to-use interface, supporting wide-range of NLP tasks from research to industrial applications.

简体中文 | English News [2021-10-12] PaddleNLP 2.1版本已发布!新增开箱即用的NLP任务能力、Prompt Tuning应用示例与生成任务的高性能推理! 🎉 更多详细升级信息请查看Release Note。 [2021-08-22]《千言:面向事实一致性的生

6.9k Jan 01, 2023
This repo contains the code required to train the multivariate time-series Transformer.

Multi-Variate Time-Series Transformer This repo contains the code required to train the multivariate time-series Transformer. Download the data The No

Gregory Duthé 4 Nov 24, 2022
A python package simulating the quasi-2D pseudospin-1/2 Gross-Pitaevskii equation with NVIDIA GPU acceleration.

A python package simulating the quasi-2D pseudospin-1/2 Gross-Pitaevskii equation with NVIDIA GPU acceleration. Introduction spinor-gpe is high-level,

2 Sep 20, 2022
Nodule Generation Algorithm Baseline and template code for node21 generation track

Nodule Generation Algorithm This codebase implements a simple baseline model, by following the main steps in the paper published by Litjens et al. for

node21challenge 10 Apr 21, 2022
Code for the Higgs Boson Machine Learning Challenge organised by CERN & EPFL

A method to solve the Higgs boson challenge using Least Squares - Novae This project is the Project 1 of EPFL CS-433 Machine Learning. The project is

Giacomo Orsi 1 Nov 09, 2021
Code for the paper "Reinforced Active Learning for Image Segmentation"

Reinforced Active Learning for Image Segmentation (RALIS) Code for the paper Reinforced Active Learning for Image Segmentation Dependencies python 3.6

Arantxa Casanova 79 Dec 19, 2022
Galaxy images labelled by morphology (shape). Aimed at ML development and teaching

Galaxy images labelled by morphology (shape). Aimed at ML debugging and teaching.

Mike Walmsley 14 Nov 28, 2022
ARAE-Tensorflow for Discrete Sequences (Adversarially Regularized Autoencoder)

ARAE Tensorflow Code Code for the paper Adversarially Regularized Autoencoders for Generating Discrete Structures by Zhao, Kim, Zhang, Rush and LeCun

19 Nov 12, 2021
[ICCV2021] IICNet: A Generic Framework for Reversible Image Conversion

IICNet - Invertible Image Conversion Net Official PyTorch Implementation for IICNet: A Generic Framework for Reversible Image Conversion (ICCV2021). D

felixcheng97 55 Dec 06, 2022
Official Implementation for "ReStyle: A Residual-Based StyleGAN Encoder via Iterative Refinement" https://arxiv.org/abs/2104.02699

ReStyle: A Residual-Based StyleGAN Encoder via Iterative Refinement Recently, the power of unconditional image synthesis has significantly advanced th

967 Jan 04, 2023
This is the official repository of XVFI (eXtreme Video Frame Interpolation)

XVFI This is the official repository of XVFI (eXtreme Video Frame Interpolation), https://arxiv.org/abs/2103.16206 Last Update: 20210607 We provide th

Jihyong Oh 195 Dec 29, 2022
Source-to-Source Debuggable Derivatives in Pure Python

Tangent Tangent is a new, free, and open-source Python library for automatic differentiation. Existing libraries implement automatic differentiation b

Google 2.2k Jan 01, 2023
Trash Sorter Extraordinaire is a software which efficiently detects the different types of waste in a pile of random trash through feeding it pictures or videos.

Trash-Sorter-Extraordinaire Trash Sorter Extraordinaire is a software which efficiently detects the different types of waste in a pile of random trash

Rameen Mahmood 1 Nov 07, 2021
HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps.

HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps. 中文介绍 Features Non-intrusive. Your iOS project does not need to be modi

mao2020 47 Oct 22, 2022
Coarse implement of the paper "A Simultaneous Denoising and Dereverberation Framework with Target Decoupling", On DNS-2020 dataset, the DNSMOS of first stage is 3.42 and second stage is 3.47.

SDDNet Coarse implement of the paper "A Simultaneous Denoising and Dereverberation Framework with Target Decoupling", On DNS-2020 dataset, the DNSMOS

Cyril Lv 43 Nov 21, 2022
A simple implementation of Kalman filter in single object tracking

kalman-filter-in-single-object-tracking A simple implementation of Kalman filter in single object tracking https://www.bilibili.com/video/BV1Qf4y1J7D4

130 Dec 26, 2022