From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: The overlay branch (yet again) Date: Tue, 03 Dec 2019 12:58:46 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="2621"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: martin rudalics , emacs-devel@gnu.org To: Vladimir Kazanov Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Dec 03 19:54:03 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1icDJD-0000Su-Nn for ged-emacs-devel@m.gmane.org; Tue, 03 Dec 2019 19:54:03 +0100 Original-Received: from localhost ([::1]:57416 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icDJA-00076k-Dt for ged-emacs-devel@m.gmane.org; Tue, 03 Dec 2019 13:54:00 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:43663) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1icCS2-0002gC-SI for emacs-devel@gnu.org; Tue, 03 Dec 2019 12:59:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1icCRs-0001LC-0Z for emacs-devel@gnu.org; Tue, 03 Dec 2019 12:58:59 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:50655) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1icCRr-0000xj-NW for emacs-devel@gnu.org; Tue, 03 Dec 2019 12:58:55 -0500 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 65A1A81E29; Tue, 3 Dec 2019 12:58:49 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id A5464811C0; Tue, 3 Dec 2019 12:58:47 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1575395927; bh=BEbbFyfQKyL8h0zXSDpUcdnzj5qxCU3oNd+qphv5gcA=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=pK3kU1FazVghjljVL80Z05+8ixbS+Jo/PDjUaBy5f3nUgD2uSyaGeLWOMwG1RU0dh 8LO1ZYo1kiwKNqLeFEBNq/RXIBbqIyoZbYLrwGkNTggtpaYa+JR074O4nOkNbSrR1U QHVMWJeU9NwJ7D36tFLqghzYFwqR/JeMxKTF1aAdbE4qQcN0YgLrsAdQS8B8zxpOVu KPGqzhrNuDiV/iHXDJi41BPeyxwzDhLOo1kBQWJRBMOAA5XZRC40/6bENRLsObAyi0 ztcuVDWvt8adNvxqXY5LONIf9HgAAWmEe3D+avLEHiNliWprNg5NVUJjx4dLfMHoua XfbJAujphQyyg== Original-Received: from alfajor (modemcable157.163-203-24.mc.videotron.ca [24.203.163.157]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 78A561210FD; Tue, 3 Dec 2019 12:58:47 -0500 (EST) In-Reply-To: (Vladimir Kazanov's message of "Tue, 3 Dec 2019 16:21:14 +0000") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 132.204.25.50 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:243076 Archived-At: >> > Given that nobody replied to my original email I assume everybody is >> > busy with the new release. Not exactly with the new release, but yes your message fell into the "todo" black hole, sorry :-( >> > Is anybody interested in me doing this work? >> I definitely am interested. Me too. > But Andreas almost made it! So I want to reuse some of that massive > effort: merge tests at the very least, untangle overlay code a bit and > - hopefully - replace those linked lists. Yes, please! Also, I hope the new code can capture some of the insights learned along the way, and the design choices, e.g. in the form of comments describing the various performance aspects that were considered (complexity of `make-overlay`, `delete-overlay`, `overlay-start`, `overlays-at/in`, `previous-char-property-change`, of updating overlays in response to buffer text modifications, ...). Also, some performance tests would be great. IIRC a few months ago someone here posted some simple tests showing some percentage improvement in some cases, but there has to be situations where the new code is massively faster (after all, the new code uses a different data structure specifically to change the algorithmic complexity of some operations). It's quite possible that those situations don't "occur naturally" in current code, but it should be possible to trigger them in artificial but realistic situations (maybe changing font-lock to use overlays instead of text-properties, or forcing nhexl-mode to nhexlify eagerly the whole buffer, I don't know). But merging the tests into `master` would be a great first step. Stefan