Giống như một vài người hỏi ở đây, tôi mới sử dụng Lisp. Tôi sẽ xem qua cuốn sách Practical Common Lisp, nhưng hãy cẩn thận để xem việc thiết lập ứng dụng web dễ dàng như thế nào, vì vậy tôi đã theo dõi hướng dẫn this, cũng như updated version here.Lisp thường gặp: Hunchentoot và REPL - Khi tôi khởi động máy chủ, tôi nhận được kết xuất nhật ký trong REPL và không thể sử dụng REPL nữa
Khi tôi đến điểm bắt đầu máy chủ, REPL của tôi sẽ chết và sau đó tôi không thể đẩy bất kỳ thứ gì lên số *dispatch-table*
.
Vì vậy, về cơ bản, tôi có mã làm việc tuyệt vời trong REPL, thêm các đối tượng vào một danh sách, lấy họ, vv, sau đó tôi bắt đầu máy chủ sử dụng
(setf *web-server* (start (make-instance 'hunchentoot:acceptor :port 8080)))
mà hoạt động tuyệt vời, và tôi có thể truy cập vào nó trên http://localhost:8080
. Tuy nhiên khi tôi truy cập vào nó, các bản ghi in ra REPL và tôi không thể thực hiện việc sử dụng REPL từ điểm đó. Vì vậy, ví dụ: theo dõi bài đăng của Adam Petersen, tôi không thể sau đó
(push (create-prefix-dispatcher "/retro-games.htm" 'retro-games) *dispatch-table*)
vì REPL không phản hồi. Tôi đã thử khởi động máy chủ từ các cửa sổ khác nhau (tức là từ SBCL trong terminal) nhưng sau đó nó không biết về bối cảnh tôi đang ở - nó không hiểu gói tôi đang làm việc trên hay bất kỳ mã nào của tôi.
Tôi đang sử dụng thiết lập hơi không chuẩn; Tôi đang sử dụng OSX và sử dụng Sublime Text 2 với SublimeREPL và SBCL (vì tôi thực sự không tham gia Emacs và ST2 là tuyệt vời!). Tôi đã mô tả cách tôi đặt tất cả lại với nhau here - nhưng tôi thực sự chỉ đăng rằng chỉ trong trường hợp, tôi sẽ ngạc nhiên nếu đó là thiết lập của tôi gây ra vấn đề như trái ngược với một số điều cơ bản tôi đang mất tích.
Dù sao, tôi hiểu rằng tôi có thể tiếp tục và thiết lập tính năng trong một môi trường giống như sản xuất hơn, và đã thấy một số bài viết nêu chi tiết và truy cập REPL từ xa, nhưng tôi hy vọng sẽ có điều gì đó đơn giản hơn. với điều đó tôi vừa bỏ lỡ.
Cảm ơn Xach - Tôi sẽ cung cấp cho nó một đi và cho bạn biết làm thế nào tôi nhận được trên :) – mkornblum
Fantastic, làm việc một điều trị. Thật khó hiểu, bởi vì tôi đã không đăng ký rằng tôi cần một SBCL để biên dịch cho người khác, và sau đó không chạy trình cài đặt sau trình biên dịch và bị nhầm lẫn về phiên bản nào tôi đang ở, nhưng tôi cuối cùng đã tìm ra. Cảm ơn rất nhiều! – mkornblum
Vậy làm cách nào để sử dụng phiên bản luồng trong tình huống tương tự? – MadPhysicist