Subject: cl-statistics does not compile in SBCL
From: Kevin L <[email-masked]>
To: [email-masked]
Date: Sun, 20 Aug 2006 18:25:26 -0500

Package: cl-statistics

The Debian patch to cl-statistics (cl-statistics_20050224-1.diff.gz 
<http://ftp.debian.org/debian/pool/main/c/cl-statistics/cl-statistics_20050224-1.diff.gz>) 
produces invalid Lisp code after applied to cl-statistics.lisp.  Example:

----snip-----snip-----
v v v v v v v
(defpackage :statistics
  (:nicknames :stats)
  (:use :common-lisp)
  (:export #:mean #:median #:mode #:geometric-mean #:range #:percentile
           #:variance #:standard-deviation #:sd #:coefficient-of-variation
           #:standard-error-of-the-mean #:permutations #:choose
           #:binomial-probability #:binomial-cumulative-probability
           #:binomial-ge-probability #:poisson-probability
           #:poisson-cumulative-probability #:poisson-ge-probability
           #:poisson-cdf #:normal-pdf #:convert-to-standard-normal #:phi #:z
           #:t-distribution #:chi-square #:chi-square-cdf
           #:binomial-probability-ci #:poisson-mu-ci #:normal-mean-ci
           #:normal-mean-ci-on-sequences #:normal-variance-ci
           #:normal-variance-ci-on-sequence #:normal-sd-ci
           #:normal-sd-ci-on-sequence #:z-test #:z-test-on-sequence
           #:t-test-one-sample #:t-test-one-sample-on-sequence
           #:t-test-paired #:t-test-paired-on-sequences #:t-test-two-sample
           #:t-test-two-sample-on-sequences #:chi-square-test-one-sample
           #:f-test #:binomial-test-one-sample #:binomial-test-two-sample
           #:fisher-exact-test #:mcnemars-test #:poisson-test-one-sample
           #:sign-test #:sign-test-on-sequences #:wilcoxon-signed-rank-test
           #:wilcoxon-signed-rank-test-on-sequences
           #:chi-square-test-rxc #:chi-square-test-for-trend
           #:t-test-one-sample-sse #:t-test-two-sample-sse
           #:t-test-paired-sse #:binomial-test-one-sample-sse
           #:binomial-test-two-sample-sse #:binomial-test-paired-sse
           #:correlation-sse #:linear-regression #:correlation-coefficient
           #:correlation-test-two-sample
           #:correlation-test-two-sample-on-sequences 
#:spearman-rank-correlation
           #:t-significance #:f-significance #:random-sample 
#:random-pick #:test-variables
           #:bin-and-count #:fishers-z-transform #:mean-sd-n #:square
           #:round-float
           #:random-normal))

(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0)))

(in-package :statistics)

;; |KMR| add dummy routine for missing function
(defmacro test-variables (&rest dummy)
  )

;; |KMR| move to top of file to prevent some functions from not having
;; this pre-declared
;; SQUARE
(defmacro square (x)
  `(* ,x ,x))

*************
) ;end eval-when
^ ^ ^ ^ ^ ^ ^

v v v v v v v
^ ^ ^ ^ ^ ^ ^
----snip-----snip-----

These lines of "v v v v v v v", "^ ^ ^ ^ ^ ^ ^", etc. cause SBCL to fail:

----snip-----snip-----
; compiling file 
"/usr/share/common-lisp/source/cl-statistics/cl-statistics.lisp" 
(written 18 JUN 2006 02:55:05 PM):
; compiling (DECLAIM (OPTIMIZE # ...))
; compiling (DEFPACKAGE :STATISTICS ...)
; compiling (IN-PACKAGE :STATISTICS)
; compiling (DEFMACRO TEST-VARIABLES ...)
; compiling (DEFMACRO SQUARE ...)
; compiling (DEFMACRO UNDERFLOW-GOES-TO-ZERO ...)
; compiling V
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" 
{A7CB4C9}>:
  Error during processing of --eval option (LOAD 
#P"spacebox/spacebox.lisp"):

  The variable V is unbound.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY   ] Retry performing #<ASDF:COMPILE-OP (:VERBOSE NIL) 
{D0A7FD9}> on
                #<ASDF:CL-SOURCE-FILE "cl-statistics" {B142F59}>.
  1: [ACCEPT  ] Continue, treating #<ASDF:COMPILE-OP (:VERBOSE NIL) 
{D0A7FD9}>
                on #<ASDF:CL-SOURCE-FILE "cl-statistics" {B142F59}> as 
having
                been successful.
  2: [CONTINUE] Ignore and continue with next --eval option.
  3: [ABORT   ] Skip rest of --eval options.
  4:            Skip to toplevel READ/EVAL/PRINT loop.
  5: [QUIT    ] Quit SBCL (calling #'QUIT, killing the process).

((LAMBDA (SB-IMPL::E)) #<UNBOUND-VARIABLE V {DB26C99}>)
0]
----snip-----snip-----

$ dpkg --status cl-statistics
Package: cl-statistics
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 156
Maintainer: Peter Van Eynde <[email-masked]>
Architecture: all
Version: 20050224-1
Depends: common-lisp-controller (>= 5.11)
Description: Common Lisp Statistics Package
 cl-statistics provides numerous statistical functions for use in
 Common Lisp programs.