-
Notifications
You must be signed in to change notification settings - Fork 5
A library for constructing read-eval-print loops in a declarative manner
License
robdockins/shellac
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Shellac -========================- == What is it? Shellac is a framework for building read-eval-print style shells. Shells are created by declaratively defining a set of shell commands and an evaluation function. Shellac supports multiple shell backends, including a 'basic' backend which uses only Haskell IO primitives and a full featured 'readline' backend based on the the Haskell readline bindings found in the standard libraries. This library attempts to allow users to write shells in a declarative way and still enjoy the advanced features that may be available from a powerful line editing package like readline. == Why do I care? Shellac takes care of much the muckety-muck of writing robust, feature-full shells so you don't have to. == How is it licensed? Shellac is available under a BSD3 license. See the LICENSE file for details. Be aware, however, that the GNU readline library itself is licensed under the GPL. If you wish to use the readline bindings, your project will need to be GPL compatible. Go here (http://directory.fsf.org/GNU/readline.html) for more information about the readline library. == What about portability? Currently, Shellac is GHC only. The 0.5 release made significant efforts toward portability by eliminating dependencies on the GHC specific features GADTs and STM. However, it still requires existential types, multi-parameter type classes, functional dependencies, preemptive concurrency support and the FFI. Currently no Haskell implementation other than GHC supports all these features. == How do I build it? Shellac uses a Cabal build system. The following commands assume you have a Haskell interpreter in your system path named 'runhaskell'. All commands are run from this directory. To install for the whole system: runhaskell Setup.hs configure runhaskell Setup.hs build runhaskell Setup.hs install To install for a single user: runhaskell Setup.hs configure --prefix=/home/<username> runhaskell Setup.hs build runhaskell Setup.hs install --user To build the API docs: runhaskell Setup.hs haddock == Why 'Shellac'? I had to call it something. And it starts with 'shell'. == Who is responsible for this mess? You can send bug reports, rants and comments to: Robert Dockins <robdockins AT fastmail.fm>
About
A library for constructing read-eval-print loops in a declarative manner
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published