From: Frank Goenninger
Subject: Lispworks (PE): Error: "Cannot have / in a top-level directory name" ???
Date: 
Message-ID: <fcre2u$oh7$03$1@news.t-online.com>
Hi -

as new user of Lispworks I am encountering some errors I have never 
seen with Allegro CL:

Error: Cannot have / in a top-level directory name "/Users/frgo/Music/Sounds/".
  1 (abort) Return to level 0.
  2 Return to top loop level 0.

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

CL-USER 7 : 1 >

Backtrace:

Call to MAKE-PATHNAME
Call to CELLO:SET-OPENAL-AUDIO-FILES-PATH
Call to NET.GOENNINGER.APP.CELLO-WIDGETS-USER:TEST01-MAIN

The offending function is:

(defun set-openal-audio-files-path (absolute-path)
  (setf oal::*audio-files* (make-pathname :directory absolute-path
                                          :type "wav")))

I am calling this function as follows:

(set-openal-audio-files "/Users/frgo/Music/Sounds")

When called as

(set-openal-audio-files '(:absolute "Users" "frgo" "Music" "Sounds")

things work... But: Why?

Thx for sharing ...

Frank

-- 
  Frank Goenninger

  frgo(at)goenninger(dot)net

  "Don't ask me! I haven't been reading comp.lang.lisp long enough to 
really know ..."

From: Edi Weitz
Subject: Re: Lispworks (PE): Error: "Cannot have / in a top-level directory name" ???
Date: 
Message-ID: <u6426slkh.fsf@agharta.de>
On Wed, 19 Sep 2007 17:09:20 +0200, Frank Goenninger <····@goenninger.net> wrote:

> as new user of Lispworks I am encountering some errors I have never
> seen with Allegro CL:
>
> Error: Cannot have / in a top-level directory name "/Users/frgo/Music/Sounds/".
>   1 (abort) Return to level 0.
>   2 Return to top loop level 0.
>
> Type :b for backtrace, :c <option number> to proceed,  or :? for other options
>
> CL-USER 7 : 1 >
>
> Backtrace:
>
> Call to MAKE-PATHNAME
> Call to CELLO:SET-OPENAL-AUDIO-FILES-PATH
> Call to NET.GOENNINGER.APP.CELLO-WIDGETS-USER:TEST01-MAIN
>
> The offending function is:
>
> (defun set-openal-audio-files-path (absolute-path)
>   (setf oal::*audio-files* (make-pathname :directory absolute-path
>                                           :type "wav")))
>
> I am calling this function as follows:
>
> (set-openal-audio-files "/Users/frgo/Music/Sounds")
>
> When called as
>
> (set-openal-audio-files '(:absolute "Users" "frgo" "Music" "Sounds")
>
> things work... But: Why?

According to 19.2.2.4.3, "each string names a single level of
directory structure," so I think LW is right to complain here.

-- 

Lisp is not dead, it just smells funny.

Real email: (replace (subseq ·········@agharta.de" 5) "edi")
From: Rainer Joswig
Subject: Re: Lispworks (PE): Error: "Cannot have / in a top-level directory name" ???
Date: 
Message-ID: <joswig-FC42D4.17550219092007@news-europe.giganews.com>
In article <·············@agharta.de>, Edi Weitz <········@agharta.de> 
wrote:

> On Wed, 19 Sep 2007 17:09:20 +0200, Frank Goenninger <····@goenninger.net> wrote:
> 
> > as new user of Lispworks I am encountering some errors I have never
> > seen with Allegro CL:
> >
> > Error: Cannot have / in a top-level directory name "/Users/frgo/Music/Sounds/".
> >   1 (abort) Return to level 0.
> >   2 Return to top loop level 0.
> >
> > Type :b for backtrace, :c <option number> to proceed,  or :? for other options
> >
> > CL-USER 7 : 1 >
> >
> > Backtrace:
> >
> > Call to MAKE-PATHNAME
> > Call to CELLO:SET-OPENAL-AUDIO-FILES-PATH
> > Call to NET.GOENNINGER.APP.CELLO-WIDGETS-USER:TEST01-MAIN
> >
> > The offending function is:
> >
> > (defun set-openal-audio-files-path (absolute-path)
> >   (setf oal::*audio-files* (make-pathname :directory absolute-path
> >                                           :type "wav")))
> >
> > I am calling this function as follows:
> >
> > (set-openal-audio-files "/Users/frgo/Music/Sounds")
> >
> > When called as
> >
> > (set-openal-audio-files '(:absolute "Users" "frgo" "Music" "Sounds")
> >
> > things work... But: Why?
> 
> According to 19.2.2.4.3, "each string names a single level of
> directory structure," so I think LW is right to complain here.

yep.

One may use something like:

(make-pathname :defaults (pathname absolute-path) :type "wav")



? (make-pathname :defaults (pathname "/Users/frgo/Music/Sounds/") :type "wav")   
#P"/Users/frgo/Music/Sounds/.wav"
? (describe *)
#P"/Users/frgo/Music/Sounds/.wav"
Type: PATHNAME
Class: #<BUILT-IN-CLASS PATHNAME>
TYPE: PATHNAME
%PATHNAME-DIRECTORY: (:ABSOLUTE "Users" "frgo" "Music" "Sounds")
%PATHNAME-NAME: NIL
%PATHNAME-TYPE: "wav"
%PHYSICAL-PATHNAME-VERSION: NIL



Note the ending slash for the directory string.

-- 
http://lispm.dyndns.org
From: Frank Goenninger
Subject: Re: Lispworks (PE): Error: "Cannot have / in a top-level directory name" ???
Date: 
Message-ID: <fcrmeb$l6u$01$1@news.t-online.com>
On 2007-09-19 17:55:03 +0200, Rainer Joswig <······@lisp.de> said:

> In article <·············@agharta.de>, Edi Weitz <········@agharta.de>
> wrote:
> 
>> On Wed, 19 Sep 2007 17:09:20 +0200, Frank Goenninger 
>> <····@goenninger.net> wrote:
>> 
>>> as new user of Lispworks I am encountering some errors I have never
>>> seen with Allegro CL:
>>> 
>>> Error: Cannot have / in a top-level directory name "/Users/frgo/Music/Sounds/".
>>> 1 (abort) Return to level 0.
>>> 2 Return to top loop level 0.
>>> 
>>> Type :b for backtrace, :c <option number> to proceed,  or :? for other options
>>> 
>>> CL-USER 7 : 1 >
>>> 
>>> Backtrace:
>>> 
>>> Call to MAKE-PATHNAME
>>> Call to CELLO:SET-OPENAL-AUDIO-FILES-PATH
>>> Call to NET.GOENNINGER.APP.CELLO-WIDGETS-USER:TEST01-MAIN
>>> 
>>> The offending function is:
>>> 
>>> (defun set-openal-audio-files-path (absolute-path)
>>> (setf oal::*audio-files* (make-pathname :directory absolute-path
>>> :type "wav")))
>>> 
>>> I am calling this function as follows:
>>> 
>>> (set-openal-audio-files "/Users/frgo/Music/Sounds")
>>> 
>>> When called as
>>> 
>>> (set-openal-audio-files '(:absolute "Users" "frgo" "Music" "Sounds")
>>> 
>>> things work... But: Why?
>> 
>> According to 19.2.2.4.3, "each string names a single level of
>> directory structure," so I think LW is right to complain here.
> 
> yep.
> 
> One may use something like:
> 
> (make-pathname :defaults (pathname absolute-path) :type "wav")
> 
> ? (make-pathname :defaults (pathname "/Users/frgo/Music/Sounds/") :type "wav")
> #P"/Users/frgo/Music/Sounds/.wav"
> ? (describe *)
> #P"/Users/frgo/Music/Sounds/.wav"
> Type: PATHNAME
> Class: #<BUILT-IN-CLASS PATHNAME>
> TYPE: PATHNAME
> %PATHNAME-DIRECTORY: (:ABSOLUTE "Users" "frgo" "Music" "Sounds")
> %PATHNAME-NAME: NIL
> %PATHNAME-TYPE: "wav"
> %PHYSICAL-PATHNAME-VERSION: NIL
> 
> Note the ending slash for the directory string.

Thanks! Didn't see 19.2.2.4.3  ... ;-)

Frank

-- 
  Frank Goenninger

  frgo(at)goenninger(dot)net

  "Don't ask me! I haven't been reading comp.lang.lisp long enough to 
really know ..."