### 9.2 Operating System Definitions

Function: GET-DECODED-TIME ()

  Package:LISP

  Returns the current time in decoded time format. Returns nine values: second, minute, hour, date, month, year, day-of-week, daylight-saving-time-p, and time-zone.

Function: HOST-NAMESTRING (pathname)

  Package:LISP

  Returns the host part of PATHNAME as a string.

Function: RENAME-FILE (file new-name)

  Package:LISP

  Renames the file FILE to NEW-NAME. FILE may be a string, a pathname, or a stream.

Function: FILE-AUTHOR (file)

  Package:LISP

  Returns the author name of the specified file, as a string. FILE may be a string or a stream

Function: PATHNAME-HOST (pathname)

  Package:LISP

  Returns the host slot of PATHNAME.

Function: FILE-POSITION (file-stream &optional position)

  Package:LISP

  Sets the file pointer of the specified file to POSITION, if POSITION is given. Otherwise, returns the current file position of the specified file.

Function: DECODE-UNIVERSAL-TIME (universal-time &optional (timezone -9))

  Package:LISP

  Converts UNIVERSAL-TIME into a decoded time at the TIMEZONE. Returns nine values: second, minute, hour, date, month (1 - 12), year, day-of-week (0 - 6), daylight-saving-time-p, and time-zone. TIMEZONE in GCL defaults to 6, the time zone of Austin, Texas.

Function: USER-HOMEDIR-PATHNAME (&optional host)

  Package:LISP

  Returns the home directory of the logged in user as a pathname. HOST is ignored.

Variable: *MODULES*

  Package:LISP A list of names of the modules that have been loaded into GCL.

Function: SHORT-SITE-NAME ()

  Package:LISP

  Returns a string that identifies the physical location of the current GCL.

Function: DIRECTORY (name)

  Package:LISP

  Returns a list of files that match NAME. NAME may be a string, a pathname, or a file stream.

Function: SOFTWARE-VERSION ()

  Package:LISP

  Returns a string that identifies the software version of the software under which GCL is currently running.

Constant: INTERNAL-TIME-UNITS-PER-SECOND

  Package:LISP The number of internal time units that fit into a second.

Function: ENOUGH-NAMESTRING (pathname &optional (defaults *default-pathname-defaults*))

  Package:LISP

  Returns a string which uniquely identifies PATHNAME with respect to DEFAULTS.

Function: REQUIRE (module-name &optional (pathname))

  Package:LISP

  If the specified module is not present, then loads the appropriate file(s). PATHNAME may be a single pathname or it may be a list of pathnames.

Function: ENCODE-UNIVERSAL-TIME (second minute hour date month year &optional (timezone ))

  Package:LISP

  Does the inverse operation of DECODE-UNIVERSAL-TIME.

Function: LISP-IMPLEMENTATION-VERSION ()

  Package:LISP

  Returns a string that tells you when the current GCL implementation is brought up.

Function: MACHINE-INSTANCE ()

  Package:LISP

  Returns a string that identifies the machine instance of the machine on which GCL is currently running.

Function: ROOM (&optional (x t))

  Package:LISP

  Displays information about storage allocation in the following format.

  - for each type class
    - the number of pages so-far allocated for the type class
    - the maximum number of pages for the type class
    - the percentage of used cells to cells so-far allocated
    - the number of times the garbage collector has been called to collect cells of the type class
    - the implementation types that belongs to the type class
  - the number of pages actually allocated for contiguous blocks
  - the maximum number of pages for contiguous blocks
  - the number of times the garbage collector has been called to collect contiguous blocks
  - the number of pages in the hole
  - the maximum number of pages for relocatable blocks
  - the number of times the garbage collector has been called to collect relocatable blocks
  - the total number of pages allocated for cells
  - the total number of pages allocated
  - the number of available pages
  - the number of pages GCL can use.

    The number of times the garbage collector has been called is not shown, if the number is zero. The optional X is ignored.

Function: GET-UNIVERSAL-TIME ()

  Package:LISP

  Returns the current time as a single integer in universal time format.

Function: GET-INTERNAL-RUN-TIME ()

  Package:LISP

  Returns the run time in the internal time format. This is useful for finding CPU usage. If the operating system allows, a second value containing CPU usage of child processes is returned.

Variable: *DEFAULT-PATHNAME-DEFAULTS*

  Package:LISP The default pathname-defaults pathname.

Function: LONG-SITE-NAME ()

  Package:LISP

  Returns a string that identifies the physical location of the current GCL.

Function: DELETE-FILE (file)

  Package:LISP Deletes FILE.

Function: GET-INTERNAL-REAL-TIME ()

  Package:LISP

  Returns the real time in the internal time format. This is useful for finding elapsed time.

Function: MACHINE-TYPE ()

  Package:LISP

  Returns a string that identifies the machine type of the machine on which GCL is currently running.

Macro: TIME

  Package:LISP

  Syntax:

      (time form)

  Evaluates FORM and outputs timing statistics on *TRACE-OUTPUT*.

Function: SOFTWARE-TYPE ()

  Package:LISP

  Returns a string that identifies the software type of the software under which GCL is currently running.

Function: LISP-IMPLEMENTATION-TYPE ()

  Package:LISP

  Returns a string that tells you that you are using a version of GCL.

Function: SLEEP (n)

  Package:LISP

  This function causes execution to be suspended for N seconds. N may be any non-negative, non-complex number.

Function: BREAK-ON-FLOATING-POINT-EXCEPTIONS (&key division-by-zero

  floating-point-invalid-operation floating-point-overflow floating-point-underflow floating-point-inexact) Package:SI

  Break on the specified IEEE floating point error conditions. With no arguments, report the exceptions currently trapped. Disable the break by setting the key to nil, e.g.

  > (break-on-floaing-point-exceptions :division-by-zero t) (DIVISION-BY-ZERO)

  > (break-on-floaing-point-exceptions) (DIVISION-BY-ZERO)

  > (break-on-floaing-point-exceptions :division-by-zero nil) NIL

  On some of the most common platforms, the offending instruction will be disassembled, and the register arguments looked up in the saved context and reported in as operands. Within the error handler, addresses may be disassembled, and other registers inspected, using the functions defined in gcl_fpe.lsp.