--- configure | 6 -- ffcall-1.10+2.43/build-aux/config.guess | 1 ffcall-1.10+2.43/callback/trampoline_r/trampoline.c | 4 - modules/clx/new-clx/clx.lisp | 1 modules/clx/new-clx/demos/clx-demos.lisp | 2 modules/clx/new-clx/demos/koch.lisp | 29 ++++++++++ modules/clx/new-clx/demos/qix.lisp | 30 ++++++++++- modules/clx/new-clx/demos/sokoban.lisp | 34 +++++++++++- modules/postgresql/link.sh.in | 2 src/aclocal.m4 | 2 src/build-aux/config.guess | 54 ++++++++++---------- src/lispbibl.d | 16 ++++- src/makemake.in | 10 +++ utils/gctrigger.c | 1 utils/modprep.lisp | 2 15 files changed, 145 insertions(+), 49 deletions(-) --- a/configure +++ b/configure @@ -393,11 +393,11 @@ do passnext=both ;; --vimdir=* | --vimdi=* | --vimd=* | --vim=* | --vi=*) - subdir_configure_args="$subdir_configure_args $arg" +# subdir_configure_args="$subdir_configure_args $arg" makemake_args="$makemake_args --vimdir="`getarg "$arg"` ;; --vimdir | --vimdi | --vimd | --vim | --vi) - subdir_configure_args="$subdir_configure_args $arg" +# subdir_configure_args="$subdir_configure_args $arg" makemake_args="$makemake_args --vimdir=" prev=vimdir passnext=both ;; @@ -430,11 +430,9 @@ do passnext=configure ;; --build=* | --buil=* | --bui=* | --bu=*) - target=cross subdir_configure_args="$subdir_configure_args $arg" ;; --build | --buil | --bui | --bu) - target=cross subdir_configure_args="$subdir_configure_args $arg" prev=host passnext=configure ;; --- a/ffcall-1.10+2.43/build-aux/config.guess +++ b/ffcall-1.10+2.43/build-aux/config.guess @@ -985,6 +985,7 @@ EOF exit ;; esac # Determine whether the default compiler is a.out or elf + test -e /etc/SuSE-release && VENDOR=suse eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include --- a/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c +++ b/ffcall-1.10+2.43/callback/trampoline_r/trampoline.c @@ -191,15 +191,11 @@ extern RETGETPAGESIZETYPE getpagesize (v #ifdef ultrix #include #else -#ifdef linux -#include -#else #ifdef HAVE_SYS_CACHECTL_H #include #endif #endif #endif -#endif #ifdef __m88k__ #include #endif --- a/modules/clx/new-clx/clx.lisp +++ b/modules/clx/new-clx/clx.lisp @@ -22,6 +22,7 @@ ;;;; -------------------------------------------------------------------------- ;;;; Exports ;;;; -------------------------------------------------------------------------- +(export '*displays*) (export '(*version* access-control access-error access-hosts activate-screen-saver add-access-host add-resource add-to-save-set alist alloc-color --- a/modules/clx/new-clx/demos/clx-demos.lisp +++ b/modules/clx/new-clx/demos/clx-demos.lisp @@ -11,7 +11,7 @@ (defparameter *demos* ;; (demo-name [package requirements]) - '((koch) (qix) (sokoban #:xpm) (greynetic) (petal) (hanoi) + '((greynetic) (petal) (hanoi) (recurrence) (plaid) (clclock) (bball) (bwindow))) (defmacro do-demos ((fun-var) &body body) --- a/modules/clx/new-clx/demos/koch.lisp +++ b/modules/clx/new-clx/demos/koch.lisp @@ -7,7 +7,30 @@ ;;; $Id: koch.lisp,v 1.5 2008/06/25 23:05:28 sds Exp $ ;;; $Source: /cvsroot/clisp/clisp/modules/clx/new-clx/demos/koch.lisp,v $ -(in-package :clx-demos) +(defpackage "KOCH" + (:use "COMMON-LISP" "XLIB" "EXT") + (:import-from "SYS" "GETENV") + (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH + (:export "KOCH")) + +(in-package :koch) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun x-host-display (&optional (disp (getenv "DISPLAY"))) + "Parse the DISPLAY environment variable. +Return 3 values: host, server, screen." + (if disp + (let* ((pos1 (position #\: disp)) + (pos2 (and pos1 (position #\. disp :start pos1)))) + (values (subseq disp 0 pos1) + (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) + (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) + (values "" 0 0))) + +(defun x-open-display () + "Open the appropriate X display." + (multiple-value-bind (host di) (x-host-display) + (xlib:open-display host :display di))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defun koch-point (cx width/2 height/2 scale) (list (round (+ width/2 (* scale width/2 (realpart cx)))) @@ -123,4 +146,8 @@ Returns the new list and an indicator of (xlib:unmap-window win) (xlib:display-finish-output dpy)))) +(format t "~& Koch snoflake:~% + (koch:koch :width :height :delay :x :y :scale :font) +~% Call (koch:koch)~%~%") + (provide "koch") --- a/modules/clx/new-clx/demos/qix.lisp +++ b/modules/clx/new-clx/demos/qix.lisp @@ -14,7 +14,30 @@ ;;;; o or a spline option?! ;;;; -(in-package :clx-demos) +(defpackage "QIX" + (:use "COMMON-LISP" "XLIB" "EXT") + (:import-from "SYS" "GETENV") + (:shadowing-import-from "XLIB" "CHAR-WIDTH") ; EXT has CHAR-WIDTH + (:export "QIX")) + +(in-package :qix) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun x-host-display (&optional (disp (getenv "DISPLAY"))) + "Parse the DISPLAY environment variable. +Return 3 values: host, server, screen." + (if disp + (let* ((pos1 (position #\: disp)) + (pos2 (and pos1 (position #\. disp :start pos1)))) + (values (subseq disp 0 pos1) + (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) + (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) + (values "" 0 0))) + +(defun x-open-display () + "Open the appropriate X display." + (multiple-value-bind (host di) (x-host-display) + (xlib:open-display host :display di))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar *offset* 3) (defvar *delta* 6) @@ -87,4 +110,9 @@ (xlib:unmap-window win) (xlib:display-finish-output dpy)))) +;; since we have no herald, simply dump it: +(format t "~& The famous swirling vectors.~% + (qix:qix :host :display :dpy :width :height :delay :nqixs :nlines) +~% Call (qix:qix) or (qix:qix :delay 0)~%~%") + (provide "qix") --- a/modules/clx/new-clx/demos/sokoban.lisp +++ b/modules/clx/new-clx/demos/sokoban.lisp @@ -41,7 +41,30 @@ ;;;; - maximum field size is hard wired to 20x20. (This is not in the LISP spirit!) ;;;; - sometimes the programm could not count correctly ... -(in-package :clx-demos) +(defpackage "SOKOBAN" + (:use "COMMON-LISP") + (:import-from "SYS" "GETENV") + (:import-from "XLIB" "CLOSED-DISPLAY-P") + (:export "SOKOBAN")) + +(in-package :sokoban) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defun x-host-display (&optional (disp (getenv "DISPLAY"))) + "Parse the DISPLAY environment variable. +Return 3 values: host, server, screen." + (if disp + (let* ((pos1 (position #\: disp)) + (pos2 (and pos1 (position #\. disp :start pos1)))) + (values (subseq disp 0 pos1) + (if pos1 (parse-integer (subseq disp (1+ pos1) pos2)) 0) + (if pos2 (parse-integer (subseq disp (1+ pos2))) 0))) + (values "" 0 0))) + +(defun x-open-display () + "Open the appropriate X display." + (multiple-value-bind (host di) (x-host-display) + (xlib:open-display host :display di))) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; First a lot of global variables ... (defvar *pixmaps* nil) ;array of pixmaps according to below indices @@ -228,7 +251,12 @@ (nny (+ ny dy))) (when (>= (field nnx nny) %floor) ;;Ok its legal ... - (when (and (= (field nx ny) %object) + ;;Allow moving through + (when (and (= (field nx ny) %treasure) + (= (field nnx nny) %floor)) + (incf *n-objects*)) + ;;Take this point + (when (and (= (field nx ny) %object) (= (field nnx nny) %goal)) (decf *n-objects*)) (incf (field nx ny) 4) ;remove object and add man @@ -475,4 +503,6 @@ If you quit sokoban using 'q' the curren (setq *level* 1) (init-field))) ) +(format t "~&~% Call (sokoban:sokoban)~%~%") + (provide "sokoban") --- a/modules/postgresql/link.sh.in +++ b/modules/postgresql/link.sh.in @@ -4,5 +4,5 @@ ${MAKE-make} clisp-module \ NEW_MODULES='postgresql' NEW_FILES='' for f in ${NEW_MODULES}; do NEW_FILES=${NEW_FILES}" ${f}.o"; done -NEW_LIBS="${NEW_FILES} @LIBS@" +NEW_LIBS="${NEW_FILES} @LIBS@ -lcrypt -lssl" TO_LOAD='postgresql sql' --- a/src/aclocal.m4 +++ b/src/aclocal.m4 @@ -6668,7 +6668,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do - LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-Wl,-rpath-link$found_dir" done fi popdef([P_A_C_K]) --- a/src/build-aux/config.guess +++ b/src/build-aux/config.guess @@ -870,29 +870,29 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} + echo ${UNAME_MACHINE}-suse-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi + echo ${UNAME_MACHINE}-suse-linux-gnueabi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; cris:Linux:*:*) - echo cris-axis-linux-gnu + echo cris-suse-linux-gnu exit ;; crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu + echo crisv32-suse-linux-gnu exit ;; frv:Linux:*:*) - echo frv-unknown-linux-gnu + echo frv-suse-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu @@ -903,16 +903,16 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" + echo "${UNAME_MACHINE}-suse-linux-${LIBC}" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build @@ -931,51 +931,51 @@ EOF #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } + test x"${CPU}" != x && { echo "${CPU}-suse-linux-gnu"; exit; } ;; or32:Linux:*:*) - echo or32-unknown-linux-gnu + echo or32-suse-linux-gnu exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-gnu + echo sparc-suse-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu + echo hppa64-suse-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; + PA7*) echo hppa1.1-suse-linux-gnu ;; + PA8*) echo hppa2.0-suse-linux-gnu ;; + *) echo hppa-suse-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu + echo powerpc64-suse-linux-gnu exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu + echo powerpc-suse-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux + echo ${UNAME_MACHINE}-suse-linux exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu + echo x86_64-suse-linux-gnu exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu + echo ${UNAME_MACHINE}-suse-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. --- a/src/lispbibl.d +++ b/src/lispbibl.d @@ -121,7 +121,7 @@ #define PC386 /* IBMPC-compatible with 80386/80486-processor */ #endif #ifdef GENERIC_UNIX - #if (defined(unix) && (defined(linux) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__))) + #if (defined(unix) && ((defined(linux) || defined(__linux__)) || defined(__CYGWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)) && (defined(i386) || defined(__i386__) || defined(__x86_64__) || defined(__amd64__))) #define PC386 #endif #if (defined(sun) && defined(unix) && defined(sparc)) @@ -218,8 +218,14 @@ #endif #ifdef GENERIC_UNIX #define UNIX - #ifdef __linux__ + #if defined(__linux__) || defined(linux) #define UNIX_LINUX /* Linux (Linus Torvalds Unix) */ + #ifndef linux + #define linux + #endif + #ifndef __linux__ + #define __linux__ + #endif #endif #ifdef __GNU__ #define UNIX_HURD /* the GNU system (Hurd + glibc) */ @@ -1245,7 +1251,7 @@ typedef signed int signean; address of its component 'ident' and return it as number: */ #include #ifndef offsetof - #define offsetof(type,ident) ((ULONG)&(((type*)0)->ident)) + #define offsetof(type,ident) ((size_t)&(((type*)0)->ident)) #endif /* Determine the offset of an array 'ident' in a struct of the type 'type': */ #if defined(__cplusplus) || defined(MICROSOFT) @@ -3312,9 +3318,9 @@ typedef signed_int_with_n_bits(intVsize) type_data_object(type,data) */ #if defined(WIDE) && defined(WIDE_STRUCT) #if BIG_ENDIAN_P==WIDE_ENDIANNESS - #define type_data_object(type,data) ((object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP}) + #define type_data_object(type,data) (object){{(tint)(type),(aint)(data)}INIT_ALLOCSTAMP} #else - #define type_data_object(type,data) ((object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP}) + #define type_data_object(type,data) (object){{(aint)(data),(tint)(type)}INIT_ALLOCSTAMP} #endif #elif !(oint_addr_shift==0) #define type_data_object(type,data) \ --- a/src/makemake.in +++ b/src/makemake.in @@ -228,6 +228,9 @@ verbose=${CLISP_MAKEMAKE_VERBOSE:-false} # Handle --with-... arguments while test -z "$endofargs"; do case "$1" in + -ignore* | --ignore* ) + shift + ;; -verb* | --verb* ) verbose=`echol "$1"|sed 's/-*v[^=]*=*//'` test -n "${verbose}" || verbose=true @@ -1335,6 +1338,10 @@ if [ $XCC_GCC = true ] ; then XCFLAGS=${XCFLAGS}" -pthread" fi + if [ -n "${MYCFLAGS}" ] ; then + XCFLAGS=$XCFLAGS' ${MYCFLAGS} ' + fi + else if [ $TSYS = sun4 -a $CROSS = false ] ; then @@ -3593,7 +3600,8 @@ if [ $CROSS = false ] ; then echotab " mkdir -p \"\$\$absdest/\$\$m\"; \\" echotab " cd \$\$m; \$(MAKE) clisp-module-distrib LN=\"\$(INSTALL_DATA)\" distribdir=\"\$\$absdest/\$\$m\" ; cd \"\$\$here\"; \\" echotab " done; fi" - line='linkkit/* base/*' + echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full" + line='linkkit/* base/* full/*' else echotab "mkdir -p \$(DESTDIR)\$(lisplibdir)/full" line='linkkit/* base/* full/*' --- a/utils/gctrigger.c +++ b/utils/gctrigger.c @@ -599,6 +599,7 @@ static inline void VectorToken_delete (V static Token nexttoken (boolean within_prep_directive) { Token token; + memset(&token, 0, sizeof(Token)); restart: { int c = next_char(); switch (c) { --- a/utils/modprep.lisp +++ b/utils/modprep.lisp @@ -345,7 +345,7 @@ FOO(bar,baz,zot) ==> FOO; (bar baz zot); ((or (char= cc #\_) (char= cc #\-)) (write-char #\_ out)) (t (format out "_~2,'0x" (char-code cc)))))) -(defvar *tag-length-limit* 2000 +(defvar *tag-length-limit* 4096 "The approximate maximum length of a C name. This works around the failure on i18n on Alpha Linux: /tmp/ccYZBYCX.s: Assembler messages: