Re: Announcing a new release of Lisp1 #2



On 2008-01-30, Rainer Joswig <joswig@xxxxxxx> wrote:
In article <Pine.LNX.4.58.0801301727290.20788@xxxxxxxxxxxxxx>,
"Kjetil S. Matheussen" <k.s.matheussen@xxxxxxxxxx> wrote:

(removed comp.lang.scheme, only relevant to comp.lang.lisp)

On Wed, 30 Jan 2008, Blake McBride wrote:


I would further add that Scheme should define argument evaluation order.
Compilers can be written to support a particular order just as well as
another order. This is no argument for unspecified argument evaluations
order. Having the argument evaluation order unspecified is a huge and
totally unnecessary opportunity for porting bugs.


Scheme is not haskell, so I agree about that.
BTW, does common lisp specify the order of arguments?

Yes: evaluation of arguments is left to right in Common Lisp.

There was a previous discussion of the issue of argument evaluation order in
this newsgroup, March, 2005. In that discussion, two arguments in support of
unspecified argument evaluation order were identified:

1. Potential for optimization given a compiler that could/would re-arrange the
order of argument evaluation (at compile time);

2. (Run-time) support for parallelism (i.e., evaluation of n arguments could
be spun off as n processes without concern for the order in which they
might complete).

Marcin 'Qrczak' Kowalczyk <qrczak@xxxxxxxxxx> pointed out that although the
order is unspecified in Scheme the result is required to be consistent with
some sequential ordering.

In Scheme (R5RS) we read:

4.1.3. Procedure calls
[...]
Note: Although the order of evaluation is otherwise unspecified, the effect of
any concurrent evaluation of the operator and operand expressions is
constrained to be consistent with some sequential order of evaluation. The
order of evaluation may be chosen differently for each procedure call.

Alas, the requirement for consistency with some sequential ordering defeats
straightforward support for parallelism.

Aside: C/C++ is like Scheme, the order of argument evaluation is unspecified.

Given the emergence of multi-core processors, I think there's an argument for
an even more relaxed take on the issue of order of argument evaluation. Given
that the order of evaluation is unspecified, what is the rationale for
requiring the ordering to be consistent with some sequential ordering?
.



Relevant Pages

  • [ANN] JVoiceXML release 0.6
    ... added initial support for multi document applications ... evaluation of xml:base in VXML ... basic implementation of a SRGS XML to SRGS XML grammar transformer ... bugfix: SRGS ABNF grammar identifier ignores grammar tag ...
    (comp.speech.research)
  • Re: Writing a getf style function that uses equal
    ... In SETF of GETF, the first argument is a place rather than just ... - You need to ensure the order of evaluation yourself. ... - Does not support specially evaluated arguments. ... + Can easily point to a generic function. ...
    (comp.lang.lisp)
  • Re: Updating Evaluation Version of PB 5.0 to the Real Deal
    ... the uninstall/install. ... you'll waste a lot more than the install time for the full version. ... > The support phone number is in the Help menu of PB, but, if your evaluation ... >> I have installed an evaluation version of Platform Builder for WinCE 5.0. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: [fw-wiz] Opinion: Worst interface ever.
    ... >> ruleset evaluation of one of these beasts. ... they have a support forum with some pretty helpful ... Paul D. Robertson "My statements in this message are personal opinions ...
    (Firewall-Wizards)
  • Re: Intel Fortran 8, bug with trimmed string arguments
    ... you get 30 days of full support through Intel ... I raised some support issues during an evaluation, then bought a license. ... > changed - but you can download the current one from your Premier Support ...
    (comp.lang.fortran)