14

ここにいる何人かの質問者のように、私は Lisp は初めてです。私はPractical Common Lispの本を読んでいますが、Web アプリをセットアップするのがどれほど簡単かを確認するために回避したので、このチュートリアルと更新されたバージョン hereに従いました。

サーバーを起動するポイントに到達すると、REPL が停止し、何もプッシュできなくなり*dispatch-table*ます。

したがって、基本的には、REPL でうまく機能するコードがあり、オブジェクトをリストに追加したり、それらを取得したりします。次に、次を使用してサーバーを起動します。

(setf *web-server* (start (make-instance 'hunchentoot:acceptor :port 8080)))

これはうまく機能し、でアクセスできますhttp://localhost:8080。ただし、アクセスすると、ログが REPL に出力され、その時点から REPL を実際に使用できなくなります。たとえば、Adam Petersen の投稿をフォローしても、

(push (create-prefix-dispatcher "/retro-games.htm" 'retro-games) *dispatch-table*)

REPL が応答しないためです。サーバーを別のウィンドウ (ターミナルの SBCL など) から起動しようとしましたが、現在のコンテキストを認識しません。作業中のパッケージやコードを認識しません。

少し標準的でない設定を使用しています。私は OSX を使用しており、SublimeREPL と SBCL で Sublime Text 2 を使用しています (なぜなら、私は Emacs にはあまり興味がなく、ST2 は素晴らしいからです!)。ここですべてをまとめる方法を説明しましたが、実際には念のために投稿しているだけです。欠けている基本的なものとは対照的に、私のセットアップが問題を引き起こしている場合は驚くでしょう.

とにかく、私は先に進んで、より本番環境に似た環境で hunchentoot をセットアップできることを理解しており、その詳細と REPL へのリモート アクセスについていくつかの投稿を見てきましたが、それをいじるためにもっと簡単なものがあることを望んでいました.ちょうど逃した。

4

1 に答える 1

22

SBCL がスレッド サポート付きでコンパイルされていることを確認してください。シングル スレッドで実行している場合、Hunchentoot 要求処理ループが REPL に戻りません。

スレッド化は、 http: //www.sbcl.org/ の Mac OS X 用バイナリのデフォルト設定ではありません。Mac OS X では、通常、sbcl.org バイナリをダウンロードして開始し、次にソースをダウンロードしてリビルド./make.sh --fancyします。スレッドを含む多くの優れた機能を取得します。詳細については、ソースの INSTALL ドキュメントを参照してください。

于 2013-07-11T14:50:39.433 に答える