Comments (2)
The "restrictions on redefinition and shadowing" are specified in Section 11.1.2.1.2 of the HyperSpec. It states that "except where explicitly allowed," it's not a good idea to redefine such symbols. This exception is important.
The CLOS MOP specification defines such an exception for call-next-method. See http://www.p-cos.net/lisp/mop/mop/dictionary.html#make-method-lambda where it states that make-method-lambda "can be overridden." (What it means for a method to be overridden is specified in http://www.p-cos.net/lisp/mop/mop/concepts.html#implementation-and-users - namely that a user-defined method does not have to return the result of call-next-method, or does not even have to call it.)
The section on make-method-lambda also shows that it is clearly the intention that user-defined methods can introduce new local definitions for call-next-method and next-method-p. See from the same entry: "Note that the system-supplied implementation of call-next-method is not required to handle extra arguments to the method function. Users who define additional arguments to the method function must either redefine or forego call-next-method." See also the example given there.
I believe that a Common Lisp implementation that claims to conform to the CLOS MOP specification should respect this exception.
from closer-mop.
good point, thank you for pointing that out. This one was my biggest concern with regard to the proxy generic function metaclass.
from closer-mop.
Related Issues (17)
- writing a test code HOT 6
- Darcs repository - dates HOT 3
- Documentation and internal symbol exports HOT 9
- Bad conditionalization for lispworks with-hash-table-locked HOT 8
- Problem with closer-mop::only-standard-methods. HOT 8
- Default make-method-lambda doesn't add implicit blocks around the method body. HOT 5
- closer-mop breaks defclass in LispWorks HOT 4
- Build failure with ECL 21.2.1 HOT 2
- LispWorks 8: c2mop:compute-applicable-methods-using-classes's default method specializes wrong class HOT 4
- slot-boundp-using-class broken in LispWorks 8? HOT 10
- `mop-features` should be more prominent, and why not integrate it into `closer-mop` as a separately loadable ASDF system? HOT 3
- compute-effective-method-function does not expand implementation-specific macros HOT 1
- irregurality on ABCL HOT 2
- Redefined standard-generic-function. HOT 1
- No applicable method for "compute-applicable-methods-using-classes" for ccl on OSX. HOT 2
- Reader functions for method-combination class HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from closer-mop.