From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Marius Vollmer Newsgroups: gmane.lisp.guile.devel Subject: Re: Bug in eval-string? Date: 10 Aug 2002 16:18:20 +0200 Sender: guile-devel-admin@gnu.org Message-ID: <873ctm7q6r.fsf@zagadka.ping.de> References: <20020808125641.GA23831@www> <878z3hukoz.fsf@zagadka.ping.de> <87adnwpey3.fsf@zagadka.ping.de> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1028989096 14382 127.0.0.1 (10 Aug 2002 14:18:16 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Sat, 10 Aug 2002 14:18:16 +0000 (UTC) Cc: rm@fabula.de, guile-devel@gnu.org Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by main.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 17dX4I-0003jp-00 for ; Sat, 10 Aug 2002 16:18:15 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17dX57-0000HX-00; Sat, 10 Aug 2002 10:19:05 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17dX4P-0000FP-00 for guile-devel@gnu.org; Sat, 10 Aug 2002 10:18:21 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17dX4N-0000FD-00 for guile-devel@gnu.org; Sat, 10 Aug 2002 10:18:20 -0400 Original-Received: from dialin.speedway42.dip88.dokom.de ([195.138.42.88] helo=zagadka.ping.de) by monty-python.gnu.org with smtp (Exim 4.10) id 17dX4N-0000F1-00 for guile-devel@gnu.org; Sat, 10 Aug 2002 10:18:19 -0400 Original-Received: (qmail 32539 invoked by uid 1000); 10 Aug 2002 14:18:20 -0000 Original-To: Matthias Koeppe In-Reply-To: Original-Lines: 54 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 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:1057 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:1057 Matthias Koeppe writes: > > But "with" is such a nice name compared to "fluid-let"! ;) > > The name is *too nice* for something like FLUID-LET. Remember, it > uses DYNAMIC-WIND and lots of SET!s. It is inefficient if CALL/CC > is used. Hmm, what is wrong with 'dynamic-wind' and 'set!'? > It won't work in a threaded environment. Really? Whether or not the dynamic context established by "with" or "fluid-let" is local to the current thread or gloabal to all depends on the nature of the 'variable' that you are setting. It could be a fluid, or it could be an ordinray global variable. > > I'd say that fluid-let should be in the core. Opinions? > > I'd say, we should rather make SLIB integration smoother, and/or > provide a SRFI-15 implementation (despite its withdrawn status). > > Putting it in the core won't be a good idea IMHO. > > 1) It creates confusion because Guile knows real fluid variables. > FLUID-LET has "fluid" in its name but has no connection to > fluids. That's actually one reason why I like "with". > 2) WITH-FLUIDS is much cleaner than FLUID-LET. People should use > WITH-FLUIDS if they want (threadsafe) dynamic scoping. But with-fluids is only for fluids, not for general dynamic scoping of settable things. > Moreover, for the application of switching modules by "dynamically > binding" the place (CURRENT-MODULE), I think that using either your > originally proposed "WITH" syntax or the FLUID-LET syntax are bad > ideas because they suggest simple variable assignments, whereas > changing the current module is a much heavier thing. Yes, setting the current-module can have far reaching consequences, but so could setting an ordinary variable. In fact, setting the current module is implemented by setting a variable (well, a fluid). Since "with" or "fluid-let" is distinct from "let" there is no immediate danger of someone accidentally setting the current module with it (unlike in Common Lisp (when the *special* convention isn't followed)). So I don't see how offering "fluid-let" or "with" is dangerous. It might not be 'pure', but it offers something that people want to use. having to use dynamic-wind explicitely is cumbersome and error prone compared to fluid-let, in my view. _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel