From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ian Price Newsgroups: gmane.lisp.guile.devel Subject: Re: Guile: What's wrong with this? Date: Sat, 07 Jan 2012 20:57:15 +0000 Message-ID: <87mx9zkz84.fsf@Kagami.home> References: <4F027F35.5020001@gmail.com> <1325603029.22166.YahooMailNeo@web37906.mail.mud.yahoo.com> <4F032C41.3070300@gmail.com> <87mxa4ifux.fsf@gnu.org> <4F038BF4.1070200@gnu.org> <87obujzmmc.fsf@Kagami.home> <4F048972.5040803@gnu.org> <87lipnm8yx.fsf@Kagami.home> <4F04D01D.5050801@gnu.org> <8762grf28k.fsf@netris.org> <4F05DC47.1000202@gnu.org> <878vlldb4k.fsf@netris.org> <1325811764.22562.YahooMailNeo@web37903.mail.mud.yahoo.com> <87wr95bo9y.fsf@netris.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1325970191 16031 80.91.229.12 (7 Jan 2012 21:03:11 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 7 Jan 2012 21:03:11 +0000 (UTC) Cc: Bruce Korb , guile-devel@gnu.org To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Jan 07 22:03:03 2012 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RjdPp-0005fY-5R for guile-devel@m.gmane.org; Sat, 07 Jan 2012 22:03:01 +0100 Original-Received: from localhost ([::1]:58343 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RjdPo-0007w7-OG for guile-devel@m.gmane.org; Sat, 07 Jan 2012 16:03:00 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:57891) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RjdPl-0007vr-Hu for guile-devel@gnu.org; Sat, 07 Jan 2012 16:02:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RjdPk-0008Fu-0E for guile-devel@gnu.org; Sat, 07 Jan 2012 16:02:57 -0500 Original-Received: from mail-wi0-f169.google.com ([209.85.212.169]:41830) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RjdPj-0008Fh-PA; Sat, 07 Jan 2012 16:02:55 -0500 Original-Received: by wibhq12 with SMTP id hq12so2635633wib.0 for ; Sat, 07 Jan 2012 13:02:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=TTdKA76zv0KPuPBdx2Xvl4BFpE0xL5GudBgFE2gqGwE=; b=CJbuKfILzc+HaR4rQoYI5OX3xwCWISXod0Vyvl/dfKciemZeT3PLN9APVdjgyptruF jVVSp91ujjEj9oPLARNB0GhFiBNEKfmzyiezmiX4YgiNIODxV00Y0z9YcNg2NtzVO5O+ BgDmnzVH0jHP4goa5MMhyD73Qum4UTENISwGU= Original-Received: by 10.180.106.165 with SMTP id gv5mr19072957wib.18.1325970174658; Sat, 07 Jan 2012 13:02:54 -0800 (PST) Original-Received: from Kagami.home (host86-171-77-216.range86-171.btcentralplus.com. [86.171.77.216]) by mx.google.com with ESMTPS id ej17sm73118995wbb.14.2012.01.07.13.02.52 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 07 Jan 2012 13:02:53 -0800 (PST) In-Reply-To: <87wr95bo9y.fsf@netris.org> (Mark H. Weaver's message of "Thu, 05 Jan 2012 20:41:45 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 209.85.212.169 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:13419 Archived-At: Mark H Weaver writes: > As I understand it, in the Scheme standards (at least before R6RS's > immutable pairs) the rationale behind marking literal constants as > immutable is solely to avoid needlessly making copies of those literals, > while flagging accidental attempts to modify them, since that is almost > certainly a mistake. Erm, if you don't count literals, which were already immutable, then R6RS doesn't have immutable pairs. It does move the mutators to a separate module, but that is a not really equivalent, because even if you don't import (rnrs mutable-pairs), another module may mutate pairs returned by your library. Ditto for strings,etc. To quote section 5.10 "Literal constants, the strings returned by symbol->string, records with no mutable fields, and other values explicitly designated as immutable are immutable objects, while all objects created by the other procedures listed in this report are mutable." -- Ian Price "Programming is like pinball. The reward for doing it well is the opportunity to do it again" - from "The Wizardy Compiled"