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

More on Full Specification



While I agree with most of Will's comments on underspecification, I
would like to defend underspecifying the returned value of
side-effecting constructs.  I have tried to make MultiScheme a direct
extension to the RnRS standard where possible while adding as few new
special forms as possible.  By having the standard deliberately
understate the value returned by SET!  (and SET-CAR!, etc.), I have
avoided the need to introduce separate atomic swap operations for
these cases (although I do provide Halstead's more powerful
conditional side-effect operations).

I think this case again indicates the importance of
underspecification: in doing research into a new application area
(parallel programming) the deliberate underspecification allows a
legitimate alternative implementation.  Users are NOT encouraged to
use the returned value of SET! et al, but can do so when necessary for
concurrency control.

--Jim