[bknr-devel] compilation with cmucl-19d
Hi, Have you tried running the latest BKNR with cmucl-19d? I had an issue compiling the CXML package. I had to isolate the file character.lisp from the package to compile it (I don't use CXML anyway). The rest seems to work. -- Kamen
Hi Kamen, no, I have not tried cmucl lately. Is the problem you have a cxml problem or one that is in BKNR? -Hans 2007/7/11, Kamen TOMOV <kamen@cybuild.com>:
Hi,
Have you tried running the latest BKNR with cmucl-19d? I had an issue compiling the CXML package. I had to isolate the file character.lisp from the package to compile it (I don't use CXML anyway). The rest seems to work.
-- Kamen _______________________________________________ bknr-devel mailing list bknr-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel
Hans, I beleive it is a CXML problem. It appears when you do: (asdf:oos 'asdf:load-op :cxml) Regards, -- Камен ----- Original Message ----- From: Hans Hübner Sent: 11 Юли 2007 at 23:17 Subject: Re: [bknr-devel] compilation with cmucl-19d Hi Kamen, no, I have not tried cmucl lately. Is the problem you have a cxml problem or one that is in BKNR? -Hans 2007/7/11, Kamen TOMOV <kamen@cybuild.com>:
Hi,
Have you tried running the latest BKNR with cmucl-19d? I had an issue compiling the CXML package. I had to isolate the file character.lisp from the package to compile it (I don't use CXML anyway). The rest seems to work.
-- Kamen _______________________________________________ bknr-devel mailing list bknr-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/bknr-devel
Hans, CXML continued breaking the compilation so I isolated it completely from bknr-datastore. In order to do so I had to remove two dependancies - one in the bknr-utils package and one in bknr-indices. The dependancy in bknr-indices appears to be bogus and it was easy to remove. The dependancy in bknr-utils was not and in fact it might need a bit more work. Generally, I created a new module "xml" where I put the removed functionality. I don't know if this is the best idea (perhaps it belongs to some other module). I am sending you the diffs. I haven't tested it because I don't use many of the modules. I have worked only in the bknr/src directory so it might break stuff in your projects. Generally, it would be best if there are no dependancies, but as nothing is perfect let's make them less. Parhaps bknr-utils can be shortened more, but currently I do not have an immediate need for that. Regards, -- Kamen Index: xml-impex/package.lisp =================================================================== --- xml-impex/package.lisp (revision 2168) +++ xml-impex/package.lisp (working copy) @@ -13,6 +13,7 @@ #+sbcl :sb-pcl :bknr.utils + :bknr.xml :bknr.indices) (:export #:xml-class Index: bknr-impex.asd =================================================================== --- bknr-impex.asd (revision 2168) +++ bknr-impex.asd (working copy) @@ -21,7 +21,7 @@ :description "BKNR XML import/export" :long-description "" - :depends-on (:cl-interpol :cxml :bknr-utils :bknr-indices) + :depends-on (:cl-interpol :cxml :bknr-utils :bknr-xml :bknr-indices) :components ((:module "xml-impex" :components Index: packages.lisp =================================================================== --- packages.lisp (revision 2168) +++ packages.lisp (working copy) @@ -26,7 +26,7 @@ #:start-cron)) (defpackage :bknr.rss - (:use :cl :cl-user :cl-ppcre :bknr.utils :puri :cxml-xmls :bknr.datastore :bknr.indices :cxml) + (:use :cl :cl-user :cl-ppcre :bknr.utils :bknr.xml :puri :cxml-xmls :bknr.datastore :bknr.indices :cxml) (:export #:xml-escape #:*img-src-scanner* #:*a-href-scanner* @@ -189,6 +189,7 @@ :bknr.indices :bknr.impex :bknr.utils + :bknr.xml :bknr.events :bknr.user) (:shadowing-import-from :cl-interpol #:quote-meta-chars) Index: xml/package.lisp =================================================================== --- xml/package.lisp (revision 0) +++ xml/package.lisp (revision 0) @@ -0,0 +1,15 @@ +(in-package :cl-user) + +(defpackage :bknr.xml + (:use :cl + :cl-ppcre + :cl-interpol + :cxml-xmls) + (:export + #:node-children-nodes + #:find-child + #:find-children + #:node-string-body + #:node-attribute + #:node-child-string-body + #:node-to-html)) \ No newline at end of file Index: xml/xml.lisp =================================================================== --- xml/xml.lisp (revision 0) +++ xml/xml.lisp (revision 0) @@ -0,0 +1,63 @@ +(in-package :bknr.xml) + +(defun node-children-nodes (xml) + (remove-if-not #'consp (node-children xml))) + +(defun find-child (xml node-name) + (let ((children (node-children-nodes xml))) + (find node-name children :test #'string-equal :key #'node-name))) + +(defun find-children (xml node-name) + (let ((children (node-children-nodes xml))) + (find-all node-name children :test #'string-equal :key #'node-name))) + +(defun node-string-body (xml) + (let ((children (remove-if #'consp (node-children xml)))) + (if (every #'stringp children) + (apply #'concatenate 'string children) + (error "Some children are not strings")))) + +(defun node-attribute (xml attribute-name) + (cadr (assoc attribute-name (node-attrs xml) :test #'string-equal))) + +(defun node-child-string-body (xml node-name) + (let ((child (find-child xml node-name))) + (if (and child (consp child)) + (node-string-body child) + nil))) + +(defun node-to-html (node &optional (stream *standard-output*)) + (when (stringp node) + (write-string node) + (return-from node-to-html)) + (write-char #\< stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #\: stream)) + (write-string (node-name node) stream) + (loop for (key value) in (node-attrs node) + do (write-char #\Space stream) + (write-string key stream) + (write-char #\= stream) + (write-char #\" stream) + (write-string value stream) + (write-char #\" stream)) + (if (node-children node) + (progn + (write-char #\> stream) + (write-char #\Newline stream) + (dolist (child (node-children node)) + (node-to-html child stream)) + (write-char #\< stream) + (write-char #\/ stream) + (when (node-ns node) + (write-string (node-ns node) stream) + (write-char #\: stream)) + (write-string (node-name node) stream) + (write-char #\> stream) + (write-char #\Newline stream)) + (progn (write-char #\Space stream) + (write-char #\/ stream) + (write-char #\> stream) + (write-char #\Newline stream)))) + Index: bknr-utils.asd =================================================================== --- bknr-utils.asd (revision 2168) +++ bknr-utils.asd (working copy) @@ -17,7 +17,6 @@ :description "baikonour - launchpad for lisp satellites" :depends-on (:cl-interpol :cl-ppcre - :cxml :md5 #+(not allegro) :acl-compat @@ -37,7 +36,6 @@ (:file "base64" :depends-on ("utils")) (:file "capability" :depends-on ("utils")) (:file "make-fdf-file" :depends-on ("utils")) - (:file "xml" :depends-on ("utils")) (:file "date-calc") (:file "acl-mp-compat" :depends-on ("package")))))) Index: utils/package.lisp =================================================================== --- utils/package.lisp (revision 2168) +++ utils/package.lisp (working copy) @@ -4,7 +4,6 @@ (:use :cl :cl-ppcre :cl-interpol - :cxml-xmls :md5 #+cmu :extensions ; #+sbcl :sb-ext @@ -122,15 +121,6 @@ #:string-beginning-with-p #:string-delimited-by-p - ;; xml - #:node-children-nodes - #:find-child - #:find-children - #:node-string-body - #:node-attribute - #:node-child-string-body - #:node-to-html - ;; crypt-md5 #:crypt-md5 #:verify-md5-password Index: utils/xml.lisp =================================================================== --- utils/xml.lisp (revision 2168) +++ utils/xml.lisp (working copy) @@ -1,63 +0,0 @@ -(in-package :bknr.utils) - -(defun node-children-nodes (xml) - (remove-if-not #'consp (node-children xml))) - -(defun find-child (xml node-name) - (let ((children (node-children-nodes xml))) - (find node-name children :test #'string-equal :key #'node-name))) - -(defun find-children (xml node-name) - (let ((children (node-children-nodes xml))) - (find-all node-name children :test #'string-equal :key #'node-name))) - -(defun node-string-body (xml) - (let ((children (remove-if #'consp (node-children xml)))) - (if (every #'stringp children) - (apply #'concatenate 'string children) - (error "Some children are not strings")))) - -(defun node-attribute (xml attribute-name) - (cadr (assoc attribute-name (node-attrs xml) :test #'string-equal))) - -(defun node-child-string-body (xml node-name) - (let ((child (find-child xml node-name))) - (if (and child (consp child)) - (node-string-body child) - nil))) - -(defun node-to-html (node &optional (stream *standard-output*)) - (when (stringp node) - (write-string node) - (return-from node-to-html)) - (write-char #\< stream) - (when (node-ns node) - (write-string (node-ns node) stream) - (write-char #\: stream)) - (write-string (node-name node) stream) - (loop for (key value) in (node-attrs node) - do (write-char #\Space stream) - (write-string key stream) - (write-char #\= stream) - (write-char #\" stream) - (write-string value stream) - (write-char #\" stream)) - (if (node-children node) - (progn - (write-char #\> stream) - (write-char #\Newline stream) - (dolist (child (node-children node)) - (node-to-html child stream)) - (write-char #\< stream) - (write-char #\/ stream) - (when (node-ns node) - (write-string (node-ns node) stream) - (write-char #\: stream)) - (write-string (node-name node) stream) - (write-char #\> stream) - (write-char #\Newline stream)) - (progn (write-char #\Space stream) - (write-char #\/ stream) - (write-char #\> stream) - (write-char #\Newline stream)))) - Index: bknr-xml.asd =================================================================== --- bknr-xml.asd (revision 0) +++ bknr-xml.asd (revision 0) @@ -0,0 +1,21 @@ +;; -*-Lisp-*- + +(in-package :cl-user) + +(defpackage :bknr.xml.system + (:use :cl :asdf)) + +(in-package :bknr.xml.system) + +(defsystem :bknr-xml + :name "baikonour" + :author "Hans Huebner <hans@huebner.org>" + :author "Manuel Odendahl <manuel@bl0rg.net>" + :version "0" + :maintainer "Manuel Odendahl <manuel@bl0rg.net>" + :licence "BSD" + :description "baikonour - launchpad for lisp satellites" + :depends-on (:cl-interpol :cxml) + :components ((:module "xml" :components ((:file "package") + (:file "xml"))))) + Index: bknr.asd =================================================================== --- bknr.asd (revision 2168) +++ bknr.asd (working copy) @@ -28,6 +28,7 @@ :cxml :unit-test :bknr-utils + :bknr-xml :puri ;:stem ;:mime Index: indices/package.lisp =================================================================== --- indices/package.lisp (revision 2168) +++ indices/package.lisp (working copy) @@ -6,7 +6,6 @@ #+cmu :ext #+sbcl :sb-ext :cl-user - :cxml :bknr.utils :bknr.skip-list #+allegro :aclmop
participants (2)
-
Hans Hübner
-
Kamen TOMOV