From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lynn Winebarger Newsgroups: gmane.emacs.devel Subject: Re: Regression in dump-emacs-portable Date: Thu, 23 Feb 2023 17:32:12 -0500 Message-ID: References: <96b742a05d8973cda0fd@heytings.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="30468"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel To: Gregory Heytings Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Thu Feb 23 23:33:23 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 1pVK9T-0007k1-FW for ged-emacs-devel@m.gmane-mx.org; Thu, 23 Feb 2023 23:33:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pVK8g-0001dW-KR; Thu, 23 Feb 2023 17:32:34 -0500 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 1pVK8d-0001VQ-Is for emacs-devel@gnu.org; Thu, 23 Feb 2023 17:32:32 -0500 Original-Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pVK8b-00028u-Eb for emacs-devel@gnu.org; Thu, 23 Feb 2023 17:32:31 -0500 Original-Received: by mail-pl1-x635.google.com with SMTP id q11so15093040plx.5 for ; Thu, 23 Feb 2023 14:32:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=iyCehdqt1Ks9J/M2h/9xecfxwpKZP3P5sdFyTAgqGZI=; b=RVqtt29NS/pWAhEa1BaJ9Nw9w4q30kmlCWuM/MyUim3CHtIl2B9wNbAG9tWn/2tsbP ajq4QPs1Csyjr1JThV0PAyAi7Nf3ZhYD2ZW+bi0zsl++hFatd2IbDTvZbkOeHeHDO9dK YlZAyexLTU+Xy5QUnDnXg3mHKJXMGLuH0E32Hc/wEEM73Piq09JvxAEwr1jKp3oq4DY5 cETTFa1d/WmI1b2DdilWWHMAVmeFbvck5SsBR7bQ1YeFRplZrLn04/ceNgR1e3aTvNDl jbz3Eo7ESFsHyZDYkz1m/aoRkX6VGEd7k7ehOpwM1/P7QTvW2Es5xEHUsq8724XJqd/Z uZKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=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=iyCehdqt1Ks9J/M2h/9xecfxwpKZP3P5sdFyTAgqGZI=; b=vzWoy8KKIdSpiViwvcu7lA+ZAOqfd4lkjQK5SO6GS1E5sg7aKzuRIX7E1shgu49QL1 ZMieQOdkxIoBI/lUy9MW+RG87A7AxFR5Xuv754OTwXXvZq8bp4uHLB44b5LD/uflzdgA mp9phCfHFyFpK34w3jDVbyu4wga/HvDfAfyD8UUTmp+oDm7XZ1xsjEmOKC8kYGVbskiL dTZ3mG/zg/oK6jCRQ/E/Jc4fvJltiPtnvlcJ2chfdf0/GEcceNAqU7ld812qvB8znifM e1nwntUbC0TTMz55b8fU86kSuGscf545Qn91PuI8Z1X7kKcvagaiw29iLVzRTG/Ewk9x 3IuA== X-Gm-Message-State: AO0yUKWI8mwVMOrMA/GjGym57K8j34gZzpvtQorLbFo97UiglPzfJm9t gSpufhuTNPbpyek8xc9E45CyWgSx9WpYZpqwhx5/tS1K X-Google-Smtp-Source: AK7set+8yJIcCbBBDw9U8+0USrZpmyqC/6YwMg0s68R5mgcjVOnVhGoQnC5ZqCluns8UcGOSaMc3p5Y0TKBjWggQWEI= X-Received: by 2002:a17:903:485:b0:19b:456:63e8 with SMTP id jj5-20020a170903048500b0019b045663e8mr2153928plb.6.1677191544472; Thu, 23 Feb 2023 14:32:24 -0800 (PST) In-Reply-To: <96b742a05d8973cda0fd@heytings.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::635; envelope-from=owinebar@gmail.com; helo=mail-pl1-x635.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:303724 Archived-At: On Thu, Feb 23, 2023 at 10:08 AM Gregory Heytings wrote: > > I mentioned redumping a maximal set of core emacs libraries under 28.2 > > in a recent thread. > > > > Just out of curiosity: what is the purpose of doing that? You already > mentioned several times that you are trying to create a "fully-loaded" > Emacs, with as many packages as possible in the dump file (IIUC), but > without explaining why (IIRC). I've been an emacs user for a pretty long time though with frequency depending on how much coding I happen to be doing in my leisure time. In my day job, I've been using other editors/IDEs. So while I enjoy pretending I am a grad student at MIT's AI labs on Symbolics LISP machines circa the mid-late 1980s, I am curious about the extent to which Emacs has the features of these other editors, In terms of technical design, VSCode is probably the closest, in terms of much of the interface being implemented in a dynamic language accessible to the user at run-time. V8 even provides a form of dumping, although I don't know that VSCode supports it for end-users. So, while I can appreciate the desire for a parsimonious build that can be run with limited resources, the competitor products regularly use 100-200MBs in a process and I see no reason to avoid processes using similar amounts of resources. I've also historically used the default settings of Emacs for the most part. But if I want to see how optional features provided by packages actually work, I want to be able to turn them on and off in an options-type menu the way I would in these other editors. Some libraries/packages provide customizations via autoload, but to really be sure you see all the knobs (and get some notion of what the functionality might be), the packages have to be loaded. Loading a bunch of libraries/packages (particularly packages) at startup can be slow. If you load 1000 packages plus emacs, that can easily take 2+ minutes to load. At 2000-2500 packages, 5 minutes is a fair expectation. When I was doing this with native-compiled modules, it was paradoxically even slower. Dump files, whether build-time dumps or redumps, are just much much faster to load. Plus, it's the closest thing emacs's garbage collector has to a compacting generational collection. Loading libraries creates plenty of garbage but also the longest-living objects in the system, so it makes the GC more efficient to ensure those objects are compacted. Ultimately, I think it would be fun to write support for a modular dump file format for more efficient library loading. But first, it makes sense to understand the functionality already available and measure its performance for benchmarking purposes. And encourage others to make use of those facilities, so they do not wither on the vine. Lynn