* how to build emacs without documentation?
@ 2013-08-11 14:27 Gregor Zattler
2013-08-13 15:52 ` Glenn Morris
0 siblings, 1 reply; 7+ messages in thread
From: Gregor Zattler @ 2013-08-11 14:27 UTC (permalink / raw)
To: help-gnu-emacs
Dear emacs users and developers,
how do I build emacs without building the documentation in the same
process?
Reason: I want to bisect the emacs commit history in order to find the
commit which introduced some regression. Building the info files, pdf
files etc every time is time consuming and not relevant to the
regression.
Ciao, Gregor
--
-... --- .-. . -.. ..--.. ...-.-
^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <mailman.3001.1376231269.12400.help-gnu-emacs@gnu.org>]
* Re: how to build emacs without documentation?
[not found] <mailman.3001.1376231269.12400.help-gnu-emacs@gnu.org>
@ 2013-08-13 14:51 ` Stefan Monnier
2013-08-13 15:26 ` Rustom Mody
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Stefan Monnier @ 2013-08-13 14:51 UTC (permalink / raw)
To: help-gnu-emacs
> Reason: I want to bisect the emacs commit history in order to find the
> commit which introduced some regression. Building the info files, pdf
> files etc every time is time consuming and not relevant to the
> regression.
The normal "make" does not build pdfs.
As for "info", well, that was pretty much immediate until Texinfo-5.0
came along. So you might like to downgrade to Texinfo-4.x to enjoy
a more normal speed.
I still have no idea how they managed to slow things down so much.
It feels like it's a good 100 times slower. Actual measurement will
probably show the slowdown factor to be smaller, but still the
difference is insane.
Stefan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: how to build emacs without documentation?
2013-08-13 14:51 ` Stefan Monnier
@ 2013-08-13 15:26 ` Rustom Mody
2013-08-13 16:32 ` Eli Zaretskii
[not found] ` <mailman.3136.1376411515.12400.help-gnu-emacs@gnu.org>
2 siblings, 0 replies; 7+ messages in thread
From: Rustom Mody @ 2013-08-13 15:26 UTC (permalink / raw)
To: help-gnu-emacs
On Tuesday, August 13, 2013 8:21:51 PM UTC+5:30, Stefan Monnier wrote:
> As for "info", well, that was pretty much immediate until Texinfo-5.0
> came along. So you might like to downgrade to Texinfo-4.x to enjoy
> a more normal speed.
>
> I still have no idea how they managed to slow things down so much.
> It feels like it's a good 100 times slower. Actual measurement will
> probably show the slowdown factor to be smaller, but still the
> difference is insane.
It seems to have switched from C to perl
http://www.gnu.org/software/texinfo/manual/texinfo/html_node/History.html#History
Reading Joel Spolsky http://www.joelonsoftware.com/articles/fog0000000069.html
would have been a good idea!
And perl?? In 2013?!?!
[BTW I bothered to look this up because of the nuisance that an orgmode build including git pull seems to take forever in the makeinfo phase ]
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: how to build emacs without documentation?
2013-08-13 14:51 ` Stefan Monnier
2013-08-13 15:26 ` Rustom Mody
@ 2013-08-13 16:32 ` Eli Zaretskii
[not found] ` <mailman.3136.1376411515.12400.help-gnu-emacs@gnu.org>
2 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2013-08-13 16:32 UTC (permalink / raw)
To: help-gnu-emacs
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Tue, 13 Aug 2013 10:51:51 -0400
>
> As for "info", well, that was pretty much immediate until Texinfo-5.0
> came along. So you might like to downgrade to Texinfo-4.x to enjoy
> a more normal speed.
I renamed the new makeinfo to makeinfo5, and keep the old v4.x one
under the name makeinfo.
> I still have no idea how they managed to slow things down so much.
Because they implemented makeinfo in Perl, and made it a real
translator, that builds an intermediate parse tree representation, and
then invokes an appropriate back-end to produce output. By contrast,
the original makeinfo was a one-pass converter which left most of the
text intact and just acted on the few directives, expanding them
in-line.
> It feels like it's a good 100 times slower. Actual measurement will
> probably show the slowdown factor to be smaller, but still the
> difference is insane.
The slowdown factor is around 18.
^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <mailman.3136.1376411515.12400.help-gnu-emacs@gnu.org>]
* Re: how to build emacs without documentation?
[not found] ` <mailman.3136.1376411515.12400.help-gnu-emacs@gnu.org>
@ 2013-08-14 16:49 ` Stefan Monnier
2013-08-14 17:56 ` Eli Zaretskii
0 siblings, 1 reply; 7+ messages in thread
From: Stefan Monnier @ 2013-08-14 16:49 UTC (permalink / raw)
To: help-gnu-emacs
> Because they implemented makeinfo in Perl, and made it a real
> translator, that builds an intermediate parse tree representation, and
> then invokes an appropriate back-end to produce output. By contrast,
> the original makeinfo was a one-pass converter which left most of the
> text intact and just acted on the few directives, expanding them
> in-line.
Still: parsing should be fairly trivial, and rendering to Info (almost
plain text) shouldn't be all that hard either. Yet, makeinfo is
significantly slower than running the same file through TeX to get
a beautiful PDF.
E.g. "cd doc/lispref; rm elisp.pdf; make pdf" took me 16s first time
(because it had to generate some auxiliary font data, apparently) and 4s
second time around.
In comparison, "rm info/elisp.info; time make info" says that it needed
57s to make up the elisp.info file. More than 10 times slower to do
a simpler job.
There must be either something I'm missing, or some serious performance
bug somewhere.
Stefan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: how to build emacs without documentation?
2013-08-14 16:49 ` Stefan Monnier
@ 2013-08-14 17:56 ` Eli Zaretskii
0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2013-08-14 17:56 UTC (permalink / raw)
To: help-gnu-emacs
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Date: Wed, 14 Aug 2013 12:49:09 -0400
>
> > Because they implemented makeinfo in Perl, and made it a real
> > translator, that builds an intermediate parse tree representation, and
> > then invokes an appropriate back-end to produce output. By contrast,
> > the original makeinfo was a one-pass converter which left most of the
> > text intact and just acted on the few directives, expanding them
> > in-line.
>
> Still: parsing should be fairly trivial, and rendering to Info (almost
> plain text) shouldn't be all that hard either.
You'd have to ask the author to have definitive response, but my guess
is that it is not trivial at all to parse Texinfo. The language was
never meant to be parsed, it basically is just a bunch of TeX macros,
i.e. it was meant to be macro-expanded, not parsed. And the old
makeinfo did exactly that: it _emulated_ macro expansion, it didn't
parse anything. And it did that inline, i.e. as it was scanning the
source.
> In comparison, "rm info/elisp.info; time make info" says that it needed
> 57s to make up the elisp.info file. More than 10 times slower to do
> a simpler job.
>
> There must be either something I'm missing, or some serious performance
> bug somewhere.
Look at the parser code, and I'm sure you will see it.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-08-14 17:56 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-11 14:27 how to build emacs without documentation? Gregor Zattler
2013-08-13 15:52 ` Glenn Morris
[not found] <mailman.3001.1376231269.12400.help-gnu-emacs@gnu.org>
2013-08-13 14:51 ` Stefan Monnier
2013-08-13 15:26 ` Rustom Mody
2013-08-13 16:32 ` Eli Zaretskii
[not found] ` <mailman.3136.1376411515.12400.help-gnu-emacs@gnu.org>
2013-08-14 16:49 ` Stefan Monnier
2013-08-14 17:56 ` Eli Zaretskii
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).