Skip to content

fami-com/autoexport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

autoexport

Intro

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.

Example

(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

About

A small library to automatically export definitions

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published