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,gmane.lisp.guile.user Subject: Re: Worrying development Date: Sat, 24 Jan 2004 01:27:51 +0100 Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <87r7xqqjg8.fsf@zagadka.ping.de> References: <1074246064.6729.23.camel@localhost> <87vfn9ufvw.fsf@zagadka.ping.de> <400FF648.3080706@dirk-herrmanns-seiten.de> <200401221842.KAA20956@morrowfield.regexps.com> <40110961.1040808@dirk-herrmanns-seiten.de> <200401231716.JAA26107@morrowfield.regexps.com> <87oesus7kg.fsf@zagadka.ping.de> <200401232218.OAA27477@morrowfield.regexps.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1074905710 21939 80.91.224.253 (24 Jan 2004 00:55:10 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 24 Jan 2004 00:55:10 +0000 (UTC) Cc: guile-user@gnu.org, guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Sat Jan 24 01:55:03 2004 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1AkC4k-00080f-00 for ; Sat, 24 Jan 2004 01:55:03 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1AkC2D-0001EI-GC for guile-devel@m.gmane.org; Fri, 23 Jan 2004 19:52:25 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1AkBzn-000833-Oj for guile-devel@gnu.org; Fri, 23 Jan 2004 19:49:55 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1AkByQ-0006wq-9j for guile-devel@gnu.org; Fri, 23 Jan 2004 19:49:02 -0500 Original-Received: from [199.232.41.8] (helo=mx20.gnu.org) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.24) id 1AkByP-0006w4-Dq for guile-devel@gnu.org; Fri, 23 Jan 2004 19:48:29 -0500 Original-Received: from [195.253.8.218] (helo=mail.dokom.net) by mx20.gnu.org with esmtp (Exim 4.24) id 1AkBeY-0004iv-FB for guile-devel@gnu.org; Fri, 23 Jan 2004 19:27:58 -0500 Original-Received: from dialin.speedway43.dip186.dokom.de ([195.138.43.186] helo=zagadka.ping.de) by mail.dokom.net with smtp (Exim 3.36 #3) id 1AkBfM-0006Si-00 for guile-devel@gnu.org; Sat, 24 Jan 2004 01:28:48 +0100 Original-Received: (qmail 16224 invoked by uid 1000); 24 Jan 2004 00:27:51 -0000 Original-To: Tom Lord In-Reply-To: <200401232218.OAA27477@morrowfield.regexps.com> (Tom Lord's message of "Fri, 23 Jan 2004 14:18:25 -0800 (PST)") User-Agent: Gnus/5.1002 (Gnus v5.10.2) Emacs/21.3 (gnu/linux) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.2 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 Xref: main.gmane.org gmane.lisp.guile.devel:3301 gmane.lisp.guile.user:2706 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:3301 Tom Lord writes: > > I'd say that the real 'trouble' is that strings are mutable at > > all. > > Worried mostly about variable-length character encodings in string? > Or you'd just rather be programming in an ML-family language? :-) Heh, no, I'm not really worried, I was actually trying to comment Dirk's concerns. > > Also, I still like the idea of using mutation-sharing substrings as > > markers that allow O(1) access into variable-width encoded strings. > > Interesting. The interaction with STRING-SET! will be tricky. I > think you'll either have to "timestamp" strings (one tick per mutation > -- and you'll likely have to use a GC'ed value rather than an inline > integer for timestamps) or wind up with O(K) for mutations where K is > the number of shared substrings. Yes. What I have in mind is that accessing strings is efficient as long as no mutations are performed. I.e., instead of indication positions in a string with an integer index, you create a shared substring that starts at the desired position. (This could be done with COW substrings, tho.) > > Also, there is the possibility on the horizon that we turn > > string-ref etc into 'primitive generics' which means that people > > could implement new kinds of strings using GOOPS. > > Well, heck. In that case, maybe consider what I'm planning for Pika > (at least initially). Purely ASCII strings are stored 1-byte per > character. Most other strings 2-bytes per character. Strings using > characters outside the Basic Multilingual Plane, 4 bytes per > character. Yes, that's an attractive approach. But I also find simply using UTF-8 exclusively very attractive. It might fit better with what other people are doing and we might need fewer conversions when wrapping external libraries. Or maybe not. -- GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3 331E FAF8 226A D5D4 E405 _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel