Re: XS: possible to have side effects?

Subject: Re: XS: possible to have side effects?
From: Paul Prescod <papresco@xxxxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 07 Jun 1997 12:10:44 -0400
Capturing:
==========
James Clark wrote:
> - it is captured by an expression specifying a characteristic value; eg in
> the following it would be an error if foo modified x:

So that I understand the proposal more fully, could you please describe
the difference between "captured by" and "used in"? Would this be a very
different statement:

- it is used in an expression specifying a characteristic value; 

I think of "capture" as what happens to free variables in old versions
of Lisp without lexical scope. Could you provide your definition?

Vectors:
========
Your mail seemed to imply that you are considering adding vectors to
DSSSL. I'm not quite sure I understand the relationship between vectors
and mutability. Why didn't ISO DSSSL have them and why would we consider
them for an XS with side effects?

Lazy Evaluation:
================
> In some cases an implementation will be prevented from doing an operation
> lazily which it can now do lazily unless it can prove that a procedure is
> side-effect free: for example, node-list-map, map-constructor.  But provided
> only that an implementation can identify any spec that is completely
> side-effect free, which is very easy to do, no current spec need suffer
> reduced performance.

But how large is the effort required to provide two complete
implementations of node-list-map and map-constructor? I don't see these
two procedures as critical, but I do want to know what the actual
likelihood of having lazy implementations of these are if side-effects
were permitted.

First-Class Modes:
==================
> I believe this is sufficient to ensure that (process-children)  and
> (process-node-list) are guaranteed side-effect free.  This is because the
> only outside objects that are accessible to a construction rules are
> top-level variables and inherited characteristic values.
 
Keep in mind our other ideas about first-class modes. In some cases the
inability to pass information down the "construction-rule tree" is
painful. We should think carefully before we make it difficult or
impossible to change DSSSL in the future to allow information to be
passed through a (process-children).

 Paul Prescod

 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread