This is the mail archive of the guile@cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

mod_guile design problems



Hi there.
As I was stating some time back, i'm going to write mod_guile,
which would allow Apache modules to be written in Scheme.

Well, to make it short - I need help with that. :)
Someone with some Apache/Guile background would be quite helpful
(i have *some* knowledge about both, but i constanly run against
something i just don't know. Most notably, what will Guile look
like when it's done with all the "we're working on it"-parts)

I just finished reading "Writing Apache Modules with Perl and C",
and got quite some ideas for mod_guile, but i have some basic
problems:

- I want to make smob's for the request_rec, server_rec and
  conn_rec structures. Those are actually automagically destroyed
  by apache when it's done with it. I have no idea how to handle
  this - mod_guile modules can of course store the smob's
  wherever they like, and access them even after the real ones
  have vanished. sadly, apache does *not* provide a clean way to
  register "cleanup"-functions for these structures.
- Apache uses it's own type of FILE pointers, BUFF's.
  There seems no way to wrap a BUFF into a guile port and lateron
  retrieve the BUFF from the port.
- Memory pools. I haven't found any use for memory pools in Guile
  since it's already Garbage Collected. I just need some logic to
  find an appropriate pool for those functions that require one.
  (e.g. ap_escape_shell_cmd - i'll copy the result so it can be
  stored in guile independently of the pool)


More or less unrelated to this, i'm also searching for the new
Environment specification (i've lost my local copy). I wonder
wether it'll be possible to mark an environment as "read-only",
e.g. that a set! will not affect that environment or any of it's
parents.

	-forcer

-- 
((email . "forcer@mindless.com")       (www . "http://forcix.cx/")
 (irc   . "forcer@#StarWars (IRCnet)") (gpg . "/other/forcer.gpg"))

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]