autoexport

2021-10-21

A small library to automatically export definitions

Upstream URL

github.com/fami-com/autoexport

Author

fami-com

License

BSD-3-Clause
README
autoexport

0.1Intro

autoexport is a small macro to export your definitions without any need to add them to your package's :export section.It's especially useful with class definitions as it also automatically exports slots, readers, writers and accessors.

0.2Example

   (ql:quickload :autoexport)
   (defpackage :my-package
     (:use :cl))
   
   (defpackage :other-package
     (:use :cl :autoexport))

   ;; Switch to a package
   (in-package :other-package)
   (pub defun some-func () (format t "Hello, World!"))
   (pub defclass some-class ()
     ((x
       :accessor x
       :initform :x)
      (y
       :accessor y
       :initform :y)))

   ;; Switch to a different package
   (in-package :my-package)
   (other-package:some-func) ; => Hello, World!
                             ; Note a single colon

   (defvar *test-var* (make-instance 'other-package:some-class :x 1 :y 1))

   (slot-value *test-var* 'other-package:x) ; => 1
   (other-package:y *test-var*) ; => 1
   (setf (other-package:y *test-var*) 100) ; => 100
   (other-package:y *test-var*) ; => 100

Dependencies (2)

  • alexandria
  • closer-mop

Dependents (0)

    • GitHub
    • Quicklisp