[Openmcl-devel] wrong type of value while writing to matrix (?)

Taylor, Joshua jtaylor at alum.rpi.edu
Thu Dec 6 01:38:50 UTC 2007


Hello all,

(If this isn't the appropriate place for this, please let me know. Of
the options I found at http://trac.clozure.com/openmcl/ , this seemed
like what I looking for.)

I used OpenMCL a few years ago, and with all the recent activity, I'm
trying it out again. I started by loading up some code that I'd
written while using LispWorks. I encountered a problem while reading
some matrix values from a file. I've distilled down my problem into
the following code/backtrace that follows. So that you know what
you're looking at, the input file is from Project Euler, and is
http://projecteuler.net/project/matrix.txt (but with the commas
replaced with spaces). I create an 80x80 matrix and read values from
the file and write them into the matrix. Unless I put an element-type
for the matrix, I get "Error: value 1664882 is not of the expected
type (SIMPLE-ARRAY T (* *))." I don't seem to get this with a smaller
array though. As for version information, I'm on an iBook G4 running
OS X 10.4.10, and
Welcome to OpenMCL Version 1.1-pre-070722 (DarwinPPC32)!
? (lisp-implementation-type) => "OpenMCL"
? (lisp-implementation-version) => "Version 1.1-pre-070722 (DarwinPPC32)"
? (type-of (make-array '(80 80))) => (SIMPLE-ARRAY T (80 80))

I hope I'm just missing something silly. Thanks in advance!

^_^ tayloj at hobbang:~$ cat foo.lisp
(defun load-matrix ()
  (let ((matrix (make-array '(80 80))))
    (with-open-file (in "~/Desktop/Project Euler/matrix.txt")
      (dotimes (i 80)
        (dotimes (j 80)
          (setf (aref matrix i j) (read in) ))))
    matrix))

(defun load-matrix2 ()
  (let ((matrix (make-array '(80 80) :element-type 'fixnum)))
    (with-open-file (in "~/Desktop/Project Euler/matrix.txt")
      (dotimes (i 80)
        (dotimes (j 80)
          (setf (aref matrix i j) (read in) ))))
    matrix))

^_^ tayloj at hobbang:~$ openmcl -l foo.lisp
Welcome to OpenMCL Version 1.1-pre-070722 (DarwinPPC32)!
? (load-matrix2) ; with element-type
#2A((4445 2697 5115 ... 9491 1937 7384 4563 6842 5432 2751 3406 7981))
? (load-matrix) ; without element-type
> Error: value 1664882 is not of the expected type (SIMPLE-ARRAY T (* *)).
> While executing: LOAD-MATRIX, in process listener(1).
> Type :POP to abort, :R for a list of available restarts.
> Type :? for other options.
1 > :b :show-frame-contents t
(F0199B80) : 0 (LOAD-MATRIX) 304
  NIL

  MATRIX: #2A((0 0 0 0 0 ...) (0 0 0 0 0 ...) (0 0 0 0 0 ...) (0 0 0 0
0 ...) (0 0 0 0 0 ...) ...)
  #:G0: #<BASIC-FILE-CHARACTER-INPUT-STREAM
("/Users/tayloj/Desktop/Project Euler/matrix.txt"/4 ISO-8859-1)
#x855850E>
  #:G1: NIL
  IN: #<BASIC-FILE-CHARACTER-INPUT-STREAM
("/Users/tayloj/Desktop/Project Euler/matrix.txt"/4 ISO-8859-1)
#x855850E>
  I: 0
  J: 0

(F0199BA0) : 2 (CALL-CHECK-REGS 'LOAD-MATRIX [...]) 72
  (CCL::FN &REST CCL::ARGS)
   CCL::FN: LOAD-MATRIX
   CCL::ARGS: NIL

  CCL::OLD-REGS: (*PACKAGE* #<SYNONYM-STREAM to *TERMINAL-IO*
#x852BDA6> (NIL) (#) 0 ...)

(F0199BC0) : 4 (TOPLEVEL-EVAL '(LOAD-MATRIX) [...]) 152
  (CCL::FORM &OPTIONAL *LOADING-FILE-SOURCE-FILE*)
   CCL::FORM: (LOAD-MATRIX)
   *LOADING-FILE-SOURCE-FILE*: NIL

  PACKAGE: #<Package "COMMON-LISP-USER">

(F0199BD0) : 5 (READ-LOOP [...]) 888
  (&KEY :INPUT-STREAM :OUTPUT-STREAM :BREAK-LEVEL :PROMPT-FUNCTION)
   INPUT-STREAM: 0
   OUTPUT-STREAM: #<SYNONYM-STREAM to *TERMINAL-IO* #x852BBAE>
   CCL::BREAK-LEVEL: #<BASIC-FILE-CHARACTER-INPUT-STREAM
("/Users/tayloj/Desktop/Project Euler/matrix.txt"/4 ISO-8859-1)
#x855850E>
   CCL::PROMPT-FUNCTION: #<Anonymous Function #x81D0466>

  CCL::*BREAK-LEVEL*: 0
  CCL::*LAST-BREAK-LEVEL*: 0
  *LOADING-FILE-SOURCE-FILE*: NIL
  CCL::*IN-READ-LOOP*: NIL
  ***: NIL
  **: NIL
  *: #2A((4445 2697 5115 718 2209 ...) (1096 20 1318 7586 5167 ...)
(9607 7385 521 6084 1364 ...) (7206 3114 7760 1094 6150 ...) (3620
8024 577 9997 7377 ...) ...)
  +++: NIL
  ++: NIL
  +: (LOAD-MATRIX2)
  ///: NIL
  //: NIL
  /: (#2A(# # # # # ...))
  -: (LOAD-MATRIX)
  CCL::EOF-VALUE: #2A((0 0 0 0 0 ...) (0 0 0 0 0 ...) (0 0 0 0 0 ...)
(0 0 0 0 0 ...) (0 0 0 0 0 ...) ...)
  #:ABORT-BREAK: #<RESTART ABORT-BREAK #x76AC56>
  #:ABORT: #<RESTART ABORT #x76AC2E>
  #:G28539: (#<RESTART ABORT #x76AC2E> #<RESTART ABORT-BREAK #x76AC56>)
  CCL::%RESTARTS%: ((#<# # #x76AC2E> #<# # #x76AC56>) (#<# # #x76AD8E>
#<# # #x76ADB6>))
  CCL::FORM: (LOAD-MATRIX)
  CCL::PATH: NIL
  CCL::PRINT-RESULT: T

(F0199C10) : 6 (TOPLEVEL-LOOP) 72
  NIL



(F0199C30) : 7 (FUNCALL #'#<Anonymous Function #x816CCEE>) 68
  NIL

  CCL::INIT-FILE: "home:openmcl-init"

(F0199C50) : 9 (FUNCALL #'#<Anonymous Function #x82161AE>) 336
  NIL

  CCL::CLOSE-STREAMS: NIL
  CCL::CLEANUP-FUNCTION: #<COMPILED-LEXICAL-CLOSURE #x852BA2E>
  CCL::INITIAL-FUNCTION: #<COMPILED-LEXICAL-CLOSURE #x852BA16>
  OUTPUT-STREAM: #<BASIC-CHARACTER-OUTPUT-STREAM ISO-8859-1 (TTY/1) #x852C94E>
  INPUT-STREAM: #<BASIC-CHARACTER-INPUT-STREAM ISO-8859-1 (TTY/0) #x852CEFE>
  *TERMINAL-IO*: #<ECHOING-TWO-WAY-STREAM input
#<BASIC-CHARACTER-INPUT-STREAM ISO-8859-1 (TTY/0) #x852CEFE>, output
#<BASIC-CHARACTER-OUTPUT-STREAM ISO-8859-1 (TTY/1) #x852C94E>
#x853FDCE>

(F0199C70) : 10 (RUN-PROCESS-INITIAL-FORM #<TTY-LISTENER listener(1)
[Active] #x852B666> '(#)) 400
  (PROCESS CCL::INITIAL-FORM)
   PROCESS: #<TTY-LISTENER listener(1) [Active] #x852B666>
   CCL::INITIAL-FORM: (#<COMPILED-LEXICAL-CLOSURE #x852B2B6>)

  CCL::EXITED: NIL
  #:G28844: (PROCESS-RESET)
  CCL::%HANDLERS%: ((PROCESS-RESET))
  #:ABORT: #<RESTART ABORT #x76ADB6>
  #:ABORT-BREAK: #<RESTART ABORT-BREAK #x76AD8E>
  #:G28845: (#<RESTART ABORT-BREAK #x76AD8E> #<RESTART ABORT #x76ADB6>)
  CCL::%RESTARTS%: ((#<# # #x76AD8E> #<# # #x76ADB6>))

(F0199CB0) : 12 (FUNCALL #'#<Anonymous Function #x8173F66>
#<TTY-LISTENER listener(1) [Active] #x852B666> '(#)) 152
  (PROCESS CCL::INITIAL-FORM)
   PROCESS: #<TTY-LISTENER listener(1) [Active] #x852B666>
   CCL::INITIAL-FORM: (#<COMPILED-LEXICAL-CLOSURE #x852B2B6>)

  *CURRENT-PROCESS*: #<TTY-LISTENER listener(1) [Active] #x852B666>
  CCL::SYMS: (CCL::*FREE-XPS* CCL::*FREE-CIRCULARITY-HASH-TABLES*
CCL::*FAKE-STACK-FRAMES* CCL::*VINSN-VARPARTS*
CCL::*VINSN-LABEL-FREELIST* ...)
  VALUES: (NIL NIL NIL #<POOL  #x853FFAE> #<POOL  #x853FF96> ...)

(F0199CD0) : 13 (FUNCALL #'#<Anonymous Function #x816AAB6>) 172
  NIL

  CCL::TCR: 787548
  CCL::THREAD: #<LISP-THREAD listener [tcr @ #x301170] #x852B95E>
  CCL::*CURRENT-LISP-THREAD*: #<LISP-THREAD listener [tcr @ #x301170] #x852B95E>
  CCL::INITIAL-FUNCTION: (#<Anonymous Function #x8173F66>
#<TTY-LISTENER listener(1) [Active] #x852B666> (#))

1 > (quit)
^_^ tayloj at hobbang:~$

-- 
=====================
Joshua Taylor
jtaylor at alum.rpi.edu

"A lot of good things went down one time,
     back in the goodle days."
               John Hartford



More information about the Openmcl-devel mailing list