HELP BUGS                                        John Williams, Jun 1987
                                                        Updated Jun 1995

This file lists known bugs and omissions in the Poplog Common Lisp
system. Poplog Common Lisp is an implementation of the language defined
in Guy Steele's Common Lisp: The Language, 2nd Edition (Digital Press,
1990). It is not yet concordant with the forthcoming ANSI standard for
Common Lisp.

         CONTENTS - (Use <ENTER> g to access required sections)

  1   The Object System (CLOS)
  2   Pretty Printing
  3   Input/Output
  4   File System Interface
  5   Compilation and Compile-File
  6   Miscellaneous


-----------------------------------------------------------------------
1  The Object System (CLOS)
-----------------------------------------------------------------------

# User-defined method combination is not available. The associated
  functions and macros define-method-combination, invalid-method-error,
  method-combination-error, and function-keywords currently signal an
  error if executed. It is expected that user-defined method combination
  will be implemented in the next release of Poplog.

# The special forms generic-flet, generic-labels, and with-added-methods
  have not been implemented because they are not included in the
  forthcoming ANSI standard.

# The :documentation and :type slot options to defclass are not yet
  implemented. Such information is ignored.


-----------------------------------------------------------------------
2  Pretty Printing
-----------------------------------------------------------------------

# Temporary changes to pretty print control variables (*print-lines*,
  *print-right-margin*, and *print-miser-width*) that occur inside
  a logical block do not effect the format of the final printed output.
  So, for example, the output from:

    (pprint-logical-block (nil nil)
        (write '(hello all you good people) :right-margin 15))

  does not break after the word YOU. To get the desired effect, bind
  the control variable outside the block, e.g:

    (let ((*print-right-margin* 15))
        (pprint-logical-block (nil nil)
            (write '(hello all you good people))))


-----------------------------------------------------------------------
3  Input/Output
-----------------------------------------------------------------------

# The functions get-macro-character and get-dispatch-macro-character
  return a function that takes zero arguments when applied to a built-in
  read macro.

# The function clear-output has no effect.


-----------------------------------------------------------------------
4  File System Interface
-----------------------------------------------------------------------

# On Unix Poplog systems, the functions delete-file and rename-file,
  if applied to a symbolic link, affect the file pointed to by the link,
  not the link itself.

# On VMS Poplog systems, the function file-author returns the user-id
  number for the file, not the user name as a string.

# Care should be taken when using open to create a stream connected to a
  Unix pipe (i.e. a special file created by /usr/etc/mknod). The call to
  open will "block" unless the keyword options :direction :io and
  :if-exists :overwrite are specified.

# pathname-match-p can only cope with one wild-card character (*) per
  string component of a pathname. So, for example:

    (pathname-match-p #P"foobaz" #P"foo*z")

  returns t, but:

    (pathname-match-p #P"foobazgrum" #P"foo*z*um")

  returns nil. Functions that implicitly call pathname-match-p, i.e.
  translate-pathname and translate-logical-pathname, also behave in
  this way.


-----------------------------------------------------------------------
5  Compilation and Compile-File
-----------------------------------------------------------------------

Poplog Common Lisp incrementally compiles expressions into machine code
as they are read by the top-level loop, or the function load. It does
not have a file compiler of the type discussed in Steele Chapter 25,
Section 25.1 (The Compiler). The consequences of this are:

# The function compile-file does nothing except signal a warning.

# The macro with-compilation-unit is exactly equivalent to progn,
  except that it prints a warning message.

# The macro step also does nothing except signal a warning (because
  there is no interpreter in Poplog Common Lisp either).


-----------------------------------------------------------------------
6  Miscellaneous
-----------------------------------------------------------------------

# The eighth result of decode-universal-time (daylight-saving-time-p) is
  always nil (because Poplog does not know the times of the year at
  which daylight saving time is in effect in the all various time zones
  around the globe!).

# The functions described in Steele 1990, Chapter 8, Section 8.5,
  (Environments) are not implemented, because they are not present
  in the forthcoming ANSI standard. These functions are: enclose,
  variable-information, function-information, declaration-information,
  augment-environment, define-declaration, and parse-macro.



--- C.all/lisp/help/bugs
--- Copyright University of Sussex 1995. All rights reserved.
