nimiux 14/12/23 19:41:47 Added: gentoo-fix-dynamic-extent-sbcl-1.0.45.patch gentoo-fix-asd.patch gentoo-fix-unused-vars.patch gentoo-fix-dep-openmcl.patch gentoo-fix-obsolete-eval-when.patch Log: Add current version and live ebuild of package CLX. Should replace package cl-clx (Portage version: 2.2.14/cvs/Linux x86_64, signed Manifest commit with key F253DB15)
Revision Changes Path 1.1 dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-dynamic-extent-sbcl-1.0.45.patch?rev=1.1&content-type=text/plain Index: gentoo-fix-dynamic-extent-sbcl-1.0.45.patch =================================================================== diff -ur clx-0.7.4.orig/requests.lisp clx-0.7.4/requests.lisp --- clx-0.7.4.orig/requests.lisp 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/requests.lisp 2010-12-16 23:37:07.122629835 +0100 @@ -466,8 +466,7 @@ (type event-key event-key) (type (or null event-mask) event-mask) (type generalized-boolean propagate-p) - (type (or null display) display) - (dynamic-extent args)) + (type (or null display) display)) (unless event-mask (setq event-mask 0)) (unless display (setq display (window-display window))) (let ((internal-event-code (get-event-code event-key)) 1.1 dev-lisp/clx/files/gentoo-fix-asd.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-asd.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-asd.patch?rev=1.1&content-type=text/plain Index: gentoo-fix-asd.patch =================================================================== diff -ur clx-0.7.4.orig/clx.asd clx-0.7.4/clx.asd --- clx-0.7.4.orig/clx.asd 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/clx.asd 2009-11-29 22:29:11.000000000 +0100 @@ -21,116 +21,80 @@ ;;; or implied warranty. (defpackage :clx-system (:use :cl :asdf)) -(in-package :clx-system) +(in-package :clx-system) (pushnew :clx-ansi-common-lisp *features*) (defclass clx-source-file (cl-source-file) ()) (defclass xrender-source-file (clx-source-file) ()) -;;; CL-SOURCE-FILE, not CLX-SOURCE-FILE, so that we're not accused of -;;; cheating by rebinding *DERIVE-FUNCTION-TYPES* :-) -(defclass example-source-file (cl-source-file) ()) - -(defclass legacy-file (static-file) ()) - -(defsystem CLX - :depends-on (#+sbcl sb-bsd-sockets) - :version "0.7.2" - :serial t - :default-component-class clx-source-file +(defsystem clx + :depends-on (#+sbcl :sb-bsd-sockets) + :version "0.7.4" + :serial t + :default-component-class clx-source-file + :components + ((:file "package") + (:file "depdefs") + (:file "clx") + #-(or openmcl allegro) (:file "dependent") + #+openmcl (:file "dep-openmcl") + #+allegro (:file "dep-allegro") + (:file "macros") + (:file "bufmac") + (:file "buffer") + (:file "display") + (:file "gcontext") + (:file "input") + (:file "requests") + (:file "fonts") + (:file "graphics") + (:file "text") + (:file "attributes") + (:file "translate") + (:file "keysyms") + (:file "manager") + (:file "image") + (:file "resource") + #+allegro + (:file "excldep" :pathname "excldep.lisp") + (:module extensions + :pathname #.(make-pathname :directory '(:relative)) :components - ((:file "package") - (:file "depdefs") - (:file "clx") - #-(or openmcl allegro) (:file "dependent") - #+openmcl (:file "dep-openmcl") - #+allegro (:file "dep-allegro") - (:file "macros") - (:file "bufmac") - (:file "buffer") - (:file "display") - (:file "gcontext") - (:file "input") - (:file "requests") - (:file "fonts") - (:file "graphics") - (:file "text") - (:file "attributes") - (:file "translate") - (:file "keysyms") - (:file "manager") - (:file "image") - (:file "resource") - #+allegro - (:file "excldep" :pathname "excldep.lisp") - (:module extensions - :pathname #.(make-pathname :directory '(:relative)) - :components - ((:file "shape") - (:file "big-requests") - (:file "xvidmode") - (:xrender-source-file "xrender") - (:file "glx") - (:file "gl" :depends-on ("glx")) - (:file "dpms") - (:file "xtest") - (:file "screensaver") - (:file "xinerama"))) - (:module demo - :default-component-class example-source-file - :components - ((:file "bezier") - ;; KLUDGE: this requires "bezier" for proper operation, - ;; but we don't declare that dependency here, because - ;; asdf doesn't load example files anyway. - (:file "beziertest") - (:file "clclock") - (:file "clipboard") - (:file "clx-demos") - (:file "gl-test") - ;; FIXME: compiling this generates 30-odd spurious code - ;; deletion notes. Find out why, and either fix or - ;; workaround the problem. - (:file "mandel") - (:file "menu") - (:file "zoid"))) - (:module test - :default-component-class example-source-file - :components - ((:file "image") - ;; KLUDGE: again, this depends on "zoid" - (:file "trapezoid"))) - (:static-file "NEWS") - (:static-file "CHANGES") - (:static-file "README") - (:static-file "README-R5") - (:legacy-file "exclMakefile") - (:legacy-file "exclREADME") - (:legacy-file "exclcmac" :pathname "exclcmac.lisp") - (:legacy-file "excldepc" :pathname "excldep.c") - (:legacy-file "sockcl" :pathname "sockcl.lisp") - (:legacy-file "socket" :pathname "socket.c") - (:legacy-file "defsystem" :pathname "defsystem.lisp") - (:legacy-file "provide" :pathname "provide.lisp") - (:legacy-file "cmudep" :pathname "cmudep.lisp") - (:module manual - ;; TODO: teach asdf how to process texinfo files - :components ((:static-file "clx.texinfo"))) - (:module debug - :default-component-class legacy-file - :components - ((:file "debug" :pathname "debug.lisp") - (:file "describe" :pathname "describe.lisp") - (:file "event-test" :pathname "event-test.lisp") - (:file "keytrans" :pathname "keytrans.lisp") - (:file "trace" :pathname "trace.lisp") - (:file "util" :pathname "util.lisp"))))) - -(defmethod perform ((o load-op) (f example-source-file)) - ;; do nothing. We want to compile them when CLX is compiled, but - ;; not load them when CLX is loaded. - t) + ((:file "shape") + (:file "big-requests") + (:file "xvidmode") + (:xrender-source-file "xrender") + (:file "glx") + (:file "gl" :depends-on ("glx")) + (:file "dpms") + (:file "xtest") + (:file "screensaver") + (:file "xinerama"))))) + +(defsystem clx-test + :depends-on (:clx) + :serial t + :components + ((:file "image") + (:file "trapezoid"))) + +(defsystem clx-demo + :depends-on (:clx) + :serial t + :components + ((:file "bezier") + (:file "beziertest") + (:file "clclock") + (:file "clipboard") + (:file "clx-demos") + (:file "gl-test") + ;; FIXME: compiling this generates 30-odd spurious code + ;; deletion notes. Find out why, and either fix or + ;; workaround the problem. + (:file "mandel") + (:file "menu") + (:file "zoid"))) #+sbcl (defmethod perform :around ((o compile-op) (f xrender-source-file)) @@ -146,35 +110,35 @@ ;; without STYLE-WARNINGs. Since it currently does, let's enforce ;; it here so that we can catch regressions easily. (let ((on-warnings (operation-on-warnings o)) - (on-failure (operation-on-failure o))) + (on-failure (operation-on-failure o))) (unwind-protect - (progn - (setf (operation-on-warnings o) :error - (operation-on-failure o) :error) - ;; a variety of accessors, such as AREF-CARD32, are not - ;; declared INLINE. Without this (non-ANSI) - ;; static-type-inference behaviour, SBCL emits an extra 100 - ;; optimization notes (roughly one fifth of all of the - ;; notes emitted). Since the internals are unlikely to - ;; change much, and certainly the internals should stay in - ;; sync, enabling this extension is a win. (Note that the - ;; use of this does not imply that applications using CLX - ;; calls that expand into calls to these accessors will be - ;; optimized in the same way). - (let ((sb-ext:*derive-function-types* t) + (progn + (setf (operation-on-warnings o) :error + (operation-on-failure o) :error) + ;; a variety of accessors, such as AREF-CARD32, are not + ;; declared INLINE. Without this (non-ANSI) + ;; static-type-inference behaviour, SBCL emits an extra 100 + ;; optimization notes (roughly one fifth of all of the + ;; notes emitted). Since the internals are unlikely to + ;; change much, and certainly the internals should stay in + ;; sync, enabling this extension is a win. (Note that the + ;; use of this does not imply that applications using CLX + ;; calls that expand into calls to these accessors will be + ;; optimized in the same way). + (let ((sb-ext:*derive-function-types* t) (sadx (find-symbol "STACK-ALLOCATE-DYNAMIC-EXTENT" :sb-c)) (sadx-var (find-symbol "*STACK-ALLOCATE-DYNAMIC-EXTENT*" :sb-ext))) - ;; deeply unportable stuff, this. I will be shot. We - ;; want to enable the dynamic-extent declarations in CLX. - (when (and sadx (sb-c::policy-quality-name-p sadx)) - ;; no way of setting it back short of yet more yukky stuff - (proclaim `(optimize (,sadx 3)))) + ;; deeply unportable stuff, this. I will be shot. We + ;; want to enable the dynamic-extent declarations in CLX. + (when (and sadx (sb-c::policy-quality-name-p sadx)) + ;; no way of setting it back short of yet more yukky stuff + (proclaim `(optimize (,sadx 3)))) (if sadx-var (progv (list sadx-var) (list t) (call-next-method)) (call-next-method)))) (setf (operation-on-warnings o) on-warnings - (operation-on-failure o) on-failure)))) + (operation-on-failure o) on-failure)))) #+sbcl (defmethod perform :around (o (f clx-source-file)) @@ -186,31 +150,31 @@ ;; structured data is sufficiently equal. (handler-bind ((sb-ext:defconstant-uneql - (lambda (c) - ;; KLUDGE: this really means "don't warn me about - ;; efficiency of generic array access, please" - (declare (optimize (sb-ext:inhibit-warnings 3))) - (let ((old (sb-ext:defconstant-uneql-old-value c)) - (new (sb-ext:defconstant-uneql-new-value c))) - (typecase old - (list (when (equal old new) (abort c))) - (string (when (and (typep new 'string) - (string= old new)) - (abort c))) - (simple-vector - (when (and (typep new 'simple-vector) - (= (length old) (length new)) - (every #'eql old new)) - (abort c))) - (array - (when (and (typep new 'array) - (equal (array-dimensions old) - (array-dimensions new)) - (equal (array-element-type old) - (array-element-type new)) - (dotimes (i (array-total-size old) t) - (unless (eql (row-major-aref old i) - (row-major-aref new i)) - (return nil)))) - (abort c)))))))) + (lambda (c) + ;; KLUDGE: this really means "don't warn me about + ;; efficiency of generic array access, please" + (declare (optimize (sb-ext:inhibit-warnings 3))) + (let ((old (sb-ext:defconstant-uneql-old-value c)) + (new (sb-ext:defconstant-uneql-new-value c))) + (typecase old + (list (when (equal old new) (abort c))) + (string (when (and (typep new 'string) + (string= old new)) + (abort c))) + (simple-vector + (when (and (typep new 'simple-vector) + (= (length old) (length new)) + (every #'eql old new)) + (abort c))) + (array + (when (and (typep new 'array) + (equal (array-dimensions old) + (array-dimensions new)) + (equal (array-element-type old) + (array-element-type new)) + (dotimes (i (array-total-size old) t) + (unless (eql (row-major-aref old i) + (row-major-aref new i)) + (return nil)))) + (abort c)))))))) (call-next-method))) 1.1 dev-lisp/clx/files/gentoo-fix-unused-vars.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-unused-vars.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-unused-vars.patch?rev=1.1&content-type=text/plain Index: gentoo-fix-unused-vars.patch =================================================================== diff -ur clx-0.7.4.orig/gl.lisp clx-0.7.4/gl.lisp --- clx-0.7.4.orig/gl.lisp 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/gl.lisp 2009-11-29 22:46:37.000000000 +0100 @@ -2274,7 +2274,7 @@ (let ((constant 0) (calculated ())) (loop - for (name type length length-var) in argspecs + for (nil type length length-var) in argspecs do (let ((byte-width (byte-width type))) (typecase length (number (incf constant (* byte-width length))) @@ -2287,7 +2287,7 @@ (defun composite-args (argspecs) (loop - for (name type length length-var) in argspecs + for (nil nil length length-var) in argspecs when (consp length) collect (list length-var length))) diff -ur clx-0.7.4.orig/xrender.lisp clx-0.7.4/xrender.lisp --- clx-0.7.4.orig/xrender.lisp 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/xrender.lisp 2009-11-29 22:50:42.000000000 +0100 @@ -408,7 +408,7 @@ (macrolet ((foo (&rest specs) `(progn - ,@(loop for (type slot default) in specs + ,@(loop for (nil slot nil) in specs for index from 0 collect `(progn @@ -426,7 +426,7 @@ (data +X-RenderChangePicture+) (picture picture) (mask - ,@(loop for (type slot default) in specs + ,@(loop for (type slot nil) in specs for index from 0 collect `(,type (and @@ -454,7 +454,7 @@ (drawable &key format (picture (make-picture :display (drawable-display drawable))) - ,@(loop for (type slot default-value) in specs + ,@(loop for (nil slot nil) in specs collect (cond ((eql slot 'clip-mask) `(clip-mask :none)) (t @@ -475,7 +475,7 @@ (drawable drawable) (picture-format format) (mask - ,@(loop for (type slot default) in specs + ,@(loop for (type slot nil) in specs collect (cond ((eql slot 'clip-mask) (list type `(and @@ -487,7 +487,7 @@ (%render-change-picture-clip-rectangles picture clip-mask)) (setf (picture-format picture) format) (setf (picture-%server-values picture) - (vector ,@(loop for (type slot default) in specs + (vector ,@(loop for (nil slot default) in specs collect `(or ,slot ,default)))) (setf (picture-%values picture) (copy-seq (picture-%server-values picture))) 1.1 dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-dep-openmcl.patch?rev=1.1&content-type=text/plain Index: gentoo-fix-dep-openmcl.patch =================================================================== diff -ur clx-0.7.4.orig/dep-openmcl.lisp clx-0.7.4/dep-openmcl.lisp --- clx-0.7.4.orig/dep-openmcl.lisp 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/dep-openmcl.lisp 2009-11-29 22:39:36.000000000 +0100 @@ -492,7 +492,7 @@ ;;; value changes. (defun process-block (whostate predicate &rest predicate-args) - (declare (dynamic-extern predicate-args)) + (declare (dynamic-extent predicate-args)) (apply #'ccl:process-wait whostate predicate predicate-args)) ;;; PROCESS-WAKEUP: Check some other process' wait function. @@ -1113,7 +1113,7 @@ unit byte-lsb-first-p bit-lsb-first-p) (declare (ignore bbuf boffset pixarray x y width height padded-bytes-per-line bits-per-pixel unit - byte-lsb-first-p bit-lsp-first-p)) + byte-lsb-first-p bit-lsb-first-p)) nil) ;;; FAST-COPY-PIXARRAY - copy part of a pixarray into another 1.1 dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-lisp/clx/files/gentoo-fix-obsolete-eval-when.patch?rev=1.1&content-type=text/plain Index: gentoo-fix-obsolete-eval-when.patch =================================================================== diff -ur clx-0.7.4.orig/depdefs.lisp clx-0.7.4/depdefs.lisp --- clx-0.7.4.orig/depdefs.lisp 2009-11-28 16:43:30.000000000 +0100 +++ clx-0.7.4/depdefs.lisp 2009-11-29 22:56:38.000000000 +0100 @@ -142,7 +142,7 @@ ;;; overlapping array and image code. #+(or lispm vax little-endian Minima) -(eval-when (eval compile load) +(eval-when (:compile-toplevel :load-toplevel :execute) (pushnew :clx-little-endian *features*)) #+lcl3.0