[comp.lang.clos] pcl on vax

vixie@PA.DEC.COM (Paul A Vixie) (01/14/91)

VMS version numbers default to the latest.  Thus if you don't specify a
semi-colon, you get whatever version number is highest.  "pkg.lsp" ought
to work.  Try editing compile-pcl by hand to remove the ";7" on these
file names.

Gregor@parc.xerox.com (Gregor Kiczales) (01/14/91)

   Date: 	Sun, 13 Jan 1991 09:07:08 PST
   From: Paul A Vixie <vixie@pa.dec.com>

   VMS version numbers default to the latest.  Thus if you don't specify a
   semi-colon, you get whatever version number is highest.  "pkg.lsp" ought
   to work.  Try editing compile-pcl by hand to remove the ";7" on these
   file names.

Yes, but the question is where these versions numbers came from in the
first place.  They surely don't appear in the defsys source.

In all likelyhood, the problem is that version number of his defsys.lisp
file is 7.  Then, make-pathname-internal isn't properly stripping that
number.  You may be able to solve this problem by changing the defvar of
*pcl-directory* not to call load-truename but instead to just be the
right directory.  Or, you may have to fix make-pathname-internal.  Try
tracing make-source-pathname to see where the problem is.

murthy@MAGNUS.ACS.OHIO-STATE.EDU (Murthy S Gandikota) (01/16/91)

>>   VMS version numbers default to the latest.  Thus if you don't specify a
>>   semi-colon, you get whatever version number is highest.  "pkg.lsp" ought
>>   to work.  Try editing compile-pcl by hand to remove the ";7" on these
>>   file names.

>Yes, but the question is where these versions numbers came from in the
>first place.  They surely don't appear in the defsys source.

I too haven't found any explicit version numbers in the defsys source.
So that doesn't work.

>In all likelyhood, the problem is that version number of his defsys.lisp
>file is 7.  Then, make-pathname-internal isn't properly stripping that
>number.  You may be able to solve this problem by changing the defvar of
>*pcl-directory* not to call load-truename but instead to just be the
>right directory.

I don't know what you mean here.

>Or, you may have to fix make-pathname-internal.  Try
>tracing make-source-pathname to see where the problem is.

I traced make-pathname-internal and make-source-pathname using the
trace function on Vax Lisp and I couldn't find anything revealing,
except that right from the beginning of the trace the version number
was 7 and didn't change anywhere. I've also found that providing the
version number explicitly in defsys even doesn't help. So that makes
me wonder, how can I change defsys so that it doesn't use any version
number at all?

If defsys doesn't *specify* a version number then it must be the Vax
Lisp doing it. On a different note, by mistake I have given a wrong
file name to load and it rightly said the file didn't exist but it was
version 0 the Vax Lisp load is looking for in this case!

Anyway, thanks for your help so far. I was out of town in the
beginning of the week, so I couldn't reply earlier.


Murthy

tim@cstr.ed.ac.uk (Tim Bradshaw) (01/17/91)

>>>>> On 13 Jan 91 06:14:42 GMT, murthy@MAGNUS.ACS.OHIO-STATE.EDU (Murthy S Gandikota) said:


> Hi,

> I obtained a copy of pcl (I think may '90 version) from Arun Welch.
> I am now trying to load it on a vax station 3100 (VMS).

> Here's a description of my problem:

> when I say (pcl::compile-pcl) I've got an error saying

> Error in compile-file:
> Input file does not exist: [ce.murthy.clos]pkg.lisp;7

I believe that this is because the code in defsys.lisp is not careful
enough about computing the default pathname.  On a different Lisp
(Xerox Medley) I cured a similar problem by the following change to
MAKE-PATHNAME-INTERNAL in defsys.lisp:

(defun make-pathname-internal (name type)
  (let* ((extension (ecase type
                      (:source (car *pathname-extensions*))
                      (:binary (cdr *pathname-extensions*))))
         (directory (pathname
		      (etypecase *system-directory*
			(string *system-directory*)
			(pathname *system-directory*)
			(cons (ecase type
				(:source (car *system-directory*))
				(:binary (cdr *system-directory*)))))))
         (pathname
           (make-pathname
             :name (string-downcase (string name))
             :type extension
             :defaults directory
	     ;; Fix version numbering for Xerox
	     #+Xerox :version  
	     #+Xerox :newest)))

This could well work for you to (change the #+Xerox to the appropriate
thing or just remove it I guess).

--tim
Tim Bradshaw.  Internet: tim%ed.cstr@nsfnet-relay.ac.uk
UUCP: ...!uunet!mcvax!ukc!cstr!tim  JANET: tim@uk.ac.ed.cstr
"...wizzards & inchanters..."

murthy@magnus.ircc.ohio-state.edu (Murthy S Gandikota) (01/18/91)

In article <TIM.91Jan16165923@kahlo.cstr.ed.ac.uk> tim@cstr.ed.ac.uk (Tim Bradshaw) writes:

>I believe that this is because the code in defsys.lisp is not careful
>enough about computing the default pathname.  On a different Lisp
>(Xerox Medley) I cured a similar problem by the following change to
>MAKE-PATHNAME-INTERNAL in defsys.lisp:
>
>(defun make-pathname-internal (name type)
>  (let* ((extension (ecase type
>                      (:source (car *pathname-extensions*))
>                      (:binary (cdr *pathname-extensions*))))
>         (directory (pathname
>		      (etypecase *system-directory*
>			(string *system-directory*)
>			(pathname *system-directory*)
>			(cons (ecase type
>				(:source (car *system-directory*))
>				(:binary (cdr *system-directory*)))))))
>         (pathname
>           (make-pathname
>             :name (string-downcase (string name))
>             :type extension
>             :defaults directory
>	     ;; Fix version numbering for Xerox
>	     #+Xerox :version  
>	     #+Xerox :newest)))
>
>This could well work for you to (change the #+Xerox to the appropriate
>thing or just remove it I guess).
>
>--tim
>Tim Bradshaw.  Internet: tim%ed.cstr@nsfnet-relay.ac.uk
>UUCP: ...!uunet!mcvax!ukc!cstr!tim  JANET: tim@uk.ac.ed.cstr
>"...wizzards & inchanters..."

Yes...it worked when I added 

#+(and dec common vax (not ultrix)) :version
#+(and dec common vax (not ultrix)) :newest

in the place of #+Xerox as suggested by Tim Bradshaw, along with

#+(and dec common vax (not ultrix))
(defvar *pcl-directory* (pathname "**"))

where ** is the appropriate vms subdirectory the pcl files are stored at.


Thanks to all the responders including Tim Bradshaw. 


Murthy Gandikota
Chemical Engineering 
Lab for AI Research
Ohio State University
Columbus, OH-43210
USA

tim@cstr.ed.ac.uk (Tim Bradshaw) (01/18/91)

>>>>> On 17 Jan 91 20:29:29 GMT, murthy@magnus.ircc.ohio-state.edu (Murthy S Gandikota) said:
> Yes...it worked when I added 

> #+(and dec common vax (not ultrix)) :version
> #+(and dec common vax (not ultrix)) :newest

> in the place of #+Xerox as suggested by Tim Bradshaw, along with

> #+(and dec common vax (not ultrix))
> (defvar *pcl-directory* (pathname "**"))

[Sorry this isn't a general CLOS posting any more, but I'm not sure who
 looks after this stuff.]

Is there any reason in fact why the definition of
MAKE-PATHNAME-INTERNAL should not be modified to specify the :VERSION
:NEWEST in the distributed code?  It should never matter on systems
without version numbering and it can only help life in the case of
those with.

--tim
Tim Bradshaw.  Internet: tim%ed.cstr@nsfnet-relay.ac.uk
UUCP: ...!uunet!mcvax!ukc!cstr!tim  JANET: tim@uk.ac.ed.cstr
"...wizzards & inchanters..."