-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Fix export to only export symbols of current package. #7
Conversation
Previously, defclass-star* would fail when overriding a slot of a superclass. Example recipe: (setf hu.dwim.defclass-star::*export-slot-names-p* t) (hu.dwim.defclass-star:defclass* foo () ((foo-name :initform "foo name"))) (defpackage foo-package (:use :cl)) (in-package foo-package) (hu.dwim.defclass-star:defclass* bar (cl-user:foo) ((cl-user:foo-name :initform "bar name")))
this broke our codebase in a non-trivial way. @Ambrevar are you sure that this is the right fix for whatever issue you experienced? |
It's been working for Nyxt ever since. |
AFAIU, it fails to export the NAME-OF symbol from hu.dwim.walker, due to which the originally single generic method got split into two, the other one being a now private/isolated NAME-OF in hu.dwim.meta-model. or to put it another way: our codebase expects that symbols get exported, regardless of what is their home package. i have rewound the |
i also opened an issue not to forget this. |
@Ambrevar i just understood that rewinding defclass-star in ql breaks nyxt (until now i didn't know what it is, or that it's part of ql). how about reverting this single commit, at least for the time being? does nyxt depend on it? |
Reverting this single commit is the best course of action for now.
Nyxt does not depend on it directly, but the proper behaviour of Nyxt's
user configuration does, so reverting this will introduce a bug for
Nyxt's user who build from Quicklisp.
Anyways, it's not a big deal since Quicklisp is not officially supported
anymore by Nyxt. The official way to build it is via Git submodules or
Guix / Nix.
|
It breaks the hu.dwim universe. More info: #7
i've reverted it, and updated the |
FTR, i do not consider the current behavior a bug. the CL symbol exporting operation does not care whether the home package of the symbol being exported is the same package it is being exported from. i do not see any reason why the default behavior should not be aligned with the semantics of CL's own export operation. and introducing a non-trivial bug into our codebase is only a wakeup call, not the reason for this. |
Previously, defclass-star* would fail when overriding a slot of a superclass.
Example recipe: