From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Yuri Khan Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture (was: Shrinking the C core) Date: Fri, 15 Sep 2023 13:51:56 +0700 Message-ID: References: <877cpfybhf.fsf@yahoo.com> <873503y66i.fsf@yahoo.com> <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> 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="31424"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Dmitry Gutov , 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 Fri Sep 15 08:53:13 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 1qh2hV-0007t5-07 for ged-emacs-devel@m.gmane-mx.org; Fri, 15 Sep 2023 08:53:13 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qh2gZ-0002Hj-Qd; Fri, 15 Sep 2023 02:52:15 -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 1qh2gX-0002HX-Eb for emacs-devel@gnu.org; Fri, 15 Sep 2023 02:52:13 -0400 Original-Received: from mail-ua1-x92e.google.com ([2607:f8b0:4864:20::92e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qh2gU-0007qa-Mv; Fri, 15 Sep 2023 02:52:13 -0400 Original-Received: by mail-ua1-x92e.google.com with SMTP id a1e0cc1a2514c-7a84609acc6so616859241.3; Thu, 14 Sep 2023 23:52:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1694760728; x=1695365528; darn=gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=SbFfAYwBRD916tDe6y4hXE+eRdNIdcmkoqbY9TmKwjM=; b=W39w6QKyw5E+8gh3NOhLDCqJo+nxwHPrVVnfJdPWOUtNHddp7QF42kIuze10+hdFFP ItnwVORJqPkrq9AskIXixcN/Pm5Msx26xU4fKG46/stqEyyssk6ceROoU2o2YMU9uegv mC3VIhU/r6uIo87a/ZoK1IEqPyXKF2dh51x9pWbBZzyh2q4MpKuKuOzPfoEb7uqg1YK/ mCIHRmRl27vXb0dTA4UK8HV4Ia0IIHPU8Y6DGhsPs7jUY+r1d5ul/V/FBNUejNKM0jwp YczU+UvYYrSHRkogynKnbIwUOnH8NiWYAgSca8IqtO3Y0ouqvOBzgu9HN66UrM3jss0n fhEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694760728; x=1695365528; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SbFfAYwBRD916tDe6y4hXE+eRdNIdcmkoqbY9TmKwjM=; b=NQ9nO8F/J+/BeShZrcu3hgDZzlVAKJzECn1APACPqt4oYOBxrRXrCaREoTm1A7tet3 usArG47QrLr8RFjrh3gZiI3/83OxxQKHyH6ton572pb9vwOlo2M0HdyBxxV9gbCHJ1gv 0YdybqZ9FYIAw3Hw3YbTJgYPL0GdKmvTGp24s8oaml5zz0YlT4pGG82t788r7qMfGzQh /r1U/Ga6mYFREkmSeL70/jXKfMbhV+E1UsS71rT5dt/xaOO9vX4kfogQYcVliNQMySP3 MhRhYnRt5bfPD2uHBvHvMVRqvPq00sBelJKYu0pXR7GILgCqFjXi5IzWFU/MONsJp8aT JRzQ== X-Gm-Message-State: AOJu0YyET03D+NvsRHW6kKXMqBsygCSko8kTUVVyQAcH4cEWRE1ZxmP8 yUQG5/VwzGwccmoYyq/MPCWqkq4PEyvOwz/lR1Ps4YOG X-Google-Smtp-Source: AGHT+IH1pNpjkC66zKfSBl537jBQmiKeDHI0bkx4U6t/blwXSFxTAGbHTk+wXTKLdNgNBYHVL/om//m9+iJgp8jEhXU= X-Received: by 2002:a1f:4d81:0:b0:496:3a98:6c57 with SMTP id a123-20020a1f4d81000000b004963a986c57mr778212vkb.4.1694760727685; Thu, 14 Sep 2023 23:52:07 -0700 (PDT) In-Reply-To: <83a5tokmsv.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::92e; envelope-from=yurivkhan@gmail.com; helo=mail-ua1-x92e.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:310590 Archived-At: On Fri, 15 Sept 2023 at 12:51, Eli Zaretskii wrote: > One of the important aspects to keep in mind in this regard is that > Emacs must give Lisp programs dynamic control of how stuff is > displayed, and should be able to exercise that control at high > frequency (a trivial example: pulse.el). In CSS, this is solved in core with transitions. A style specifies that a certain property will change gradually, provides its target value, the transition duration, and a transition curve. The styling engine does all the work about calculating the intermediate values and re-layouting each intermediate frame; the page author does not have to script carefully timed property changes, and is in fact discouraged from doing so because doing that in Javascript incurs CPU and battery usage overhead. The use case of pulse.el would be translated to a couple of styles that say effectively =E2=80=9CA pulsed span will instantly gain yellow background=E2=80=9D and =E2=80=9CA non-pulsed span will linearly revert to = whatever background it had over the course of 200 milliseconds=E2=80=9D and a small function that sets the span to pulsed and then immediately to non-pulsed. (Implementing a CSS engine over a character terminal is a nontrivial matter though.)