From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Arthur Miller Newsgroups: gmane.emacs.devel Subject: Re: Shrinking the C core Date: Mon, 28 Aug 2023 07:50:25 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22390"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Cc: emacs-devel@gnu.org To: Richard Stallman Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 28 12:54:55 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 1qaZtV-0005U0-3s for ged-emacs-devel@m.gmane-mx.org; Mon, 28 Aug 2023 12:54:54 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qaZsm-0007kR-Co; Mon, 28 Aug 2023 06:54:08 -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 1qaV90-0005b9-U4 for emacs-devel@gnu.org; Mon, 28 Aug 2023 01:50:35 -0400 Original-Received: from mail-vi1eur04olkn2086.outbound.protection.outlook.com ([40.92.75.86] helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qaV8x-0002lj-B7; Mon, 28 Aug 2023 01:50:34 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aHjgzsvW2QrS7mtTkaYYWqYfRS3vuff/jS3sfOJz0mCHjqEftZ3OAbAVz7+kx0Fl9tviDshxhcZjHaHQz2oGz9OIBmlvUIOcVuJupMYizHFES8oOTluh6J2TJaoA6SbzuUWU5ut9oXdYXlpvGJI4B6eCmaITQw5QWKLGz1zw6VK+U+fP4tEX5Dy1vyVRMwiWX4x8+F2+NuFyoDwicRjjhES6qySIXE6o3hhaFfUHjnz40N3u+5QaoNOJHZJZe1bXe97DXnayzsqyc1bT5iHb+JNIQdaHUSbzXLgwRMUhOZwpBcBszRqxI+FXSCgCnJFSXq9bbhnP4DOCObgOJS1CYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=h1IXEG75IwRQ5yhdEzdviMwlo2JMwJddiCQk44s50TQ=; b=TwvIInPSwpIjBz9kB/tLykhNnwStNdY6cftDTtIDPdws4F0eQrKkhkSa91tmMxZ/zy7Ovzu+UrmNSBSBqHy3xxuy1VRmzgB01Cl2lMvi72KjvHw0SHHfyHkPJxeaRmF+hQ1bnCm+gP0fSXM3DnO+HLg901LKzf8fi+ucMO6WOskTaDIkYolXpJCzn+v1mT8lD5SNVhXnhUE44WY9VdpwUE1Esfb1OBqHBUQsWNA3ekfHODjtFjf4ydg9NzTCVjCFyKwCNqO+cYO8bxuQaZcsBiNslc8HKWYoUbIVIi1AdNds4JpmzaHmD9MtAoWm4yO9uOMBli3/pUvkP3QghLSsVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=live.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h1IXEG75IwRQ5yhdEzdviMwlo2JMwJddiCQk44s50TQ=; b=oyQ85WP3iK9n2tX7HVZ0bdY7BYTuXnov4l/Qqp+gJ28Csd+KE62+YSoSP5jweRliFaYQo9IgsYN6Mn+UoXecRjk3/sHpsH5GgpPnoen+4xFzzOH9AHqIXXCllkD52bOkmDyhUzNYEzW2tmm3DUtAe6WZkfNFfL/fV/b2yevVAJqBOu1NmH0+cq8akjJ0eU2u7Cn4bx4fL54wL0wwJTrfDblVx1UQyycf0ddgYr0QK2OxhrtUEfic882SQHbemS+SfvySzng57Pe2OyznfxIWKc9gKVNjnP/w1Vhy092Gq3yUXqN2EpM5o3AMv4fBech5l7swe23A5OT6uDoZzo6O/Q== Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) by DBBPR09MB4620.eurprd09.prod.outlook.com (2603:10a6:10:202::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Mon, 28 Aug 2023 05:50:27 +0000 Original-Received: from AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::df56:b1b1:64b1:6122]) by AM9PR09MB4977.eurprd09.prod.outlook.com ([fe80::df56:b1b1:64b1:6122%7]) with mapi id 15.20.6699.034; Mon, 28 Aug 2023 05:50:27 +0000 In-Reply-To: (Richard Stallman's message of "Sun, 27 Aug 2023 21:31:33 -0400") X-TMN: [KKUdDbXBAdhgdQwsPt2pbY6+PWWQOQ+/PcdsHj9QA1o=] X-ClientProxiedBy: MM0P280CA0106.SWEP280.PROD.OUTLOOK.COM (2603:10a6:190:9::25) To AM9PR09MB4977.eurprd09.prod.outlook.com (2603:10a6:20b:304::20) X-Microsoft-Original-Message-ID: <87il8ziula.fsf@live.com> X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR09MB4977:EE_|DBBPR09MB4620:EE_ X-MS-Office365-Filtering-Correlation-Id: 90bc43aa-8e0b-4aa9-a057-08dba78aadb6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: V93XUqB7/UTdG14jaZpePGcIhtkAssPzknQ4bQ1Q2+XA7bmFzeijBKygGUK/ZSfNLX+GdJd26/1X5VUcbB21Me2nOBAHGa/h0oYvG9AUeANJNx2FIK9oxQZXu8Y2l/2agJHEZxJU8MPJDOnEeodLe2Azq0iqlQuchhS4cJoH2W+0xRMvj1gKLy/hm78y8HMzhgaY8kxLP8JmUmy0zTfahuPexObAf6kJR/G0SF3MCptWyKjHxKNN9UeOOCzk0gPzqUuJcSt6G6iTmHZY34LhXqfqEnZWQGURILzVHVModiGZK1TOj7oleuAsw24rBiH0etc138wrGLg7b9/342QRkl8aqlejVjNJwjIkWFJrz611gKYLsv/RuZsLDACG0r+Z0RQtJCY6bJzgpqO+RIF/XS6USJL0fb4WCtkkpOWadKmVRdqynLtFKWOAK+uZi3kMySwwPZTWxMGWN/rVuxZ88aszX0AzeYtKlOU8VczFqaBO8tpXkz5h4cFAKdgqrF4e2O3m3INj639oUKqYM1iN9lux/IlxOza7ITehoChhlIr8DIns5SZ4c659CVd1f7KC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TmpycDwEKiQBVQ0gVpoWeMFlofBqUC1TqBEuQp3hA2ez3foYR/F3d1StP+Qk?= =?us-ascii?Q?f0BWt2m6mcAfVeTcZLvv8Ehtx9rhNgDSnoSOLDc6iDGSeQUIgWJKK6jCkHRH?= =?us-ascii?Q?6/NrpmtGYx7FyXaQJtPTrbGYnAtJ4Uza+vNcEQsP0QaJs74x+6UvIULd2XMv?= =?us-ascii?Q?GgHaqOf8IjP1SXjDzVobPCTttxuMPaTV4mSMEf1Kg6UdR/9NX5jyqwRcvYVP?= =?us-ascii?Q?2F74sYWSuElsrBmNuKktbIO4mvNtewiJjMVpf1ujP4+AxNXAGU4Ce9HsZMok?= =?us-ascii?Q?cM4cu5+HIQEPMj+sr0GUIB8Zf3nKDUYfYtesAMjhx3r8n1LHIL281yhBZkvB?= =?us-ascii?Q?Nd8fvGBlz8+rEdY9vmWbvnxKuKJ2/gB4D+72dMOrnmmhzlC9eFAbeHkqLoim?= =?us-ascii?Q?rSWJonMOIshcJ2BzYbC+NQGIf4ge7sXOYSHgGLyp83KI3Bk0dAIT8eTCoQzn?= =?us-ascii?Q?gZdM0xXk3p3WhiztmVKcv+wVlIXIYbhvljf8zgX7FCtm5k2CCj7jcHwguKL4?= =?us-ascii?Q?BLy/f5nuSlx1bxQfbchqc5X9J1IIRPqMxnN3rZd3sn0aZUlOkhj30TlPV3Of?= =?us-ascii?Q?/CKf1eBwyvOEbTbQ0L8gg+ZaDF5Gf0MWifLJGwP1p2QQLLqXCI8zPVvSgnYz?= =?us-ascii?Q?3m X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-64da6.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 90bc43aa-8e0b-4aa9-a057-08dba78aadb6 X-MS-Exchange-CrossTenant-AuthSource: AM9PR09MB4977.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2023 05:50:27.0900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR09MB4620 Received-SPF: pass client-ip=40.92.75.86; envelope-from=arthur.miller@live.com; helo=EUR04-VI1-obe.outbound.protection.outlook.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_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Mon, 28 Aug 2023 06:54:06 -0400 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:309414 Archived-At: Richard Stallman writes: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > It was designed for the time of single-core slow > > machine, and its design makes sense in that perspective. > > That is true. > > However, for > > todays multicore machines, the fact that a lisp machine is slapped on > > top of an existing text editor (Gosslings I guess), > > No, that's not how I developed it. > > I first wrote Emacs Lisp as a standalone Lisp interpreter. > Then I wrote the code to handle buffers and editing the text in them. Ah; I thought I remembered either from some of your articles or some of earlier disucssions that you obtained a copy of GE from a friend, and realized it needed a proper Lisp interpreter. Cool to hear a bit of history, thank you. > Turning to the question of future development, > I think the design of Emacs is good enough, > To rewrite Emacs completely would be an enormous misdirected effort. No, I don't suggest to rewrite entire Emacs. On contrary I am conservative about keeping Elisp as-is, as I said, it would be a waste of human effort to throw away 40 years of work. No, on the contrary, and that is why I suggested what I did, otherwise I would go to some greener editor and use that; if I didn't found all the old work important, so to say. I suggest to re-implement the Lisp API implemented in C, in Common Lisp. I understand that you didn't like Common Lisp back in the time because it was big and slow for the computers at that time; but nowadays things have changed. SBCL and CCL are two quite good compilers and would give access to more advanced Lisp Machines than what one in Emacs is, better garbage collector, native threading, namespaces, and so on. > GNU Emacs is a part of the GNU opersating system, > whose goal is to provide, in the Free World, all the features > that people want. Well, yes, I totally understand and agree. What I see from the interaction with the Emacs community on social media, or at least on Reddit where most of non-dev community seems to be, people want features that are not in Emacs. Those mentioned above come up quite often. But it is about more than just features. It is about the widening the community. Free world is bigger than just Emacs, as you seem to imply yourself. Lisp communities are small, I think it is a pitty that we can't natively use Common Lisp libraries. If we had Emacs implemented in Common Lisp, we would get access to lots more libraries and tools than what is in Elisp packages only. More eyes would be looking at Emacs too. If extension and implementation language were the same, than more people would potentially get enabled to contribute to Emacs. Of course, just having the core in a hackable Lisp language does not mean everyone *will* contribute or be able to contribute, but potentially, there might be one or another individual that would. It might encourage more experimentation and make it easier to test new ideas. The speed of Emacs development would potentially increase; developing in Lisp is much faster compared to hack, recompile, start Emacs cycle. Don't get me wrong, I don't mean hacking C is hard, impenetrable, undoable or so, I am just saying it could be smoother and faster. People also do ask for better tools that enable "programming at large" in Emacs. We do use Emacs for more than just editing text at least some of us; it has become an automation tool. People also seems to want to use Emacs and Emacs Lisp as a more general programming tool to solve other problems, not just to extend the text editor. I think it is a good thing. > With the same work it would take to rewrite Emacs from scratch, I see I have expressed myself exaggerated; I wrote the mail in just 3-4 minutes of fast typing; I should have probably explained myself better. I meant that certain parts of Emacs have to be re-designed from the scrath, things that prohibit multithreading, the shared state. It does not necessary mean, that I suggest to throw away entire Emacs and rewrite everything from scratch. > we could write some other complex and powerful free program > which does some other job -- a job that there is no free software to > do. Or we could improve Emacs and make it a powerful tool in another areas where it is not as used. For example, I think Emacs would be great as a teaching tool, I think I have said that before on this list. I see concept of buffers in Emacs Lisp, or rather to say, concept of editor implemented in the programming language as a really good and useful tool. I mean it. Common Lisp (probably some before it) has given us a repl as a mandatory tool in the language. Emacs Lisp shows us that an editor as part of the environment or language is as important as repl. I do miss edebug and seing the result in another buffer when stepping through when I program with sbcl. I wish Common Lisp had buffers and editor built-in. Implementing Emacs in Common Lisp, would in a way, merge those two, and perhaps Emacs could be used as another Processing or as a teaching tool where kids can learn programming by interactive development, have the environment avaialable for introspection, step through and see the results as they execute the code and similar. > Or we could add features -- to Emacs or some other free program -- which > would greatly extend what people can do in the Free World. > > Consider, for instance, the idea of extending a free spell checking > program so it could tell you the gender of each noun if you ask. > Going beyond that, maybe it could check for agreement of modifiers > with their nouns. That would be a big help for writing in many > Indo-European languages and Semitic languages. Perhaps also other > languages which have something grammatically like gender but not > based on gender of humans. I have no familiarity with spell-checking so I can't reflect on that one. I struggled to install Hunspell in my Emacs untill Zaretsky helped me some 10 years ago or so :). But what you suggest seems to me like you would need to find an expert for each language in question, which suggests rather social skills than programming skills. I am more for solving math problems after eveyone else is at sleep, so I can't help you with that one. > That would be a tiny fraction of the work that people are proposing > here. I think on contrary; I propose to switch Emacs to a different Lisp implementation so that devs here don't have to re-implement and maintain some important parts of the Lisp Machine if Emacs will get features lots of people seem to ask for. While what I suggest is a volumous work as well, it also save a lot of work elsewhere, and opens some other possibilities. By the way, a single threaded shared state does not thread itself just because it is transplanted over a multithreaded implementation :). Of course. But getting access to such platform enables people to use threads, while the implementation itself is tranformed, as well as buys other benefits as discussed above. Thanks for the kind answer, and I am hope I am not take wrong; I don't mean Emacs is bad, and certainly notthing wrong. Actually I am very fond of Emacs, I find it very useful tool, and would just like to see it ever better.