Skip to content
Snippets Groups Projects
Commit 2f103d42 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Update the uiop/README

parent 5c730d87
No related branches found
No related tags found
No related merge requests found
...@@ -13,56 +13,64 @@ All exported symbols are reexported in a convenience package UIOP. ...@@ -13,56 +13,64 @@ All exported symbols are reexported in a convenience package UIOP.
The files that constitute UIOP are, in loading order: The files that constitute UIOP are, in loading order:
* package: to deal with packages and their symbols, most notably including * package: deals with packages and their symbols, most notably including
DEFINE-PACKAGE, a variant of defpackage capable of hot-upgrade. define-package, a variant of defpackage capable of hot-upgrade, or
symbol-call and find-symbol* that are also useful for use in .asd files
before packages have been defined.
* common-lisp: to let you paper over various sub-standard implementations. * common-lisp: lets you paper over various sub-standard implementations.
Big offenders are Corman, GCL, Genera, MCL, all of them unmaintained. Big offenders are Corman, GCL, Genera, MCL, all of them unmaintained.
Supported without serious issues are: Supported without serious issues are:
ABCL, Allegro, CCL, CMUCL, CLISP, ECL, LispWorks, MKCL, SBCL, XCL. ABCL, Allegro, CCL, CMUCL, CLISP, ECL, LispWorks, MKCL, SBCL, SCL, XCL.
* utility: to provide macros and functions that do not involve I/O, handling * utility: provides macros and functions that do not involve I/O; it handles
control-flow, (p)lists, characters, strings, functions, classes, conditions, control-flow, (p)lists, characters, strings, functions, classes, conditions,
"stamps" (real number or boolean for +/- infinity), versions, etc. "stamps" (real number or boolean for +/- infinity), versions, etc.
It also sports uiop-debug, a useful tool to help you debug programs. It also sports uiop-debug, a useful tool to help you debug programs.
* os: to extract information from your environment, including * os: extracts information from your environment, including
an API identifier, unix vs windows, getenv, hostname, getcwd and chdir, etc. an ABI identifier, features that distinguish Unix vs Windows,
getenv, hostname, getcwd and chdir, etc.
* pathname: to survive the gruesome non-portability trap that are CL pathnames * pathname: overcomes the gruesome non-portability trap that are CL pathnames
(and their lovecraftian "logical" variant), offering a vast array of functions (and their lovecraftian "logical" variant), offering a vast array of
and a sensible, usable abstraction to specify relative pathnames. functions and a sensible, usable abstraction to specify relative pathnames.
It has a function merge-pathnames* to use instead of merge-pathnames, or
even better, subpathname and its variant subpathname*; it has also plenty
of functions for dealing with pathnames being directory vs file,
physical vs logical, absolute vs relative, and more.
* filesystem: to provide portable access to the filesystem, inspecting it, * filesystem: provides portable access to the filesystem, inspecting it,
only using truename when desired, using native OS namestrings, only using truename when desired, using native OS namestrings,
atomic file renaming, creating or deleting directories, etc. atomic file renaming, creating or deleting directories, etc.
* stream: to portably deal with character encodings (external formats), * stream: portably deals with *stderr* vs *error-output*, character encodings
element types, safe READing and WRITEing, opening files or temporary files, (external formats), element types, safe READing and WRITEing, opening files
providing FORMAT-like designators for streams, flushing output buffers, or temporary files, providing FORMAT-like designators for streams,
consuming or copying streams, concatenating files, copying files, etc. flushing output buffers, consuming or copying streams, concatenating streams
or files, copying files, etc.
* image: to portably deal with images, dumping them, restoring from them, * image: portably deals with images, dumping them, restoring from them,
registering hooks to run at suitable events in the image lifetime, registering hooks to run at suitable events in the image lifetime,
printing backtraces, handling fatal conditions, using or avoiding debug modes, printing backtraces, handling fatal conditions, using or avoiding debug modes,
accessing command line arguments or quitting the process. accessing command line arguments or quitting the process.
* run-program: to portably spawn external processes and capture their output. * run-program: portably spawns external processes and captures their output.
Can also capture error-output, inject input, or let it all be interactive. Can also capture error-output, inject input, or let it all be interactive.
* lisp-build: to portably compile common-lisp code, handle compilation results, * lisp-build: portably compiles common-lisp code, handles compilation results,
muffle uninteresting conditions, save and restore deferred warnings, muffles uninteresting conditions, saves and restores deferred warnings,
run hooks around compilation (to e.g. control optimizations or syntax), runs hooks around compilation (to e.g. control optimizations or syntax),
identify the pathname of the current file, combine FASLs, etc. identifies the pathname of the current file, combines FASLs, etc.
* configuration: to write portable configuration files, using best practices * configuration: helps you define portable configuration files, using best
to define and validate syntax, search standard paths, practices to define and validate syntax, search standard paths,
let users specify pathnames or pathname patterns, etc. let users specify pathnames or pathname patterns, etc.
* backward-driver: to provide backward-compatibility with earlier incarnations * backward-driver: provides backward-compatibility with earlier incarnations
of this library (i.e. ASDF internals that have leaked, or ASDF-UTILS) of this library (i.e. ASDF internals that have leaked, or ASDF-UTILS)
* driver: to reexport all the above utilities in a single package UIOP. * driver: reexports all the above utilities in a single package UIOP.
Documentation Documentation
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment