Attached is a patch (git diff) which fixes these issues. Only code reorganization was required. Here's a summary of the changes:
- WITH-PROFILE-COUNTER, *PROFILING-ENABLED-P*, and other profiling counters have been moved from xslt.lisp to unparse.lisp. - Definition of SINK-ELEMENT has been moved (in unparse.lisp). - Definition of TEMPLATE has been moved (in xslt.lisp).
Another suggestion: maybe WITH-PROFILE-COUNTER and helpers can be moved into profile.lisp and in the ASD, we can load this file before unparse.lisp?
Chaitanya
Chaitanya Gupta wrote:
Hi,
I have encountered a few problems while compiling Xuriella on both Allegro CL and SBCL. On compiling Xuriella on ACL, I get the following warnings:
Warning: While compiling these undefined functions were referenced: (SETF XURIELLA::TEMPLATE-MODE) from position 50393 in /home/chaitanya/lisp/libs/site/xuriella/dev/xslt.lisp (SETF XURIELLA::TEMPLATE-BASE-URI) from position 50393 in /home/chaitanya/lisp/libs/site/xuriella/dev/xslt.lisp (SETF XURIELLA::TEMPLATE-STYLESHEET) from position 50393 in /home/chaitanya/lisp/libs/site/xuriella/dev/xslt.lisp (SETF XURIELLA::SINK-ELEMENT-USED-PREFIXES) from position 4861 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp (SETF XURIELLA::SINK-ELEMENT-ACTUAL-QNAME) from position 3094 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp XURIELLA::*UNPARSE-XML-COUNTER* from position 2860 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp, 7305 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp, 10553 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp, 11725 in /home/chaitanya/lisp/libs/site/xuriella/dev/unparse.lisp
The first five warnings (SETF XURIELLA::...) all seem to be related to ACL using defsetf instead of setf functions for structure slots. This has been discussed before on the list too [1].
The last issue (XURIELLA::*UNPARSE-XML-COUNTER*) causes problems on both ACL and SBCL. This, to me, seems because the WITH-PROFILE-COUNTER macro is defined in xslt.lisp whereas it is also used in unparse.lisp, which is loaded before xslt.lisp.
Chaitanya