2

我正在尝试将appengine-magic (0.3.1)设置与 VimClojure (2.2.0) 和 Clojure 1.2.0 一起使用。

当通过 vanilla REPL ( lein repl) 使用时,事情看起来是正确的。

user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
 default-war-root in-appengine-interactive-mode? open-resource-stream
 start start* stop stop* wrap-war-static)

但是当相同的代码从 VimClojure 发送到 nailgun 服务器时:

java -cp "`lein classpath`" vimclojure.nailgun.NGServer 127.0.0.1

一些函数和宏消失了。

user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
 in-appengine-interactive-mode? open-resource-stream)

相同版本的appengine-magicjar 肯定在类路径中。

那么,这是错误还是配置错误?

4

1 回答 1

2

在我看来,它更像是一个功能。

查看https://github.com/gcv/appengine-magic/blob/master/src/appengine_magic/core.clj中的最后一个表单。在该命名空间中加载的 fns 完全取决于您是在运行 Swank 还是正常的 REPL。

我无法解释为什么会这样,但这显然是 appengine-magic 的预期行为。

于 2010-12-28T15:40:54.530 回答