The Shellac package

[Tags: bsd3, library]

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 at a high level and still enjoy the advanced features that may be available from a powerful line editing package like readline.


[Skip to ReadMe]

Properties

Versions0.9, 0.9.1, 0.9.5, 0.9.5.1, 0.9.5.2
Change logNone available
Dependenciesbase (>=1.0), haskell98 (>=1.0), mtl (>=1.0) [details]
LicenseBSD3
AuthorRobert Dockins
Maintainerrobdockins AT fastmail DOT fm
StabilityBeta
CategoryUser Interfaces
UploadedTue Feb 20 03:08:05 UTC 2007 by RobertDockins
DistributionsDebian:0.9.5.2
Downloads1147 total (61 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for Shellac-0.9

        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 at a high level
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>