1 ;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; indent-tabs-mode: nil -*-
3 ;;; --- Package definition.
6 (in-package :common-lisp-user
)
9 ((defconduit (name &body clauses
)
10 (assert (= 1 (length clauses
)))
11 (assert (eq (caar clauses
) :use
))
12 (flet ((get-symbols (packages)
14 (with-package-iterator (iterator packages
:external
)
15 (loop (multiple-value-bind (morep symbol
) (iterator)
16 (unless morep
(return))
17 (push symbol symbols
))))
18 (remove-duplicates symbols
:test
#'eq
))))
20 (:use
#:common-lisp
,@(cdar clauses
))
21 (:export
,@(get-symbols (cdar clauses
)))))))
24 (:use
:io.multiplex
:io.streams
:net.sockets
)))
26 ;; SBCL changes *package* if LOAD-OPing :iolib in the REPL