Skip to content

Move derive-* macros to dedicated packages#2

Draft
diasbruno with Copilot wants to merge 2 commits into
mainfrom
copilot/move-derive-functions-macros
Draft

Move derive-* macros to dedicated packages#2
diasbruno with Copilot wants to merge 2 commits into
mainfrom
copilot/move-derive-functions-macros

Conversation

Copilot AI commented Apr 28, 2026

Copy link
Copy Markdown

derive-readers, derive-print-object, and derive-equality were all defined in the monolithic meta-definitions package. They're now split into independent packages under a derive/ directory, each with its own ASDF system, loadable à la carte or all at once.

New packages

File Package Export
derive/readers.lisp meta-definitions.derive.readers derive-readers
derive/print-object.lisp meta-definitions.derive.print-object derive-print-object
derive/equality.lisp meta-definitions.derive.equality derive-equality

New ASDF systems

Each derive package has its own standalone system file:

  • meta-definitions.derive.readers.asd
  • meta-definitions.derive.print-object.asd
  • meta-definitions.derive.equality.asd

meta-definitions.derives.asd — umbrella system that depends on all three individual systems.

;; Load everything at once
(asdf:load-system :meta-definitions.derives)

;; Or load only what you need
(asdf:load-system :meta-definitions.derive.readers)
(asdf:load-system :meta-definitions.derive.print-object)
(asdf:load-system :meta-definitions.derive.equality)

;; Usage
(meta-definitions.derive.readers:derive-readers user)
(meta-definitions.derive.equality:derive-equality user)
(meta-definitions.derive.print-object:derive-print-object user)

Removed from meta-definitions

The three derive-* macros and their exports are removed from package.lisp. The core meta-definitions system is unchanged.

@diasbruno

Copy link
Copy Markdown
Member

@copilot Each package must have its own system.

Copilot AI commented Apr 28, 2026

Copy link
Copy Markdown
Author

@copilot Each package must have its own system.

Done in b74940f. Each derive package now has its own .asd file:

  • meta-definitions.derive.readers.asd
  • meta-definitions.derive.print-object.asd
  • meta-definitions.derive.equality.asd

The umbrella meta-definitions.derives.asd now simply depends on all three individual systems rather than loading files directly.

Copilot AI requested a review from diasbruno April 28, 2026 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants