[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: question about compile-system

    Date: Sat, 9 Jul 88 10:53:29 EDT
    From: royt@pravda.gatech.edu (Roy M Turner)

    >  I believed when I designed SCT, and still believe now, that it would be
    >  a gross violation of any reasonable model of modularity for :Compile
    >  System to cause any component systems to be compiled.  Consider a
    >  component system which is used by a number of systems, but none of the
    >  developers of those systems actually maintain the component: they just
    >  use it. [...]  The maintainer of that component
    >  system, and the other users, would have every right to be annoyed with
    >  you for recompiling it when you recompiled your system.

    So true; I maintain a system that is used as a component for other systems.
    But how tough would it be to allow a system maintainer to "lock" a system so
    that it a compile system of a system using it would simply load it--maybe a
    :released system should be loaded, and the other kinds recursively compiled,
    like the documentation says.  This would give the best of both
    worlds--separate compilation for chunks of a system by having each chunk be a
    component, yet the ability to operate on the system as a whole in an intuitive
    manner.  (Note: I *would* have used defsubsystem for the pieces of the system,
    but according to the documentation, I can only hardcopy and edit subsystems,
    not separately compile them--and I really don't want to compile with condition
    = always for the whole system when I really only want to do it for a module!)

I have a plan for these things called "aggregate systems" which
completely solves all of these problems.  It has the additional benefit
that you get to name aggregates.  For instance, the Pascal product
consists of a whole pile of systems which shouldn't really appear in the
heral, since they are all just part of Pascal.  Having a Pascal
aggregate system would allow you to name that whole group of systems.

    >  Therefore, :Compile System only 1loads0 its component systems.  In order
    >  to compile components, you must do them explicitly.  If your component
    >  systems are truly just part and parcel of the main system, and have no
    >  utility as stand-alone systems, then you could use 2defsubsystem0.
    >  I notice that this is not mentioned anywhere in the document, so I have
    >  cc'ed the appropriate parties here.

    So true--in fact, it is explicitly stated in several places (including the
    table of system types) that compile will recursively compile component
    systems.  Thank you very much for your reply, and for notifying the
    documentation people of their error.