소켓과 함께 사용하기 위해 SBCL 비표준 내장 함수에서 일부 함수를 가져 오려고합니다. 맨손으로 대화 형 셸 + SBCL을 사용하여이 점액질을 할 때 작동하지만 틈새에서는 작동하지 않습니다.패키지를 SLIME REPL에 가져 오기
내가 무슨 짓을 :
(import 'sb-bsd-sockets:host-ent-address)
(import 'sb-bsd-sockets:get-host-by-name)
또는
(use-package :sb-bsd-sockets)
을 중 하나를 수행 한 후, 점액 내가 CL-사용자 패키지에 이미 뭔가를 가져올려고한다는 오류로 날 맞이 . 이것은 수정 가능한 오류이므로 sb-bsd-sockets 패키지에있는 기호를 선택하여 해결할 수 있습니다. 더 이상의 오류는 없습니다. 그런 다음
, 내가 기능을 컴파일하려고 : 그것은 작동
(defun nslookup (hostname)
(if hostname
(sb-bsd-sockets:host-ent-address (sb-bsd-sockets:get-host-by-name hostname))
nil))
합니다. 나는 이것을 컴파일하려고한다면 : 나는 nslookup-1
를 호출 할 때
(defun nslookup-1 (hostname)
(if hostname
(host-ent-address (get-host-by-name hostname))
nil))
은 그 때 나는 정의되지 않은 기능에 대한 경고 및 오류가 발생합니다. 놀랍게도
, 내가 REPL에서이 일을하려고하는 경우 :
CL-USER> #'host-ent-address
#<STANDARD-GENERIC-FUNCTION HOST-ENT-ADDRESS (1)>
CL-USER>
그것은 "작품". 나는. 함수를 알고 있지만 그것을 사용하지 않기로 결정했습니다.
패키지를 SLIME의 REPL 또는 적어도 패키지에서 가져 오는 방법이 있어야합니다. 그렇지 않으면 긴 코드를 사용하는 것이 매우 불편합니다. 테스트를위한 이름을 입력하고 실제 프로그램을 대체 할 이름을 입력하십시오.