From: Tim Menzies
Subject: Managing directories in common lisp
Date: 
Message-ID: <1993Dec26.233353.9681@usage.csd.unsw.OZ.AU>
If this is a FAQ, please forgive me, but...

how do i create/ delete/ test for the presence of directories in common
lisp? i have non-portable functions that do the work but i was just 
wondering...

ADVthanxANCE

--
 ,-_|\     Tim Menzies (····@cse.unsw.edu.au)      | "Fortunately, I say, 
/     \    AI Lab, Computer Science, Uni. NSW      | fortunately, I keep my
\_,-._* <- P.O. Box 1, Kensington, Australia, 2033 | feathers numbered for
     v     +61-2-663-4576 (fax) +61-2-697-3980 (w) | just such an emergency."
                                                      -- Foghorn Leghorn

                                                     "We have many sayings, 
                                                      but no doings."
                                                       -- Anon.

From: Barry Margolin
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <2fob21INNq4r@early-bird.think.com>
In article <·····················@usage.csd.unsw.OZ.AU> ····@cse.unsw.edu.au (Tim Menzies) writes:
>how do i create/ delete/ test for the presence of directories in common
>lisp? i have non-portable functions that do the work but i was just 
>wondering...

There are no portable functions for managing directories in CL.  In fact, I
can't hink of any language that has such functions (C doesn't -- mkdir() is
part of Unix/POSIX, although it may have been copied in other systems).
-- 
Barry Margolin
System Manager, Thinking Machines Corp.

······@think.com          {uunet,harvard}!think!barmar
From: Harley Davis
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <DAVIS.93Dec28103216@passy.ilog.fr>
In article <············@early-bird.think.com> ······@think.com (Barry Margolin) writes:

   (Tim Menzies) writes:
   >how do i create test for the presence of directories in common
   >lisp? i have non-portable functions that do the work but i was just 
   >wondering...

   There are no portable functions for managing directories in CL.  In fact, I
   can't hink of any language that has such functions (C doesn't -- mkdir() is
   part of Unix/POSIX, although it may have been copied in other systems).

Le-Lisp has such functions.

-- Harley Davis
--

------------------------------------------------------------------------------
nom: Harley Davis			ILOG S.A.
net: ·····@ilog.fr			2 Avenue Gallie'ni, BP 85
tel: (33 1) 46 63 66 66			94253 Gentilly Cedex, France
From: Fernando Mato Mira
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <2fplo2$kkt@disuns2.epfl.ch>
In article <···················@passy.ilog.fr>, ·····@ilog.fr (Harley Davis) writes:

> Le-Lisp has such functions.

You mean EULisp, or just your product?

-- 
Fernando D. Mato Mira                           
Computer Graphics Lab                           
Swiss Federal Institute of Technology (EPFL)    Phone    : +41 (21) 693 - 5248
CH-1015 Lausanne                                FAX      : +41 (21) 693 - 5328
Switzerland                                     E-mail   : ········@epfl.ch
From: Harley Davis
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <DAVIS.93Dec29184019@passy.ilog.fr>
In article <··········@disuns2.epfl.ch> ········@di.epfl.ch (Fernando Mato Mira) writes:

   (Harley Davis) writes:

   > Le-Lisp has such functions.

   You mean EULisp, or just your product?

EuLisp will probably have a Posix binding (we're working on it now)
including the directory functions, and Le-Lisp has Lisp-like directory
functions.  Le-Lisp is owned by INRIA (the French national computer
science laboratory), not Ilog, and has been distributed at various
times by several companies (Bull, ACT, Elsa, CRIL, etc.)  It is not
just our product, although we are by far its largest vendor and do
much of the maintenance and porting work here.

Ilog Talk 3, a more modern Lisp than Le-Lisp and based on ISO Lisp and
EuLisp, will also have a Posix binding, but Ilog Talk is truly an Ilog
product.

-- Harley Davis


--

------------------------------------------------------------------------------
nom: Harley Davis			ILOG S.A.
net: ·····@ilog.fr			2 Avenue Gallie'ni, BP 85
tel: (33 1) 46 63 66 66			94253 Gentilly Cedex, France
From: Brent Benson
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <BRENT.93Dec29135244@jade.ssd.csd.harris.com>
·····@ilog.fr (Harley Davis) writes:
#
# Ilog Talk 3, a more modern Lisp than Le-Lisp and based on ISO Lisp and
# EuLisp, will also have a Posix binding, but Ilog Talk is truly an Ilog
# product.
# 

If Ilog Talk 3 is based on both ISO Lisp and EuLisp, on which side of
the fence does it stand with respect to separate namespaces for
functions, symbol values, classes, etc.?

--
Brent Benson                     
Harris Computer Systems
From: Harley Davis
Subject: Re: Managing directories in common lisp
Date: 
Message-ID: <DAVIS.93Dec30111933@passy.ilog.fr>
In article <···················@jade.ssd.csd.harris.com> ·····@ssd.csd.harris.com (Brent Benson) writes:

   (Harley Davis) writes:
   #
   # Ilog Talk 3, a more modern Lisp than Le-Lisp and based on ISO Lisp and
   # EuLisp, will also have a Posix binding, but Ilog Talk is truly an Ilog
   # product.
   # 

   If Ilog Talk 3 is based on both ISO Lisp and EuLisp, on which side of
   the fence does it stand with respect to separate namespaces for
   functions, symbol values, classes, etc.?

It is a Lisp-n, following ISO Lisp.  However, most of the libraries
are based on EuLisp where there is no conflict with ISO Lisp --- for
example, the MOP, the condition system, and the new EuLisp stream/file
system (which hasn't been published yet).

EuLisp actually has three namespaces: the lexical namespace (which
includes lexical variables, functions, classes, etc.), the dynamic
namespace (for dynamic variables), and the compiler namespace (for
macros).  We have more because more namespaces helps find errors
statically, somewhat like types but orthogonal to them.

For instance, Ilog Talk detects two errors in the following situation:

(defun foo (x) ...)
(defglobal var ...)

(defmethod foo ((x var)) ...)

1. foo is defined as a function, not a generic function.  (This
   actually works via inheritance of namespaces.)
2. var is defined as a variable, not a class.

In EuLisp (or any other Lisp that I know of), these errors cannot be
detected statically.

-- Harley Davis
--

------------------------------------------------------------------------------
nom: Harley Davis			ILOG S.A.
net: ·····@ilog.fr			2 Avenue Gallie'ni, BP 85
tel: (33 1) 46 63 66 66			94253 Gentilly Cedex, France