[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