Thread: 'make draft' and HTML.index

'make draft' and HTML.index

From
Alvaro Herrera
Date:
I just noticed that I can very quickly generate an up-to-date HTML.index
by commenting out normal HTML generation, i.e. patching html/docbook.dsl
thusly:

*** docbook.dsl.orig    2008-01-09 02:35:53.000000000 -0300
--- docbook.dsl 2008-01-09 02:35:12.000000000 -0300
***************
*** 102,110 ****
  ;(define (docelem node)
  ;  (node-propety 'document-element
  ;    (node-property 'grove-root node)))
!    (process-children)
!    (with-mode manifest
!      (process-children))
     (if html-index
         (with-mode htmlindex
         (process-children))
--- 102,110 ----
  ;(define (docelem node)
  ;  (node-propety 'document-element
  ;    (node-property 'grove-root node)))
! ;   (process-children)
! ;   (with-mode manifest
! ;     (process-children))
     (if html-index
         (with-mode htmlindex
         (process-children))

(Of course, this suppresses normal HTML output).

Currently, we generate HTML.index by running openjade in normal mode,
and then rerunning if we detect that the HTML.index file changed.  This
is a waste -- with patched docbook.dsl, it takes 8 seconds to generate
the index file on my system, whereas the regular openjade run takes
1:30.  So on a clean start it takes 3 minutes to generate the docs.

This could be reduced to 1:38 if we were to generate the HTML.index file
with a hack similar to the above, and then run openjade only once.
However, I have no idea if we can ship a .dsl file and convince openjade
to run with that instead of the normal docbook.dsl.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

Re: 'make draft' and HTML.index

From
Tom Lane
Date:
Alvaro Herrera <alvherre@commandprompt.com> writes:
> Currently, we generate HTML.index by running openjade in normal mode,
> and then rerunning if we detect that the HTML.index file changed.  This
> is a waste -- with patched docbook.dsl, it takes 8 seconds to generate
> the index file on my system, whereas the regular openjade run takes
> 1:30.  So on a clean start it takes 3 minutes to generate the docs.

There's another problem with the current technology for that, which is
that it not infrequently takes *three* iterations to converge, meaning
it's faster to "make clean all" than to try to use the existing state.
I have not looked into why, but certainly this isn't very satisfactory.

            regards, tom lane