[Bese-devel] question about FiveAM & Arnesi bug report: compile fails in Lispworks Pro 5.1 for Linux

Larry Clapp larry at theclapp.org
Tue Nov 4 13:40:34 UTC 2008


On Mon, Nov 03, 2008 at 09:56:07AM -0500, Larry Clapp wrote:
> Bug report:
> 
> ASDF compiling lexenv.lisp:
> 
>   Error: Reader cannot find package LEXICAL.
> 
> The code in question is (I think):
> 
>   #+(and lispworks (or win32 linux))
>   (defmethod environment-p ((environment lexical::environment))
>     t)
> 
> The class browser shows two packages with an ENVIRONMENT class
> (ENVIRONMENT:ENVIRONMENT and COMPILER::ENVIRONMENT), so I'm not sure
> which to change it to.

Further research suggests that Arnesi uses an environment interface
found in LW 4.x.  I tried a brute-force-and-lots-of-ignorance approach
and changed

  #+(and lispworks (or win32 linux))

to

  #+(and lispworks (not lispworks5.1) (or win32 linux))
  ;;               ^^^^^^^^^^^^^^^^^^

and then Arnesi at least compiled.  Whether it works correctly seems
unlikely.  Most FiveAM tests pass, but some don't:

  5AM 5 > (run! :it.bese.fiveam)
  [... snip lots of dots ...]
   Did 46 checks.
      Pass: 44 (95%)
      Skip: 0 ( 0%)
      Fail: 2 ( 4%)
   Failure Details:
   --------------------------------
   IS []: 
	Unexpected Error: #<UNDEFINED-FUNCTION 200D23D3>
  Undefined function IT.BESE.ARNESI::%COLLECT-TIMING called with
  arguments (#<Function ((LISPWORKS:TOP-LEVEL-FORM 8) . 1) 21B0A25A>)...
   --------------------------------
   --------------------------------
   BEFORE []: 
	RESULTS evaluated to (#<TEST-FAILURE 22209337> #<TEST-PASSED
	2220408B>), which is not SOME to #<STANDARD-GENERIC-FUNCTION
	TEST-SKIPPED-P 21B10E52>..
   --------------------------------
  NIL

Poking further, I saw that Arnesi has a test-suite itself, but it
wouldn't compile:

  5AM 8 > (asdf:oos 'asdf:load-op :arnesi.test)
  [snip]
  ;;; Compiling file /home/lmc/lisp/arnesi_dev/t/csv.lisp ...
  ;;; Safety = 1, Speed = 3, Space = 1, Float = 1, Interruptible = 0
  ;;; Compilation speed = 0, Debug = 3, Fixnum safety = 3
  ;;; Source level debugging is on
  ;;; Source file recording is  on
  ;;; Cross referencing is on
  ; (LISPWORKS:TOP-LEVEL-FORM 0)
  ; (LISPWORKS:TOP-LEVEL-FORM 1)
  ; (LISPWORKS:TOP-LEVEL-FORM 2)
  ; (LISPWORKS:TOP-LEVEL-FORM 2)
  ; (LISPWORKS:TOP-LEVEL-FORM 3)
  ; (LISPWORKS:TOP-LEVEL-FORM 3)
  ; (LISPWORKS:TOP-LEVEL-FORM 4)
  ; (LISPWORKS:TOP-LEVEL-FORM 4)
  ; (LISPWORKS:TOP-LEVEL-FORM 4)
  ; (LISPWORKS:TOP-LEVEL-FORM 4)
  ; (LISPWORKS:TOP-LEVEL-FORM 5)
  ; (LISPWORKS:TOP-LEVEL-FORM 5)
  ; (LISPWORKS:TOP-LEVEL-FORM 5)
  ; (LISPWORKS:TOP-LEVEL-FORM 5)
  ; (LISPWORKS:TOP-LEVEL-FORM 0)
  ; Loading fasl file /home/lmc/lisp/arnesi_dev/t/accumulation.ufasl
  ; Loading fasl file /home/lmc/lisp/arnesi_dev/t/call-cc.ufasl

  Error: Sorry, No walker for the special operater DECLARE defined.
    1 (continue) Try loading /home/lmc/lisp/arnesi_dev/t/call-cc.ufasl again.
    2 Give up loading /home/lmc/lisp/arnesi_dev/t/call-cc.ufasl.
    3 Try loading another file instead of /home/lmc/lisp/arnesi_dev/t/call-cc.ufasl.
    4 Retry performing #<ASDF:LOAD-OP NIL 21A3148B> on #<ASDF:CL-SOURCE-FILE "call-cc" 2207676F>.
    5 Continue, treating #<ASDF:LOAD-OP NIL 21A3148B> on #<ASDF:CL-SOURCE-FILE "call-cc" 2207676F> as
      having been successful.
    6 (abort) Return to level 0.
    7 Return to top loop level 0.

  Type :b for backtrace, :c <option number> to proceed,  or :? for other options

Does any of that help at all?

As a side note, "operator" is misspelled in the above error message.

  % pwd
  /home/lmc/lisp/arnesi_dev/src
  % grep -i operater *lisp
  walk.lisp:            (error "Sorry, No walker for the special operater ~S defined." (car form)))

-- Larry





More information about the bese-devel mailing list