Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZtoY4-0008Qw-NU for pgsql-docs@arkaria.postgresql.org; Wed, 04 Nov 2015 03:15:45 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZtoY4-00036J-1h for pgsql-docs@arkaria.postgresql.org; Wed, 04 Nov 2015 03:15:44 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZtoY2-00031p-1U for pgsql-docs@postgresql.org; Wed, 04 Nov 2015 03:15:42 +0000 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1ZtoXy-0005Np-7R for pgsql-docs@postgresql.org; Wed, 04 Nov 2015 03:15:40 +0000 Received: by wmff134 with SMTP id f134so30695519wmf.0 for ; Tue, 03 Nov 2015 19:15:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bee.kz; s=beekz; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-type; bh=ZL9GGSiXESpidUG2bFRl8mHRiIRgbAjehV1B+0J6YYM=; b=V+4Lb8NSwq+PcTjhD6rtmdPkZxiurVVugVWYuladbEcqBznxPqO02h+NwBYY8pX+yf 9tvrRsfLTsytjZGA03+IPVqu67Sufh0aM8dQa+FVnnJgiYVEKUWwjF+SdJr9k1YoqBWM yFIBQ5KuNISKi0GicCHD6o/IG3IPME4/XcrZA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-type; bh=ZL9GGSiXESpidUG2bFRl8mHRiIRgbAjehV1B+0J6YYM=; b=CF4B2+kaf1gj9tgbDH04LreYpMeh3UB3GSrIFI8LRUC6jBI5cU9Xpgr8lFwTF+EJKH wYhCXbNBGOr/CphgCyI3srtIjKAoWkUWE0nkeONekbuA3xO4AaJ+WcEZBsY9KsHwUQOK mrthPjQBDLvMvBHDdeP+3CCZ5ELAIJeoj85asgrIK4ctTR4SgtLesDuoJPppe7rDNu9U toYibb9hWaoL3EcAXbgHdNtAA0/OFHAGpi8UjXYKnR/ud+HX/xpp+4cnE43UHCKNVaTG zxjzxz2iUAkcdJHiZU1D1auQ9Pha9fOk6Dghjv7ysd4eqb8KASOBIpO/VjFQc4KQBjns cNfQ== X-Gm-Message-State: ALoCoQlgzc3xqIbvtLbMg0tccmzCq3dNBntZNwFdiYatVLq7bMc59SG7HlgXUTr1nwL/zq8i1vJq X-Received: by 10.28.92.209 with SMTP id q200mr25264951wmb.52.1446606933650; Tue, 03 Nov 2015 19:15:33 -0800 (PST) MIME-Version: 1.0 References: <1428009501118.85114@postgrespro.ru> <5522E656.4060201@gmx.net> <562E061B.1090809@postgrespro.ru> In-Reply-To: From: Tair Sabirgaliev Date: Wed, 04 Nov 2015 03:15:23 +0000 Message-ID: Subject: Re: Moving documentation to XML To: Dmitry Igrishin , Oleg Bartunov Cc: Alexander Lakhin , Peter Eisentraut , Luzanov Pavel , "pgsql-docs@postgresql.org" Content-Type: multipart/alternative; boundary=001a1146ffb469008f0523ae6c8b X-Pg-Spam-Score: -1.8 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-docs Precedence: bulk Sender: pgsql-docs-owner@postgresql.org --001a1146ffb469008f0523ae6c8b Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Then there is asciidoc.. On =D0=A1=D1=80, 4 =D0=BD=D0=BE=D1=8F=D0=B1. 2015 =D0=B3. at 2:11 Dmitry Ig= rishin wrote: > 2015-11-03 20:46 GMT+03:00 Oleg Bartunov : > >> >> >> On Mon, Oct 26, 2015 at 11:53 AM, Alexander Lakhin < >> a.lakhin@postgrespro.ru> wrote: >> >>> Hello, Peter. >>> >>> I've managed to speed up html generation from xml (make xslthtml) from >>> 32 min. (in my environment) to 4 min. by modifying slowest XSL template= s. >>> All my modifications incorporated in a single file >>> stylesheet-xhtml-speedup.xsl, which is included in stylesheet.xsl. >>> I performed optimization by analyzing output of: >>> xsltproc --profile --stringparam pg.version '9.6devel' stylesheet.xsl >>> postgres.xml >>> Initial statistics: >>> number match name mode Calls Tot 100u= s >>> Avg >>> >>> 0 appendix label.markup >>> 23090 90677526 3927 >>> 1 chapter label.markup >>> 28870 39740757 1376 >>> 2 chunk-all-sections 1289 23845066 18498 >>> 3 make.legalnotice.head.links >>> 2578 9630258 3735 >>> 4 indexterm reference 2579 4126513 1600 >>> 5 html.head 1289 3112534 2414 >>> ... >>> index % time self children called name >>> 0.479 1326.034 22/23090 toc.line [61] >>> 5.128 1308.245 21944/23090 sect1[label.markup] [13] >>> 3.772 1318.264 850/23090 substitute-markup [15] >>> 1.355 1304.631 274/23090 >>> figure|table|example[label.markup] [32] >>> [0] 47.95 906.775 1.613 23090 appendix[label.markup] [0] >>> 1.613 0.000 23090/23090 autolabel.format [29] >>> ----------------------------------------------- >>> 5.128 1308.245 24708/28870 sect1[label.markup] [13] >>> 0.479 1326.034 130/28870 toc.line [61] >>> 3.772 1318.264 2112/28870 substitute-markup [15] >>> 1.355 1304.631 1920/28870 >>> figure|table|example[label.markup] [32] >>> [1] 21.01 397.408 1.613 28870 chapter[label.markup] [1] >>> 1.613 0.000 28870/28870 autolabel.format [29] >>> ----------------------------------------------- >>> 0.164 238.606 1289/1289 process-chunk-element [98] >>> [2] 12.61 238.451 0.225 1289 chunk-all-sections [2] >>> 0.225 7.117 1289/1289 process-chunk [86] >>> ----------------------------------------------- >>> 31.125 112.261 1289/2578 html.head [5] >>> 96.303 96.726 1289/2578 make.legalnotice.head.links >>> [3] >>> [3] 5.09 96.303 96.726 2578 make.legalnotice.head.links [3] >>> 96.303 96.726 1289/3867 make.legalnotice.head.links >>> [3] >>> 0.339 0.494 1289/3867 >>> *[object.title.markup.textonly] [69] >>> 0.085 0.781 1289/3867 ln.or.rh.filename [116] >>> >>> ----------------------------------------------- >>> >>> >>> Currrent statistics: >>> number match name mode Calls Tot 100u= s >>> Avg >>> >>> 0 chunk-all-sections 1289 5405958 4193 >>> 1 make.legalnotice.head.links >>> 1289 3159538 >>> 2451 >>> 2 html.head 1289 3068417 2380 >>> 3 gentext.template 689835 2327761 3 >>> 4 l10n.language 564453 1455253 2 >>> 5 href.target 29881 1344063 44 >>> --- >>> index % time self children called name >>> 0.136 54.207 1289/1289 process-chunk-element [95] >>> [0] 20.40 54.060 0.312 1289 chunk-all-sections [0] >>> 0.312 6.468 1289/1289 process-chunk [67] >>> ----------------------------------------------- >>> 30.684 45.458 1289/1289 html.head [2] >>> [1] 11.92 31.595 0.448 1289 make.legalnotice.head.links [1] >>> 0.290 0.403 1289/2578 >>> *[object.title.markup.textonly] [71] >>> 0.159 0.828 1289/2578 ln.or.rh.filename [91] >>> ----------------------------------------------- >>> 0.330 31.617 1289/1289 chunk-element-content [65] >>> [2] 11.58 30.684 45.458 1289 html.head [2] >>> 31.595 0.448 1289/15462 make.legalnotice.head.links >>> [1] >>> 13.441 4.726 5153/15462 href.target [5] >>> 0.290 0.403 5153/15462 >>> *[object.title.markup.textonly] [71] >>> 0.115 1.576 1289/15462 head.content [99] >>> 0.012 0.000 1289/15462 system.head.content [186] >>> 0.006 0.000 1289/15462 user.head.content [228] >>> >>> To make sure that result of the transformation is the same, I've >>> compared original .html's with .html's generated with modified template= s. >>> Unfortunately xslt generates random id's, so it's needed to exclude the= m >>> before comparing. I do that with: >>> for f in */*.html; do sed -e >>> 's/id=3D\"\(ftn\.\)\?id[a-z][0-9]\+\"/id=3D\"id\"/g' -i $f ; sed -e >>> 's/href=3D\"[^#]*#\(ftn\.\)\?id[a-z][0-9]\+\"/href=3D\"#\"/g' -i $f; do= ne >>> >>> >>> So if it's acceptable way to speed up generation of HTML (and maybe som= e >>> other formats), what other steps should we take to move away from SGML? >>> If the performance is still not satisfying, please let me know, I'll >>> continue to optimize xslt. >>> Beside performance issues, I can see some difference in results of 'mak= e >>> html' and 'make xslthtml'. For example, see doc/src/sgml/html/spi.html >>> (xslt-generated version doesn't contain the lists of functions). >>> >>> Best regards, >>> Alexander >> >> >> I think this is great result and it's worth to start moving to xml. >> > I think that moving to XML is step backward, because XML is ugly. > >> I want to note, that it's 21-th century and we should think about >> including pictures into our documentation, which will greatly improve it= . >> > Yeah, +1. > >> XML makes this easier. >> > And I think that Lisp is much better for this puprose. > > -- > // Dmitry. > > --001a1146ffb469008f0523ae6c8b Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Then there is asciidoc..
On = =D0=A1=D1=80, 4 =D0=BD=D0=BE=D1=8F=D0=B1. 2015 =D0=B3. at 2:11 Dmitry Igris= hin <dmitigr@gmail.com> wrot= e:
2015-11-03 20:46 GMT+03:00 Oleg Bart= unov <obartunov@gmail.com>:


On Mon, Oct 26, 2015 at 11:53 AM, Alexander Lakhin <a.lakhin@postgrespro.ru> wrote:
Hello, Peter.

I've managed to speed up html generation from xml (make xslthtml) from = 32 min. (in my environment) to 4 min. by modifying slowest XSL templates. All my modifications incorporated in a single file stylesheet-xhtml-speedup= .xsl, which is included in stylesheet.xsl.
I performed optimization by analyzing output of:
xsltproc --profile --stringparam pg.version '9.6devel' stylesheet.x= sl postgres.xml
Initial statistics:
number=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0match=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name=C2=A0 =C2=A0 =C2=A0 m= ode Calls Tot 100us Avg

=C2=A0 =C2=A0 0=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0appendix lab= el.markup
23090 90677526=C2=A0 =C2=A03927
=C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 chapter lab= el.markup
28870 39740757=C2=A0 =C2=A01376
=C2=A0 =C2=A0 2 chunk-all-sections=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A01289 23845066=C2=A0 18498
=C2=A0 =C2=A0 3=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0make.legalnotice.head.links
2578 9630258=C2=A0 =C2=A03735
=C2=A0 =C2=A0 4=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 indexterm referenc= e=C2=A0 =C2=A02579 4126513=C2=A0 =C2=A01600
=C2=A0 =C2=A0 5 html.head=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A012= 89 3112534=C2=A0 =C2=A02414
...
index % time=C2=A0 =C2=A0 self=C2=A0 children=C2=A0 =C2=A0 called=C2=A0 =C2= =A0 =C2=A0name
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.479 1326.034=C2= =A0 =C2=A0 =C2=A022/23090=C2=A0 =C2=A0 =C2=A0toc.line [61]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 5.128 1308.245=C2= =A0 21944/23090 sect1[label.markup] [13]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 3.772 1318.264=C2= =A0 =C2=A0 850/23090 substitute-markup [15]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1.355 1304.631=C2= =A0 =C2=A0 274/23090 figure|table|example[label.markup] [32]
[0]=C2=A0 =C2=A0 47.95=C2=A0 906.775=C2=A0 =C2=A0 1.613=C2=A0 23090 appendi= x[label.markup] [0]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1.613=C2=A0 =C2=A0 = 0.000=C2=A0 23090/23090 autolabel.format [29]
-----------------------------------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 5.128 1308.245=C2= =A0 24708/28870 sect1[label.markup] [13]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.479 1326.034=C2= =A0 =C2=A0 130/28870=C2=A0 =C2=A0 =C2=A0toc.line [61]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 3.772 1318.264=C2= =A0 =C2=A02112/28870 substitute-markup [15]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1.355 1304.631=C2= =A0 =C2=A01920/28870 figure|table|example[label.markup] [32]
[1]=C2=A0 =C2=A0 21.01=C2=A0 397.408=C2=A0 =C2=A0 1.613=C2=A0 28870 chapter= [label.markup] [1]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1.613=C2=A0 =C2=A0 = 0.000=C2=A0 28870/28870 autolabel.format [29]
-----------------------------------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.164=C2=A0 238.606= =C2=A0 =C2=A01289/1289 process-chunk-element [98]
[2]=C2=A0 =C2=A0 12.61=C2=A0 238.451=C2=A0 =C2=A0 0.225=C2=A0 =C2=A01289 ch= unk-all-sections [2]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.225=C2=A0 =C2=A0 = 7.117=C2=A0 =C2=A01289/1289 process-chunk [86]
-----------------------------------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A031.125=C2=A0 112.261= =C2=A0 =C2=A01289/2578=C2=A0 =C2=A0 =C2=A0 html.head [5]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A096.303=C2=A0 =C2=A09= 6.726=C2=A0 =C2=A01289/2578 make.legalnotice.head.links [3]
[3]=C2=A0 =C2=A0 =C2=A05.09=C2=A0 =C2=A096.303=C2=A0 =C2=A096.726=C2=A0 =C2= =A02578 make.legalnotice.head.links [3]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A096.303=C2=A0 =C2=A09= 6.726=C2=A0 =C2=A01289/3867 make.legalnotice.head.links [3]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.339=C2=A0 =C2=A0 = 0.494=C2=A0 =C2=A01289/3867 *[object.title.markup.textonly] [69]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.085=C2=A0 =C2=A0 = 0.781=C2=A0 =C2=A01289/3867 ln.or.rh.filename [116]

-----------------------------------------------


Currrent statistics:
number=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0match=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 name=C2=A0 =C2=A0 =C2=A0 m= ode Calls Tot 100us Avg

=C2=A0 =C2=A0 0 chunk-all-sections=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A01289 5405958=C2=A0 =C2=A04193
=C2=A0 =C2=A0 1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0make.legalnotice.head.links
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A01289 3159538= =C2=A0 =C2=A02451
=C2=A0 =C2=A0 2 html.head=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A012= 89 3068417=C2=A0 =C2=A02380
=C2=A0 =C2=A0 3=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0gentext.template 689835 2327761=C2=A0 =C2=A0= =C2=A0 3
=C2=A0 =C2=A0 4=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 l10n.language 564453 1455253=C2=A0 = =C2=A0 =C2=A0 2
=C2=A0 =C2=A0 5 href.target=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 29881 = 1344063=C2=A0 =C2=A0 =C2=A044
---
index % time=C2=A0 =C2=A0 self=C2=A0 children=C2=A0 =C2=A0 called=C2=A0 =C2= =A0 =C2=A0name
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.136=C2=A0 =C2=A05= 4.207=C2=A0 =C2=A01289/1289 process-chunk-element [95]
[0]=C2=A0 =C2=A0 20.40=C2=A0 =C2=A054.060=C2=A0 =C2=A0 0.312=C2=A0 =C2=A012= 89 chunk-all-sections [0]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.312=C2=A0 =C2=A0 = 6.468=C2=A0 =C2=A01289/1289 process-chunk [67]
-----------------------------------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A030.684=C2=A0 =C2=A04= 5.458=C2=A0 =C2=A01289/1289=C2=A0 =C2=A0 =C2=A0 html.head [2]
[1]=C2=A0 =C2=A0 11.92=C2=A0 =C2=A031.595=C2=A0 =C2=A0 0.448=C2=A0 =C2=A012= 89 make.legalnotice.head.links [1]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.290=C2=A0 =C2=A0 = 0.403=C2=A0 =C2=A01289/2578 *[object.title.markup.textonly] [71]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.159=C2=A0 =C2=A0 = 0.828=C2=A0 =C2=A01289/2578 ln.or.rh.filename [91]
-----------------------------------------------
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.330=C2=A0 =C2=A03= 1.617=C2=A0 =C2=A01289/1289 chunk-element-content [65]
[2]=C2=A0 =C2=A0 11.58=C2=A0 =C2=A030.684=C2=A0 =C2=A045.458=C2=A0 =C2=A012= 89=C2=A0 =C2=A0 =C2=A0html.head [2]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A031.595=C2=A0 =C2=A0 = 0.448=C2=A0 =C2=A01289/15462 make.legalnotice.head.links [1]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A013.441=C2=A0 =C2=A0 = 4.726=C2=A0 =C2=A05153/15462 href.target [5]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.290=C2=A0 =C2=A0 = 0.403=C2=A0 =C2=A05153/15462 *[object.title.markup.textonly] [71]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.115=C2=A0 =C2=A0 = 1.576=C2=A0 =C2=A01289/15462 head.content [99]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.012=C2=A0 =C2=A0 = 0.000=C2=A0 =C2=A01289/15462 system.head.content [186]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0.006=C2=A0 =C2=A0 = 0.000=C2=A0 =C2=A01289/15462 user.head.content [228]

To make sure that result of the transformation is the same, I've compar= ed original .html's with .html's generated with modified templates.=
Unfortunately xslt generates random id's, so it's needed to exclude= them before comparing. I do that with:
for f in */*.html; do sed -e 's/id=3D\"\(ftn\.\)\?id[a-z][0-9]\+\&= quot;/id=3D\"id\"/g' -i $f ; sed -e 's/href=3D\"[^#]= *#\(ftn\.\)\?id[a-z][0-9]\+\"/href=3D\"#\"/g' -i $f; don= e


So if it's acceptable way to speed up generation of HTML (and maybe som= e other formats), what other steps should we take to move away from SGML? If the performance is still not satisfying, please let me know, I'll co= ntinue to optimize xslt.
Beside performance issues, I can see some difference in results of 'mak= e html' and 'make xslthtml'. For example, see doc/src/sgml/html= /spi.html (xslt-generated version doesn't contain the lists of function= s).

Best regards,
Alexander

I think this is great= result=C2=A0 and it's worth to start moving to xml.
=
I think that moving to XML is step ba= ckward, because XML is ugly.
=
I want to note, that it's 21-th century=C2=A0 and we should think = about including pictures into our documentation, which will greatly improve= it.
Yeah, +1.
=
=
XML makes this easier.
And I think that Lisp is much better for this =C2= =A0puprose.

--
// = Dmitry.

--001a1146ffb469008f0523ae6c8b--