Newsgroups: comp.lang.lisp
From: Barry Margolin <bar...@bbnplanet.com>
Date: 1999/08/05
Subject: Re: labels/flet for dynamic scope
In article <cxjpv129bic....@acs5.bu.edu>, David Bakhash <ca...@bu.edu> wrote:
>Barry Margolin <bar...@bbnplanet.com> writes: As I said earlier, if ERROR is all you're concerned with, use >> That's only feasible if you have control over the code that will be calling >that's exactly right. I was making a call to a function that is provided by IGNORE-ERRORS. You shouldn't need to redefine ERROR when a standard mechanism is provided. >Basically, the behavior I wanted was that which happens in Emacs Lisp. I Inlining is not the only reason to prohibit redefining standard functions. >wouldn't use it in real code; maybe just at the prompt. Something like what >Barry wrote would work. I just wanted to know if there was a standard way >about it. >> Note one thing about my solution and the ERROR example: the consequences of >This is really a shame. I understand that there's a performance issue here, Imagine the havoc you could create if you redefined something like LIST or DELETE, which are used extensively in the implementation. Even if you think you're redefining them compatibly, it's possible that the implementation has dependencies on undocumented features that you weren't aware of (perhaps they've implemented some function so that it never causes a GC, and call it from places that can't tolerate GC occurring, but your redefined version doesn't meet that constraint). When we were writing this section of the standard we considered the (defun common-lisp:delete (&rest args) Internally, the implementation would use the versions from the INTERNAL Had we gone in this direction, your redefinition of ERROR wouldn't work, -- You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
| ||||||||||||||