Op 12/28/2020 om 4:03 PM schreef Andrey Sobol via lazarus:
Afaik most of the binary indexes (index, FTS) can be mergesorted
together rather cheaply and then stored on disk. Using these rather
than converting everything to text and then parse that again would
make it very fast. This is what HH does.
Even faster is caching the result of the merge on disk (which HH also
does, but only in case of "merged" chm files, which doesn't work with
FPC generated CHM files yet), these are then stored as CHW.
But to invalidate the cache, it should be stored which CHMs were used
to generate it. So that the cache can be invalided.
I'll look into the various fpdoc and chm stuff from tomorrow, when I
get home again
I agree with you that need to do a storing on disk or to produce CHW.
And I will do this later.
It is wise to bring this up early, because it might require changes to
the general Lazarus help system, since lhelp needs to get a list of
registered help files at once (so it can manage the combined index
together) rather than individually.
This is also the reason the CHM package does not support it yet, because it
Creating a new chm package additions also requires a lot of time.
True, but sometimes new is simply needed to not program yourself into
the corner
But now I have not any documentation on chm format, I have found
only dribs and drabs.
Search for "CHMSPEC", but there as many holes as bits that are
documented. Specially the process of folding the input data into the
datastructure is badly described. Actually the most complete bit is the
sources of the chm package and chmls/chmcmd.
The situation is such that the documentation seems an existing, but it
is very difficult to use for many reasons.
Actual version of lHelp has to work rightly and then I can do next
version. First start 1.5-2 sec I think it is well for loading entire
packet of chms and indexes.
As for the CHW bit, I would not try to make the saved index in CHW, just
in some own format. Increasing CHM compatibility is hard and difficult
work. The main missing problem is that for some unknown reason, hh.exe
doesn't FPC generated "merged" chms. Neither slave nor master chm.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus