Advice sought on structuring a system

Mark Cox markcox80 at gmail.com
Tue Apr 12 00:32:33 UTC 2016


On Tue, Apr 12, 2016 at 9:26 AM, Faré <fahree at gmail.com> wrote:

> On Mon, Apr 11, 2016 at 7:15 PM, Mark Cox <markcox80 at gmail.com> wrote:
> > On Sun, Apr 10, 2016 at 12:32 AM, Faré <fahree at gmail.com> wrote:
> >> The intended way to use ASDF in your case would be to use two or more
> >> systems, that may be defined in the same .asd file (using the / syntax
> >> to name a secondary system: roan, roan/core, roan/sqlite, etc.) or
> >> separate .asd files (using - or . as a separator).
> >
> >
> > I like this suggestion because it lets the user decide what is to be
> built.
> >
> > It won't scale though.
> >
> > This is an excerpt from the help message of ImageMagick's configure
> script:
> >   --disable-openmp        do not use OpenMP
> >   --enable-opencl         enable OpenCL support
> >   --without-threads       disable threads support
> >   --without-bzlib         disable BZLIB support
> >   --with-x                use the X Window System
> >   --without-zlib          disable ZLIB support
> >   --without-dps           disable Display Postscript support
> >   --without-fftw          disable FFTW support
> >   --without-fpx           disable FlashPIX support
> >   --without-djvu          disable DjVu support
> >   --without-fontconfig    disable fontconfig support
> >   --without-freetype      disable Freetype support
> >   --without-raqm          disable Raqm support
> >   --with-gslib            enable Ghostscript library support
> >   --with-gvc              enable GVC support
> >   --without-jbig          disable JBIG support
> >   --without-jpeg          disable JPEG support
> >   --without-lcms          disable lcms (v1.1X) support
> >   --without-openjp2       disable OpenJP2 support
> >   --without-lqr           disable Liquid Rescale support
> >   --without-lzma          disable LZMA support
> >   --without-openexr       disable OpenEXR support
> >   --without-pango         disable PANGO support
> >   --without-png           disable PNG support
> >   --with-rsvg             enable RSVG support
> >   --without-tiff          disable TIFF support
> >   --without-webp          disable WEBP support
>
> Quite on the contrary, it's the C configure and make system that
> clearly doesn't scale.
>
> If you're writing Lisp code to be used from the Lisp REPL, just define
> something a system that autoloads functionality on demand.
>
> If you're sadly creating an application, just dump everything — why
> would you leave anything out? Actually, use a protocol that helps you
> dump a single multicall binary for all the applications of your user.
>
> And if you're building a small image for an embedded target, well,
> then have you build script include exactly the systems you want.
>
> In any case, this kind of "configuration" can and should be part of
> your "application build script", that calls ASDF, but that ASDF
> doesn't have to care about.


Right. I see the flaw in my argument. Decisions are being made at the wrong
time.

My example actually highlights your point.

Thanks for taking the time to correct me.

Mark
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20160412/200ba7eb/attachment.html>


More information about the pro mailing list