Hey Phil: I think it is just an input stream encoding problem. I think if you change this line: (copy (-> context .in) out)
to this: (copy (-> context .in InputStreamReader.) out) it will work. George On Jul 6, 5:06 pm, Phil Hagelberg <p...@hagelb.org> wrote: > So a common counter to "the VM startup time is so bad" problem is to use > Nailgun for a long-running server process. I've gotten this working in > some respects, but I get a "Unexpected chunk type 83 ('S')" error quite > often when I'm trying to read from the stdin that the nailgun context > provides. > > (ns nailgun.example > (:use [clojure.contrib.duck-streams]) > (:import [com.martiansoftware.nailgun NGServer NGContext] > [java.io BufferedReader InputStreamReader > OutputStreamWriter PrintWriter]) > (:gen-class)) > > (gen-class :name nailgun.Example > :prefix "Example-" > :methods [#^{:static true} > [nailMain [com.martiansoftware.nailgun.NGContext] void]] > :main false) > > (defn Example-nailMain > [#^NGContext context] > (let [out (writer (-> context .out))] > (copy (-> context .in) out) > (.flush out))) > > (defn -main [] > (.start (Thread. (NGServer.)))) > > I compile this, and then run the nailgun.example class. Then I try to > connect via the ng client: > > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > Unexpected chunk type 83 ('S') > bash: echo: write error: Broken pipe > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > Unexpected chunk type 83 ('S') > bash: echo: write error: Broken pipe > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > p...@dynabook ~ $ echo "hello" | ng nailgun.Example > Unexpected chunk type 83 ('S') > > I've taken a look at the "nails.clj" file in vimclojure since I know > that it uses nailgun. The only difference seems to be that it wraps the > context's input stream in a LineNumberingPushbackReader as well as an > InputStreamReader, but that doesn't seem to make a difference. > > Any ideas what I'm doing wrong? How is this supposed to be used? > > thanks, > Phil --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---