From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: Emacs design and architecture (was: Shrinking the C core) Date: Fri, 15 Sep 2023 00:35:12 +0300 Message-ID: <456d12ac-ecf4-3de4-56bb-a2440580777f@gutov.dev> 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> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12555"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Cc: rms@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii , Lynn Winebarger Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Sep 14 23:36: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 1qgu0d-00030y-5Q for ged-emacs-devel@m.gmane-mx.org; Thu, 14 Sep 2023 23:36:24 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qgtzu-0006XU-6j; Thu, 14 Sep 2023 17:35:38 -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 1qgtzl-0006Rf-H5 for emacs-devel@gnu.org; Thu, 14 Sep 2023 17:35:30 -0400 Original-Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qgtze-0002Go-Fc; Thu, 14 Sep 2023 17:35:24 -0400 Original-Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id DE095320089C; Thu, 14 Sep 2023 17:35:16 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Thu, 14 Sep 2023 17:35:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1694727316; x=1694813716; bh=iIIjCwAWP9g2T+Vi9YfACJMPC68DxF6lWjj wsi0aOsk=; b=CMs2pobgY6fLgHiIndAmL3vLt/g8ITZnxkK88M24e/wStTbhBJ1 GBK1Fb/vgA11oG5r+Fx3tQzZDJ4dEMeClVcLC4bG2Bs0pt+zwqlmdu0CTnrgVvV9 zQf+smyOo4K3bpuZAb0RMy/bPO3IcE7P0RrspuLGUdXZSfnkMDbbfnOk5FL7zKTu omm2sz2eZPhHeoAROsZq9DZivZC+AoadC41FFpc0JOhh5o2195JsOuDy782r5GqR OoICsm4XuQMNChyTmFXwgG7aakfXb0k5XPCgrmDWI8nZUqVgzg0BedwSlSfJeG96 at3jXEWKGVPbPRyPeKot7Y/gH6hWTUQYucg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1694727316; x=1694813716; bh=iIIjCwAWP9g2T+Vi9YfACJMPC68DxF6lWjj wsi0aOsk=; b=NjHm4w7Boel+LXTq7UzJUAtOn69DIS3OLGgu3cvmFEYrjUgonlE tMqFeuVZ1YVJAMKJaSNmMOoK5CEffa5aFh05ol6YlQlq9pqlaC8QINc8xutGStJO ar3xvb7P+0FPet1tk1LUgz50W7COcdVubNPilguxUAx0hp3LNVxVVKjvt4MWlRB+ ZMmLsozwA9FfvaLBWfzhxPN/SZffBaJ/vZ7oJ+l8T12rrHnE3eY8NmQy0RJ4urx7 uRLFdL3iXwrOjSdErEiR0uZEtPQKQ8DpR2ZBXJDvY/DdDBviS88iAtX8gnUmuv4u f1gAL4/Hth7Qdaj8QNPZt5YTmO+BmYHwxUQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejudcutefuodetggdotefrodftvfcurf hrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecuuegr ihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjug hrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomhepffhmihhtrhih ucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtthgvrh hnpeeigfetveehveevffehledtueekieeikeeufeegudfgfeeghfdulefgfeevledvveen ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhith hrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 14 Sep 2023 17:35:14 -0400 (EDT) Content-Language: en-US In-Reply-To: <83h6nwlmt4.fsf@gnu.org> Received-SPF: pass client-ip=64.147.123.25; envelope-from=dmitry@gutov.dev; helo=wout2-smtp.messagingengine.com 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, DKIM_VALID_EF=-0.1, NICE_REPLY_A=-1.473, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-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:310586 Archived-At: On 14/09/2023 19:52, Eli Zaretskii wrote: >> For the other, it sounds like you'd like to have more GUI primitive >> type operations available on the canvas directly, without having to >> use explicit GUI objects like child frames. > We cannot draw on the canvas directly without making the display > engine aware of what we are drawing and where, because the display > engine is responsible for updating the display when something changes. > So what we need is to be able to place a glyph using arbitrary 3D > coordinates (the 3rd coordinate for overlaying stuff on top of what's > already displayed), instead of having to work with rows of glyphs. > > Again, studying what others do in this area would be useful, I think. Perhaps the classic case is the Mozilla browser, which has from the beginning implemented its browser UI (chrome) using an HTML-like technology called XUL which also uses CSS and JavaScript for styling (colors, size, alignment, positioning) and scripting. Except XUL provided access to the platform widgets, graphical elements, menus, dialogs, etc. Still, it's like a web page for displaying web pages, in a sense. Not sure how relevant that is for Emacs: doing a wrapper for an OS toolkit is a lot of work.