From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: When should ralloc.c be used? (WAS: bug#24358) Date: Fri, 28 Oct 2016 09:55:08 +0300 Message-ID: <83vawdrmib.fsf@gnu.org> References: <87twe6sx2g.fsf@users.sourceforge.net> <87eg51ng4r.fsf_-_@users.sourceforge.net> <87k2djwumn.fsf@users.sourceforge.net> <83h98nidvd.fsf@gnu.org> <87eg3rvtsf.fsf@users.sourceforge.net> <83k2dihpm9.fsf@gnu.org> <8760p2wzgj.fsf@users.sourceforge.net> <838ttyhhzu.fsf@gnu.org> <871szqwu51.fsf@users.sourceforge.net> <831szqhbc2.fsf@gnu.org> <87d1itt79z.fsf_-_@users.sourceforge.net> <7baa18d4-2b09-caa8-005e-29008a383ad1@cs.ucla.edu> <83mvhwrgd5.fsf@gnu.org> <8539f38f-9a11-44c3-4de7-bb974c96206c@cs.ucla.edu> <83d1iq5ib1.fsf@gnu.org> <83r3753c8j.fsf@gnu.org> <83r374wh32.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1477637778 14957 195.159.176.226 (28 Oct 2016 06:56:18 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 28 Oct 2016 06:56:18 +0000 (UTC) Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org, npostavs@users.sourceforge.net To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 28 08:56:14 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c014u-0000Y1-67 for ged-emacs-devel@m.gmane.org; Fri, 28 Oct 2016 08:55:48 +0200 Original-Received: from localhost ([::1]:47013 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c014w-0006Hu-K0 for ged-emacs-devel@m.gmane.org; Fri, 28 Oct 2016 02:55:50 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:37660) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c014M-0006Hd-N0 for emacs-devel@gnu.org; Fri, 28 Oct 2016 02:55:15 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c014J-0002WG-Lo for emacs-devel@gnu.org; Fri, 28 Oct 2016 02:55:14 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:44678) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c014J-0002WA-IT; Fri, 28 Oct 2016 02:55:11 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3651 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1c014B-0000Fe-Qo; Fri, 28 Oct 2016 02:55:04 -0400 In-reply-to: (message from Richard Stallman on Thu, 27 Oct 2016 16:40:14 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 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.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208918 Archived-At: > From: Richard Stallman > CC: eliz@gnu.org, npostavs@users.sourceforge.net, emacs-devel@gnu.org > Date: Thu, 27 Oct 2016 16:40:14 -0400 > > > Eli has mentioned a simpler approach, where we build an .elc file when > > saving Emacs state and load the .elc file during normal startup. The > > main worry about this approach is performance. > > Any such scheme has this problem: > how to find all the places where initialization has stored some sort > of value? They do not all have ways to access them and set them from Lisp. The part that must be done in C, like DEFUN etc. will be done at startup of the Emacs session. The part that stores values in variables exposed to Lisp will be either moved to startup.el, or done at startup in C. A few variables whose value depends on the build directory and other stuff that is only known at build time will be recorded in a special Lisp file created by the build and loaded at startup as part of the .elc file described above. Btw, Paul's description about "saving state" in a .elc file is inaccurate: most of that file is just the preloaded Lisp packages, like simple.el, subr.el, etc. There's very little of saved state there, because that state will simple be created at startup, each time Emacs starts. In source terms, most of the "if (!initialized)" parts will be run each time Emacs starts. Does that answer your question?