[Openmcl-devel] Two (Directory ...) problems

wws2 new ww.s2 at ukonline.co.uk
Sun Mar 28 13:16:56 PDT 2010

When trying to use CCL to compare files on two different volumes, I have encountered two problems with the implementation of (Directory ).  

(1)  The first is that the CCL (directory ) function fails to work with paths that have "*" in them whether as part of the directory name or as part of the file name, but of course there might be many such files or directories on a macintosh volume, so directory does not fully work.

Welcome to Clozure Common Lisp Version 1.4-r13119  (DarwinX8664)!
? (directory "Volumes/Arbeit/Allegro/**/*.*"
           :directories nil
           :files t
> Error: Illegal use of wildcarded filename "/Volumes/Arbeit/Allegro/Contribs/MapCooordinates/Classic/*Latitude/"
> While executing: NATIVE-TRANSLATED-NAMESTRING, in process Listener(6).
> Type cmd-. to abort, cmd-\ for a list of available restarts.
> Type :? for other options.
1 > 

(2) The second is that (directory )  calls some version of delete-duplicates which starts to crawl-really-slowly (cant complete overnight) when the volume contains hundreds-of-thousands of files.  Surely there should be no duplicates to delete in the first place (even if :follow-links is true), and doing so must be beyond the spec.  The source seems to suggest that the reasons for doing this is extraneous to the common-lisp definition.  What do you language experts think?

More information about the Openmcl-devel mailing list