summaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez@inria.fr>2016-05-09 17:01:54 +0200
committerDamien Doligez <damien.doligez@inria.fr>2016-05-09 17:03:36 +0200
commit393f068a1d4e0b267012b10aac822d11160a7cfd (patch)
tree27cf72a2b32103e6fd9ace570d069a9a4a3af94a /manual
parent2d33e164a6b636caa5207b765f427360ffb14778 (diff)
downloadocaml-393f068a1d4e0b267012b10aac822d11160a7cfd.tar.gz
GPR#564: missing stdlib modules in the manual
(Pierre Chambart, Damien Doligez)
Diffstat (limited to 'manual')
-rw-r--r--manual/manual/library/Makefile1
-rwxr-xr-xmanual/manual/library/check-stdlib-modules23
-rw-r--r--manual/manual/library/stdlib.etex22
3 files changed, 39 insertions, 7 deletions
diff --git a/manual/manual/library/Makefile b/manual/manual/library/Makefile
index de5b7ca753..959775e936 100644
--- a/manual/manual/library/Makefile
+++ b/manual/manual/library/Makefile
@@ -50,6 +50,7 @@ CSLDIR=$(RELEASEDIR)
VPATH=.:$(CSLDIR)/stdlib:$(CSLDIR)/parsing:$(CSLDIR)/otherlibs/unix:$(CSLDIR)/otherlibs/str:$(CSLDIR)/otherlibs/num:$(CSLDIR)/otherlibs/graph:$(CSLDIR)/otherlibs/threads:$(CSLDIR)/otherlibs/dynlink:$(CSLDIR)/otherlibs/bigarray
all: libs
+ ./check-stdlib-modules $(CSLDIR)
libs: $(FILES)
diff --git a/manual/manual/library/check-stdlib-modules b/manual/manual/library/check-stdlib-modules
new file mode 100755
index 0000000000..4782ee4a15
--- /dev/null
+++ b/manual/manual/library/check-stdlib-modules
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+TMPDIR="${TMPDIR:-/tmp}"
+
+(cd $1/stdlib; ls -1 *.mli) | sed -e 's/\.mli//' >$TMPDIR/stdlib-$$-files
+cut -c 1 $TMPDIR/stdlib-$$-files | tr a-z A-Z >$TMPDIR/stdlib-$$-initials
+cut -c 2- $TMPDIR/stdlib-$$-files \
+| paste -d '\0' $TMPDIR/stdlib-$$-initials - >$TMPDIR/stdlib-$$-modules
+
+exitcode=0
+for i in `cat $TMPDIR/stdlib-$$-modules`; do
+ case $i in
+ Camlinternal* | *Labels | Obj | Pervasives) continue;;
+ esac
+ grep -q -e '"'$i'" & p\.~\\pageref{'$i'} &' stdlib.etex || {
+ echo "Module $i is missing from stdlib.etex." >&2
+ exitcode=2
+ }
+done
+
+rm -f $TMPDIR/stdlib-$$-*
+
+exit $exitcode
diff --git a/manual/manual/library/stdlib.etex b/manual/manual/library/stdlib.etex
index e791feab59..de422e7954 100644
--- a/manual/manual/library/stdlib.etex
+++ b/manual/manual/library/stdlib.etex
@@ -33,27 +33,31 @@ Here is a short listing, by theme, of the standard library modules.
\subsubsection*{Data structures:}
\begin{tabular}{lll}
-"Char" & p.~\pageref{Char} & character operations \\
+% Beware: these entries must be written in a very rigidly-defined
+% format, or the check-stdlib-modules script will complain.
"String" & p.~\pageref{String} & string operations \\
"Bytes" & p.~\pageref{Bytes} & operations on byte sequences\\
"Array" & p.~\pageref{Array} & array operations \\
"List" & p.~\pageref{List} & list operations \\
-"StdLabels" &p.~\pageref{StdLabels} & labelized versions of
+"StdLabels" & p.~\pageref{StdLabels} & labelized versions of
the above 4 modules \\
-"Sort" & p.~\pageref{Sort} & sorting and merging lists \\
+"Char" & p.~\pageref{Char} & character operations \\
+"Uchar" & p.~\pageref{Uchar} & Unicode characters \\
+"Sort" & p.~\pageref{Sort} & (deprecated) \\
"Hashtbl" & p.~\pageref{Hashtbl} & hash tables and hash functions \\
"Random" & p.~\pageref{Random} & pseudo-random number generator \\
"Set" & p.~\pageref{Set} & sets over ordered types \\
"Map" & p.~\pageref{Map} & association tables over ordered types \\
-"MoreLabels" &p.~\pageref{MoreLabels} & labelized versions of
+"MoreLabels" & p.~\pageref{MoreLabels} & labelized versions of
"Hashtbl", "Set", and "Map" \\
"Oo" & p.~\pageref{Oo} & useful functions on objects \\
"Stack" & p.~\pageref{Stack} & last-in first-out stacks \\
"Queue" & p.~\pageref{Queue} & first-in first-out queues \\
"Buffer" & p.~\pageref{Buffer} & buffers that grow on demand \\
-"Lazy" & p.~\pageref{Lazy} & delayed evaluation \\
+"Lazy" & p.~\pageref{Lazy} & delayed evaluation \\
"Weak" & p.~\pageref{Weak} & references that don't prevent objects
-from being garbage-collected
+from being garbage-collected \\
+"Ephemeron" & p.~\pageref{Ephemeron} & ephemerons and weak hash tables
\end{tabular}
\subsubsection*{Arithmetic:}
\begin{tabular}{lll}
@@ -102,6 +106,7 @@ be called from C \\
\item \ahref{libref/Char.html}{Module \texttt{Char}: character operations}
\item \ahref{libref/Complex.html}{Module \texttt{Complex}: Complex numbers}
\item \ahref{libref/Digest.html}{Module \texttt{Digest}: MD5 message digest}
+\item \ahref{libref/Ephemeron.html}{Module \texttt{Ephemeron}: Ephemerons and weak hash table}
\item \ahref{libref/Filename.html}{Module \texttt{Filename}: operations on file names}
\item \ahref{libref/Format.html}{Module \texttt{Format}: pretty printing}
\item \ahref{libref/Gc.html}{Module \texttt{Gc}: memory management control and statistics; finalized values}
@@ -125,13 +130,14 @@ be called from C \\
\item \ahref{libref/Random.html}{Module \texttt{Random}: pseudo-random number generator (PRNG)}
\item \ahref{libref/Scanf.html}{Module \texttt{Scanf}: formatted input functions}
\item \ahref{libref/Set.html}{Module \texttt{Set}: sets over ordered types}
-\item \ahref{libref/Sort.html}{Module \texttt{Sort}: sorting and merging lists}
+\item \ahref{libref/Sort.html}{(deprecated)}
\item \ahref{libref/Stack.html}{Module \texttt{Stack}: last-in first-out stacks}
\item \ahref{libref/StdLabels.html}{Module \texttt{StdLabels}: Include modules \texttt{Array}, \texttt{List} and \texttt{String} with labels}
\item \ahref{libref/Stream.html}{Module \texttt{Stream}: streams and parsers}
\item \ahref{libref/String.html}{Module \texttt{String}: string operations}
\item \ahref{libref/StringLabels.html}{Module \texttt{StringLabels}: string operations (with labels)}
\item \ahref{libref/Sys.html}{Module \texttt{Sys}: system interface}
+\item \ahref{libref/Uchar.html}{Module \texttt{Uchar}: Unicode characters}
\item \ahref{libref/Weak.html}{Module \texttt{Weak}: arrays of weak pointers}
\end{links}
\else
@@ -143,6 +149,7 @@ be called from C \\
\input{Char.tex}
\input{Complex.tex}
\input{Digest.tex}
+\input{Ephemeron.tex}
\input{Filename.tex}
\input{Format.tex}
\input{Gc.tex}
@@ -171,5 +178,6 @@ be called from C \\
\input{Stream.tex}
\input{String.tex}
\input{Sys.tex}
+\input{Uchar.tex}
\input{Weak.tex}
\fi