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 Date: Mon, 18 Sep 2023 21:48:49 +0300 Message-ID: <007486bc-80d5-82b7-f274-71e8c291bdc9@gutov.dev> References: <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> <43d642a8-d1b4-05ed-41e0-6e52d22df2d4@gutov.dev> <83edizjn0v.fsf@gnu.org> <0518f65b-1dd1-6923-8497-da4d3aeac631@gutov.dev> <1cff05f8-df80-b776-5175-dd27a6e59799@gutov.dev> <87wmwqiax9.fsf@whxvd.name> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4225"; 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: =?UTF-8?Q?Gerd_M=c3=b6llmann?= , Eli Zaretskii , yuri.v.khan@gmail.com, owinebar@gmail.com, rms@gnu.org, emacs-devel@gnu.org To: Sebastian Miele Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Sep 18 20:49:48 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 1qiJJb-0000s8-Qx for ged-emacs-devel@m.gmane-mx.org; Mon, 18 Sep 2023 20:49:48 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qiJIq-0004BZ-97; Mon, 18 Sep 2023 14:49:00 -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 1qiJIn-00049j-Bt for emacs-devel@gnu.org; Mon, 18 Sep 2023 14:48:57 -0400 Original-Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qiJIl-0004HT-D1; Mon, 18 Sep 2023 14:48:57 -0400 Original-Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 25A655C0075; Mon, 18 Sep 2023 14:48:54 -0400 (EDT) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Mon, 18 Sep 2023 14:48:54 -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= 1695062934; x=1695149334; bh=NjDCN7ypJfFLvowpnFlincWlEaKnVBfi4Vb 2v5KPV2A=; b=nmcqOddkR/3Rz6gsVlTgO8haaONCl8iMWJTfpT6pE0ZOk1zI/nF GISkaPJC/JKzJUBCDI5tjsIB4ElVXYQ+GDDFvMAPm51NgCp97j5twIdMFXSPGxZz LKNqRxXJfQHhwRxLuWsg2WM+xsKgt646vVJHRkTgryAuLY44w0MVn+2TDMbFuy+Y d6irpO+e9cu9fU9V8ccJ6o93yGH9P3qOWsPLVvZ804iZ+1cQEpjgKtwqHrUM8hmc i8MUjEtpS/5b3EUUIst3rQ7R+oQdtePvvJoujrEodRXIprdj2VWZzEmjZT0fu8u7 gLrjTTOo54Ky9tZT+c/cTkI0VCcOpxafSIg== 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= 1695062934; x=1695149334; bh=NjDCN7ypJfFLvowpnFlincWlEaKnVBfi4Vb 2v5KPV2A=; b=Q/7ThIePWRuVssig4Zma2sv8HEIrbpByjvjhJaUfev2Y/8J8nGf 67ign6ucaKmZZWallXXufVo3FSrF7mEgxL1LQ0+SK0OhwtABsHdC/az/Vs1OCcBZ 2D1IGcYVYeto3eNItJOFGNLUPvHwWeqfsx6GYCx/UL23boHN64J6g56nvxyBaJ49 NT88J1wPGTaISJJ4mI7Zl2wkEpHN5UTTHJVIwatmFzFXlgC2oQe4NeTItQ0ZS2Fx yCB2tH+j/Qv/fhAgOTFn+Q5CsDcm7GfdCaiz6yLBIv9dd3fcr6pkJRgsadDP22Ne 8HJaDsFtkORsI8d7PRjehxmy1L+DawB5ExQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejkedguddvlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthekredttdefjeenucfhrhhomhepffhm ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg htthgvrhhnpeeuffevieffuefggfevjedvgeetuefhudfgheelleefjedtleettefhtdei gedvudenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluhhsthgvrhfuihiivg eptdenucfrrghrrghmpehmrghilhhfrhhomhepughmihhtrhihsehguhhtohhvrdguvghv X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 18 Sep 2023 14:48:51 -0400 (EDT) Content-Language: en-US In-Reply-To: <87wmwqiax9.fsf@whxvd.name> Received-SPF: pass client-ip=66.111.4.27; envelope-from=dmitry@gutov.dev; helo=out3-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:310716 Archived-At: On 16/09/2023 14:59, Sebastian Miele wrote: >> From: Dmitry Gutov >> Date: Sat, 2023-09-16 14:02 +0300 >> >> On 16/09/2023 11:41, Gerd Möllmann wrote: >>> Dmitry Gutov writes: >>> >>>> Microsoft also has a project that could be tried as a base (MIT >>>> Licensed):https://github.com/microsoft/vscode-webview-ui-toolkit. Or >>>> one could just use its internals for inspiration, because "Visual >>>> Studio Code design language" is probably not one of our goals. >>> Looks like Javascript/Typescript to me? >> >> Yep. But any attempt to reuse an existing browser engine would likely >> have to deal with JavaScript on some level, I think. > > In the foreseeable future, probably not. I do not know the details. > But there is WebAssembly. In order to access the DOM and possibly other > browser API, at least a few months ago, it was still necessary to > somehow go through JS. But it is very unlikely that that will not > change in a not too distant future. There are many developements going > on in that area that (will) make implementing further languages on top > of WebAssembly easier and the languages and APIs interoperable with less > and less overhead, and more and more common management (including GC). > I have only a very superficial view. But in the last months I gained > the impression, that WebAssembly and standards and stuff around it > probably will become a very versatile and interoperable VM > infrastracture, including "WebAssamble-native" APIs to almost anything. Wasm or JS, with this approach it seems like we'd need to compile Lisp to JS/WA, or use FFI, or (probably) both. None of this is a deal-breaker for an experimental port/GUI, but it definitely doesn't make it a weekend project. > What may be interesting in that direction, too, are experimental browser > engines like Servo. In the last months I read somewhere (and by people > contributing to it) that Servo more or less explicitly has the aim to > allow to take/use only parts of it, and to have as clear and > approachable source code as possible. A next generation Emacs probably > would not need or even want all that a web browser has to support. It > could concentrate on a subset of web-stuff that already is known to work > very well and efficiently. Looking at these, it doesn't sound like it's easy to replace the current JS engine (Firefox's SpiderMonkey) with something else. Although to make it run Lisp would be pretty cool. https://github.com/servo/servo/discussions/29100 https://github.com/servo/servo/discussions/25419 The comments in the latter led me to this, though: https://github.com/fschutt/azul (Rust desktop GUI framework based on WebRender with no JavaScript involved, looks like).