monolithic-concatenate-source-op misses a few dependencies

Faré fahree at
Sat Oct 14 18:52:31 UTC 2017

On Sat, Oct 14, 2017 at 1:17 PM, Robert Goldman <rpgoldman at> wrote:
> Will you please clarify for my benefit, since I don't actually use any of
> the image operations.
> Is the problem that somewhere in the process of loading Postmodern, or one
> of its dependencies, some bit of code invokes REQUIRE? Or is this an issue
monolithic-concatenate-source-op is supposed to create a source file
that has "all the (transitive) source code required to load a system".
Problem is, it is naive in that the current implementation believes
there are only source files to concatenate. And so it doesn't handle
(:require "foo") dependencies which would require to generate a
temporary "source file" that contains (require "FOO") in it — or
better a refactoring such that instead of source files, you use
arbitrary arguments to vomit-output, and for require dependencies you
use a function that outputs that instead of a pathname  (and wrap a
map () 'vomit-output in a with-output-file).

> If it's the former, then I believe this is simply a bad implementation in
> the relevant system.
> If it's the latter, we should do something about it. However, I believe that
> REQUIRE-SYSTEM, despite its name, doesn't actually use REQUIRE, instead it
> "acts like require."
Well, there are unhappily two things called "require-system": the
class that backs the (:require "foo") dependencies, and the function
that is now deprecated because it didn't have a good composable
meaning in presence of multiple build phases. The one that matters
here is the former.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics•
All problems in computer science can be solved by another level of indirection
        — David Wheeler
Almost all programming can be viewed as an exercise in caching
        — Terje Mathisen, well-known programming optimization guru

More information about the asdf-devel mailing list