darcs patch: [PROOF OF CONCEPT] build readline package with libedit

Christian Maeder Christian.Maeder at dfki.de
Tue Feb 19 09:22:34 EST 2008

Duncan Coutts wrote:
> On Tue, 2008-02-19 at 12:01 +0100, Henning Thielemann wrote:
>> On Tue, 19 Feb 2008, Christian Maeder wrote:
>>> In order to avoid several #ifdefs (maybe differently or suboptimal
>>> given) in user sources (to achieve 1.) such #ifdefs (or wrappers)
>>> should be part of the libraries (including the documentation for the
>>> license differences)!
>> Can Cabal-1.2's flag capability manage such a task?
> I don't think I understand the problem clearly enough to say. Perhaps
> someone can try explaining it in more detail.

Currently, we have packages Shellac-readline and Shellac-editline.

exposed-modules: System.Console.Shell.Backend.Readline


exposed-modules: System.Console.Shell.Backend.Editline

Each module exports a single constant:

Prelude> :browse System.Console.Shell.Backend.Editline
editlineBackend :: System.Console.Shell.Backend.ShellBackend ()
Prelude> :browse System.Console.Shell.Backend.Readline
readlineBackend :: System.Console.Shell.Backend.ShellBackend ()

On Macs I want to use Editline, under Linux Readline, Therefore I #ifdef
my sources. (The functionality seems to be the same for both packages)

My questions are:

1. Should not the exported constants have the same name
2. Should not even the module name be the same in both packages

As long as not both packages are installed the compiler would pick the
proper package without my #ifdefs.

HTH Christian

More information about the Libraries mailing list