texmacs-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Texmacs-dev] Disastrous boot time for new versions


From: Nix N. Nix
Subject: Re: [Texmacs-dev] Disastrous boot time for new versions
Date: 05 Mar 2003 08:07:22 -0700

On Wed, 2003-03-05 at 01:32, Joris van der Hoeven wrote:

[...]

> > 
> > If I recall correctly there is a powerful technique to drastically
> > cut the startup time. It is (or was) used by TeX and Emacs and is sometimes
> > referred to as "unexec".
> > 
> > The idea is quite simple. During last stages of the build process the
> > program starts, loads in all the standard configuration information
> > (*.elc for Emacs, format file for TeX) and then dumps the memory in
> > ELF executable format.  This memory dump becomes the real executable
> > for the program.  Starting this new executable effectively bypasses
> > loading and processing of the startup scripts and config.files which
> > apparently dominated TeX or Emacs startup process.
> > 
> > There are two drawbacks here:
> > 1: portability might become an issue
> > 2: executable has now larger footprint (mute point by today's disk space 
> > standards)
> 
> Yes, this might be an interesting idea, but maybe not for now,
> since it is quite complicated to implement and I also fear that
> it will not always work. Indeed, the startup need not always to
> be identical; TeXmacs might for instance discover new plugins.

If any such methodology shall be implemented in the future, I think it
should be controlled by a ./configure switch.  The reason is that
TeXmacs /should/ be able to operate as it does now, IOW without having
to have the Scheme code pre-built.  That way, easy modification of the
Scheme bits is still possible.  One won't have to re-build TeXmacs in
order to test the effects of having a line uncommented somewhere.

Also, you might want to take into consideration my-init-buffer.scm and
my-init-texmacs.scm .  They cannot be optimized in the same way as the
system-wide Scheme code, but they are comparatively small, too (at least
mine are).

> 
> One thing I currently do have in mind is to postpone a lot of
> things which are done at boot time. For instance, there is no need
> to load the LaTeX<->TeXmacs and Html<->TeXmacs converters;
> this may be done when we actually need to do a conversion.

Why is it necessary to load any of the converters ?  Why is it necessary
to load, for example, tmtex ?  For saving, the file format the user has
selected is known before (texmacs-save-buffer ...) is called.  As a
result, the *save-buffer* functions could load the appropriate file and
only then call texmacs-save-buffer, which would not need any
modification.  The same thing is true for tmhtml, AFAIK.  This can be
implemented "right now", i.e., without any need for major restructuring.

[...]

Besides, I don't know about "disastrous".  It is noticeably longer, yes,
but, I mean, it's only done once.  TeXmacs is not nedit, i.e., "Wow,
that's a very cool quote ! Let me save that !" -> Run nedit -> Paste ->
Save As -> Close nedit.  In my experience, TeXmacs is up and running for
a while.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]