cl-messagepack
cl-messagepack copied to clipboard
The change to the :initarg of extension-type breaks the test and the code itself.
The change to the :initarg of extension-type from 'id to :id is not compatible with the tests extension-types-encoding and extension-types, which both pass 'messagepack-sym:id to make-instance with the extension-type. Also the :decode-with function that symbol-to-extension-type generates use 'id rather than :id.
Also the "Example" in the documentation string of define-extension-types is broken, just errors when you try to evaluate it.
So I understand you correctly that 02a9c1b15fc2adf8c1482dfb9f9db13c7f234c56 is wrong and should just be removed?
Or is the concept of using a (private) symbol for the slot wrong and the 'id
accesses should be fixed?
I'm not sure about that... if the slot is initialized via :id
, sub-classed extension-type
s might have a conflict with their id
slot.
It is not obvious to me either what is the right fix.
Using the keyword :id for initarg is more in line with the rest of common-lisp. Maybe just document that subclasses of extension-type cannot have a slot name id and initarg :id is good enough to prevent clashes, because it already mentions ID
slot in the readme.
Undo the change make it run the tests successfully for me, so it is clearly the simplest change.
Note that I don't actually branch the code, I just load it using quicklisp, and I am not actually using it, I am just checking that the systems in quicklisp work on the next version of LispWorks.