Mercurial > hg
annotate doc/Makefile @ 44386:8f7c6656ac79
rust-nodemap: pure Rust example
To run, use `cargo run --release --example nodemap`
This demonstrates that simple scenarios entirely written
in Rust can content themselves with `NodeTree<T>`.
The example mmaps both the nodemap file and the changelog index.
We had of course to include an implementation of `RevlogIndex`
directly, which isn't much at this stage. It felt a bit
prematurate to include it in the lib.
Here are some first performance measurements, obtained with
this example, on a clone of mozilla-central with 440000
changesets:
(create) Nodemap constructed in RAM in 153.638305ms
(query CAE63161B68962) found in 22.362us: Ok(Some(269489))
(bench) Did 3 queries in 36.418µs (mean 12.139µs)
(bench) Did 50 queries in 184.318µs (mean 3.686µs)
(bench) Did 100000 queries in 31.053461ms (mean 310ns)
To be fair, even between bench runs, results tend to depend whether
the file is still in kernel caches, and it's not so easy to
get back to a real cold start. The worst we've seen was in the
50us ballpark.
In any busy server setting, the pages would always be in RAM.
We hope it's good enough not to be significantly slower on any
concrete Mercurial operation than the C nodetree when fully in RAM,
and of course this implementation has the serious headstart advantage
of persistence.
Differential Revision: https://phab.mercurial-scm.org/D7797
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Tue, 18 Feb 2020 19:11:15 +0100 |
parents | 640bae94f2f3 |
children | eb9026a84e83 |
rev | line source |
---|---|
43736
640bae94f2f3
cleanup: update references to /help/ that should now be /helptext/
Augie Fackler <augie@google.com>
parents:
42058
diff
changeset
|
1 SOURCES=$(notdir $(wildcard ../mercurial/helptext/*.[0-9].txt)) |
671
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
465
diff
changeset
|
2 MAN=$(SOURCES:%.txt=%) |
efa4a7e2f322
Move hgrc documentation out to its own man page, hgrc(5).
Bryan O'Sullivan <bos@serpentine.com>
parents:
465
diff
changeset
|
3 HTML=$(SOURCES:%.txt=%.html) |
12921
6b6e7da9bccd
doc/Makefile: docs now also depend on extensions
Martin Geisler <mg@aragost.com>
parents:
12841
diff
changeset
|
4 GENDOC=gendoc.py ../mercurial/commands.py ../mercurial/help.py \ |
43736
640bae94f2f3
cleanup: update references to /help/ that should now be /helptext/
Augie Fackler <augie@google.com>
parents:
42058
diff
changeset
|
5 ../mercurial/helptext/*.txt ../hgext/*.py ../hgext/*/__init__.py |
2233 | 6 PREFIX=/usr/local |
4030
a48971ae1387
install man pages by default into $(PREFIX)/share/man not $(PREFIX)/man since the FHS puts them there
Jonathan Smith <https://issues.rpath.com/>
parents:
3908
diff
changeset
|
7 MANDIR=$(PREFIX)/share/man |
7686
fa584d23e3cc
Do not install executable man pages
Christian Ebert <blacktrash@gmx.net>
parents:
7660
diff
changeset
|
8 INSTALL=install -c -m 644 |
42058
ec7b478f1bf8
packaging: allow to run make with python3
Philippe Pepiot <philippe.pepiot@logilab.fr>
parents:
41850
diff
changeset
|
9 PYTHON?=python |
13054
25200c7efe0f
runrst: add RSTARGS Makefile variable to allow customization
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12921
diff
changeset
|
10 RSTARGS= |
465 | 11 |
19427
80983af366b5
doc: make i18n man and html
Takumi IINO <trot.thunder@gmail.com>
parents:
19426
diff
changeset
|
12 export HGENCODING=UTF-8 |
9971
fa99480d5135
doc/Makefile: ensure C locale
Martin Geisler <mg@lazybytes.net>
parents:
9703
diff
changeset
|
13 |
1006
b0e581438835
Generate html documentation by default, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
671
diff
changeset
|
14 all: man html |
465 | 15 |
16 man: $(MAN) | |
17 | |
18 html: $(HTML) | |
19 | |
41850
d80d48928eb1
setup: define build_doc command
Gregory Szorc <gregory.szorc@gmail.com>
parents:
34622
diff
changeset
|
20 # This logic is duplicated in setup.py:hgbuilddoc() |
19426
e43184680461
doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com>
parents:
19425
diff
changeset
|
21 common.txt $(SOURCES) $(SOURCES:%.txt=%.gendoc.txt): $(GENDOC) |
34622
b584ed1b225d
build: make install in "/doc" failed if the destination dir contained spaces
muxator <a.mux@inwind.it>
parents:
19427
diff
changeset
|
22 ${PYTHON} gendoc.py "$(basename $@)" > $@.tmp |
9444
2f7f6e43d52b
doc/Makefile: do not create files in case of errors
Martin Geisler <mg@lazybytes.net>
parents:
9422
diff
changeset
|
23 mv $@.tmp $@ |
1814
7956893e8458
generate hg manpage from commands.py docstring
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1689
diff
changeset
|
24 |
19426
e43184680461
doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com>
parents:
19425
diff
changeset
|
25 %: %.txt %.gendoc.txt common.txt |
13054
25200c7efe0f
runrst: add RSTARGS Makefile variable to allow customization
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12921
diff
changeset
|
26 $(PYTHON) runrst hgmanpage $(RSTARGS) --halt warning \ |
9445
f0105f2c424c
doc/Makefile: make rst2html and rst2man halt on warnings
Martin Geisler <mg@lazybytes.net>
parents:
9444
diff
changeset
|
27 --strip-elements-with-class htmlonly $*.txt $* |
465 | 28 |
19426
e43184680461
doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com>
parents:
19425
diff
changeset
|
29 %.html: %.txt %.gendoc.txt common.txt |
13054
25200c7efe0f
runrst: add RSTARGS Makefile variable to allow customization
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12921
diff
changeset
|
30 $(PYTHON) runrst html $(RSTARGS) --halt warning \ |
9626
d1aa5393bef4
doc: add a style sheet to the generated HTML pages
Martin Geisler <mg@lazybytes.net>
parents:
9445
diff
changeset
|
31 --link-stylesheet --stylesheet-path style.css $*.txt $*.html |
465 | 32 |
3872
9d7ac8613340
fix MANIFEST generation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3269
diff
changeset
|
33 MANIFEST: man html |
9401
2a5144687727
doc/Makefile: Don't show Makefile comments in output
Mads Kiilerich <mads@kiilerich.com>
parents:
9400
diff
changeset
|
34 # tracked files are already in the main MANIFEST |
3872
9d7ac8613340
fix MANIFEST generation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3269
diff
changeset
|
35 $(RM) $@ |
12841
5fbc2c38a98f
doc/Makefile: do not include hg.1.gendoc.txt in MANIFEST
Martin Geisler <mg@lazybytes.net>
parents:
12840
diff
changeset
|
36 for i in $(MAN) $(HTML); do \ |
3872
9d7ac8613340
fix MANIFEST generation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3269
diff
changeset
|
37 echo "doc/$$i" >> $@ ; \ |
9d7ac8613340
fix MANIFEST generation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3269
diff
changeset
|
38 done |
9d7ac8613340
fix MANIFEST generation
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3269
diff
changeset
|
39 |
2233 | 40 install: man |
41 for i in $(MAN) ; do \ | |
8822
1027da7d2fb9
doc: fix regexp for determining the man page section
Cédric Duval <cedricduval@free.fr>
parents:
8311
diff
changeset
|
42 subdir=`echo $$i | sed -n 's/^.*\.\([0-9]\)$$/man\1/p'` ; \ |
34622
b584ed1b225d
build: make install in "/doc" failed if the destination dir contained spaces
muxator <a.mux@inwind.it>
parents:
19427
diff
changeset
|
43 mkdir -p "$(DESTDIR)$(MANDIR)"/$$subdir ; \ |
b584ed1b225d
build: make install in "/doc" failed if the destination dir contained spaces
muxator <a.mux@inwind.it>
parents:
19427
diff
changeset
|
44 $(INSTALL) $$i "$(DESTDIR)$(MANDIR)"/$$subdir ; \ |
2233 | 45 done |
46 | |
465 | 47 clean: |
19426
e43184680461
doc: make man and html from translated documents
Takumi IINO <trot.thunder@gmail.com>
parents:
19425
diff
changeset
|
48 $(RM) $(MAN) $(HTML) common.txt $(SOURCES) $(SOURCES:%.txt=%.gendoc.txt) MANIFEST |