Send clisp-cvs mailing list submissions to
clisp-cvs@...
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.sourceforge.net/lists/listinfo/clisp-cvs
or, via email, send a message with subject or body 'help' to
clisp-cvs-request@...
You can reach the person managing the list at
clisp-cvs-admin@...
When replying, please edit your Subject line so it is more specific
than "Re: Contents of clisp-cvs digest..."
CLISP CVS commits for today
Today's Topics:
1. clisp/src CodingStyle,1.13,1.14 (Bruno Haible)
2. clisp/tests clos.tst,1.76,1.77 ChangeLog,1.255,1.256 (Bruno Haible)
3. clisp/src clos-class5.lisp,1.48,1.49 clos-specializer1.lisp,1.12,1.13 ChangeLog,1.3816,1.3817 (Bruno Haible)
4. clisp/src clos-genfun3.lisp,1.50,1.51 ChangeLog,1.3817,1.3818 (Bruno Haible)
5. clisp/doc mop.xml,2.35,2.36 (Bruno Haible)
6. clisp/doc gray.xml,2.5,2.6 (Bruno Haible)
7. clisp/doc cl-ent.xml,1.65,1.66 (Bruno Haible)
8. clisp/doc impnotes.xml.in,1.69,1.70 (Bruno Haible)
9. clisp/doc mop.xml,2.36,2.37 (Sam Steingold)
10. clisp/doc impnotes.css,1.15,1.16 (Sam Steingold)
11. clisp/src NEWS,1.206,1.207 (Sam Steingold)
12. clisp/doc impnotes.css,1.16,1.17 (Sam Steingold)
13. clisp/doc common.xsl,1.7,1.8 (Sam Steingold)
--__--__--
Message: 1
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/src CodingStyle,1.13,1.14
Date: Mon, 15 Nov 2004 11:14:04 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2096/src
Modified Files:
CodingStyle
Log Message:
A few basic rules about macros.
Index: CodingStyle
===================================================================
RCS file: /cvsroot/clisp/clisp/src/CodingStyle,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- CodingStyle 20 Sep 2004 10:58:00 -0000 1.13
+++ CodingStyle 15 Nov 2004 11:14:01 -0000 1.14
@@ -204,8 +204,30 @@
To many people this advice seems obvious; I am sorry that I have to repeat
it here.
- Change Management
- -----------------
+ Macros and ABI
+ --------------
+
+Macro expanders must not perform side effects; only the execution of the
+macro expansion may perform side effects.
+
+If a macro expansion needs to perform complex actions, try to move as much
+of it as possible into functions that are then called from the macro
+expansion. In particular, don't put literal strings into macro expansions.
+This helps 1. keeping the size of compiled .fas files small, 2. reducing
+the probability that O(version) needs to be bumped when you change the
+effect of the macro.
+
+Macros expansions can refer to documented symbols and functions from public
+packages (COMMON-LISP, CLOS, EXT, FFI), as well as undocumented, unexported
+functions. Both kinds of functions, together with their calling conventions,
+form the ABI (= Application Binary Interface) of .fas files. When the ABI
+changes, O(version) needs to be bumped, thus declaring previously compiled
+.fas files as invalid. The second kind of function should be marked as
+"; ABI" in the *.lisp source code or "/* ABI */" in constsym.d, to make the
+developers aware.
+
+ Change Management
+ -----------------
Even though CLISP is kept under the CVS, all functional changes require
a ChangeLog entry. If there is no ChangeLog file in the current
--__--__--
Message: 2
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/tests clos.tst,1.76,1.77 ChangeLog,1.255,1.256
Date: Mon, 15 Nov 2004 11:19:06 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/tests
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2776/tests
Modified Files:
clos.tst ChangeLog
Log Message:
Implement notification from change-class to generic functions.
Index: clos.tst
===================================================================
RCS file: /cvsroot/clisp/clisp/tests/clos.tst,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -d -r1.76 -r1.77
--- clos.tst 11 Nov 2004 13:15:15 -0000 1.76
+++ clos.tst 15 Nov 2004 11:19:03 -0000 1.77
@@ -1377,6 +1377,26 @@
ERROR
+;;; Check that changing an object's class clears the effective-methods or
+;;; discriminating-function cache of all affected generic functions.
+(progn
+ (defclass testclass31a () ())
+ (defclass testclass31b (testclass31a) ())
+ (defclass testclass31c (testclass31b) ())
+ (let ((*p* (make-instance 'testclass31c)))
+ (defgeneric testgf37 (x))
+ (defmethod testgf37 ((x testclass31a)) (list 'a))
+ (defmethod testgf37 ((x testclass31b)) (cons 'b (call-next-method)))
+ (defmethod testgf37 ((x testclass31c)) (cons 'c (call-next-method)))
+ (defmethod testgf37 ((x (eql *p*))) (cons '*p* (call-next-method)))
+ (list
+ (testgf37 *p*)
+ (progn
+ (change-class *p* 'testclass31b)
+ (testgf37 *p*)))))
+((*P* C B A) (*P* B A))
+
+
;;; ensure-generic-function
;;; <http://www.lisp.org/HyperSpec/Body/fun_ensure-ge_ric-function.html>
(ensure-generic-function 'car) error
Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/tests/ChangeLog,v
retrieving revision 1.255
retrieving revision 1.256
diff -u -d -r1.255 -r1.256
--- ChangeLog 12 Nov 2004 13:01:53 -0000 1.255
+++ ChangeLog 15 Nov 2004 11:19:03 -0000 1.256
@@ -1,5 +1,10 @@
2004-11-07 Bruno Haible <bruno@...>
+ * clos.tst: Add a test for notification of generic functions from
+ change-class.
+
+2004-11-07 Bruno Haible <bruno@...>
+
* mop.tst: Add test for notification upon change-class of a
generic-function.
--__--__--
Message: 3
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/src clos-class5.lisp,1.48,1.49 clos-specializer1.lisp,1.12,1.13 ChangeLog,1.3816,1.3817
Date: Mon, 15 Nov 2004 11:19:05 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2776/src
Modified Files:
clos-class5.lisp clos-specializer1.lisp ChangeLog
Log Message:
Implement notification from change-class to generic functions.
Index: clos-class5.lisp
===================================================================
RCS file: /cvsroot/clisp/clisp/src/clos-class5.lisp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- clos-class5.lisp 12 Nov 2004 13:01:40 -0000 1.48
+++ clos-class5.lisp 15 Nov 2004 11:19:00 -0000 1.49
@@ -678,6 +678,17 @@
(let ((previous (%change-class instance new-class)))
;; previous = a copy of instance
;; instance = mutated instance, with new class, slots unbound
+ ;; When the instance was used in an EQL specializer, the instance
+ ;; could be used as index in a generic function's dispatch table. Need
+ ;; to invalidate all the affected generic functions' dispatch tables.
+ (let ((specializer (existing-eql-specializer instance)))
+ (when specializer
+ (dolist (gf (specializer-direct-generic-functions specializer))
+ (when (typep-class gf <standard-generic-function>)
+ ;; Clear the discriminating function.
+ ;; The effective method cache does not need to be invalidated.
+ #|(setf (std-gf-effective-method-cache gf) '())|#
+ (finalize-fast-gf gf)))))
;; Copy identically named slots:
(let ((old-slots (class-slots (class-of previous)))
(new-slots (class-slots new-class)))
Index: clos-specializer1.lisp
===================================================================
RCS file: /cvsroot/clisp/clisp/src/clos-specializer1.lisp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- clos-specializer1.lisp 6 Nov 2004 15:17:53 -0000 1.12
+++ clos-specializer1.lisp 15 Nov 2004 11:19:00 -0000 1.13
@@ -161,6 +161,12 @@
(make-instance-<eql-specializer> <eql-specializer>
'singleton object)))))
+;; Returns the eql-specializer for the given object only if it already exists,
+;; otherwise nil.
+(defun existing-eql-specializer (object)
+ (let ((table (if (numberp object) *eql-specializer-table* *eq-specializer-table*)))
+ (gethash object table)))
+
;; MOP p. 52
(defun eql-specializer-object (specializer)
(eql-specializer-singleton specializer))
Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v
retrieving revision 1.3816
retrieving revision 1.3817
diff -u -d -r1.3816 -r1.3817
--- ChangeLog 12 Nov 2004 15:18:37 -0000 1.3816
+++ ChangeLog 15 Nov 2004 11:19:00 -0000 1.3817
@@ -1,3 +1,10 @@
+2004-11-07 Bruno Haible <bruno@...>
+
+ Implement notification from change-class to generic functions.
+ * clos-specializer1.lisp (existing-eql-specializer): New function.
+ * clos-class5.lisp (do-change-class): Notify all generic functions
+ which use an EQL specializer on the given object.
+
2004-11-12 Sam Steingold <sds@...>
* m4/connect.m4 (CL_CONNECT): check whether connect() exists
--__--__--
Message: 4
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/src clos-genfun3.lisp,1.50,1.51 ChangeLog,1.3817,1.3818
Date: Mon, 15 Nov 2004 11:22:13 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3422/src
Modified Files:
clos-genfun3.lisp ChangeLog
Log Message:
Simplify the macroexpansion.
Index: clos-genfun3.lisp
===================================================================
RCS file: /cvsroot/clisp/clisp/src/clos-genfun3.lisp,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- clos-genfun3.lisp 10 Nov 2004 11:42:45 -0000 1.50
+++ clos-genfun3.lisp 15 Nov 2004 11:22:09 -0000 1.51
@@ -210,8 +210,8 @@
`(LET ()
(COMPILER::EVAL-WHEN-COMPILE
(COMPILER::C-DEFUN ',funname ,signature nil 'DEFMETHOD))
- (when (get (sys::get-funname-symbol ',funname) 'sys::traced-definition)
- (sys::untrace1 ',funname))
+ (WHEN (GET ,(if (atom funname) `',funname `(SYS::GET-SETF-SYMBOL ',(second funname))) 'SYS::TRACED-DEFINITION)
+ (SYS::UNTRACE1 ',funname))
(DO-DEFMETHOD ',funname (FUNCTION ,fast-function-factory-lambda)
(LIST ,@method-initargs-forms)))))
@@ -518,8 +518,8 @@
(DECLARE (SYS::IN-DEFUN ,funname))
(COMPILER::EVAL-WHEN-COMPILE
(COMPILER::C-DEFUN ',funname ',signature nil 'DEFGENERIC))
- (when (get (sys::get-funname-symbol ',funname) 'sys::traced-definition)
- (sys::untrace1 ',funname))
+ (WHEN (GET ,(if (atom funname) `',funname `(SYS::GET-SETF-SYMBOL ',(second funname))) 'SYS::TRACED-DEFINITION)
+ (SYS::UNTRACE1 ',funname))
;; NB: no (SYSTEM::REMOVE-OLD-DEFINITIONS ',funname)
(LET* ((,generic-function-class-var ,generic-function-class-form)
,@(if user-defined-args
Index: ChangeLog
===================================================================
RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v
retrieving revision 1.3817
retrieving revision 1.3818
diff -u -d -r1.3817 -r1.3818
--- ChangeLog 15 Nov 2004 11:19:00 -0000 1.3817
+++ ChangeLog 15 Nov 2004 11:22:10 -0000 1.3818
@@ -1,3 +1,9 @@
+2004-11-12 Bruno Haible <bruno@...>
+
+ * clos-genfun3.lisp (defmethod, defgeneric): Simplify the macro-
+ expansion in the frequent case that the funname is a symbol.
+ (Problem introduced on 2004-10-18 and 2004-10-19.)
+
2004-11-07 Bruno Haible <bruno@...>
Implement notification from change-class to generic functions.
--__--__--
Message: 5
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/doc mop.xml,2.35,2.36
Date: Mon, 15 Nov 2004 11:23:28 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3675/doc
Modified Files:
mop.xml
Log Message:
Add a summary of clisp specifics.
Index: mop.xml
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/mop.xml,v
retrieving revision 2.35
retrieving revision 2.36
diff -u -d -r2.35 -r2.36
--- mop.xml 11 Nov 2004 14:40:12 -0000 2.35
+++ mop.xml 15 Nov 2004 11:23:25 -0000 2.36
@@ -5443,4 +5443,78 @@
</section><!-- mop-dep-maint-protocol -->
</section><!-- mop-dep-maint -->
+<section id="mop-clisp"><title>&clisp; Specific Differences</title>
+
+<para>This section summarizes the differences between the &amop; and the
+&clisp; implementation of it.</para>
+
+<itemizedlist><title>Not implemented in &clisp;</title>
+<listitem><para>The class &forward-referenced-class; is not implemented.
+See <xref linkend="mop-mo-cl-inheritance"/>.
+</para></listitem>
+<listitem><para>The generic function &make-method-lambda; is not implemented.
+See <xref linkend="mop-gf-invocation"/>.
+</para></listitem>
+<listitem><para>Custom methods on &finalize-inheritance; sometimes have no
+effect. See <xref linkend="finalize-inheritance"/>.
+</para></listitem>
+</itemizedlist>
+
+<itemizedlist><title>Features implemented differently in &clisp;</title>
+<listitem><para>The class precedence list of &funcallable-standard-object-t;
+is different. See <xref linkend="mop-mo-cl-inheritance"/>.
+</para></listitem>
+<listitem><para>The &defclass; macro passes default values to &ensure-class;.
+See <xref linkend="mop-cl-defclass"/>.
+</para></listitem>
+<listitem><para>The &defgeneric; macro passes default values to &ensure-gf;.
+See <xref linkend="mop-gf-init-defgeneric"/>.
+</para></listitem>
+<listitem><para>The direct-superclasses list of non-finalized classes contains
+symbols instead of &forward-referenced-class; instances.
+See <xref linkend="mop-mo-cl-inheritance"/>.
+</para></listitem>
+<listitem><para>The function &gf-argument-precedence-order; signals an error
+if the generic function has no &lalist;.
+</para></listitem>
+</itemizedlist>
+
+<itemizedlist><title>Extensions specific to &clisp;</title>
+<listitem><para>The &amop; is applicable to classes of type &structure-class;.
+The default superclass for &structure-class; instances is &structure-object-t;.
+Structure classes don't support multiple inheritance and reinitialization.
+See <xref linkend="mop-cl-init-mo"/>.
+</para></listitem>
+<listitem><para>The class &method-t; is subclassable.
+See <xref linkend="mop-mo-cl-inheritance"/>.
+</para></listitem>
+<listitem><para>Slot names like &nil; and &t; are allowed. See
+<xref linkend="slotdef-name"/>.
+</para></listitem>
+<listitem><para>The &validate-superclass; method is more permissive by default
+and does not need to be overridden in some "obvious" cases.
+See <xref linkend="validate-superclass"/>.
+</para></listitem>
+<listitem><para>New generic function &compute-dsd-initargs;. It can sometimes
+be used when overriding &dsd-class; is cumbersome.
+</para></listitem>
+<listitem><para>New generic function &compute-esd-initargs;. It can sometimes
+be used when overriding &esd-class; is cumbersome.
+</para></listitem>
+<listitem><para>New function &compute-effective-method-as-function;. It can be
+used in overriding methods of &compute-discriminating-function;.
+</para></listitem>
+<listitem><para>The generic function &ensure-gf-UC; accepts a &declare-k;
+keyword.
+</para></listitem>
+<listitem><para>The function &standard-instance-access; supports non-updated
+obsolete instances and also supports slots with allocation &class-k;.
+</para></listitem>
+<listitem><para>The existence of the &class-direct-subclasses; function does
+not prevent otherwise unreferenced classes from being &gc;ed.
+</para></listitem>
+</itemizedlist>
+
+</section><!-- mop-clisp -->
+
</section>
--__--__--
Message: 6
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/doc gray.xml,2.5,2.6
Date: Mon, 15 Nov 2004 11:24:08 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3796/doc
Modified Files:
gray.xml
Log Message:
Break lines, so that the <pre> block is not so wide.
Index: gray.xml
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/gray.xml,v
retrieving revision 2.5
retrieving revision 2.6
diff -u -d -r2.5 -r2.6
--- gray.xml 5 Nov 2004 17:40:32 -0000 2.5
+++ gray.xml 15 Nov 2004 11:24:06 -0000 2.6
@@ -379,8 +379,10 @@
(format fill "~%this is some long sentence which will be broken at spaces")
(force-output fill)
(let ((*my-indent-level* 5))
- (format fill "~%and properly indented to the level specified by the ~S argument which can be a ~S or an ~S - cool!" :TEXT-INDENT 'symbol 'integer))
- (format fill "~%Don't forget to call ~S on it, and/or use ~S Pretty formatting of the S-expressions printed with ~~S is preserved: ~S" 'force-output 'with-fill-stream '(defun foo (x y z) (if x (+ y z) (* y z)))))))
+ (format fill "~%and properly indented to the level specified by the ~S argument which can be a ~S or an ~S - cool!"
+ :TEXT-INDENT 'symbol 'integer))
+ (format fill "~%Don't forget to call ~S on it, and/or use ~S Pretty formatting of the S-expressions printed with ~~S is preserved: ~S"
+ 'force-output 'with-fill-stream '(defun foo (x y z) (if x (+ y z) (* y z)))))))
<computeroutput>"
this is some long
sentence which
--__--__--
Message: 7
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/doc cl-ent.xml,1.65,1.66
Date: Mon, 15 Nov 2004 11:27:26 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4270/doc
Modified Files:
cl-ent.xml
Log Message:
ABCL and SBCL were swapped.
Index: cl-ent.xml
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/cl-ent.xml,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- cl-ent.xml 14 Nov 2004 20:27:21 -0000 1.65
+++ cl-ent.xml 15 Nov 2004 11:27:24 -0000 1.66
@@ -106,13 +106,13 @@
<!ENTITY gfdl "<ulink url='http://www.gnu.org/copyleft/fdl.html'>GFDL</ulink>">
<!-- *** implementations *** -->
-<!ENTITY abcl "<ulink url='http://sbcl.sourceforge.net/'><command>SBCL</command></ulink>">
+<!ENTITY abcl "<ulink url='http://armedbear-j.sourceforge.net/'><command>ABCL</command></ulink>">
<!ENTITY ccl "<ulink url='http://corman.net/lisp'><command>CormanLisp</command></ulink>">
<!ENTITY clisp "<ulink url='http://clisp.cons.org'><command>CLISP</command></ulink>">
<!ENTITY cmucl "<ulink url='http://www.cons.org/cmucl/'><command>CMU CL</command></ulink>">
<!ENTITY gcl "<ulink url='http://www.gnu.org/software/gcl/'><command>GCL</command></ulink>">
<!ENTITY openmcl "<ulink url='http://openmcl.clozure.com/'><command>OpenMCL</command></ulink>">
-<!ENTITY sbcl "<ulink url='http://armedbear-j.sourceforge.net/'><command>ABCL</command></ulink>">
+<!ENTITY sbcl "<ulink url='http://sbcl.sourceforge.net/'><command>SBCL</command></ulink>">
<!ENTITY acl "<ulink url='http://www.franz.com'><command>Allegro CL</command></ulink>">
<!ENTITY lispworks "<ulink url='http://www.xanalys.com/software_tools/products/index.html'><command>LispWorks</command></ulink>">
--__--__--
Message: 8
From: Bruno Haible <haible@...>
To: clisp-cvs@...
Subject: clisp/doc impnotes.xml.in,1.69,1.70
Date: Mon, 15 Nov 2004 11:26:52 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4197/doc
Modified Files:
impnotes.xml.in
Log Message:
Michael has moved and is no longer in Bonn.
Index: impnotes.xml.in
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/impnotes.xml.in,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -d -r1.69 -r1.70
--- impnotes.xml.in 14 Nov 2004 17:19:21 -0000 1.69
+++ impnotes.xml.in 15 Nov 2004 11:26:50 -0000 1.70
@@ -95,10 +95,7 @@
and
<blockquote><address>
<honorific>Dr</honorific> <firstname>Michael</firstname> <surname>Stoll</surname>
- <street>Westerwaldweg 22</street>
- <city>Remagen-Oberwinter</city>
- <postcode>D-53424</postcode> <country>Germany</country>
- <otheraddr><ulink url="http://www.math.uni-duesseldorf.de/~stoll/"/></otheraddr>
+ <otheraddr><ulink url="http://www.math.iu-bremen.de/stoll/"/></otheraddr>
</address></blockquote>
The current maintainers are
<blockquote><address>
--__--__--
Message: 9
From: Sam Steingold <sds@...>
To: clisp-cvs@...
Subject: clisp/doc mop.xml,2.36,2.37
Date: Mon, 15 Nov 2004 15:43:14 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21298
Modified Files:
mop.xml
Log Message:
markup
Index: mop.xml
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/mop.xml,v
retrieving revision 2.36
retrieving revision 2.37
diff -u -d -r2.36 -r2.37
--- mop.xml 15 Nov 2004 11:23:25 -0000 2.36
+++ mop.xml 15 Nov 2004 15:43:12 -0000 2.37
@@ -4191,13 +4191,13 @@
<formalpara><title>Examples</title>
<para><informalexample><programlisting language="lisp">
(&extract-lambda-list; '((p position)))
- <literal role="data">(P)</literal>
+ <returnvalue>(P)</returnvalue>
(&extract-lambda-list; '((p position) x y))
- <literal role="data">(P X Y)</literal>
+ <returnvalue>(P X Y)</returnvalue>
(&extract-lambda-list; '(a (b (eql x)) c &rest-amp; i))
- <literal role="data">(A B C &optional-amp; I)</literal>
+ <returnvalue>(A B C &optional-amp; I)</returnvalue>
</programlisting></informalexample></para></formalpara>
</section><!-- extract-lambda-list -->
@@ -4232,13 +4232,13 @@
<formalpara><title>Examples</title>
<para><informalexample><programlisting language="lisp">
(&extract-specializer-names; '((p position)))
- <literal role="data">(POSITION)</literal>
+ <returnvalue>(POSITION)</returnvalue>
(&extract-specializer-names; '((p position) x y))
- <literal role="data">(POSITION T T)</literal>
+ <returnvalue>(POSITION T T)</returnvalue>
(&extract-specializer-names; '(a (b (eql x)) c &rest-amp; i))
- <literal role="data">(T (EQL X) T)</literal>
+ <returnvalue>(T (EQL X) T)</returnvalue>
</programlisting></informalexample></para></formalpara>
</section><!-- extract-specializer-names -->
@@ -4835,10 +4835,10 @@
(setq c1 (make-instance 'constructor
:name 'position :fields '(x y)))
-<literal role="data">#<CONSTRUCTOR 262437></literal>
+<returnvalue>#<CONSTRUCTOR 262437></returnvalue>
(setq p1 (funcall c1))
-<literal role="data">#<ARRAY 3 263674></literal>
+<returnvalue>#<ARRAY 3 263674></returnvalue>
</programlisting></para></informalexample>
</section><!-- mop-sa-funcallable -->
@@ -5443,75 +5443,62 @@
</section><!-- mop-dep-maint-protocol -->
</section><!-- mop-dep-maint -->
-<section id="mop-clisp"><title>&clisp; Specific Differences</title>
+<section id="mop-clisp"><title>Deviations from &amop;.</title>
-<para>This section summarizes the differences between the &amop; and the
-&clisp; implementation of it.</para>
+<para>This section lists the differences between the &amop; and the
+&clisp; implementation thereof.</para>
-<itemizedlist><title>Not implemented in &clisp;</title>
+<itemizedlist id="mop-not-in-clisp"><title>Not implemented in &clisp;</title>
<listitem><para>The class &forward-referenced-class; is not implemented.
-See <xref linkend="mop-mo-cl-inheritance"/>.
-</para></listitem>
+ See <xref linkend="mop-mo-cl-inheritance"/>.</para></listitem>
<listitem><para>The generic function &make-method-lambda; is not implemented.
-See <xref linkend="mop-gf-invocation"/>.
-</para></listitem>
-<listitem><para>Custom methods on &finalize-inheritance; sometimes have no
-effect. See <xref linkend="finalize-inheritance"/>.
-</para></listitem>
+ See <xref linkend="mop-gf-invocation"/>.</para></listitem>
+<listitem><para>Custom methods on &finalize-inheritance; sometimes have
+ no effect. See <xref linkend="finalize-inheritance"/>.</para></listitem>
</itemizedlist>
-<itemizedlist><title>Features implemented differently in &clisp;</title>
+<itemizedlist id="mop-clisp-different">
+ <title>Features implemented differently in &clisp;</title>
<listitem><para>The class precedence list of &funcallable-standard-object-t;
-is different. See <xref linkend="mop-mo-cl-inheritance"/>.
-</para></listitem>
+ is different. See <xref linkend="mop-mo-cl-inheritance"/>.</para></listitem>
<listitem><para>The &defclass; macro passes default values to &ensure-class;.
-See <xref linkend="mop-cl-defclass"/>.
-</para></listitem>
+ See <xref linkend="mop-cl-defclass"/>.</para></listitem>
<listitem><para>The &defgeneric; macro passes default values to &ensure-gf;.
-See <xref linkend="mop-gf-init-defgeneric"/>.
-</para></listitem>
-<listitem><para>The direct-superclasses list of non-finalized classes contains
-symbols instead of &forward-referenced-class; instances.
-See <xref linkend="mop-mo-cl-inheritance"/>.
-</para></listitem>
-<listitem><para>The function &gf-argument-precedence-order; signals an error
-if the generic function has no &lalist;.
-</para></listitem>
+ See <xref linkend="mop-gf-init-defgeneric"/>.</para></listitem>
+<listitem><para>The direct-superclasses list of non-finalized classes
+ contains symbols instead of &forward-referenced-class; instances.
+ See <xref linkend="mop-mo-cl-inheritance"/>.</para></listitem>
+<listitem><para>The function &gf-argument-precedence-order; &sig-err;
+ if the generic function has no &lalist;.</para></listitem>
</itemizedlist>
-<itemizedlist><title>Extensions specific to &clisp;</title>
+<itemizedlist id="mop-clisp-ext"><title>Extensions specific to &clisp;</title>
<listitem><para>The &amop; is applicable to classes of type &structure-class;.
The default superclass for &structure-class; instances is &structure-object-t;.
-Structure classes don't support multiple inheritance and reinitialization.
-See <xref linkend="mop-cl-init-mo"/>.
-</para></listitem>
+Structure classes do not support multiple inheritance and reinitialization.
+See <xref linkend="mop-cl-init-mo"/>.</para></listitem>
<listitem><para>The class &method-t; is subclassable.
-See <xref linkend="mop-mo-cl-inheritance"/>.
-</para></listitem>
-<listitem><para>Slot names like &nil; and &t; are allowed. See
-<xref linkend="slotdef-name"/>.
-</para></listitem>
-<listitem><para>The &validate-superclass; method is more permissive by default
-and does not need to be overridden in some "obvious" cases.
-See <xref linkend="validate-superclass"/>.
-</para></listitem>
-<listitem><para>New generic function &compute-dsd-initargs;. It can sometimes
-be used when overriding &dsd-class; is cumbersome.
-</para></listitem>
+ See <xref linkend="mop-mo-cl-inheritance"/>.</para></listitem>
+<listitem><para>Slot names like &nil; and &t; are allowed.
+ See <xref linkend="slotdef-name"/>.</para></listitem>
+<listitem><para>The &validate-superclass; method is more permissive by
+ default and does not need to be overridden in
+ some <quote>obvious</quote> cases.
+ See <xref linkend="validate-superclass"/>.</para></listitem>
+<listitem><para>New generic function &compute-dsd-initargs;. It can sometimes
+ be used when overriding &dsd-class; is cumbersome.</para></listitem>
<listitem><para>New generic function &compute-esd-initargs;. It can sometimes
-be used when overriding &esd-class; is cumbersome.
-</para></listitem>
-<listitem><para>New function &compute-effective-method-as-function;. It can be
-used in overriding methods of &compute-discriminating-function;.
-</para></listitem>
-<listitem><para>The generic function &ensure-gf-UC; accepts a &declare-k;
-keyword.
-</para></listitem>
-<listitem><para>The function &standard-instance-access; supports non-updated
-obsolete instances and also supports slots with allocation &class-k;.
+ be used when overriding &esd-class; is cumbersome.</para></listitem>
+<listitem><para>New function &compute-effective-method-as-function;. It
+ can be used in overriding methods of &compute-discriminating-function;.
</para></listitem>
-<listitem><para>The existence of the &class-direct-subclasses; function does
-not prevent otherwise unreferenced classes from being &gc;ed.
+<listitem><para>The generic function &ensure-gf-UC; accepts a
+ &declare-k; keyword.</para></listitem>
+<listitem><para>The function &standard-instance-access; supports
+ non-updated obsolete instances and also supports slots with allocation
+ &class-k;.</para></listitem>
+<listitem><para>The existence of the &class-direct-subclasses; function
+ does not prevent otherwise unreferenced classes from being &gc;ed.
</para></listitem>
</itemizedlist>
--__--__--
Message: 10
From: Sam Steingold <sds@...>
To: clisp-cvs@...
Subject: clisp/doc impnotes.css,1.15,1.16
Date: Mon, 15 Nov 2004 16:06:29 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26543
Modified Files:
impnotes.css
Log Message:
returnvalue like data; larger headings
Index: impnotes.css
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/impnotes.css,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- impnotes.css 13 Nov 2004 21:18:54 -0000 1.15
+++ impnotes.css 15 Nov 2004 16:06:27 -0000 1.16
@@ -17,13 +17,16 @@
{ background-color: lightgray; color: darkblue; }
/* mark methods with color - same background as type! */
-.method { background-color: lightcyan; color: darkblue; }
+.method
+{ background-color: lightcyan; color: darkblue; }
/* literal data */
-.data { background-color: lightblue; color: darkred; }
+.data, .returnvalue
+{ background-color: lightblue; color: darkred; }
/* bytecode instructions */
-.byte { background-color: lightgray; color: darkred; }
+.byte
+{ background-color: lightgray; color: darkred; }
/* mark types with color - same background as method! */
.type, .classname, .superclass
@@ -34,7 +37,13 @@
{ background-color: lightgreen; color: navy; }
/* no border for images */
-img { border-width: 0; }
+img
+{ border-width: 0; }
/* epigraph: flush right, large left margin */
-.epigraph { text-align: right; margin-left: 50%; }
+.epigraph
+{ text-align: right; margin-left: 50%; }
+
+/* larger headings */
+h1, h2, h3, h4, h5
+{ font-size: 150%; }
--__--__--
Message: 11
From: Sam Steingold <sds@...>
To: clisp-cvs@...
Subject: clisp/src NEWS,1.206,1.207
Date: Mon, 15 Nov 2004 16:11:05 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27436
Modified Files:
NEWS
Log Message:
link to #mop-clisp
Index: NEWS
===================================================================
RCS file: /cvsroot/clisp/clisp/src/NEWS,v
retrieving revision 1.206
retrieving revision 1.207
diff -u -d -r1.206 -r1.207
--- NEWS 11 Nov 2004 17:59:16 -0000 1.206
+++ NEWS 15 Nov 2004 16:11:01 -0000 1.207
@@ -87,7 +87,9 @@
MAP-DEPENDENTS.
New customizable generic functions
ADD-DEPENDENT, REMOVE-DEPENDENT, UPDATE-DEPENDENT.
- See <http://clisp.cons.org/impnotes.html#mop-chap> for details.
+ See <http://clisp.cons.org/impnotes.html#mop-chap> for details,
+ and <http://clisp.cons.org/impnotes.html#mop-clisp> for a list
+ of differences between CLISP and "The Art of MetaObject Protocol".
* Several new datatypes that manage weak references:
WEAK-LIST, WEAK-AND-RELATION, WEAK-OR-RELATION,
--__--__--
Message: 12
From: Sam Steingold <sds@...>
To: clisp-cvs@...
Subject: clisp/doc impnotes.css,1.16,1.17
Date: Mon, 15 Nov 2004 16:15:05 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28449
Modified Files:
impnotes.css
Log Message:
list all headers
Index: impnotes.css
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/impnotes.css,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- impnotes.css 15 Nov 2004 16:06:27 -0000 1.16
+++ impnotes.css 15 Nov 2004 16:15:03 -0000 1.17
@@ -45,5 +45,5 @@
{ text-align: right; margin-left: 50%; }
/* larger headings */
-h1, h2, h3, h4, h5
+h1, h2, h3, h4, h5, h6, h7, h8, h9
{ font-size: 150%; }
--__--__--
Message: 13
From: Sam Steingold <sds@...>
To: clisp-cvs@...
Subject: clisp/doc common.xsl,1.7,1.8
Date: Mon, 15 Nov 2004 16:21:44 +0000
Reply-To: clisp-devel@...
Update of /cvsroot/clisp/clisp/doc
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29777
Modified Files:
common.xsl
Log Message:
no need for special handling of "strong"
use span+apply-imports for literal/role=
<isbn>: insert "ISBN"
Index: common.xsl
===================================================================
RCS file: /cvsroot/clisp/clisp/doc/common.xsl,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- common.xsl 11 Nov 2004 18:08:58 -0000 1.7
+++ common.xsl 15 Nov 2004 16:21:41 -0000 1.8
@@ -14,13 +14,19 @@
<!-- http://article.gmane.org/gmane.text.docbook.apps:9779 -->
<xsl:preserve-space elements="entry"/>
-<xsl:template match="emphasis[@role = 'strong' or @role = 'first']">
- <strong><xsl:apply-templates/></strong>
-</xsl:template>
+<!-- http://article.gmane.org/gmane.text.docbook.apps:11014
+ apply-templates is mapc on children
+ apply-imports is call-next-method -->
-<xsl:template match="literal[@role = 'type' or @role = 'sexp'
+<xsl:template match="literal[@role = 'type'
or @role = 'method' or @role = 'data' or @role = 'byte']">
- <tt class="{@role}"><xsl:apply-templates/></tt>
+ <span class="{@role}"><xsl:apply-imports/></span>
+</xsl:template>
+
+<xsl:template match="isbn" mode="bibliography.mode">
+ <xsl:text>ISBN </xsl:text>
+ <xsl:apply-templates mode="bibliography.mode"/>
+ <xsl:value-of select="$biblioentry.item.separator"/>
</xsl:template>
<xsl:template match="quote[@role = 'package']">
--__--__--
_______________________________________________
clisp-cvs mailing list
clisp-cvs@...
https://lists.sourceforge.net/lists/listinfo/clisp-cvs
End of clisp-cvs Digest
|