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

Issue: LOAD-OBJECTS (Version 2)



    Date: Fri, 13 Jan 89 20:58:49 PST
    From: jrose@Sun.COM (John Rose)

      ...
	 The creation form for an object is always evaluated before the
	 initialization form for that object.  When either the creation form or
	 the initialization form references other objects of user-defined types
	 that have not been referenced earlier in the COMPILE-FILE, the
	 compiler collects all of the creation forms together and collects all
	 of the initialization forms together.  All of the creation forms are
	 evaluated before any of the initialization forms.  The order of
	 evaluation of the creation forms is unspecified except when the
	 ordering is forced by data dependencies.  The order of evaluation of
	 the initialization forms is unspecified.
      ...
    Why does the proposal restrict the evaluation initialization forms to
    such a late time?  Data dependencies would allow an object X's
    initialization form to be executed any time after X's creation form had
    finished.

    Actually, it would be better (and no more difficult, it seems to me) to
    be strict in the other direction: Objects should be initialized as early
    as possible, and hence at a deterministic time.  This would allow nodes
    in non-circular structures to be built out of fully initialized subparts,
    which is clearly something an application could need.

Good point.  I've modified the proposal accordingly, although I did not use
your exact wording.  Of course the time is not fully determinstic, but
it's more deterministic than in version 2 of the proposal.