Glad to hear it, it wasn't too difficult to understand but I certainly had an interesting time coming from languages where you directly import files and folders from a local directory structure in code. Having asdf compile and make available the code was different, but it makes sense. I was a little nervous delving into this as a subject as first!
I can't find much documentation on them to be perfectly honest, I certainly see no reason why pckages need nicknames. According to Practical Common Lisp (Seibel) (www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html): "Every package has one official name and zero or more nicknames that can be used anywhere you need to use the package name, such as in package-qualified names or to refer to the package in a DEFPACKAGE or IN-PACKAGE form." From this, and a little bit of testing I've done, it seems you can give your packages alternative names, indeed this is what happens in Common Lisp itself, the :common-lisp package is nicknamed :cl I(as in "(:use :cl)"), so I am assuming that it's just convenient names to allow people to type less characters. However... according to this stack overflow question: stackoverflow.com/questions/28906563/alias-package-names-in-common-lisp, it appears that you can rename packages and assign them their own nickname (which makes sense, pretty much everything in common lisp can be changed at run time). So if you have a super long package name that's a pain to type, you can rename the package or add a nickname to it and use the nickname, even if it didn't supply one, or at least, that's how I'm reading it, I have no tried it myself yet.
@@NeilMunro Thanks for the reply. I was just wondering what it was used for. When I was looking around GitHub for examples of lisp packages to see how they were made lots of them used nicknames. I'm so glad for these videos about packages that really cleared up a lot of stuff for me.
Glad to be hear it, it certainly confused me at first, so I totally understand! Drop me a suggestion or question if there's anything else I can help with :)
That's a good question and one there's not a great answer to unfortunately. Quicklisp is the distribution bundle that is most popular and that's tested for versions to be working together but you don't get a choice in versions. There's alternative solutions like Ros, but I've not had much success using it, if you are so inclined, I suppose you could use docker and install exactly the version of dependencies you want, but that feels like overkill. Ultimately I think it's an area common lisp can improve on, which isn't the answer any of us want, I know, but it is what it is :/
Excellent!
Glad to hear it, it wasn't too difficult to understand but I certainly had an interesting time coming from languages where you directly import files and folders from a local directory structure in code. Having asdf compile and make available the code was different, but it makes sense. I was a little nervous delving into this as a subject as first!
Thank you, it was really useful
Really glad to hear it, if you ever have more questions let me know!
Could you explain why packages have/need nicknames?
I can't find much documentation on them to be perfectly honest, I certainly see no reason why pckages need nicknames. According to Practical Common Lisp (Seibel) (www.gigamonkeys.com/book/programming-in-the-large-packages-and-symbols.html):
"Every package has one official name and zero or more nicknames that can be used anywhere you need to use the package name, such as in package-qualified names or to refer to the package in a DEFPACKAGE or IN-PACKAGE form."
From this, and a little bit of testing I've done, it seems you can give your packages alternative names, indeed this is what happens in Common Lisp itself, the :common-lisp package is nicknamed :cl I(as in "(:use :cl)"), so I am assuming that it's just convenient names to allow people to type less characters.
However... according to this stack overflow question: stackoverflow.com/questions/28906563/alias-package-names-in-common-lisp, it appears that you can rename packages and assign them their own nickname (which makes sense, pretty much everything in common lisp can be changed at run time). So if you have a super long package name that's a pain to type, you can rename the package or add a nickname to it and use the nickname, even if it didn't supply one, or at least, that's how I'm reading it, I have no tried it myself yet.
@@NeilMunro Thanks for the reply. I was just wondering what it was used for. When I was looking around GitHub for examples of lisp packages to see how they were made lots of them used nicknames. I'm so glad for these videos about packages that really cleared up a lot of stuff for me.
Glad to be hear it, it certainly confused me at first, so I totally understand! Drop me a suggestion or question if there's anything else I can help with :)
@@NeilMunro Well, since you asked... How do you pin your dependencies to particular versions?
That's a good question and one there's not a great answer to unfortunately. Quicklisp is the distribution bundle that is most popular and that's tested for versions to be working together but you don't get a choice in versions.
There's alternative solutions like Ros, but I've not had much success using it, if you are so inclined, I suppose you could use docker and install exactly the version of dependencies you want, but that feels like overkill.
Ultimately I think it's an area common lisp can improve on, which isn't the answer any of us want, I know, but it is what it is :/