Directory - a Clean module to access and manipulate directories
---------------------------------------------------------------

  Version 1.1

Installation
------------

  Use this module with Clean 1.3.3 or above, but not with Clean 1.3.2.

  First cd to the directory with the file "cDirectory.c" (this 
  README file is in the same folder) and type "make". This should
  execute the gcc C compiler to generate an object file "cDirectory.o".

  This module is based on two other libraries:
   - "StdLib 1.0" (or higher) for the Date and Time types
   - "ExtendedArith 1.0" (or higher) for the BigInt type

  If you don't have these libraries already then download them
  (http://www.cs.kun.nl/~clean or ftp://ftp.cs.kun.nl/pub/Clean) and
  install them.
  
  When using the Directory module to create an executable you have
  to inform the Clean system about the paths and object files to link
  with. The "ExtendedArith 1.0" library needs two object files "gmp.a"
  and "gmp_platform.o". The Directory module itself needs the above
  mentioned object file "cDirectory.o".
  
  If you are using "clm" to generate your applications use the "-l"
  option to tell the linker about these object files. Furtheron use
  the "-I" option to specify paths to the two needed libraries. 
  
  Example:
    Let's suppose you have made a file called "testDir.icl" with the
	following contents:

      module testDir
      import Directory
      Start w = getDirectoryContents (RelativePath []) w

    Now you can generate an executable called "testDir" by typing the
	following single command (supposed the specified paths in this example
	exist):

      clm -l ExtendedArith-1.0/gmp.a -l ExtendedArith-1.0/gmp_platform.o
          -l Directory-1.1/cDirectory.o -I ExtendedArith-1.0 
	  -I StdLib-1.0 -I Directory-1.1 testDir -o testDir

    There are also more convenient ways to specify link options and paths
	with clm, see the clm manpage for more information.

  If you use the CleanIDE instead of clm you can specify the link and
  path informations in the CleanIDE's "Options " menu.
  
  mailto:clean@cs.kun.nl if a problem occurs.

Documentation
-------------
 
  There is a brief description of the Directory module at the Clean
  homepage (www.cs.kun.nl/~clean).

Differences to the previous version
-----------------------------------

  The upgrade to version 1.1 is _not_ downward compatible. These are the
  incompatible changes (there are no other changes):

    - The Date` and Time` types of the previous version were replaced with
      the Date  and Time types of the StdLib. Now The Object I/O library
      and the Directory module share the same types for date and type
      information (not very helpful for Unix users, since there is no
	  Object I/O library for them):

      previous version:
       :: Time` = { hours` :: !Int, minutes` :: !Int, seconds` :: !Int }
       :: Date` = { year` :: !Int, month` :: !Int, day` :: !Int, dayNr` :: !Int }

      this version:
       :: Time = { hours :: !Int, minutes :: !Int, seconds :: !Int }
       :: Date = { year :: !Int, month :: !Int, day :: !Int, dayNr :: !Int }

    - The file size is now stored in an arbitrary size integer (BigInt) and not
      in a 64 bit integer:

      previous version:
       :: PI_FileInfo = { fileSize :: !Integer64 ... 

      this version:
       :: PI_FileInfo = { fileSize :: !BigInt ... 

  Sorry for that inconvenience.

Contents of the package
------------------------
  Directory.dcl/icl - the module itself
  cDirectory.c      - necessary C source file 
  makefile          - to make an object file from cDirectory.c
  cDirectory.c      - necessary C source file 
  Clean.h           - necessary C header file
  README            - this file
