Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need the metaclass methods at compile time #5

Open
Yehouda opened this issue Jan 4, 2022 · 3 comments
Open

Need the metaclass methods at compile time #5

Yehouda opened this issue Jan 4, 2022 · 3 comments

Comments

@Yehouda
Copy link

Yehouda commented Jan 4, 2022

On LispWorks at least, compiling it using q;quickload errors when it tries to do the defclass api at compile-time. The error is :required is invalid keyword for make-instance of standard-direct-slot-definition. api has metclass api-call, which has methods like c2mop:direct-slot-definition-class that return a other slot class definition, but they are not defined yet, because methods are not defined at compiled time according to the standard (while classes are).

I can go around it by loading the lisp file and then compiling, but the right solution is to put the methods in a separate file that is loaded first. Normally they should be in th esame file where the clas is defined (which is why the standard specify that classes are defined at compile time). I think basically all the code above the defclass api in api-protocol.lisp should be in classes.lisp.

defclass
defmethod

@K1D77A
Copy link
Owner

K1D77A commented Jan 5, 2022

c829c53 this?

@Yehouda
Copy link
Author

Yehouda commented Jan 6, 2022

I don't test from the sources, I test what we got from quicklisp. So once it gets into quicklisp we will get it and test again.

I did the change by hand in the our version of quicklisp and it then compile, so i should be ok.

@K1D77A
Copy link
Owner

K1D77A commented Jan 6, 2022

I don't test from the sources, I test what we got from quicklisp. So once it gets into quicklisp we will get it and test again.

I did the change by hand in the our version of quicklisp and it then compile, so i should be ok.

You can clone to local-projects and that will override the quicklisp version.

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

No branches or pull requests

2 participants