coda: The coda compiler

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Warnings:

The coda compiler.


[Skip to Readme]

Properties

Versions 0.0.1
Change log CHANGELOG.md
Dependencies aeson (>=1.1 && <1.3), ansi-terminal, array, base (>=4.10 && <5), bifunctors (>=5 && <6), bound, bytestring (>=0.10.8 && <0.11), bytestring-short, coda, comonad (>=5 && <6), containers (>=0.5.8.2 && <0.6), contravariant (>=1.4 && <2), data-default (>=0.7.1.1 && <0.8), data-default-class (>=0.1 && <0.2), deepseq (>=1.4 && <1.5), exceptions, filepath (>=1.4 && <1.5), ghc-prim, hashable (>=1.2.6 && <1.3), haskeline, lens (>=4.15 && <5), lens-aeson (>=1.0.2 && <1.1), llvm-hs-pure (>=6.0 && <6.1), megaparsec (>=6.0 && <7.0), mtl (>=2.2.1 && <2.3), nats (>=1.1.1 && <2), optparse-applicative, prettyprinter, prettyprinter-ansi-terminal, prettyprinter-convert-ansi-wl-pprint, profunctors (>=5.2 && <5.3), split, template-haskell (>=2.12 && <2.14), terminfo, text (>=1.2 && <1.3), text-short, transformers, unordered-containers (>=0.2 && <0.3), uri-encode (>=1.5.0.5 && <1.6) [details]
License (BSD-2-Clause OR Apache-2.0)
Copyright Copyright (C) 2017-2018 Edward A. Kmett
Author Edward A. Kmett
Maintainer Edward A. Kmett <ekmett@gmail.com>
Category Language
Home page http://github.com/ekmett/coda/
Bug tracker http://github.com/ekmett/coda/issues
Source repo head: git clone git://github.com/ekmett/coda.git
Uploaded by EdwardKmett at 2018-11-14T21:48:00Z

library coda

Modules

  • Console
    • Pretty
      • Console.Pretty.LLVM
  • LLVM
  • Syntax
    • Syntax.Error
    • Syntax.Lexer
    • Syntax.Located
    • Syntax.Name

library coda:console

Modules

  • Console
    • Console.Command
    • Console.Completion
    • Console.Options
    • Console.Pretty

library coda:server

Modules

  • Server
    • Server.Options

library coda:set

Signatures

  • Elem

Modules

  • Set
    • Set.Internal

library coda:syntax

Modules

  • Syntax
    • Syntax.Alex
    • Syntax.Document
    • Syntax.Dyck
    • Syntax.FromText
    • Syntax.Lexer
    • Syntax.Name
    • Syntax.Prefix
    • Syntax.Rope
    • Syntax.Summary
    • Syntax.Token

library coda:layout

Modules

  • Layout

library coda:summary-unit

Signatures

  • Dyck

Modules

  • Summary

library coda:rope

Signatures

  • Dyck
  • Lexer
  • Summary

Modules

  • Document
  • Rope

library coda:lexer

Modules

  • Syntax
    • Syntax.Dyck
    • Syntax.Lexer
    • Syntax.Token

library coda:dyck

Signatures

  • Token

Modules

  • Dyck

library coda:token

Modules

  • Syntax
    • Syntax.Token

library coda:algebra

Modules

  • Algebra
    • Algebra.Ordered
    • Algebra.Zero
  • FingerTree
  • Relative
    • Relative.Absolute
    • Relative.Cat
    • Relative.Class
    • Relative.Delta
      • Relative.Delta.Type
    • Relative.List
    • Relative.Located
    • Relative.Map
    • Relative.Queue
    • Relative.Semi
  • Rev

library coda:relative

Signatures

  • Delta

Modules

  • Absolute
  • Cat
  • List
  • Located
  • Map
  • Queue
  • Relative
  • Semi

library coda:common

Modules

  • Algebra
    • Algebra.Ordered
    • Algebra.Zero
  • FingerTree
  • Relative
    • Delta
      • Relative.Delta.Type
  • Syntax
    • Syntax.Alex
    • Syntax.FromText
    • Syntax.Name
    • Syntax.Prefix
    • Syntax.Sharing
  • Util
    • Util.BitQueue
    • Util.Bits

library coda:version

Modules

  • Version

library coda:automata

Modules

  • Automata
    • Automata.DFA
    • Automata.Internal
    • Automata.NFA
    • Automata.Presburger
  • Set
    • Set.Lazy

library coda:termination

Modules

  • Termination
    • Termination.Class
    • Termination.History
    • Termination.Pair
    • Termination.Test
    • Termination.Trie

library coda:lsp

Modules

  • Language
    • Server
      • Language.Server.Builder
      • Language.Server.Parser
      • Language.Server.Protocol

Flags

Manual Flags

NameDescriptionDefault
terminfo

Build with terminfo.

Enabled
test-tasty

Build tasty tests.

Enabled

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for coda-0.0.1

[back to package description]

coda

Travis Continuous Integration Status

This package will eventually provide a toy compiler.

For now, it provides an entertaining series of crashes and confusing error messages.

Table of Contents

Installation

To install the coda executable, you will need GHC 8.4.1 release candidate 1 or later, and you'll need to run cabal new-build, and fish through dist-newstyle for the executable and put it somewhere in your path.

Once cabal new-install works, this will become a lot easier.

To work on the extension, you'll need to:

  1. Download the repository from https://github.com/ekmett/coda if that isn't where you are reading this file from.

  2. Run code . from root of that repository

  3. Start debugging to launch the extension-host following the instructions in Running and Debugging Your Extension.

Alternately you can link the directory directly into your ~/.vscode/extensions folder, which may be useful if you're working on the typescript bits.

Autocompletion

Once you have an installed coda executable, bash command line autocompletion is available with:

$ source <(coda --bash-completion-script `which coda`)

You can add this to your .profile or .bashrc

Requirements

Currently, the build process is being tested on GHC 8.2, but I'm not actively doing anything to shut off older GHCs or newer ones.

Patches that help increase portability are welcome.

Documentation

Once there is an actual language here documentation will be forthcoming on it.

In the meantime, API documentation is available from https://ekmett.github.io/coda/

Directories

Directory Usage
.vscode Visual Studio Code configuration for the current workspace
bin Executable scripts
lib/coda* Haskell code for the language
code Typescript code for the extension
images The logo, etc.
test/code Typescript code for testing

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual-licensed as above, without any additional terms or conditions.

Contact Information

Contributions and bug reports are welcome!

Please feel free to contact me through github or on the ##coda or #haskell IRC channels on irc.freenode.net.

-Edward Kmett