Hi Peter,

It looks like cond-expand does enough to achieve what I want. Thanks!

Matt
-=-


On Sun, Nov 3, 2013 at 2:58 AM, Peter Bex <[email protected]> wrote:

> On Sat, Nov 02, 2013 at 11:35:22PM -0700, Matt Welland wrote:
> > I'm curious to hear opinions on conditional complication and
> configuration
> > using Chicken scheme.
> >
> > Say for example I want to enable or disable the use of a particular
> library
> > or feature and I want there to be no trace of it in the executable.
> >
> > I can use a preprocessor such as cpp but I imagine there is a better way.
> > Any strategies or methodologies you all can share? Are macros good for
> this?
>
> Hi Matt,
>
> Usually when I want to do something like this, I use cond-expand and
> provide the feature via -feature provide-foo:
>
> (define (foo)
>   (cond-expand
>     (provide-foo (do-whatever-foo-does))
>     (else (error "support for foo is disabled"))))
>
> This is used extensively by the "crypt" egg to select which
> fallback implementations need to be provided and for which
> implementations it can use the one provided by libc.
>
> This is of course only available when compiling from Scheme.
> If you want to ship precompiled C files (so you'll only need
> a C compiler and libchicken), you'd have to use C preprocessor
> and/or conditional compilation of various different implementation
> files through Make like CHICKEN itself does (for posixunix/posixwin,
> and for things like HAVE_POSIX_POLL).  This is a lot trickier to
> do right, and I wouldn't recommend it unless you really have to.
>
> Cheers,
> Peter
> --
> http://www.more-magic.net
>



-- 
Matt
-=-
90% of the nations wealth is held by 2% of the people. Bummer to be in the
majority...
_______________________________________________
Chicken-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to