[Openmcl-devel] ASDF-INSTALL Problems (Many)

Wade Humeniuk wade.humeniuk at gmail.com
Sun Oct 25 21:18:51 UTC 2009


I was having many problems with asdf-install.

When I have

(setf ccl:*default-file-character-encoding* :utf-8)

in my ccl-init.lisp file.

I get errors when saving the temporary download file, its created
with utf-8 encodings (I assume at the beginning).

Is it legit to set my default encoding to :utf-8 in ccl-init.lisp? Or
should I just change it on an as needed basis?

To fix that asdf-install issue I change the open-file-arguments
in tools/asdf-install/port.lisp to specify the exact format.

(defun open-file-arguments ()
 (append
  #+(or sbcl ccl)  ;;;;;;;; CHANGE HERE
  '(:external-format :latin1)
  #+:scl
  '(:external-format :iso-8859-1)
  #+(or :clisp :digitool (and :lispworks :win32))
  '(:element-type (unsigned-byte 8))))

I have also changed system-namestring to (I saw that Matthew Emerson changed
that to use ccl:native-translated-namerstring).  Removed the call to truename,
it throws an error because a symlink file does not yet exist.

#-:digitool
(defun system-namestring (pathname)
 #+:openmcl
 (ccl:native-translated-namestring pathname)
 #-:openmcl
 (namestring (truename pathname)))

And I had to change tar handling because of snow leopard changes.  Changed

#+:openmcl
(defun return-output-from-program (program args)
 (with-output-to-string (out-stream)
   (let ((proc (ccl:run-program program args
                                :input nil
                                :output :stream
                                :wait nil)))
     (loop for line = (read-line
			(ccl:external-process-output-stream proc) nil nil nil)
           while line
           do
	   (if (string= line "x " :end1 2 )
	       (write-line (subseq line 2) out-stream)
	       (write-line line out-stream))))))

That is probably not the best place to fix tar issues (Oh well).

I think it is working now.  Hope that helps anyone else encountering
problems.

Wade



More information about the Openmcl-devel mailing list