ASDF(A
nother S
ystem D
efinition F
acility)λ λΉλ μμ€ν
μ
λλ€
Common Lisp μννΈμ¨μ΄ μμ€ν
μ΄ κ΅¬μ± μμ(νμ μμ€ν
λ° νμΌ)λ‘ κ΅¬μ±λλ λ°©μκ³Ό μ΄λ¬ν κ΅¬μ± μμλ₯Ό μ¬λ°λ₯Έ μμλ‘ μλνλ λ°©λ²μ μ§μ νλ λꡬμ
λλ€. μ»΄νμΌ, λ‘λ, ν
μ€νΈ λ±μ΄ κ°λ₯ν©λλ€.
λ²μ | |
---|---|
1 | Daniel Barlow's ASDF (created on August 1st 2001) |
2 | François-René Rideau's ASDF 2 (released May 31st 2010). |
3 |
κ²½λ‘ | μ€λͺ |
---|---|
~/common-lisp/ | Common Lisp μννΈμ¨μ΄ μ€μΉ κΈ°λ³Έ μμΉ(κΆμ₯) |
~/.local/share/common-lisp/source/ |
- ν¬κ² λ€μ 2ννΈλ‘ λλ©λλ€.
asdf/defsystem
: ν¨ν€μ§μ μuiop
: μ νΈλ¦¬ν°
asdf/defsystem
- https://asdf.common-lisp.dev/asdf.html
- https://qiita.com/MYAO/items/874aafcc531862c5f7c7
- https://github.com/fare/asdf/blob/master/doc/best_practices.md
uiop
UIOP(U
tilities for I
mplementation and O
S-P
ortability)
- https://asdf.common-lisp.dev/uiop.html
- https://quickdocs.org/uiop
- https://zenn.dev/hyotang666/articles/3f7abcec6f8270
;; example
(uiop:getenv "USER")
(uiop:run-program "firefox") ; λκΈ°
(uiop:launch-program "firefox") ; λΉλκΈ°
(uiop:run-program (list "git" "--help") :output t)
(uiop:run-program "htop" :output :interactive :input :interactive)
;;; pipe: ls | sort
(uiop:run-program "sort"
:input
(uiop:process-info-output
(uiop:launch-program "ls"
:output :stream))
:output :string)
(uiop:with-temporary-file (:stream s :pathname p :keep t)
(format t "path is ~a~%" p)
(format s "hello, temporary file!"))
(uiop:quit 0)