diff --git a/conditions.lisp b/conditions.lisp index f68fe631cadd67b2e26d55381f4f9b681d06069e..85d281251ed5089ef5af5e327abbaff065ef4fa5 100644 --- a/conditions.lisp +++ b/conditions.lisp @@ -37,6 +37,14 @@ a default value for required keyword arguments." :format-control message :format-arguments args)) +(define-condition simple-program-error (simple-error program-error) + ()) + +(defun simple-program-error (message &rest args) + (error 'simple-program-error + :format-control message + :format-arguments args)) + (defmacro ignore-some-conditions ((&rest conditions) &body body) "Similar to CL:IGNORE-ERRORS but the (unevaluated) CONDITIONS list determines which specific conditions are to be ignored." diff --git a/package.lisp b/package.lisp index 96f6526adfcce3f8b21300ccca8a0b0757210a3b..d2924a4a52547fa276e509e856ff03822f7d0735 100644 --- a/package.lisp +++ b/package.lisp @@ -2,19 +2,28 @@ (:nicknames :alexandria) (:use :cl) (:export + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; BLESSED + ;; ;; Binding constructs #:if-let #:when-let #:when-let* - ;; Definitions - #:define-constant + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; REVIEW IN PROGRESS + ;; ;; Control flow #:cswitch #:eswitch - #:nth-value-or #:switch + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + ;; REVIEW PENDING + ;; + #:nth-value-or #:whichever #:xor + ;; Definitions + #:define-constant ;; Hash tables #:alist-hash-table #:copy-hash-table @@ -124,6 +133,7 @@ #:simple-style-warning #:simple-reader-error #:simple-parse-error + #:simple-program-error #:unwind-protect-case ;; Features #:featurep