From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: noverlay branch Date: Sun, 25 Sep 2022 18:38:40 -0400 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="24310"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 26 00:39:45 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ocaHo-0006By-Uo for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Sep 2022 00:39:45 +0200 Original-Received: from localhost ([::1]:56956 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ocaHm-00047T-Mc for ged-emacs-devel@m.gmane-mx.org; Sun, 25 Sep 2022 18:39:42 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ocaGw-0003S6-Me for emacs-devel@gnu.org; Sun, 25 Sep 2022 18:38:50 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:14912) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ocaGu-0008JC-Uk for emacs-devel@gnu.org; Sun, 25 Sep 2022 18:38:50 -0400 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id C01E4100136; Sun, 25 Sep 2022 18:38:43 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 0B29110002F; Sun, 25 Sep 2022 18:38:42 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1664145522; bh=inOAQOFgDubDceiRyVjBPQy5H+/sKlDecrj8rS7Z4kw=; h=From:To:Subject:Date:From; b=c2yEYKfmAfUjR0FzBgCeb1SZ9uPVTa6TUi6xmkei71ruQ7kNa3a4OIo8k2my+9s0e ta/cemStmIt9EIydTT85jPF6mNg6Fn9h+JBsACSn7fyFp9dTR52kTO2IJXp13os8rH 1V2/nnBrTH3FpqW3hJ+7c/RLb7fJUvuxbKbBPSSitxTWyePW6dHPROeVS+OSDzRdVy p5H5K2KmjAp1+Kwh7jNqDGfFfD8ELO0b7mrBFf34Bo8OnwLBfmPYlTwBAGfu1zATvi B9UjKFUzW2stsjxSR804u4yY9poPZPHj9VPwIXSEMewXJptIj2VA2lL+AS9K5uJDh4 LkSA3O5LFjs1w== Original-Received: from pastel (65-110-220-202.cpe.pppoe.ca [65.110.220.202]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id C7C1D120500; Sun, 25 Sep 2022 18:38:41 -0400 (EDT) Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:296241 Archived-At: I just updated the noverlay branch to the code in `master` (most of it was mechanical except for the fact that since the last commit on that branch we have gotten rid of Lisp_Misc and we moved to pdumper). I'm getting ready to install this in `master`, so I'd encourage people to try this code as much as possible to try and weed out the most glaring problems before it hits master. The code generally looks good, but it touches some quite "core" code in the redisplay (with lots of off-by-one opportunities) and in the memory management (with opportunities for crashes and memory leaks). For those who're not familiar with this branch, it changes the way overlays are stored in a buffer: instead of keeping them in na=EFve singly-linked lists, it keeps them in balanced binary trees, so as to replace an O(N) complexity with O(log N). This way Emacs should not get sluggish even with millions of overlays (of course, if a given buffer position is covered by a million overlays, it'll still be sluggish when operating around that position). Stefan