From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: rm@fabula.de Newsgroups: gmane.lisp.guile.devel Subject: Re: scm_* API extension? [was] scm_* API question Date: Thu, 1 Aug 2002 11:41:21 +0200 Sender: guile-devel-admin@gnu.org Message-ID: <20020801094121.GC7425@www> References: <20020730121436.GA4465@www> <20020730200929.A18106@kiwi.pyrotechnics.com> <20020731100300.GC5661@www> <20020731150602.A32555@kiwi.pyrotechnics.com> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1028194233 31031 127.0.0.1 (1 Aug 2002 09:30:33 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 1 Aug 2002 09:30:33 +0000 (UTC) Return-path: Original-Received: from fencepost.gnu.org ([199.232.76.164]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 17aCHu-00084D-00 for ; Thu, 01 Aug 2002 11:30:31 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17aCIQ-0005qV-00; Thu, 01 Aug 2002 05:31:02 -0400 Original-Received: from www.elogos.de ([212.18.192.92]) by fencepost.gnu.org with smtp (Exim 3.35 #1 (Debian)) id 17aCHV-0005pX-00 for ; Thu, 01 Aug 2002 05:30:05 -0400 Original-Received: by www.elogos.de (Postfix, from userid 5001) id DCCC51049A2; Thu, 1 Aug 2002 11:41:21 +0200 (CEST) Original-To: Marius Vollmer , guile-devel@gnu.org Content-Disposition: inline In-Reply-To: <20020731150602.A32555@kiwi.pyrotechnics.com> User-Agent: Mutt/1.3.24i Errors-To: guile-devel-admin@gnu.org X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.lisp.guile.devel:909 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:909 On Wed, Jul 31, 2002 at 03:06:02PM -0500, Christopher Cramer wrote: > I have no idea why you think it would better, but with certain types of > applications, it's impossible. > > For sake of argument, let's say there are two different ways to use Guile. > One way is to extend Guile through C, by using load-extension. This works > fine if the C code is ignorant of the module system (writing a wrapper > module in Scheme handles everything). The other way is to extend C through > Guile, which cannot stay module system ignorant, because you typically > want to load multiple Scheme scripts without worrying about clashing > symbols from the different scripts -- this is currently impossible > without getting deep into the details of the module system. Yes, this is exactly the situation i just encountered. I know that everyone and their grandmother tells me to write everything in the scripting language but i just don't feel like rewriting Apache in guile -- besides: that might p**s of a lot of perl hackers ;-) As a user of _embedded_ guile there a a few specific things i'd expect from my ideal scripting language: - clear encapsulation of namespaces and scope (something i missed in TCL for example) - for this is currently use guile's module system, but i need to have access to the module mechanics from my C side. - save execution/evaluation of script code. I need to ensure that i can reliably dissable certain things: a user script should not be allowed to call (exit 0) and bring down the whole webserver ;-) - An (opaque) representation of an 'interpreter'. One thing i found rather elegant in TCL (perl to, if i recall correctly) was the possiblility to run several interpreters in parallel. Guile seems to completly lack this (i think i understand why, but i still miss it). - Thread support. I'm personally not a big friend of threaded apps, but it seems that more and more code assumes thread awareness. For example i'd love to port mod_guile to Apache2, but unfortunately Apache2 _can_ be configured at runtime to work in multithread mode (or even a mixture of prefork and multithread). For my personal use i don't care since i can just _not_ enable multithreaded operation but a mod_guile that doesn't work in certain operation modes will just not make it into any distribution. > I can provide examples of what I had to do with Recluse; roughly 300 lines > of C code are devoted to dealing with the module system. (define Ralf idiot) I should've just looked at your code instead of bugging the list ;-) Ralf _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel