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

Handle unbound canonical-distinfo-url for ql:bundle-systems of ultralisp #202

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions quicklisp/dist.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -834,6 +834,11 @@ the given NAME."
(setf (slot-value dist 'release-index)
(make-hash-table :test 'equal)))

(defmethod slot-unbound (class (dist dist) (slot (eql 'canonical-distinfo-url)))
(declare (ignore class))
(setf (slot-value dist 'canonical-distinfo-url)
(distinfo-subscription-url dist)))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably it is better to define :initform nil for canonical-distinfo-url slot.

Or if it is really should be replaces by distinfo-subscription-url if unbound, then to define a canonical-distinfo-url :around accessor method.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for commenting.

methods on slot-unbound seemed to have been an established pattern from the rest of the sources. An initform of nil would also fix the ql abort though initforms are not used on any other slot in that class (or throughout much of the rest of the ql classes for that matter)

Another option would be to make bundle.lisp specifically tolerant of the unbound slot. The value it provides to the bundle operation when correct is only a slightly more complete metadata auxiliary file.

Or simply ignore and hope that the ultralisp distinfo.txt will include a canonical-distinfo-url in the future.

I'll update this pull branch if someone can say specifically the preferred implementation. I just wanted to make this problem and a potential solution known. I've just hacked my own ~/quicklisp/quicklisp/* to get by and moved on personally.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or simply ignore and hope that the ultralisp distinfo.txt will include a canonical-distinfo-url in the future.

Or you might contribute this patch yourself. Here is the places to be changed:

https://github.com/ultralisp/ultralisp/blob/32cdcb6cb7679be066f54322a23363dd192ab8ef/src/builder.lisp#L275-L279

and

https://github.com/ultralisp/quickdist/blob/a72bc5a2c4e99332fec9a98de102a80b7512ee6b/quickdist.lisp#L3-L10

To check how it will work, you might start development version of the Ultralisp with a single docker-compose up command.



;;;
;;; Systems
Expand Down