From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Po Lu Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture. How about copy-on-write? Date: Thu, 21 Sep 2023 15:48:58 +0800 Message-ID: <87il84q845.fsf@yahoo.com> References: <83v8c7elan.fsf@gnu.org> <877conk5ny.fsf@localhost> <83ttrreeu0.fsf@gnu.org> <87bkdzeas1.fsf@localhost> <83cyyfe5l8.fsf@gnu.org> <87led2o0nb.fsf@localhost> <83ttrqcpfb.fsf@gnu.org> <877comnv4a.fsf@localhost> <83fs3ackrq.fsf@gnu.org> <99e84ae7-b3aa-a009-5cb8-a75826343196@gutov.dev> <838r92cgxp.fsf@gnu.org> <837comcam8.fsf@gnu.org> <6946e6f0-c6ef-186c-35d4-c09935c05a07@gutov.dev> <83y1h1axtq.fsf@gnu.org> <87sf79rq5o.fsf@yahoo.com> <83fs38c2yv.fsf@gnu.org> <83o7hw9ee1.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16539"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: dmitry@gutov.dev, yantar92@posteo.net, acm@muc.de, incal@dataswamp.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 21 09:50:24 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 1qjES7-00047G-VC for ged-emacs-devel@m.gmane-mx.org; Thu, 21 Sep 2023 09:50:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qjER3-0001Qp-Ab; Thu, 21 Sep 2023 03:49:17 -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 1qjER1-0001Qg-SS for emacs-devel@gnu.org; Thu, 21 Sep 2023 03:49:15 -0400 Original-Received: from sonic313-10.consmr.mail.ne1.yahoo.com ([66.163.185.33]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qjEQz-0000MA-Bo for emacs-devel@gnu.org; Thu, 21 Sep 2023 03:49:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1695282551; bh=9Sf+o1L/jutnQk3FZ1Moh8rP/Ozx72WDyV57zIB/a5A=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From:Subject:Reply-To; b=Jk3UbrvLFDcCZQCxlC9mRgMKceEZm3W0WqSWyj559Nd9BOGpFdDLQdMJtwuDBFauA9pbV26EO7QxJuXrmeZbPZvctS1HOS2Zygr+jE/o3A7TwTsN0Zk/t46K9XKt/nBChQvkuSfcgnfnj3qWWN9cCeUeEbx2QtosYDHBbAJE3T6uWTWqw6J99k+vRbOs38L2G6QxrcMGbM/f0At4NtjGVWKK+UDV5JgR8f43Z0MfYnZ71xFre3AeutkdI9NX+nlULYnpvyts6Eg619kL3gAcLDCBVs4LjhoHCLTCxfIryIdfYPy3DaBDo+SK1NrSt7tuohB+pHkyS0QclhJRkB1S4Q== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1695282551; bh=c2As14udsTYF/aNhRii4YLoQmmLpiaRyEHltSDcdNXo=; h=X-Sonic-MF:From:To:Subject:Date:From:Subject; b=dN8DHnQq5xKajAoGRk/koYqqUNp46mctpOS6/c858avY9pGoblX0yUAfwWSBUszCulOOBjxOInzIEMs4bJvZ8ip5ywZwtZX46POF2m1Cwl7hYpxtNS8Tm95FupLdN1LgqV9EoWoRwB1USNsCgFzMXFnkGqdKtTLyQ2zcKiShpTwzkoOGOLr/7Pacij/VPtO/oLKRVcgkZhIaQm/FCAdEXqnF6eZHA8MTv4pD+o5A1vgujGv3LFNf1FpqWBFwddvhdQlQUOcw7CFNh02PRvmLATEupZRC1jrhkkpPoOpb9cqba08wNDa/nH7bG/IuXOZE0fPRiXe4aVzK9EeSxVkcyw== X-YMail-OSG: 5F3SC2UVM1kx5flFRhBTYfQeezGfkiJK8.3gUZcGtqm9VDrtNKoKK.8NU46KUJL 1hXtH8QN7H.5ehH3JHHEZcM03uYk0GMMe_hebbMbYLjM95AYhfVPopkMV76Yk0UqnpyxQQ9rlHwF K.D_6CuLcVK5Ovje8YvsQIhaE4oT1S1uPWuas68HCbJTnHiytm4uwBZqkmohkGCQcih1pwwGngkV lbAD.FQUxrAKx.7KkLU_u4z6NK2LtIyq2z1viVNCZzcXO2JrVnWTkmTR7VDZfmWOZ2cg83tLwfIU ifcA_7a3ZcuBLZ0TiARk6nRyZgtfaTpWSd750_D84D2FW4JPTUEYUWxNlDbsQv1_4LN3gnISitFO EXtbbFfV3WGBZc7Ite1FNf_OxvkGcJ40JnEoxakheWodG3ddV5A1IuVQURAWwvPViOw2Y4y0GGnn tCswBzCtD7Md21RWssmDtPbWm_TohODNwHeYNT9Jx5QXbei68bFcsQfkacsWIYgyLA0G7z2cOGvp TDAtlhB_CzUKDpgVAokT_OhQUWzZn9r686sWn0a6BStzEXGK1igyEJ6ewRwhIslP7zSWgmmi1PC4 dWGm609kvKV11MIFqDFE3B4GwsKx12MSluGLP4Bz3R9QnkDooL9ys.P6Fk0Z2ae_LaHbd3lmOdbd xKNoQ8B5gBXnR4FHrU0MKT7i76RREVvfMSJVTgyCCKsiTrFo2C7kVs20wBT5UJu91ZLHwlJkwFLS _.YfmC8lg8cSyz.CVGw_czmZGnANheyg14YoZdOyYqnKbwcQusWUqY4CQcZaDlbado44522m4oP1 Rl4Xijn1MdIi8pUKa78MrHXkPHUavKC5xC_7GvWcwB X-Sonic-MF: X-Sonic-ID: 117652b3-a078-400a-8de8-d7dd794a4076 Original-Received: from sonic.gate.mail.ne1.yahoo.com by sonic313.consmr.mail.ne1.yahoo.com with HTTP; Thu, 21 Sep 2023 07:49:11 +0000 Original-Received: by hermes--production-sg3-55c667b499-qlh2d (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID 3e217d01748fe6777b7d28ed814e1368; Thu, 21 Sep 2023 07:49:08 +0000 (UTC) In-Reply-To: <83o7hw9ee1.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 21 Sep 2023 10:25:26 +0300") X-Mailer: WebService/1.1.21797 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Received-SPF: pass client-ip=66.163.185.33; envelope-from=luangruo@yahoo.com; helo=sonic313-10.consmr.mail.ne1.yahoo.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, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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:310869 Archived-At: Eli Zaretskii writes: > We don't have to interpret "60 fps" too literally. A possible > Emacs-friendly interpretation is "60 display updates per second", for > example. Here's an experiment to try: > > (global-set-key "\C-z" (function (lambda () (interactive) (scroll-up 1)))) > > Then visit a large file and lean on C-z. > > Another possibility is to lean of C-v. > >> I don't type 60 characters per second -- so there is no reason for Emacs >> to display at 60 frames per second. > > Leaning on a key, as in the examples above, will produce input events > at a relatively high rate (albeit usually lower than 60 per sec), each > one of them requiring some kind of redisplay. Even leaning on C-f > triggers redisplay at high rate. I suggest to try this in various > non-dash-Q configurations and see how we fare in these situations. > There's nothing outlandish in expecting an editor to keep up with > high-rate scrolling commands, I hope you agree with that at least. I agree, but slow scrolling is not redisplay's fault. If I type: M-: (jit-lock-fontify-all) RET or enable c-ts-mode prior to leaning on C-v, within an Emacs session with a 790 MiB resident set that has been executing continuously for 32 days, then Emacs scrolls (xterm.c and xdisp.c) as fast as any other editor on my system. Conceivably even faster than some others, that is to say the VS Code demonstration site at vscode.dev. > You can doubt all you want, but some of what they say is definitely > related to redisplay, IMNSHO. Any examples? Because my experience with p-s-p-m demonstrates that redisplay is absolutely capable of matching the display refresh rate while scrolling, the very cornerstone of `pixel-scroll-precision-use-momentum'.