From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Gerd_M=C3=B6llmann?= Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture Date: Sat, 16 Sep 2023 11:09:09 +0200 Message-ID: References: <87fs3ur9u8.fsf@dataswamp.org> <875y4moiiq.fsf@dataswamp.org> <83r0n4rj78.fsf@gnu.org> <83cyynpmvd.fsf@gnu.org> <838r99mh40.fsf@gnu.org> <83h6nwlmt4.fsf@gnu.org> <456d12ac-ecf4-3de4-56bb-a2440580777f@gutov.dev> <83a5tokmsv.fsf@gnu.org> <83sf7fki5g.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14506"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: Yuri Khan , dmitry@gutov.dev, owinebar@gmail.com, rms@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Sep 16 11:10:04 2023 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 1qhRJU-0003ey-Ct for ged-emacs-devel@m.gmane-mx.org; Sat, 16 Sep 2023 11:10:04 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qhRIl-0002ha-Ay; Sat, 16 Sep 2023 05:09:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qhRIj-0002gL-Cx for emacs-devel@gnu.org; Sat, 16 Sep 2023 05:09:17 -0400 Original-Received: from mail-ej1-x635.google.com ([2a00:1450:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qhRIh-0002oY-HS; Sat, 16 Sep 2023 05:09:17 -0400 Original-Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-9ada6b0649fso381051166b.1; Sat, 16 Sep 2023 02:09:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694855351; x=1695460151; darn=gnu.org; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Mybw8z9X/bbmvaht6R6C5YtB6y//45hmZ28yBTM6GF0=; b=SNlQgp7pQL6vdgnPuWmsunC0mb4W54i2JTlfxmymDc+HpOI1SZYKY9JTN8zrw6HfH1 3HwFWP/OFBMd5x0XmgFVO7Ddvl8aCTRQhsRJBF3sTnHwU85WvIWQ2hk4ekUDqg1BHBWd YwHfSQwMsLkZW+SgXfane2tq6UicLBj0c1pQs0dOU/4Th+F87wreSUBylLWkoYxd+QTA J+LX6e5rQidohiIIDyw/2uGnl21gedprCyCgkfcIIX5DpvSbZjxzEVJ7euZKleUrlmDs JoV3dc3lITtA0y9YM1zWC2QZ+cKOztCsvEn5SOp8fKZTwluUQ5bV1bOVUToXqW45rESx b2bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694855351; x=1695460151; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Mybw8z9X/bbmvaht6R6C5YtB6y//45hmZ28yBTM6GF0=; b=wX3/ywB7EPYHdoQKZ2eIO2x3ND6baKh0g0UmHP0xvsSGhbQHDbZfM1syucv5LoF2Ql YSTWwQXN/vYNkTjZKxF0aOp4duLLUxQoJzfgsbkkqt3k8ZHxVcquvBxrinN2cAcGP67+ Bbyv7Y/N4fhLxu2fY5gpFuXxZorfyLdlxSL4z9ZIlybOLsP3BYUx6F7CIpnJb+yvZYpX rFSZbk7v2LpRN43Tr4ru68xleAxy8W+ncmTY+Hv62wBV/JUF3u3kF+ARy6djhcsv4tRg KNKR0svG2YMa3iI8kw72MImOb1u2yMrW2AsojmXN0BgT9Vstn2jAoYQ4DT8xFvtbE0T4 7f8Q== X-Gm-Message-State: AOJu0YxMMBxtci3Lh5V35Qv9BiY35lhyW1vxIwyorDu73Dg+nj0oXFzY wNjJ88Ua9dlJlB/x9yyKB4G70HLTm+SxUBFv X-Google-Smtp-Source: AGHT+IG1lpC21prbMH6pJ4xQ8bCo5vqCZlVl02HyLWe3dKQ78yQyW3daUtyixHhpamY62+u8c2DVgQ== X-Received: by 2002:a17:906:3d22:b0:99e:39d:4fa7 with SMTP id l2-20020a1709063d2200b0099e039d4fa7mr3276493ejf.22.1694855351192; Sat, 16 Sep 2023 02:09:11 -0700 (PDT) Original-Received: from Pro.fritz.box (pd9e36a2c.dip0.t-ipconnect.de. [217.227.106.44]) by smtp.gmail.com with ESMTPSA id qt11-20020a170906eceb00b009a19fa8d2e9sm3388960ejb.206.2023.09.16.02.09.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 02:09:10 -0700 (PDT) In-Reply-To: ("Gerd =?utf-8?Q?M=C3=B6llmann?= =?utf-8?Q?=22's?= message of "Fri, 15 Sep 2023 11:32:05 +0200") Received-SPF: pass client-ip=2a00:1450:4864:20::635; envelope-from=gerd.moellmann@gmail.com; helo=mail-ej1-x635.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:310622 Archived-At: Gerd M=C3=B6llmann writes: > This of course, would pose several problems. > > - This form of parallel redisplay cannot call Lisp, so no jit-lock, no > hooks, or whatever during redisplay. And at the point where we call > redisplay today we don't know what will be displayed... > - Parallel redisplay also needs either a copy of what it to be > displayed, or the model must be some persistent data structure > that makes immutable versions of buffer-text, for instance, > available. Some more idle musings: Let's say persistent data structures for buffer-text, overlays, text properties and maybe other things are out of question because of the effort involved. Another idea would be to produce, where we currently run redisplay, a "model" that can be processed concurrently. One could just guess how much text will be displayed, run Lisp code as necessary (jit-lock), skip invisble text, and so on, so that the parallel redisplay doesn't have the need to call Lisp. For simplicity, think of that new form of model as HTML. That could be so slow that parallelism is not a win. What about the move_.* functions used by Lisp (vertical-motion, ...)? To what degree does backward compatibily restrict what can be done in the first place? I'm beginning to think it sets quite harsh limits. Doesn't look good to me :-(.