From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Thomas Lord Newsgroups: gmane.emacs.devel Subject: Re: Release plans Date: Fri, 29 Aug 2008 16:24:03 -0700 Message-ID: <48B88513.6090700@emf.net> References: <87bpzqqk7b.fsf@uwakimon.sk.tsukuba.ac.jp> <20080818210927.GD2615@muc.de> <87wsidnxqp.fsf@uwakimon.sk.tsukuba.ac.jp> <87ljytkwpk.fsf@rattlesnake.com> <878wusz0v9.fsf@uwakimon.sk.tsukuba.ac.jp> <87vdxp27z6.fsf@uwakimon.sk.tsukuba.ac.jp> <87prnxe5hc.fsf@rattlesnake.com> <873aktck5d.fsf@uwakimon.sk.tsukuba.ac.jp> <87k5e5dsvq.fsf@rattlesnake.com> <48B44802.1080302@emf.net> <87ej4atczj.fsf@gmail.com> <48B78A75.8080103@emf.net> <803akoyrqy.fsf@tiny.isode.net> <48B7F59B.5060705@gmail.com> <48B84CA8.7080908@emf.net> <87zlmvd1xl.fsf@ambire.localdomain> <48B861C6.10500@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1220051024 21954 80.91.229.12 (29 Aug 2008 23:03:44 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 29 Aug 2008 23:03:44 +0000 (UTC) Cc: emacs-devel@gnu.org, Stefan Monnier , Thien-Thi Nguyen To: "Lennart Borgman (gmail)" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Aug 30 01:04:37 2008 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1KZD1B-0007Ni-C8 for ged-emacs-devel@m.gmane.org; Sat, 30 Aug 2008 01:04:37 +0200 Original-Received: from localhost ([127.0.0.1]:58164 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KZD0C-00030O-P0 for ged-emacs-devel@m.gmane.org; Fri, 29 Aug 2008 19:03:36 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KZCzR-0002bz-LU for emacs-devel@gnu.org; Fri, 29 Aug 2008 19:02:49 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KZCzQ-0002at-MI for emacs-devel@gnu.org; Fri, 29 Aug 2008 19:02:48 -0400 Original-Received: from [199.232.76.173] (port=57436 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KZCzQ-0002ah-E1 for emacs-devel@gnu.org; Fri, 29 Aug 2008 19:02:48 -0400 Original-Received: from mail.42inc.com ([205.149.0.25]:46845) by monty-python.gnu.org with esmtps (SSL 3.0:RSA_3DES_EDE_CBC_SHA1:24) (Exim 4.60) (envelope-from ) id 1KZCWn-0000Xs-IK for emacs-devel@gnu.org; Fri, 29 Aug 2008 18:33:13 -0400 X-TFF-CGPSA-Version: 1.5 X-TFF-CGPSA-Filter-42inc: Scanned X-42-Virus-Scanned: by 42 Antivirus -- Found to be clean. Original-Received: from [69.236.75.128] (account lord@emf.net HELO [192.168.1.64]) by mail.42inc.com (CommuniGate Pro SMTP 5.0.13) with ESMTPA id 37932203; Fri, 29 Aug 2008 15:32:59 -0700 User-Agent: Thunderbird 1.5.0.5 (X11/20060808) In-Reply-To: <48B861C6.10500@gmail.com> X-detected-kernel: by monty-python.gnu.org: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:103226 Archived-At: Lennart Borgman (gmail) wrote: > > It looks to me like the buffer string routines Thomas is working on > could perhaps make that easier to implement (in the DLL case of course). > But I guess you have thought much more about that, Thomas? > Not deeply (because I'm confident on general principles). Using functional strings that, behind the scenes, share state and use mutation rather than copy/alter when they can -- that pattern -- generally simplifies higher-level coroutine coding. Beyond that I haven't worried about it and am instead fretting over getting just the basics working, first. A fun problem that I found a solution for and am currently coding is the fragmentation problem. The splay-tree-of-gap-buffers allows strings to be arbitrarily fragmented. However, low-level I/O systems (e.g., DMA, L2 and L1 caches) like the fragments to be various minimum sizes (cache lines, pages, etc.). A fun set of tricks to think about is how to manage the splay-tree-of-gap-buffers such that the majority of string/buffer data winds up being in roughly page-sized chunks, to minimize the amount of data-copying needed and to maximize the effectiveness of caches. It's a fun puzzle. -t