In Common Lisp with ASDF what is the difference between the define-package in uiop/package and the defpackage macro?
Difference between `uiop/package:define-package` and `defpackage`?
870 Views Asked by Benjamin Cassidy At
1
There are 1 best solutions below
Related Questions in LISP
- Intercept and modify user input in Common Lisp
- Read next line when loading file in Common Lisp
- Calling CCL + Quicklisp script as executable with command line arguments and achieving the desired output
- Avoiding echos in Clozure lisp (noob)
- Backquote String Interpolation
- Structuring large Lisp applications
- If strings are vectors, why are they immutable?
- Invalid specialized parameter in method lambda list
- Emacs init.el and Elisp and equivalent of common lisp every-p function
- EVAL/APPLY: too many arguments given to F
- Insertion into a list doesn't reflect outside function whereas deletion does?
- How to traverse a tree in Clojure while collecting the value from each node node?
- in clojure, function argument type mismatch
- In Lisp is the function `1+` just syntactic sugar?
- Search function in lisp
Related Questions in COMMON-LISP
- EMACS-Live + Slime error at startup
- Local dynamic binding in common lisp
- Running compiled lisp program with clisp-2.49 on OS X
- What does the non-terminating-p argument of set-macro-character do?
- Updating the window in response to CLIM frame commands
- What is a common-lisp analogue of python's argparse?
- Anonymous methods in common lisp
- Read next line when loading file in Common Lisp
- Calling CCL + Quicklisp script as executable with command line arguments and achieving the desired output
- Jump to function definition in Emacs by mouse-click
- Avoiding echos in Clozure lisp (noob)
- where is the text printed by C printf
- Backquote String Interpolation
- Structuring large Lisp applications
- If strings are vectors, why are they immutable?
Related Questions in ASDF
- Structuring large Lisp applications
- Finding the system of a package
- How to build Common Lisp project?
- I can (asdf:load-system :foo), but asdf still complains that '"foo" doesn't designate a package'
- From Ceramic:bundle got uiop/run-program:subprocess-error does not find my component (and not showing much)
- HOWTO definition and usage of Common Lisp packages (libraries)?
- What is a shim in asdf
- asdf not recognising python changes and MacOSX terminal works but VSCode has a different version
- What does `:build-operation "program-op"` do for ABCL?
- Ensure all team is on the right version of bit cloud bvm
- Nested system naming convention in Common Lisp using ASDF?
- I am getting this error with asdf when running 'python' in my terminal on mac
- How to install latest Java version?
- loading cl+ssl using clisp/asdf under windows 7
- Common Lisp: getting version of an ASDF package
Related Questions in UIOP
- UIOP does not recognize local-nicknames keyword
- Piping more than two subprocesses using uiop:launch-program does not work
- Recommended way to deal with cross-platform file paths with support for URLs?
- How to provide a correct path when using run-program
- Common Lisp: uiop:run-program outputs but uiop:launch-program does not
- Difference between `uiop/package:define-package` and `defpackage`?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
UIOP's one has more clauses.
https://common-lisp.net/project/asdf/uiop.html#UIOP_002fPACKAGE
those are the same ones. But the rest of the docstring introduces more of them:
recycle,mix,reexport…I have used
reexportwhich makes the following easier: you don't want to fullyusepackage A (for example, Alexandria). You want to import a couple symbols (easy, withimport-from), and you also want to export them (easy too, withexport). But in doing so, you had to write the symbols twice.reexportsaves duplication.I heard some complains that defpackage would fail to reload a package in some situations, and define-package worked fine, but I didn't encounter this situation.
(edit): another difference: let's say you ":use" a package in your
defpackagedefinition. Now you erase that line and you compile the package definition again. Your Lisp gives you a warning, telling that your package "also uses the following packages" and lists the one you removed from the definition. You removed the line, but the package still "uses" what you wanted to remove. You can check with(describe (find-package :my-package)).Do the same with UIOP's
define-package: you don't have warnings and your package doesn't "use" the one you removed from the definition anymore, as expected.