Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

STUDY

Quicklisp - installing clisp packages 본문

clisp

Quicklisp - installing clisp packages

__main__ 2019. 2. 1. 17:36

Quicklisp - installing clisp packages


 Common lisp라는 programming language를 설치하면, 가장 기본적인 것만 설치된 상태다. 물론 고오오급 리스프 개발자라면 그것만으로 족하겠지만, 그래도 다른 누군가가 만들어 놓았던 package를 다운로드해서 사용하는 방법이 있을 것 같다. 찾아보니 [ Quicklisp ]라는 것이 있다. [ Quicklisp 다운로드 ]


 먼저 common lisp를 설치한 후에 도스창(주의: Emacs 의 SLIME REPL 창이 아니라)에서 clisp 를 실행하여 REPL 창을 열고 다운로드를 했던 quicklisp.lisp 파일을 아래처럼 로딩하고, 이어 quicklisp를 설치해보자. 다운로드와 설치가 시작된다. 잘 되는지 아래에서 vecto 라는 package 도 설치해보았다. 

;; install quicklisp
(load "quicklisp.lisp")
(quicklisp-quickstart:install)
(ql:add-to-init-file)

;; install vecto package 
(ql:system-apropos "vecto")
(ql:quickload "vecto")
(quit)


 그런데 이건 도스창에서만 된다. 도스창에서 문제없이 작동하니, Emacs SLIME 모드에서도 작동하겠거니 생각했는데, 전혀 아니다. Emacs 에 SLIME 을 설치하여 M-x slime 을 입력하여 REPL 창을 띄워 아무리 (ql:quickload "vecto") 라고 쳐봐도 에러만 잔뜩 뜬다. 아예 ql 이라는 명령을 SLIME 은 모른다. Emacs 를 portable 하게 만들기 위해 따로 "D:\util\emacs27\share\emacs\site-lisp\site-start.el" 파일을 수정하는 식으로 변경하였다. 그래서 그런지는 모르겠으나, 아무튼 Emacs SLIME 은 quicklisp 가 설치된 사실도, 어디에 설치되었는지도 인식하지 못 한다. 


 이 경우에는 Emacs 의 SLIME REPL 창에서 quicklisp 를 설치하면 된다. Emacs 를 실행한 current working folder 에 quicklisp.lisp 파일이 있는 상태에서, 도스창에서 했던 그대로 다시 quicklisp 를 설치하는 것이다. 그러면 새로 설치된 quicklisp 는 Emacs 의 HOME 경로 아래에 quicklisp 라는 폴더에 설치되고 이제부터 Emacs SLIME REPL 창에서도 quicklisp 를 사용할 수 있게 된다. 도스창에서 설치된 quicklisp 는 중복된 것이니 다 지우면 된다. ADSF 란 것도 자동으로 로딩되도록 "~/.clisprc.lisp" 파일에 "(require 'asdf)" 라는 행을 적어두자. (여기서 ~/ 경로는 Windows 10 의 HOME 경로가 아니라 Emacs 의 HOME 경로다.)




 그런데 의문이 있다. 


1. quicklisp라는 것이 어디에 설치된 건가?


도스창에서 clisp 를 실행하여 REPL 을 띄우고, 그 상태에서 설치한다면, quciklisp 는 Windows 10 운영체제 PC 에서 "~/quicklisp" 폴더에 설치된다. 예들 들어 사용자가 k 라면, C:\Users\k\quicklisp 폴더 아래에 설치된다. 그런데 이렇게 하지 말자. HOME folder 를 의미하는 "~/" 의 의미가 Windows 10 운영체제와 Emacs 에서 다를 수 있기 때문이다. Emacs 를 C 드라이브가 아닌, D 드라이브에 설치하였거나 USB 에 portable 로 설치하여 가지고 다닌다면 이미 site-start.el 파일을 건드렸을 거다. 즉, Emacs 가 인식하는 HOME 경로를 바꾸었다면, quicklisp 설치도 주의가 필요하다. 도스창이 아니라, Emacs SLIME REPL 에서 quicklisp 를 설치해야만 한다. Emacs SLIME REPL 창에서 설치하면, Windows 10 운영체제의 HOME 인 C:/Users/user-name 이 아니라, Emacs 가 설치된 폴더 아래("~/.emacs" 파일이 있는 폴더)에 설치가 된다. 그렇게 하면 quicklisp 를 SLIME 모드에서 Eamcs 에서 사용이 가능하다. 


2. 뭐가 설치된 건가? quicklisp라는 것이 정확히 무엇인가?


quicklisp 는 common lisp 의 package manager 이다. Javascript 로 치자면 npm 혹은 yarn, Rust 로 치자면 cargo 라고 볼 수 있다. 일단 설치한 후에 필요한 package 들을 quciklisp 란 것으로 쉽게 다운로드하여 설치할 수 있게 된다. 


3. 원하는 package list는 어디에서 확인할 수 있나? 예를 들면, Vimawesome 사이트나 Melpa 사이트처럼.


quicklisp 사이트에서 package 목록을 확인할 수 있다. 


4. package를 다운로드하여 설치하는 방법은? 


Github 에 project 들이 있으니 다운로드하여 설치할 수도 있을 테지만, quicklisp 로 다운로드하고 설치하는 것이 더 편하다. 


5. package를 설치했으면 사용하는 방법은? 


설치는 아래와 같이 common lisp REPL 창에서 필요한 package 이름을 string 값으로 입력하여 설치하면 된다. 사용 방법은 lisp 파일에 

;; install package
(ql:quickload "패키지 이름")

;; import package 
(asdf:load-system :alexandria)
(rename-package :alexandria :alex)


6. 나에게 필요한 package를 어떻게 찾을 것인가?

Comments