Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!newsfeed.internetmci.com!EU.net!peer-news.britain.eu.net!newsfeed.ed.ac.uk!edcogsci!jeff
From: jeff@cogsci.ed.ac.uk (Jeff Dalton)
Subject: Re: Immutable function bindings (was Re: ISO/IEC CD 13816 -- ISLisp)
Message-ID: <DKz4zA.4Ex.0.macbeth@cogsci.ed.ac.uk>
Organization: Centre for Cognitive Science, Edinburgh, UK
References: <MAD.95Dec21180804@tanzanite.math.keio.ac.jp> <DKo7rq.Lw4.0.macbeth@cogsci.ed.ac.uk> <MAD.96Jan8123523@tanzanite.math.keio.ac.jp>
Date: Wed, 10 Jan 1996 16:40:22 GMT
Lines: 46

In article <MAD.96Jan8123523@tanzanite.math.keio.ac.jp> mad@math.keio.ac.jp writes:
>In article <DKo7rq.Lw4.0.macbeth@cogsci.ed.ac.uk> jeff@cogsci.ed.ac.uk (Jeff Dalton) writes:
>
>    jeff> I am not convinced that ISLisp forbids implementations from allowing
>    jeff> function redefinition.  What is your textual evidence from the ISLisp
>    jeff> definition?
>
>"For each namespace, defining forms can occur at most once for the
>same name ..." (Working Draft 15.6; 4.4)
>
>"The binding between function-name and the function object is
>immutable." (4.8)
>
>"It is a violation if there is attempt to change an immutable binding
>(error-id. immutable-binding)." (1.7)

Ok, thanks.

>Re possibility of ISLisp implementation that allows redefinition:
>
>If an implementation provides read-eval-print loop as primary user
>interface and if it allows mutation of immutable bindings, such
>feature cannot be regarded as extension to the language.

How do you know?  And why does it matter?  Does the standard
even provide for read-eval-print loops.  Does it even contain
eval?

>Rather, it
>looks more like an omitted check.  I think such an implementation is
>non-conforming because it fails to detect violation.
>
>"An ISLisp processor complying with the requirements of this document
>shall ... reject any text that contains any textual usage which this
>document explicitly defines to be a violation ..." (1.9)

There's something weird going on here.  If it's supposed to reject
the text, why is there an error id?

>Special debugger or switches to control the toplevel loop behavior
>may be convenient, however.  (Like some C development environment which
>allows incremental function redefinition).

Just so.

-- jeff
