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

sequential evaluation of arguments




	Note:  Although the precise order of evaluation is unspecified, the
	expressions must be evaluated without interleaving.  Interleaving is
	not allowed because Scheme provides no facilities for serializing
	concurrent side effects.

    Isn't this a bit strong?  Specifically, saying that exprs MUST BE EVALUATED
    WITHOUT INTERLEAVING precludes parallel implementations which do compile-time
    side-effect analysis to determine that two expressions' side effects are
    non-interferring and thus can safely be run concurrently.  (Note that within
    this context, we would consider two calls to CONS to "interfere" in the sense
    that they have ALLOCATE effects, the results of which may not be shared, just
    as we would consider two calls to I/O routines on the same I/O port to
    interfere).

Being a firm believer in Quantum Mechanics, I believe that if you
can't tell the difference, you can do anything you want.  I think you
are interpreting the wording too restrictively.  I interpret all such
"commands" as saying "your implementation must produce the same values
as if...", not "your implementation must act in exactly the following
way...".