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

question about compile-system



    Date: Fri, 8 Jul 88 15:48 EDT
    From: SWM@SAPSUCKER.SCRC.Symbolics.COM (Scott McKay)

    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.  

Even when a developer/user explicitly and directly asks for this, and
confirms that s/he 1really0 wants it after being warned that it could be
hazardous?   

							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.  (An example might be a component system which implements a
    graphics imaging substrate, and the systems might be a Graphic Editor, a
    CAD system, and a VLSI design system).  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.

I can think of counterexamples in which it would be entirely appropriate
for the components to be compiled, although I agree that the current
behavior is correct 1as a default0. 

    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.

In which case I can't compile the subsystem(s) separately, which is
just as annoying (if not more so). 

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Date: 10 Jul 1988 22:02-EDT
    From: NCRAMER@G.BBN.COM
    
      > Date: Fri, 8 Jul 88 15:48 EDT
      > From: Scott McKay <SWM@sapsucker.scrc.symbolics.com>
      > ....
    
    The problem here is that once again SCT/Defsystem is capable of _any_ and
    _everything_ in the universe.  Except that it is often difficult, if not
    impossible to do the simple, straight-ahead things that most users expect
    (and want) it to do.
    
Yup.

    My case is between the two extremes above....
    
    NICHAEL

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    Date: 12 Jul 1988 00:08-EDT
    Sender: NCRAMER@G.BBN.COM
    
       > From: Scott McKay <SWM@SAPSUCKER.SCRC.Symbolics.COM>
       > Subject: COMPILE-SYSTEM, AGAIN
       > 
       > I think you should continue what you are doing now, even though it is
       > cumbersome.  I also strongly believe that the correct behavior is for
       > SCT to do what it does now.
    
    ....  But in the general case, given that some
    behavior is what most users want (and for that matter expect),
    why isn't the correct response to, at the very least, have a
    toggle?
    
    NICHAEL

I agree strongly.  Whether or not this is the "correct" behavior (based
on admirable, though somewhat impractical principles) is not the point; 
the cumbersome nature of the present implementation is.  I guess I also
fundamentally don't believe that there is an exclusively "right" answer,
unless it's the one and only that addresses the needs and desires of all
possible users.  

I personally believe that the hard line SCT draws to distinguish between
component systems and subsystems is inappropriate, since the distinction
is not always so clear in practice.  For instance, it is probably not
all that unusual for a subsystem to be "promoted" to component system
status when someone discovers a new use for existing code that doesn't
involve the supersystem.  The subsystem may still not be a standalone
thing, but it has to become a component system for this to work.  It
seems to me that subsystems as implemented are too constraining and
might be entirely unnecessary, given just a bit more flexibility in 
the handling of component systems.   

I vote for blurring this distinction to accomodate reality by adding a 
switch to allow (possibly selective) compilation of component systems,
at least in the interim prior to the release of a "better" solution.
It would also be very nice to be able to compile subsystems separately.