Thanks for reply! The answer is definitely yes! And I'll find a proper web hosting and build a simple site for it soon if someone is looking for more details or documents. I saw Geiser is put onto www.nongnu.org. Is it a proper place to build Ragnarok's site? I'm not sure about what the word "non-gnu" means.
On Wed, Apr 4, 2012 at 10:42 AM, Noah Lavine <noah.b.lav...@gmail.com> wrote: > Oh, a quick followup - could we post a link to this on the Guile web > page? I don't know who is maintaining that now, but it claims to have > a list of projects using Guile, and I think a multi-protocol server is > certainly interesting enough to go there. > > Noah > > On Tue, Apr 3, 2012 at 10:41 PM, Noah Lavine <noah.b.lav...@gmail.com> wrote: >> That looks excellent! Thanks for posting it. >> >> On Mon, Apr 2, 2012 at 12:23 PM, Nala Ginrut <nalagin...@gmail.com> wrote: >>> hi falks! >>> Many guys believe Guile-2.0 is powerful, me too. But we need more and more >>> guile projects to prove that. >>> Here's a toy of my coding game. A generic server named "Ragnarok". The >>> keyword "generic" implied it's not only a http-server, but easy >>> to add new protocols without considering the common features for a server >>> such as config/logger/concurrent... >>> If you checkout its code, you may find that it may didn't use web API you >>> thought in Guile lib, and it's bother to implement epoll though Andy is >>> making effort to writing nio/ethread now. Well, the reason is simple, >>> because that API/epoll did exist or not stable at the time I wrote Ragnarok. >>> I think it's easy to port it to our future nio/ethread for a higher >>> concurrency. >>> It's here: git://gitorious.org/glow/ragnarok.git >>> I'll make a main page for it if I find a proper web hosting. >>> >>> Features: >>> * GPLv3 (of course) >>> * Object oriented >>> (yes, I'm the minority in Guile community who try to program with GOOPS, >>> though FP features may cancel out most of OO features) >>> * HTTP/1.1 >>> * Multi-protocols >>> * Multi-languages >>> (Guile is actually a dynamic compiler collection against the GCC who's the >>> static one according to Andy's free speech. So multi-language >>> must be the most fascinating feature.) >>> * Guile/Scheme Template >>> * Configurable >>> * MIME >>> * Unified epoll/select/kqueue interface >>> * Logger >>> * Standard CGI >>> * Static page and binary downloading service (of course) >>> >>> These days I'm on my vacation and gave a free speech to Chengdu Linux User >>> Group for a topic about Guile. Many guys are interested in >>> using Scheme for web framework. But they thought it's very clumsy to write >>> Scheme in web development, they love PHP more. >>> For such a misunderstanding, I showed them one of the features in Ragnarok, >>> the Guile template: >>> ---------------------------------cut---------------------------------- >>> <html> >>> <% (if (= 1 1) (begin %> >>> <p>asdf: <%= (+ 1 1) %></p> >>> <% )) %> >>> >>> <% (let ((test-me (expt 3 8))) %> >>> <p><%= test-me %></p> >>> <% ) %> >>> </html> >>> ----------------------------------end------------------------------- >>> >>> If you get this dynamic page from Ragnarok server, the result will be: >>> ================= >>> <html> >>> <p>asdf: 2</p> >>> <p>6561</p> >>> </html> >>> ================= >>> Or open it from any web-browser you like. >>> >>> Well, it's an interesting feature and easy to implement for most guys in >>> Lisp world. >>> The point is, I'm telling them the template is not a big deal for Guile. We >>> have it. >>> >>> After the free talking, an audience ask me: why not release it? >>> I must confess it's just a toy of my coding game. I didn't know if people >>> will be interested in it. >>> And many guys here know much than me, so I'm hesitating. >>> But the sentence on Geiser[1] site struck me: "No hacker is an island". Then >>> I believe I must share it to the world and get more help. >>> Anyway, it's buggy but it really works! >>> If you're in trouble with running it directly, you may try to use it's >>> <server> class for debugging or working with it: >>> --------------------------------------------cut----------------------------------- >>> (use-modules (ragnarok server)) >>> (server:run (make <server> #:name "first-http")) >>> --------------------------------------------end---------------------------------- >>> Then you get a http server listen in 8080 in default. >>> Happy hacking! >>> >>> >>> [1] http://www.nongnu.org/geiser/ >>>