]> granicus.if.org Git - re2c/commitdiff
Release 0.15.3.
authorUlya Trofimovich <skvadrik@gmail.com>
Wed, 2 Dec 2015 12:20:18 +0000 (12:20 +0000)
committerUlya Trofimovich <skvadrik@gmail.com>
Wed, 2 Dec 2015 12:20:18 +0000 (12:20 +0000)
25 files changed:
Makefile
src/about/about.rst
src/feed/atom.xml
src/install/install.rst
src/manual/features/skeleton/collapsed.png [deleted file]
src/manual/features/skeleton/collapsed_next.png [deleted file]
src/manual/features/skeleton/example.c
src/manual/features/skeleton/example.rst
src/manual/features/skeleton/example_next.png [new file with mode: 0644]
src/manual/features/skeleton/failures.rst
src/manual/features/skeleton/gen.sh
src/manual/features/skeleton/generating_data.rst
src/manual/features/skeleton/montage.sh
src/manual/features/skeleton/plot.gnuplot
src/manual/features/skeleton/plot.png [new file with mode: 0644]
src/manual/features/skeleton/plot_input.png [deleted file]
src/manual/features/skeleton/plot_keys.png [deleted file]
src/manual/features/skeleton/points_1_1024 [new file with mode: 0644]
src/manual/features/skeleton/points_1_7 [deleted file]
src/manual/features/skeleton/points_8_1024 [deleted file]
src/manual/features/skeleton/skeleton.rst
src/manual/options/options_list.rst
src/news/changelog/0_15.rst
src/news/news.rst
src/news/release_notes/0_15_3.rst [new file with mode: 0644]

index 05c17905bdf4f6179471bac1a782f99285b91f19..eef9f9ec4ab6a215a69acd64f7889fd7beeb9fa9 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -70,6 +70,7 @@ SRC_RST = \
     src/news/release_notes/0_15.rst \
     src/news/release_notes/0_15_1.rst \
     src/news/release_notes/0_15_2.rst \
+    src/news/release_notes/0_15_3.rst \
     src/news/home.rst \
     src/about/about.rst \
     src/install/install.rst \
@@ -102,16 +103,14 @@ SRC_OTH = \
     src/manual/features/dot/php_json_neato.png \
     src/manual/features/dot/utf8_any.re \
     src/manual/features/dot/php_json.re \
-    src/manual/features/skeleton/collapsed.png \
-    src/manual/features/skeleton/collapsed_next.png \
     src/manual/features/skeleton/example.c \
     src/manual/features/skeleton/example.c.line4.input \
     src/manual/features/skeleton/example.c.line4.keys \
     src/manual/features/skeleton/example.png \
+    src/manual/features/skeleton/example_next.png \
     src/manual/features/skeleton/gen.sh \
     src/manual/features/skeleton/hex2.re \
-    src/manual/features/skeleton/plot_input.png \
-    src/manual/features/skeleton/plot_keys.png \
+    src/manual/features/skeleton/plot.png \
     src/about/1994_bumbulis_cowan_re2c_a_more_versatile_scanner_generator.pdf
 
 OBJ_RST = $(SRC_RST:%.rst=%.html)
index b5d97945974e859631692d277c8c524fa98cb3df..edc8ff9fcf1db048be1f546b9197080250921501 100644 (file)
@@ -43,5 +43,5 @@ be appreciated.
 Version
 -------
 
-This page describes ``re2c`` version 0.15.2 packaged on 23 Nov 2015.
+This page describes ``re2c`` version 0.15.3 packaged on 02 Dec 2015.
 
index 1d704f15eeac664d71792c5d74881c1cc07d6564..bb152c55b54e841f08dfdfec8629afd111e661b4 100644 (file)
@@ -4,7 +4,7 @@
     <title>re2c</title>
     <link rel="self" href="http://re2c.org/feed/atom.xml"/>
     <id>http://re2c.org/</id>
-    <updated>2015-11-23T22:00:00Z</updated>
+    <updated>2015-12-02T00:00:00Z</updated>
 
     <entry>
         <title>Release 0.15</title>
         </author>
     </entry>
 
+    <entry>
+        <title>Release 0.15.3</title>
+        <link href="http://re2c.org/news/release_notes/0_15_3.html"/>
+        <id>http://re2c.org/news/release_notes/0_15_3.html</id>
+        <updated>2015-12-02T00:00:00Z</updated>
+        <summary type="xhtml">
+            <div xmlns="http://www.w3.org/1999/xhtml">
+                Minor release re2c-0.15.3 (<a href="http://re2c.org/news/release_notes/0_15_3.html">release notes</a>).
+            </div>
+        </summary>
+        <author>
+            <name>Ulya Trofimovich</name>
+            <email>skvadrik@gmail.com</email>
+        </author>
+    </entry>
+
 </feed>
index 1d77ca2cd9e40690e9b11f67e49ee6d1a9470443..95b366f5e5e55e17e308cce70a659ae02c5ebf9b 100644 (file)
@@ -11,7 +11,7 @@ Download
 Tarballs
 --------
 
-* `re2c-0.15.2.tar.gz <https://github.com/skvadrik/re2c/releases/download/0.15.2/re2c-0.15.2.tar.gz>`_
+* `re2c-0.15.3.tar.gz <https://github.com/skvadrik/re2c/releases/download/0.15.3/re2c-0.15.3.tar.gz>`_
 * `re2c-0.14.3.tar.gz <https://github.com/skvadrik/re2c/releases/download/0.14.3/re2c-0.14.3.tar.gz>`_
 * `re2c-0.13.7.5.tar.gz <https://github.com/skvadrik/re2c/releases/download/0.13.7.5/re2c-0.13.7.5.tar.gz>`_
 * `re2c-0.13.6.tar.gz <https://github.com/skvadrik/re2c/releases/download/0.13.6/re2c-0.13.6.tar.gz>`_
@@ -68,7 +68,7 @@ Build
 You only need C++98 compier to build re2c from tarball.
 If you have bison, re2c will use it (otherwise it will use precompiled files).
 
-If you are building re2c from source, you will also need autotools:
+If you are building re2c from source (not from tarball), you will also need autotools:
 
 .. code-block:: bash
 
diff --git a/src/manual/features/skeleton/collapsed.png b/src/manual/features/skeleton/collapsed.png
deleted file mode 100644 (file)
index d6d77a0..0000000
Binary files a/src/manual/features/skeleton/collapsed.png and /dev/null differ
diff --git a/src/manual/features/skeleton/collapsed_next.png b/src/manual/features/skeleton/collapsed_next.png
deleted file mode 100644 (file)
index de1cdd0..0000000
Binary files a/src/manual/features/skeleton/collapsed_next.png and /dev/null differ
index 7bd0335bc02ac707a98896b87bec694eb4641fbb..5829dfc083d685cd2d6193bdc131fedba243546c 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.14.1.dev on Mon Nov 16 15:03:12 2015*/
+/* Generated by re2c 0.15.2 on Wed Dec  2 08:46:58 2015 */
 
 #include <stdio.h>
 #include <stdlib.h> /* malloc, free */
index 29571e56fcd7d4e712f754c710ed4bd9c89dc461..781d7bccea5e73427f71e288496ea94dfb59989c 100644 (file)
@@ -21,19 +21,39 @@ First, let's look at the generated strings:
 
 .. code-block:: bash
 
-    $ hexdump -C example.c.line4.input
-    00000000  00 2f 3a 40 47 60 67 ff  30 30 30 39 30 41 30 46  |./:@G`g.00090A0F|
-    00000010  30 61 30 66 39 30 39 39  39 41 39 46 39 61 39 66  |0a0f90999A9F9a9f|
-    00000020  41 30 41 39 41 41 41 46  41 61 41 66 46 30 46 39  |A0A9AAAFAaAfF0F9|
-    00000030  46 41 46 46 46 61 46 66  61 30 61 39 61 41 61 46  |FAFFFaFfa0a9aAaF|
-    00000040  61 61 61 66 66 30 66 39  66 41 66 46 66 61 66 66  |aaaff0f9fAfFfaff|
-    00000050  30 00 30 2f 30 3a 30 40  30 47 30 60 30 67 30 ff  |0.0/0:0@0G0`0g0.|
-    00000060  39 00 39 2f 39 3a 39 40  39 47 39 60 39 67 39 ff  |9.9/9:9@9G9`9g9.|
-    00000070  41 00 41 2f 41 3a 41 40  41 47 41 60 41 67 41 ff  |A.A/A:A@AGA`AgA.|
-    00000080  46 00 46 2f 46 3a 46 40  46 47 46 60 46 67 46 ff  |F.F/F:F@FGF`FgF.|
-    00000090  61 00 61 2f 61 3a 61 40  61 47 61 60 61 67 61 ff  |a.a/a:a@aGa`aga.|
-    000000a0  66 00 66 2f 66 3a 66 40  66 47 66 60 66 67 66 ff  |f.f/f:f@fGf`fgf.|
-    000000b0
+    $ hexdump -v -e '"%08_ax " 24/1 "%02x "' -e '" |" 24/1 "%_p" "|\n"' example.c.line4.input
+    00000000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 |........................|
+    00000018 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f |........ !"#$%&'()*+,-./|
+    00000030 3a 3b 3c 3d 3e 3f 40 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 |:;<=>?@GHIJKLMNOPQRSTUVW|
+    00000048 58 59 5a 5b 5c 5d 5e 5f 60 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 |XYZ[\]^_`ghijklmnopqrstu|
+    00000060 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d |vwxyz{|}~...............|
+    00000078 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 |........................|
+    00000090 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd |........................|
+    000000a8 be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 |........................|
+    000000c0 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed |........................|
+    000000d8 ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff 30 30 31 31 32 32 |..................001122|
+    000000f0 33 33 34 34 35 35 36 36 37 37 38 38 39 39 41 41 42 42 43 43 44 44 45 45 |33445566778899AABBCCDDEE|
+    00000108 46 46 61 61 62 62 63 63 64 64 65 65 66 66 30 00 31 01 32 02 33 03 34 04 |FFaabbccddeeff0.1.2.3.4.|
+    00000120 35 05 36 06 37 07 38 08 39 09 41 0a 42 0b 43 0c 44 0d 45 0e 46 0f 61 10 |5.6.7.8.9.A.B.C.D.E.F.a.|
+    00000138 62 11 63 12 64 13 65 14 66 15 30 16 31 17 32 18 33 19 34 1a 35 1b 36 1c |b.c.d.e.f.0.1.2.3.4.5.6.|
+    00000150 37 1d 38 1e 39 1f 41 20 42 21 43 22 44 23 45 24 46 25 61 26 62 27 63 28 |7.8.9.A B!C"D#E$F%a&b'c(|
+    00000168 64 29 65 2a 66 2b 30 2c 31 2d 32 2e 33 2f 34 3a 35 3b 36 3c 37 3d 38 3e |d)e*f+0,1-2.3/4:5;6<7=8>|
+    00000180 39 3f 41 40 42 47 43 48 44 49 45 4a 46 4b 61 4c 62 4d 63 4e 64 4f 65 50 |9?A@BGCHDIEJFKaLbMcNdOeP|
+    00000198 66 51 30 52 31 53 32 54 33 55 34 56 35 57 36 58 37 59 38 5a 39 5b 41 5c |fQ0R1S2T3U4V5W6X7Y8Z9[A\|
+    000001b0 42 5d 43 5e 44 5f 45 60 46 67 61 68 62 69 63 6a 64 6b 65 6c 66 6d 30 6e |B]C^D_E`Fgahbicjdkelfm0n|
+    000001c8 31 6f 32 70 33 71 34 72 35 73 36 74 37 75 38 76 39 77 41 78 42 79 43 7a |1o2p3q4r5s6t7u8v9wAxByCz|
+    000001e0 44 7b 45 7c 46 7d 61 7e 62 7f 63 80 64 81 65 82 66 83 30 84 31 85 32 86 |D{E|F}a~b.c.d.e.f.0.1.2.|
+    000001f8 33 87 34 88 35 89 36 8a 37 8b 38 8c 39 8d 41 8e 42 8f 43 90 44 91 45 92 |3.4.5.6.7.8.9.A.B.C.D.E.|
+    00000210 46 93 61 94 62 95 63 96 64 97 65 98 66 99 30 9a 31 9b 32 9c 33 9d 34 9e |F.a.b.c.d.e.f.0.1.2.3.4.|
+    00000228 35 9f 36 a0 37 a1 38 a2 39 a3 41 a4 42 a5 43 a6 44 a7 45 a8 46 a9 61 aa |5.6.7.8.9.A.B.C.D.E.F.a.|
+    00000240 62 ab 63 ac 64 ad 65 ae 66 af 30 b0 31 b1 32 b2 33 b3 34 b4 35 b5 36 b6 |b.c.d.e.f.0.1.2.3.4.5.6.|
+    00000258 37 b7 38 b8 39 b9 41 ba 42 bb 43 bc 44 bd 45 be 46 bf 61 c0 62 c1 63 c2 |7.8.9.A.B.C.D.E.F.a.b.c.|
+    00000270 64 c3 65 c4 66 c5 30 c6 31 c7 32 c8 33 c9 34 ca 35 cb 36 cc 37 cd 38 ce |d.e.f.0.1.2.3.4.5.6.7.8.|
+    00000288 39 cf 41 d0 42 d1 43 d2 44 d3 45 d4 46 d5 61 d6 62 d7 63 d8 64 d9 65 da |9.A.B.C.D.E.F.a.b.c.d.e.|
+    000002a0 66 db 30 dc 31 dd 32 de 33 df 34 e0 35 e1 36 e2 37 e3 38 e4 39 e5 41 e6 |f.0.1.2.3.4.5.6.7.8.9.A.|
+    000002b8 42 e7 43 e8 44 e9 45 ea 46 eb 61 ec 62 ed 63 ee 64 ef 65 f0 66 f1 30 f2 |B.C.D.E.F.a.b.c.d.e.f.0.|
+    000002d0 31 f3 32 f4 33 f5 34 f6 35 f7 36 f8 37 f9 38 fa 39 fb 41 fc 42 fd 43 fe |1.2.3.4.5.6.7.8.9.A.B.C.|
+    000002e8 44 ff                                                                   |D.|
 
 Byte sequences correspond to the paths in DFA.
 All strings are glued together, so it's hard to tell where is the end of one string and the beginning of another.
@@ -43,19 +63,49 @@ For that re2c generates keys:
 
 .. code-block:: bash
 
-    $ hexdump -v -e '"%04_ax| " 24/1 "%02x " "\n"' example.c.line4.keys 
-    0000| 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
-    0018| 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
-    0030| 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
-    0048| 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
-    0060| 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
-    0078| 02 02 00 02 02 00 02 02 00 02 02 00 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    0090| 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    00a8| 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    00c0| 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    00d8| 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    00f0| 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
-    0108| 02 01 fe 02 01 fe 02 01 fe 02 01 fe                              
+    $hexdump -v -e '"%08_ax " 36/1 "%02x " "\n"' example.c.line4.keys
+    00000000 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000024 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000048 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    0000006c 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000090 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000000b4 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000000d8 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000000fc 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000120 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000144 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000168 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    0000018c 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000001b0 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000001d4 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000001f8 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    0000021c 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000240 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000264 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    00000288 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe
+    000002ac 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 01 01 fe 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
+    000002d0 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00 02 02 00
+    000002f4 02 02 00 02 02 00 02 02 00 02 02 00 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000318 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    0000033c 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000360 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000384 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000003a8 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000003cc 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000003f0 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000414 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000438 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    0000045c 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000480 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000004a4 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000004c8 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000004ec 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000510 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000534 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    00000558 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    0000057c 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe
+    000005a0 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe 02 01 fe                  
+
 
 A key is a triplet: string length, the length of matching prefix and the number of matching rule.
 All three components occupy equal amount of memory (re2c uses unsigned integer type of minimal sufficient width).
diff --git a/src/manual/features/skeleton/example_next.png b/src/manual/features/skeleton/example_next.png
new file mode 100644 (file)
index 0000000..d0f1aed
Binary files /dev/null and b/src/manual/features/skeleton/example_next.png differ
index 50ba6ede6643ab13364e399071cff2c64460c8da..cb450afcf0410ad6890e243549486a6952155cd5 100644 (file)
@@ -55,12 +55,19 @@ Now let's change the input string:
             expected: match length 1, rule 254
             actual:   match length 2, rule 0
 
+Finally, let's break the generated code:
+
+.. code-block:: bash
+
+    $ re2c -S -o example.c hex2.re
+    $ sed -i -e "s/case '7'://" example.c
+    $ gcc -o example example.c
+    $ ./example
+    error: lex_line4: at position 248 (iteration 241):
+            expected: match length 2, rule 0
+            actual:   match length 1, rule 254
+
 And so on.
-Of course, some errors won't be captured by skeleton program: it's not feasible to cover all possible inputs.
-For example, of all the hex digits ``[0-9a-fA-F]`` re2c uses only ``[09afAF]``:
-we can mangle the lexer to not to recognize ``[1-8b-eB-E]`` as hex digits and the program won't notice.
-However, the chosen values are the boundaries of disjoint character ranges and they are tested extensively
-(see the section about data generation for details).
 
 
 Undefined control flow
index 97a313a008253e5e5b16a2d750db69ba08235e89..aeab31195647cef90d35c96860e88e30b9cdcdf5 100755 (executable)
@@ -4,5 +4,5 @@ do
     echo '/*!re2c * {} [0-9a-fA-F]{'$i'} {} */' | re2c -S -o example.c -
     input=`stat -c '%s' example.c.line1.input`
     keys=`stat -c '%s' example.c.line1.keys`
-    printf "%10d%10d%10d%10d\n" $i $((14 * i)) $input $keys
+    printf "%10d%10d%10d%10d\n" $i $((256 * i)) $input $keys
 done
index 1006f39aa51bdc2ee6c85ae9e6f32d2805026144..3ecf0554da46d647dd83137adac402777d7afde6 100644 (file)
@@ -4,48 +4,27 @@ Generating data
 
 One cannot just run lexer on all possible inputs:
 for an alphabet of ``n`` characters and input length ``m``, the number of input strings is ``n`` to the power of ``m``.
-
-
-The problem can be mitigated by tailoring the set of input strings to a particular lexer.
-For most lexers only a small subset of all input strings makes sense: the majority of them are ill-formed.
-Ill-formed inputs are rejected after the first few characters, so that remaining characters are insignificant:
-lexer will never reach them and they can be as well discarded.
-Input strings that differ only in discarded suffixes are collapsed into one.
-This reduces the overall number of strings greatly.
-
-
-Still the number of inputs is too large.
-We can further reduce it by collapsing disjoint character sets:
-for each each character range we only take its boundaries.
-This cuts off many interesting well-formed inputs, but we have to give up some of them this way or another.
-The graph from the example above results into the following residual DFA:
-
-.. image:: collapsed.png
-    :width: 90%
-
-All further algorithms work with the residual graph.
-re2c has two algorithms:
-
-* First algorithm generates all possible paths from start node to end nodes
-  by performing deep-first search on graph (loops are iterated once).
-  The number of input strings grows exponentially with the number of edges,
-  thus the algorithm is only suitable for small graphs and graphs with loosely connected nodes.
-
-* Second algoritm constructs path cover: a set of paths from start node to end nodes
-  such that each edge in graph is covered by at least one path.
-  The number of generated strings is bounded by the number of edges in graph.
-  However, the total length of the generated strings depends quadratically on the number of edges.
-  (An example of quadratic dependency is shown below.
-  Upper bound follows from the fact that total length cannot exceed the number of strings
-  times maximal string length, both values obviously bounded by the number of edges.)
-
-re2c proceeds as follows: first, it estimates the amount of data needed to generate all paths
-(estimation can be done in linear time).
-If it exceeds certain limit (~32Mb edges), re2c fallbacks to path cover (which is limited by ~1Gb of edges).
-Both algorithms are implemented so that they consume constant amount of RAM
-(they dump data to file as soon as it is generated).
-
-We can look at both algorithms in action on the same example, simply alternating repetition counter:
+The problem can be mitigated by tailoring the input for a particular lexer.
+
+First, re2c constructs skeleton of the given DFA.
+For encodings with 1-byte code units skeleton is an exact copy of the original DFA.
+For encodings with multibyte code units skeleton is a copy of DFA with certain edges omitted:
+for each continuous range of code units (that corresponds to a set of edges between two DFA states)
+re2c takes at most 256 code units.
+The chosen values are evenly distributed and include range bounds.
+(In case of 1-byte code units 256 values are enough to cover the whole range.)
+
+Second, instead of trying to cover all possible inputs, re2c generates skeleton path cover:
+a set of paths from start node to end node such that each skeleton edge is covered by at least one path.
+The number of paths in path cover is bounded by the number of edges in skeleton.
+However, the total size of path cover depends quadratically on the number of edges:
+an example is shown below and
+upper bound follows from the fact that total size is bounded by the number of paths
+times maximal path length, both values obviously bounded by the number of edges.
+
+The algorithm's implementation is limited by ~1Gb of edges and consumes constant amount of RAM
+(re2c dumps data to file as soon as it is generated).
+We can study the algorithm simply alternating repetition counter in the example above:
 
 .. code-block:: cpp
     :number-lines:
@@ -55,14 +34,14 @@ We can look at both algorithms in action on the same example, simply alternating
         [0-9a-fA-F]{1} {} // [0-9a-fA-F]{2}, [0-9a-fA-F]{3}, [0-9a-fA-F]{4}, ...
     */
 
-Each increment of the repetition counter adds 14 new edges to the residual DFA.
-For example, here is a picture of DFA with three repetitions
-(compare it with the above picture of two repetitions — edges in bold have been added):
+Each increment of the repetition counter adds 256 new edges the DFA.
+Compare the following pictures of DFA with one, two and three repetitions:
 
-.. image:: collapsed_next.png
-    :width: 60%
+.. image:: example_next.png
+    :width: 70%
 
-The following script shows how ``.input`` and ``.keys`` file size depends on the number of edges in graph:
+We will use a simple script that dumps re2c source file,
+generates skeleton program and measures the size of ``.input`` and ``.keys`` files:
 
 `[gen.sh] <gen.sh>`_
 
@@ -70,46 +49,60 @@ The following script shows how ``.input`` and ``.keys`` file size depends on the
     :code: bash
     :number-lines:
 
-It expects two arguments: lower and upped bounds of the iteration counter.
-From the example output we can see that for counter values 1 through 7 re2c generated all paths,
-then it switched to path cover:
+Script runs in a loop and expects two arguments:
+lower and upped bounds of the iteration counter.
 
 .. code-block::
 
     $ ./gen.sh 1 16
          iters     edges     input      keys
     
-             1        14        14        42
-             2        28       176       276
-             3        42      1616      1680
-             4        56     13064     10104
-             5        70     98600     60648
-             6        84    712904    363912
-             7        98   5005256   2183496
-             8       112       336       210
-             9       126       414       234
-            10       140       500       258
-            11       154       594       282
-            12       168       696       306
-            13       182       806       330
-            14       196       924       354
-            15       210      1050       378
-            16       224      1184       402
-
-The following pictures show how ``.keys`` file size depends on the number of edges.
-Total size of keys equals size of a single key times the number of generated strings.
-On the 1st plot (repetitions 1 through 7) it grows exponentially.
-On the 2nd plot (repetitions 8 through 1024) it grows linearly (the change of angle
-is due to the change of key size: starting from repetition count 256 path length gets out of 1-byte range).
-The 3rd plot shows the relation between 1st and 2nd plots.
-
-.. image:: plot_keys.png
+             1       256       256       768
+             2       512       746      1470
+             3       768      1470      2172
+             4      1024      2428      2874
+             5      1280      3620      3576
+             6      1536      5046      4278
+             7      1792      6706      4980
+             8      2048      8600      5682
+             9      2304     10728      6384
+            10      2560     13090      7086
+            11      2816     15686      7788
+            12      3072     18516      8490
+            13      3328     21580      9192
+            14      3584     24878      9894
+            15      3840     28410     10596
+            16      4096     32176     11298
+
+The following pictures show how ``.keys`` and ``.input`` file size depends on the number of edges
+(repetition counters 1 through 1024):
+
+.. image:: plot.png
     :width: 100%
 
-Size of ``.input`` grows exponentially (repetitions 1 through 7) and quadratically (repetitions 8 through 1024).
-The exact quadratic function is ``f(x) = 4x^2+ 10x``, where ``x`` is the repetition counter.
-However, graphs like this rarely occur in practice: maximal path length is usually less than a hundred.
-
-.. image:: plot_input.png
-    :width: 100%
+Keys grow linearly with the number of edges in skeleton (a key corresponds to a single path in path cover).
+The change of angle is due to the change of key size:
+starting from repetition count 256 path length gets out of 1-byte range.
+
+Size of input grows quadratically with the number of edges in skeleton.
+We can calculate the exact analythic function as follows.
+Each repetition increment adds 256 new edges: 22 edges corresponding to ``[0-9a-fA-F]`` that
+go to accepting state and 234 remaining edges that go to default state.
+With a bit of common sense (or knowledge of re2c algorithm)
+one can see that path cover must include 22 paths of length ``n`` (that go to accepting state)
+plus all the default paths (234 paths of lenght 1, plus 234 paths of length 2 
+and so on up to 234 paths of length ``n``):
+
+::
+
+    22*1 + 234*1
+    22*2 + (234*1 + 234*2)
+    22*3 + (234*1 + 234*2 + 234*3)
+    ...
+    f(n) = 22*n + (234*1 + 234*2 + ... + 234*n)
+         = 22*n + 234*n*(n - 1)/2
+         = 117*n^2 + 139*n
+
+However, in practice maximal path length is usually less than a hundred
+and the size of ``.input`` files is quite acceptable even for large graphs.
 
index b809d8b050d71358eedbf137de3213fde4003dbe..bb7ce6b06b97fbdba77bfcbf32df0ddd311401c5 100755 (executable)
@@ -1,5 +1,3 @@
 gnuplot plot.gnuplot \
-    && montage input_1_7.png input_8_1024.png input_1_1024.png -tile 3x1 -geometry +0+0 plot_input.png \
-    && rm input_1_7.png input_8_1024.png input_1_1024.png \
-    && montage keys_1_7.png keys_8_1024.png keys_1_1024.png -tile 3x1 -geometry +0+0 plot_keys.png \
-    && rm keys_1_7.png keys_8_1024.png keys_1_1024.png
+    && montage keys.png input.png input_keys.png -tile 3x1 -geometry +0+0 plot.png \
+    && rm keys.png input.png input_keys.png
index aa29109f24a60af8fc477e1b6f288a01f77f49e6..2898b4becfd16e0efa86052fe8c5878fef242e5c 100644 (file)
@@ -1,34 +1,16 @@
 set terminal png font "Courier,mono"
 
 
-
-set output 'input_1_7.png'
-set title "Size of .input: [0-9a-fA-F]{1..7}"
-plot "points_1_7" using 2:3 lc rgb '#ff6600' lw 2 with lines title ".input"
-
-set output 'input_8_1024.png'
-set title "Size of .input: [0-9a-fA-F]{8..1024}"
-plot "points_8_1024" using 2:3 lc rgb '#ff6600' lw 2 with lines title ".input"
-
-set output 'input_1_1024.png'
+set output 'input.png'
 set title "Size of .input"
-plot "points_1_7"    using 2:3 lc rgb '#ff6600' lw 2 with lines title ".input", \
-     "points_8_1024" using 2:3 lc rgb '#ff6600' lw 2 with lines notitle
-
+plot "points_1_1024" using 2:3 lc rgb '#ff6600' lw 2 with lines title ".input"
 
-
-set output 'keys_1_7.png'
-set title "Size of .keys: [0-9a-fA-F]{1..7}"
-plot "points_1_7" using 2:4 lc rgb '#003399' lw 2 with lines title ".keys"
-
-set output 'keys_8_1024.png'
-set title "Size of .keys: [0-9a-fA-F]{8..1024}"
-plot "points_8_1024" using 2:4 lc rgb '#003399' lw 2 with lines title ".keys"
-
-set output 'keys_1_1024.png'
+set output 'keys.png'
 set title "Size of .keys"
-plot "points_1_7"    using 2:4 lc rgb '#003399' lw 2 with lines title ".keys", \
-     "points_8_1024" using 2:4 lc rgb '#003399' lw 2 with lines notitle
-
+plot "points_1_1024" using 2:4 lc rgb '#003399' lw 2 with lines title ".keys"
 
+set output 'input_keys.png'
+set title "Size of .keys and .input"
+plot "points_1_1024" using 2:4 lc rgb '#003399' lw 2 with lines title ".keys", \
+     "points_1_1024" using 2:3 lc rgb '#ff6600' lw 2 with lines title ".input"
 
diff --git a/src/manual/features/skeleton/plot.png b/src/manual/features/skeleton/plot.png
new file mode 100644 (file)
index 0000000..d02bd9f
Binary files /dev/null and b/src/manual/features/skeleton/plot.png differ
diff --git a/src/manual/features/skeleton/plot_input.png b/src/manual/features/skeleton/plot_input.png
deleted file mode 100644 (file)
index 4c7befa..0000000
Binary files a/src/manual/features/skeleton/plot_input.png and /dev/null differ
diff --git a/src/manual/features/skeleton/plot_keys.png b/src/manual/features/skeleton/plot_keys.png
deleted file mode 100644 (file)
index e46e3f7..0000000
Binary files a/src/manual/features/skeleton/plot_keys.png and /dev/null differ
diff --git a/src/manual/features/skeleton/points_1_1024 b/src/manual/features/skeleton/points_1_1024
new file mode 100644 (file)
index 0000000..0832969
--- /dev/null
@@ -0,0 +1,1026 @@
+     iters     edges     input      keys
+
+         1       256       256       768
+         2       512       746      1470
+         3       768      1470      2172
+         4      1024      2428      2874
+         5      1280      3620      3576
+         6      1536      5046      4278
+         7      1792      6706      4980
+         8      2048      8600      5682
+         9      2304     10728      6384
+        10      2560     13090      7086
+        11      2816     15686      7788
+        12      3072     18516      8490
+        13      3328     21580      9192
+        14      3584     24878      9894
+        15      3840     28410     10596
+        16      4096     32176     11298
+        17      4352     36176     12000
+        18      4608     40410     12702
+        19      4864     44878     13404
+        20      5120     49580     14106
+        21      5376     54516     14808
+        22      5632     59686     15510
+        23      5888     65090     16212
+        24      6144     70728     16914
+        25      6400     76600     17616
+        26      6656     82706     18318
+        27      6912     89046     19020
+        28      7168     95620     19722
+        29      7424    102428     20424
+        30      7680    109470     21126
+        31      7936    116746     21828
+        32      8192    124256     22530
+        33      8448    132000     23232
+        34      8704    139978     23934
+        35      8960    148190     24636
+        36      9216    156636     25338
+        37      9472    165316     26040
+        38      9728    174230     26742
+        39      9984    183378     27444
+        40     10240    192760     28146
+        41     10496    202376     28848
+        42     10752    212226     29550
+        43     11008    222310     30252
+        44     11264    232628     30954
+        45     11520    243180     31656
+        46     11776    253966     32358
+        47     12032    264986     33060
+        48     12288    276240     33762
+        49     12544    287728     34464
+        50     12800    299450     35166
+        51     13056    311406     35868
+        52     13312    323596     36570
+        53     13568    336020     37272
+        54     13824    348678     37974
+        55     14080    361570     38676
+        56     14336    374696     39378
+        57     14592    388056     40080
+        58     14848    401650     40782
+        59     15104    415478     41484
+        60     15360    429540     42186
+        61     15616    443836     42888
+        62     15872    458366     43590
+        63     16128    473130     44292
+        64     16384    488128     44994
+        65     16640    503360     45696
+        66     16896    518826     46398
+        67     17152    534526     47100
+        68     17408    550460     47802
+        69     17664    566628     48504
+        70     17920    583030     49206
+        71     18176    599666     49908
+        72     18432    616536     50610
+        73     18688    633640     51312
+        74     18944    650978     52014
+        75     19200    668550     52716
+        76     19456    686356     53418
+        77     19712    704396     54120
+        78     19968    722670     54822
+        79     20224    741178     55524
+        80     20480    759920     56226
+        81     20736    778896     56928
+        82     20992    798106     57630
+        83     21248    817550     58332
+        84     21504    837228     59034
+        85     21760    857140     59736
+        86     22016    877286     60438
+        87     22272    897666     61140
+        88     22528    918280     61842
+        89     22784    939128     62544
+        90     23040    960210     63246
+        91     23296    981526     63948
+        92     23552   1003076     64650
+        93     23808   1024860     65352
+        94     24064   1046878     66054
+        95     24320   1069130     66756
+        96     24576   1091616     67458
+        97     24832   1114336     68160
+        98     25088   1137290     68862
+        99     25344   1160478     69564
+       100     25600   1183900     70266
+       101     25856   1207556     70968
+       102     26112   1231446     71670
+       103     26368   1255570     72372
+       104     26624   1279928     73074
+       105     26880   1304520     73776
+       106     27136   1329346     74478
+       107     27392   1354406     75180
+       108     27648   1379700     75882
+       109     27904   1405228     76584
+       110     28160   1430990     77286
+       111     28416   1456986     77988
+       112     28672   1483216     78690
+       113     28928   1509680     79392
+       114     29184   1536378     80094
+       115     29440   1563310     80796
+       116     29696   1590476     81498
+       117     29952   1617876     82200
+       118     30208   1645510     82902
+       119     30464   1673378     83604
+       120     30720   1701480     84306
+       121     30976   1729816     85008
+       122     31232   1758386     85710
+       123     31488   1787190     86412
+       124     31744   1816228     87114
+       125     32000   1845500     87816
+       126     32256   1875006     88518
+       127     32512   1904746     89220
+       128     32768   1934720     89922
+       129     33024   1964928     90624
+       130     33280   1995370     91326
+       131     33536   2026046     92028
+       132     33792   2056956     92730
+       133     34048   2088100     93432
+       134     34304   2119478     94134
+       135     34560   2151090     94836
+       136     34816   2182936     95538
+       137     35072   2215016     96240
+       138     35328   2247330     96942
+       139     35584   2279878     97644
+       140     35840   2312660     98346
+       141     36096   2345676     99048
+       142     36352   2378926     99750
+       143     36608   2412410    100452
+       144     36864   2446128    101154
+       145     37120   2480080    101856
+       146     37376   2514266    102558
+       147     37632   2548686    103260
+       148     37888   2583340    103962
+       149     38144   2618228    104664
+       150     38400   2653350    105366
+       151     38656   2688706    106068
+       152     38912   2724296    106770
+       153     39168   2760120    107472
+       154     39424   2796178    108174
+       155     39680   2832470    108876
+       156     39936   2868996    109578
+       157     40192   2905756    110280
+       158     40448   2942750    110982
+       159     40704   2979978    111684
+       160     40960   3017440    112386
+       161     41216   3055136    113088
+       162     41472   3093066    113790
+       163     41728   3131230    114492
+       164     41984   3169628    115194
+       165     42240   3208260    115896
+       166     42496   3247126    116598
+       167     42752   3286226    117300
+       168     43008   3325560    118002
+       169     43264   3365128    118704
+       170     43520   3404930    119406
+       171     43776   3444966    120108
+       172     44032   3485236    120810
+       173     44288   3525740    121512
+       174     44544   3566478    122214
+       175     44800   3607450    122916
+       176     45056   3648656    123618
+       177     45312   3690096    124320
+       178     45568   3731770    125022
+       179     45824   3773678    125724
+       180     46080   3815820    126426
+       181     46336   3858196    127128
+       182     46592   3900806    127830
+       183     46848   3943650    128532
+       184     47104   3986728    129234
+       185     47360   4030040    129936
+       186     47616   4073586    130638
+       187     47872   4117366    131340
+       188     48128   4161380    132042
+       189     48384   4205628    132744
+       190     48640   4250110    133446
+       191     48896   4294826    134148
+       192     49152   4339776    134850
+       193     49408   4384960    135552
+       194     49664   4430378    136254
+       195     49920   4476030    136956
+       196     50176   4521916    137658
+       197     50432   4568036    138360
+       198     50688   4614390    139062
+       199     50944   4660978    139764
+       200     51200   4707800    140466
+       201     51456   4754856    141168
+       202     51712   4802146    141870
+       203     51968   4849670    142572
+       204     52224   4897428    143274
+       205     52480   4945420    143976
+       206     52736   4993646    144678
+       207     52992   5042106    145380
+       208     53248   5090800    146082
+       209     53504   5139728    146784
+       210     53760   5188890    147486
+       211     54016   5238286    148188
+       212     54272   5287916    148890
+       213     54528   5337780    149592
+       214     54784   5387878    150294
+       215     55040   5438210    150996
+       216     55296   5488776    151698
+       217     55552   5539576    152400
+       218     55808   5590610    153102
+       219     56064   5641878    153804
+       220     56320   5693380    154506
+       221     56576   5745116    155208
+       222     56832   5797086    155910
+       223     57088   5849290    156612
+       224     57344   5901728    157314
+       225     57600   5954400    158016
+       226     57856   6007306    158718
+       227     58112   6060446    159420
+       228     58368   6113820    160122
+       229     58624   6167428    160824
+       230     58880   6221270    161526
+       231     59136   6275346    162228
+       232     59392   6329656    162930
+       233     59648   6384200    163632
+       234     59904   6438978    164334
+       235     60160   6493990    165036
+       236     60416   6549236    165738
+       237     60672   6604716    166440
+       238     60928   6660430    167142
+       239     61184   6716378    167844
+       240     61440   6772560    168546
+       241     61696   6828976    169248
+       242     61952   6885626    169950
+       243     62208   6942510    170652
+       244     62464   6999628    171354
+       245     62720   7056980    172056
+       246     62976   7114566    172758
+       247     63232   7172386    173460
+       248     63488   7230440    174162
+       249     63744   7288728    174864
+       250     64000   7347250    175566
+       251     64256   7406006    176268
+       252     64512   7464996    176970
+       253     64768   7524220    177672
+       254     65024   7583678    178374
+       255     65280   7643370    179076
+       256     65536   7703296    359556
+       257     65792   7763456    360960
+       258     66048   7823850    362364
+       259     66304   7884478    363768
+       260     66560   7945340    365172
+       261     66816   8006436    366576
+       262     67072   8067766    367980
+       263     67328   8129330    369384
+       264     67584   8191128    370788
+       265     67840   8253160    372192
+       266     68096   8315426    373596
+       267     68352   8377926    375000
+       268     68608   8440660    376404
+       269     68864   8503628    377808
+       270     69120   8566830    379212
+       271     69376   8630266    380616
+       272     69632   8693936    382020
+       273     69888   8757840    383424
+       274     70144   8821978    384828
+       275     70400   8886350    386232
+       276     70656   8950956    387636
+       277     70912   9015796    389040
+       278     71168   9080870    390444
+       279     71424   9146178    391848
+       280     71680   9211720    393252
+       281     71936   9277496    394656
+       282     72192   9343506    396060
+       283     72448   9409750    397464
+       284     72704   9476228    398868
+       285     72960   9542940    400272
+       286     73216   9609886    401676
+       287     73472   9677066    403080
+       288     73728   9744480    404484
+       289     73984   9812128    405888
+       290     74240   9880010    407292
+       291     74496   9948126    408696
+       292     74752  10016476    410100
+       293     75008  10085060    411504
+       294     75264  10153878    412908
+       295     75520  10222930    414312
+       296     75776  10292216    415716
+       297     76032  10361736    417120
+       298     76288  10431490    418524
+       299     76544  10501478    419928
+       300     76800  10571700    421332
+       301     77056  10642156    422736
+       302     77312  10712846    424140
+       303     77568  10783770    425544
+       304     77824  10854928    426948
+       305     78080  10926320    428352
+       306     78336  10997946    429756
+       307     78592  11069806    431160
+       308     78848  11141900    432564
+       309     79104  11214228    433968
+       310     79360  11286790    435372
+       311     79616  11359586    436776
+       312     79872  11432616    438180
+       313     80128  11505880    439584
+       314     80384  11579378    440988
+       315     80640  11653110    442392
+       316     80896  11727076    443796
+       317     81152  11801276    445200
+       318     81408  11875710    446604
+       319     81664  11950378    448008
+       320     81920  12025280    449412
+       321     82176  12100416    450816
+       322     82432  12175786    452220
+       323     82688  12251390    453624
+       324     82944  12327228    455028
+       325     83200  12403300    456432
+       326     83456  12479606    457836
+       327     83712  12556146    459240
+       328     83968  12632920    460644
+       329     84224  12709928    462048
+       330     84480  12787170    463452
+       331     84736  12864646    464856
+       332     84992  12942356    466260
+       333     85248  13020300    467664
+       334     85504  13098478    469068
+       335     85760  13176890    470472
+       336     86016  13255536    471876
+       337     86272  13334416    473280
+       338     86528  13413530    474684
+       339     86784  13492878    476088
+       340     87040  13572460    477492
+       341     87296  13652276    478896
+       342     87552  13732326    480300
+       343     87808  13812610    481704
+       344     88064  13893128    483108
+       345     88320  13973880    484512
+       346     88576  14054866    485916
+       347     88832  14136086    487320
+       348     89088  14217540    488724
+       349     89344  14299228    490128
+       350     89600  14381150    491532
+       351     89856  14463306    492936
+       352     90112  14545696    494340
+       353     90368  14628320    495744
+       354     90624  14711178    497148
+       355     90880  14794270    498552
+       356     91136  14877596    499956
+       357     91392  14961156    501360
+       358     91648  15044950    502764
+       359     91904  15128978    504168
+       360     92160  15213240    505572
+       361     92416  15297736    506976
+       362     92672  15382466    508380
+       363     92928  15467430    509784
+       364     93184  15552628    511188
+       365     93440  15638060    512592
+       366     93696  15723726    513996
+       367     93952  15809626    515400
+       368     94208  15895760    516804
+       369     94464  15982128    518208
+       370     94720  16068730    519612
+       371     94976  16155566    521016
+       372     95232  16242636    522420
+       373     95488  16329940    523824
+       374     95744  16417478    525228
+       375     96000  16505250    526632
+       376     96256  16593256    528036
+       377     96512  16681496    529440
+       378     96768  16769970    530844
+       379     97024  16858678    532248
+       380     97280  16947620    533652
+       381     97536  17036796    535056
+       382     97792  17126206    536460
+       383     98048  17215850    537864
+       384     98304  17305728    539268
+       385     98560  17395840    540672
+       386     98816  17486186    542076
+       387     99072  17576766    543480
+       388     99328  17667580    544884
+       389     99584  17758628    546288
+       390     99840  17849910    547692
+       391    100096  17941426    549096
+       392    100352  18033176    550500
+       393    100608  18125160    551904
+       394    100864  18217378    553308
+       395    101120  18309830    554712
+       396    101376  18402516    556116
+       397    101632  18495436    557520
+       398    101888  18588590    558924
+       399    102144  18681978    560328
+       400    102400  18775600    561732
+       401    102656  18869456    563136
+       402    102912  18963546    564540
+       403    103168  19057870    565944
+       404    103424  19152428    567348
+       405    103680  19247220    568752
+       406    103936  19342246    570156
+       407    104192  19437506    571560
+       408    104448  19533000    572964
+       409    104704  19628728    574368
+       410    104960  19724690    575772
+       411    105216  19820886    577176
+       412    105472  19917316    578580
+       413    105728  20013980    579984
+       414    105984  20110878    581388
+       415    106240  20208010    582792
+       416    106496  20305376    584196
+       417    106752  20402976    585600
+       418    107008  20500810    587004
+       419    107264  20598878    588408
+       420    107520  20697180    589812
+       421    107776  20795716    591216
+       422    108032  20894486    592620
+       423    108288  20993490    594024
+       424    108544  21092728    595428
+       425    108800  21192200    596832
+       426    109056  21291906    598236
+       427    109312  21391846    599640
+       428    109568  21492020    601044
+       429    109824  21592428    602448
+       430    110080  21693070    603852
+       431    110336  21793946    605256
+       432    110592  21895056    606660
+       433    110848  21996400    608064
+       434    111104  22097978    609468
+       435    111360  22199790    610872
+       436    111616  22301836    612276
+       437    111872  22404116    613680
+       438    112128  22506630    615084
+       439    112384  22609378    616488
+       440    112640  22712360    617892
+       441    112896  22815576    619296
+       442    113152  22919026    620700
+       443    113408  23022710    622104
+       444    113664  23126628    623508
+       445    113920  23230780    624912
+       446    114176  23335166    626316
+       447    114432  23439786    627720
+       448    114688  23544640    629124
+       449    114944  23649728    630528
+       450    115200  23755050    631932
+       451    115456  23860606    633336
+       452    115712  23966396    634740
+       453    115968  24072420    636144
+       454    116224  24178678    637548
+       455    116480  24285170    638952
+       456    116736  24391896    640356
+       457    116992  24498856    641760
+       458    117248  24606050    643164
+       459    117504  24713478    644568
+       460    117760  24821140    645972
+       461    118016  24929036    647376
+       462    118272  25037166    648780
+       463    118528  25145530    650184
+       464    118784  25254128    651588
+       465    119040  25362960    652992
+       466    119296  25472026    654396
+       467    119552  25581326    655800
+       468    119808  25690860    657204
+       469    120064  25800628    658608
+       470    120320  25910630    660012
+       471    120576  26020866    661416
+       472    120832  26131336    662820
+       473    121088  26242040    664224
+       474    121344  26352978    665628
+       475    121600  26464150    667032
+       476    121856  26575556    668436
+       477    122112  26687196    669840
+       478    122368  26799070    671244
+       479    122624  26911178    672648
+       480    122880  27023520    674052
+       481    123136  27136096    675456
+       482    123392  27248906    676860
+       483    123648  27361950    678264
+       484    123904  27475228    679668
+       485    124160  27588740    681072
+       486    124416  27702486    682476
+       487    124672  27816466    683880
+       488    124928  27930680    685284
+       489    125184  28045128    686688
+       490    125440  28159810    688092
+       491    125696  28274726    689496
+       492    125952  28389876    690900
+       493    126208  28505260    692304
+       494    126464  28620878    693708
+       495    126720  28736730    695112
+       496    126976  28852816    696516
+       497    127232  28969136    697920
+       498    127488  29085690    699324
+       499    127744  29202478    700728
+       500    128000  29319500    702132
+       501    128256  29436756    703536
+       502    128512  29554246    704940
+       503    128768  29671970    706344
+       504    129024  29789928    707748
+       505    129280  29908120    709152
+       506    129536  30026546    710556
+       507    129792  30145206    711960
+       508    130048  30264100    713364
+       509    130304  30383228    714768
+       510    130560  30502590    716172
+       511    130816  30622186    717576
+       512    131072  30742016    718980
+       513    131328  30862080    720384
+       514    131584  30982378    721788
+       515    131840  31102910    723192
+       516    132096  31223676    724596
+       517    132352  31344676    726000
+       518    132608  31465910    727404
+       519    132864  31587378    728808
+       520    133120  31709080    730212
+       521    133376  31831016    731616
+       522    133632  31953186    733020
+       523    133888  32075590    734424
+       524    134144  32198228    735828
+       525    134400  32321100    737232
+       526    134656  32444206    738636
+       527    134912  32567546    740040
+       528    135168  32691120    741444
+       529    135424  32814928    742848
+       530    135680  32938970    744252
+       531    135936  33063246    745656
+       532    136192  33187756    747060
+       533    136448  33312500    748464
+       534    136704  33437478    749868
+       535    136960  33562690    751272
+       536    137216  33688136    752676
+       537    137472  33813816    754080
+       538    137728  33939730    755484
+       539    137984  34065878    756888
+       540    138240  34192260    758292
+       541    138496  34318876    759696
+       542    138752  34445726    761100
+       543    139008  34572810    762504
+       544    139264  34700128    763908
+       545    139520  34827680    765312
+       546    139776  34955466    766716
+       547    140032  35083486    768120
+       548    140288  35211740    769524
+       549    140544  35340228    770928
+       550    140800  35468950    772332
+       551    141056  35597906    773736
+       552    141312  35727096    775140
+       553    141568  35856520    776544
+       554    141824  35986178    777948
+       555    142080  36116070    779352
+       556    142336  36246196    780756
+       557    142592  36376556    782160
+       558    142848  36507150    783564
+       559    143104  36637978    784968
+       560    143360  36769040    786372
+       561    143616  36900336    787776
+       562    143872  37031866    789180
+       563    144128  37163630    790584
+       564    144384  37295628    791988
+       565    144640  37427860    793392
+       566    144896  37560326    794796
+       567    145152  37693026    796200
+       568    145408  37825960    797604
+       569    145664  37959128    799008
+       570    145920  38092530    800412
+       571    146176  38226166    801816
+       572    146432  38360036    803220
+       573    146688  38494140    804624
+       574    146944  38628478    806028
+       575    147200  38763050    807432
+       576    147456  38897856    808836
+       577    147712  39032896    810240
+       578    147968  39168170    811644
+       579    148224  39303678    813048
+       580    148480  39439420    814452
+       581    148736  39575396    815856
+       582    148992  39711606    817260
+       583    149248  39848050    818664
+       584    149504  39984728    820068
+       585    149760  40121640    821472
+       586    150016  40258786    822876
+       587    150272  40396166    824280
+       588    150528  40533780    825684
+       589    150784  40671628    827088
+       590    151040  40809710    828492
+       591    151296  40948026    829896
+       592    151552  41086576    831300
+       593    151808  41225360    832704
+       594    152064  41364378    834108
+       595    152320  41503630    835512
+       596    152576  41643116    836916
+       597    152832  41782836    838320
+       598    153088  41922790    839724
+       599    153344  42062978    841128
+       600    153600  42203400    842532
+       601    153856  42344056    843936
+       602    154112  42484946    845340
+       603    154368  42626070    846744
+       604    154624  42767428    848148
+       605    154880  42909020    849552
+       606    155136  43050846    850956
+       607    155392  43192906    852360
+       608    155648  43335200    853764
+       609    155904  43477728    855168
+       610    156160  43620490    856572
+       611    156416  43763486    857976
+       612    156672  43906716    859380
+       613    156928  44050180    860784
+       614    157184  44193878    862188
+       615    157440  44337810    863592
+       616    157696  44481976    864996
+       617    157952  44626376    866400
+       618    158208  44771010    867804
+       619    158464  44915878    869208
+       620    158720  45060980    870612
+       621    158976  45206316    872016
+       622    159232  45351886    873420
+       623    159488  45497690    874824
+       624    159744  45643728    876228
+       625    160000  45790000    877632
+       626    160256  45936506    879036
+       627    160512  46083246    880440
+       628    160768  46230220    881844
+       629    161024  46377428    883248
+       630    161280  46524870    884652
+       631    161536  46672546    886056
+       632    161792  46820456    887460
+       633    162048  46968600    888864
+       634    162304  47116978    890268
+       635    162560  47265590    891672
+       636    162816  47414436    893076
+       637    163072  47563516    894480
+       638    163328  47712830    895884
+       639    163584  47862378    897288
+       640    163840  48012160    898692
+       641    164096  48162176    900096
+       642    164352  48312426    901500
+       643    164608  48462910    902904
+       644    164864  48613628    904308
+       645    165120  48764580    905712
+       646    165376  48915766    907116
+       647    165632  49067186    908520
+       648    165888  49218840    909924
+       649    166144  49370728    911328
+       650    166400  49522850    912732
+       651    166656  49675206    914136
+       652    166912  49827796    915540
+       653    167168  49980620    916944
+       654    167424  50133678    918348
+       655    167680  50286970    919752
+       656    167936  50440496    921156
+       657    168192  50594256    922560
+       658    168448  50748250    923964
+       659    168704  50902478    925368
+       660    168960  51056940    926772
+       661    169216  51211636    928176
+       662    169472  51366566    929580
+       663    169728  51521730    930984
+       664    169984  51677128    932388
+       665    170240  51832760    933792
+       666    170496  51988626    935196
+       667    170752  52144726    936600
+       668    171008  52301060    938004
+       669    171264  52457628    939408
+       670    171520  52614430    940812
+       671    171776  52771466    942216
+       672    172032  52928736    943620
+       673    172288  53086240    945024
+       674    172544  53243978    946428
+       675    172800  53401950    947832
+       676    173056  53560156    949236
+       677    173312  53718596    950640
+       678    173568  53877270    952044
+       679    173824  54036178    953448
+       680    174080  54195320    954852
+       681    174336  54354696    956256
+       682    174592  54514306    957660
+       683    174848  54674150    959064
+       684    175104  54834228    960468
+       685    175360  54994540    961872
+       686    175616  55155086    963276
+       687    175872  55315866    964680
+       688    176128  55476880    966084
+       689    176384  55638128    967488
+       690    176640  55799610    968892
+       691    176896  55961326    970296
+       692    177152  56123276    971700
+       693    177408  56285460    973104
+       694    177664  56447878    974508
+       695    177920  56610530    975912
+       696    178176  56773416    977316
+       697    178432  56936536    978720
+       698    178688  57099890    980124
+       699    178944  57263478    981528
+       700    179200  57427300    982932
+       701    179456  57591356    984336
+       702    179712  57755646    985740
+       703    179968  57920170    987144
+       704    180224  58084928    988548
+       705    180480  58249920    989952
+       706    180736  58415146    991356
+       707    180992  58580606    992760
+       708    181248  58746300    994164
+       709    181504  58912228    995568
+       710    181760  59078390    996972
+       711    182016  59244786    998376
+       712    182272  59411416    999780
+       713    182528  59578280   1001184
+       714    182784  59745378   1002588
+       715    183040  59912710   1003992
+       716    183296  60080276   1005396
+       717    183552  60248076   1006800
+       718    183808  60416110   1008204
+       719    184064  60584378   1009608
+       720    184320  60752880   1011012
+       721    184576  60921616   1012416
+       722    184832  61090586   1013820
+       723    185088  61259790   1015224
+       724    185344  61429228   1016628
+       725    185600  61598900   1018032
+       726    185856  61768806   1019436
+       727    186112  61938946   1020840
+       728    186368  62109320   1022244
+       729    186624  62279928   1023648
+       730    186880  62450770   1025052
+       731    187136  62621846   1026456
+       732    187392  62793156   1027860
+       733    187648  62964700   1029264
+       734    187904  63136478   1030668
+       735    188160  63308490   1032072
+       736    188416  63480736   1033476
+       737    188672  63653216   1034880
+       738    188928  63825930   1036284
+       739    189184  63998878   1037688
+       740    189440  64172060   1039092
+       741    189696  64345476   1040496
+       742    189952  64519126   1041900
+       743    190208  64693010   1043304
+       744    190464  64867128   1044708
+       745    190720  65041480   1046112
+       746    190976  65216066   1047516
+       747    191232  65390886   1048920
+       748    191488  65565940   1050324
+       749    191744  65741228   1051728
+       750    192000  65916750   1053132
+       751    192256  66092506   1054536
+       752    192512  66268496   1055940
+       753    192768  66444720   1057344
+       754    193024  66621178   1058748
+       755    193280  66797870   1060152
+       756    193536  66974796   1061556
+       757    193792  67151956   1062960
+       758    194048  67329350   1064364
+       759    194304  67506978   1065768
+       760    194560  67684840   1067172
+       761    194816  67862936   1068576
+       762    195072  68041266   1069980
+       763    195328  68219830   1071384
+       764    195584  68398628   1072788
+       765    195840  68577660   1074192
+       766    196096  68756926   1075596
+       767    196352  68936426   1077000
+       768    196608  69116160   1078404
+       769    196864  69296128   1079808
+       770    197120  69476330   1081212
+       771    197376  69656766   1082616
+       772    197632  69837436   1084020
+       773    197888  70018340   1085424
+       774    198144  70199478   1086828
+       775    198400  70380850   1088232
+       776    198656  70562456   1089636
+       777    198912  70744296   1091040
+       778    199168  70926370   1092444
+       779    199424  71108678   1093848
+       780    199680  71291220   1095252
+       781    199936  71473996   1096656
+       782    200192  71657006   1098060
+       783    200448  71840250   1099464
+       784    200704  72023728   1100868
+       785    200960  72207440   1102272
+       786    201216  72391386   1103676
+       787    201472  72575566   1105080
+       788    201728  72759980   1106484
+       789    201984  72944628   1107888
+       790    202240  73129510   1109292
+       791    202496  73314626   1110696
+       792    202752  73499976   1112100
+       793    203008  73685560   1113504
+       794    203264  73871378   1114908
+       795    203520  74057430   1116312
+       796    203776  74243716   1117716
+       797    204032  74430236   1119120
+       798    204288  74616990   1120524
+       799    204544  74803978   1121928
+       800    204800  74991200   1123332
+       801    205056  75178656   1124736
+       802    205312  75366346   1126140
+       803    205568  75554270   1127544
+       804    205824  75742428   1128948
+       805    206080  75930820   1130352
+       806    206336  76119446   1131756
+       807    206592  76308306   1133160
+       808    206848  76497400   1134564
+       809    207104  76686728   1135968
+       810    207360  76876290   1137372
+       811    207616  77066086   1138776
+       812    207872  77256116   1140180
+       813    208128  77446380   1141584
+       814    208384  77636878   1142988
+       815    208640  77827610   1144392
+       816    208896  78018576   1145796
+       817    209152  78209776   1147200
+       818    209408  78401210   1148604
+       819    209664  78592878   1150008
+       820    209920  78784780   1151412
+       821    210176  78976916   1152816
+       822    210432  79169286   1154220
+       823    210688  79361890   1155624
+       824    210944  79554728   1157028
+       825    211200  79747800   1158432
+       826    211456  79941106   1159836
+       827    211712  80134646   1161240
+       828    211968  80328420   1162644
+       829    212224  80522428   1164048
+       830    212480  80716670   1165452
+       831    212736  80911146   1166856
+       832    212992  81105856   1168260
+       833    213248  81300800   1169664
+       834    213504  81495978   1171068
+       835    213760  81691390   1172472
+       836    214016  81887036   1173876
+       837    214272  82082916   1175280
+       838    214528  82279030   1176684
+       839    214784  82475378   1178088
+       840    215040  82671960   1179492
+       841    215296  82868776   1180896
+       842    215552  83065826   1182300
+       843    215808  83263110   1183704
+       844    216064  83460628   1185108
+       845    216320  83658380   1186512
+       846    216576  83856366   1187916
+       847    216832  84054586   1189320
+       848    217088  84253040   1190724
+       849    217344  84451728   1192128
+       850    217600  84650650   1193532
+       851    217856  84849806   1194936
+       852    218112  85049196   1196340
+       853    218368  85248820   1197744
+       854    218624  85448678   1199148
+       855    218880  85648770   1200552
+       856    219136  85849096   1201956
+       857    219392  86049656   1203360
+       858    219648  86250450   1204764
+       859    219904  86451478   1206168
+       860    220160  86652740   1207572
+       861    220416  86854236   1208976
+       862    220672  87055966   1210380
+       863    220928  87257930   1211784
+       864    221184  87460128   1213188
+       865    221440  87662560   1214592
+       866    221696  87865226   1215996
+       867    221952  88068126   1217400
+       868    222208  88271260   1218804
+       869    222464  88474628   1220208
+       870    222720  88678230   1221612
+       871    222976  88882066   1223016
+       872    223232  89086136   1224420
+       873    223488  89290440   1225824
+       874    223744  89494978   1227228
+       875    224000  89699750   1228632
+       876    224256  89904756   1230036
+       877    224512  90109996   1231440
+       878    224768  90315470   1232844
+       879    225024  90521178   1234248
+       880    225280  90727120   1235652
+       881    225536  90933296   1237056
+       882    225792  91139706   1238460
+       883    226048  91346350   1239864
+       884    226304  91553228   1241268
+       885    226560  91760340   1242672
+       886    226816  91967686   1244076
+       887    227072  92175266   1245480
+       888    227328  92383080   1246884
+       889    227584  92591128   1248288
+       890    227840  92799410   1249692
+       891    228096  93007926   1251096
+       892    228352  93216676   1252500
+       893    228608  93425660   1253904
+       894    228864  93634878   1255308
+       895    229120  93844330   1256712
+       896    229376  94054016   1258116
+       897    229632  94263936   1259520
+       898    229888  94474090   1260924
+       899    230144  94684478   1262328
+       900    230400  94895100   1263732
+       901    230656  95105956   1265136
+       902    230912  95317046   1266540
+       903    231168  95528370   1267944
+       904    231424  95739928   1269348
+       905    231680  95951720   1270752
+       906    231936  96163746   1272156
+       907    232192  96376006   1273560
+       908    232448  96588500   1274964
+       909    232704  96801228   1276368
+       910    232960  97014190   1277772
+       911    233216  97227386   1279176
+       912    233472  97440816   1280580
+       913    233728  97654480   1281984
+       914    233984  97868378   1283388
+       915    234240  98082510   1284792
+       916    234496  98296876   1286196
+       917    234752  98511476   1287600
+       918    235008  98726310   1289004
+       919    235264  98941378   1290408
+       920    235520  99156680   1291812
+       921    235776  99372216   1293216
+       922    236032  99587986   1294620
+       923    236288  99803990   1296024
+       924    236544 100020228   1297428
+       925    236800 100236700   1298832
+       926    237056 100453406   1300236
+       927    237312 100670346   1301640
+       928    237568 100887520   1303044
+       929    237824 101104928   1304448
+       930    238080 101322570   1305852
+       931    238336 101540446   1307256
+       932    238592 101758556   1308660
+       933    238848 101976900   1310064
+       934    239104 102195478   1311468
+       935    239360 102414290   1312872
+       936    239616 102633336   1314276
+       937    239872 102852616   1315680
+       938    240128 103072130   1317084
+       939    240384 103291878   1318488
+       940    240640 103511860   1319892
+       941    240896 103732076   1321296
+       942    241152 103952526   1322700
+       943    241408 104173210   1324104
+       944    241664 104394128   1325508
+       945    241920 104615280   1326912
+       946    242176 104836666   1328316
+       947    242432 105058286   1329720
+       948    242688 105280140   1331124
+       949    242944 105502228   1332528
+       950    243200 105724550   1333932
+       951    243456 105947106   1335336
+       952    243712 106169896   1336740
+       953    243968 106392920   1338144
+       954    244224 106616178   1339548
+       955    244480 106839670   1340952
+       956    244736 107063396   1342356
+       957    244992 107287356   1343760
+       958    245248 107511550   1345164
+       959    245504 107735978   1346568
+       960    245760 107960640   1347972
+       961    246016 108185536   1349376
+       962    246272 108410666   1350780
+       963    246528 108636030   1352184
+       964    246784 108861628   1353588
+       965    247040 109087460   1354992
+       966    247296 109313526   1356396
+       967    247552 109539826   1357800
+       968    247808 109766360   1359204
+       969    248064 109993128   1360608
+       970    248320 110220130   1362012
+       971    248576 110447366   1363416
+       972    248832 110674836   1364820
+       973    249088 110902540   1366224
+       974    249344 111130478   1367628
+       975    249600 111358650   1369032
+       976    249856 111587056   1370436
+       977    250112 111815696   1371840
+       978    250368 112044570   1373244
+       979    250624 112273678   1374648
+       980    250880 112503020   1376052
+       981    251136 112732596   1377456
+       982    251392 112962406   1378860
+       983    251648 113192450   1380264
+       984    251904 113422728   1381668
+       985    252160 113653240   1383072
+       986    252416 113883986   1384476
+       987    252672 114114966   1385880
+       988    252928 114346180   1387284
+       989    253184 114577628   1388688
+       990    253440 114809310   1390092
+       991    253696 115041226   1391496
+       992    253952 115273376   1392900
+       993    254208 115505760   1394304
+       994    254464 115738378   1395708
+       995    254720 115971230   1397112
+       996    254976 116204316   1398516
+       997    255232 116437636   1399920
+       998    255488 116671190   1401324
+       999    255744 116904978   1402728
+      1000    256000 117139000   1404132
+      1001    256256 117373256   1405536
+      1002    256512 117607746   1406940
+      1003    256768 117842470   1408344
+      1004    257024 118077428   1409748
+      1005    257280 118312620   1411152
+      1006    257536 118548046   1412556
+      1007    257792 118783706   1413960
+      1008    258048 119019600   1415364
+      1009    258304 119255728   1416768
+      1010    258560 119492090   1418172
+      1011    258816 119728686   1419576
+      1012    259072 119965516   1420980
+      1013    259328 120202580   1422384
+      1014    259584 120439878   1423788
+      1015    259840 120677410   1425192
+      1016    260096 120915176   1426596
+      1017    260352 121153176   1428000
+      1018    260608 121391410   1429404
+      1019    260864 121629878   1430808
+      1020    261120 121868580   1432212
+      1021    261376 122107516   1433616
+      1022    261632 122346686   1435020
+      1023    261888 122586090   1436424
+      1024    262144 122825728   1437828
diff --git a/src/manual/features/skeleton/points_1_7 b/src/manual/features/skeleton/points_1_7
deleted file mode 100644 (file)
index e46952b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-     iters     edges     input      keys
-
-         1        14        14        42
-         2        28       176       276
-         3        42      1616      1680
-         4        56     13064     10104
-         5        70     98600     60648
-         6        84    712904    363912
-         7        98   5005256   2183496
diff --git a/src/manual/features/skeleton/points_8_1024 b/src/manual/features/skeleton/points_8_1024
deleted file mode 100644 (file)
index 5ed1cb6..0000000
+++ /dev/null
@@ -1,1019 +0,0 @@
-     iters     edges     input      keys
-
-         8       112       336       210
-         9       126       414       234
-        10       140       500       258
-        11       154       594       282
-        12       168       696       306
-        13       182       806       330
-        14       196       924       354
-        15       210      1050       378
-        16       224      1184       402
-        17       238      1326       426
-        18       252      1476       450
-        19       266      1634       474
-        20       280      1800       498
-        21       294      1974       522
-        22       308      2156       546
-        23       322      2346       570
-        24       336      2544       594
-        25       350      2750       618
-        26       364      2964       642
-        27       378      3186       666
-        28       392      3416       690
-        29       406      3654       714
-        30       420      3900       738
-        31       434      4154       762
-        32       448      4416       786
-        33       462      4686       810
-        34       476      4964       834
-        35       490      5250       858
-        36       504      5544       882
-        37       518      5846       906
-        38       532      6156       930
-        39       546      6474       954
-        40       560      6800       978
-        41       574      7134      1002
-        42       588      7476      1026
-        43       602      7826      1050
-        44       616      8184      1074
-        45       630      8550      1098
-        46       644      8924      1122
-        47       658      9306      1146
-        48       672      9696      1170
-        49       686     10094      1194
-        50       700     10500      1218
-        51       714     10914      1242
-        52       728     11336      1266
-        53       742     11766      1290
-        54       756     12204      1314
-        55       770     12650      1338
-        56       784     13104      1362
-        57       798     13566      1386
-        58       812     14036      1410
-        59       826     14514      1434
-        60       840     15000      1458
-        61       854     15494      1482
-        62       868     15996      1506
-        63       882     16506      1530
-        64       896     17024      1554
-        65       910     17550      1578
-        66       924     18084      1602
-        67       938     18626      1626
-        68       952     19176      1650
-        69       966     19734      1674
-        70       980     20300      1698
-        71       994     20874      1722
-        72      1008     21456      1746
-        73      1022     22046      1770
-        74      1036     22644      1794
-        75      1050     23250      1818
-        76      1064     23864      1842
-        77      1078     24486      1866
-        78      1092     25116      1890
-        79      1106     25754      1914
-        80      1120     26400      1938
-        81      1134     27054      1962
-        82      1148     27716      1986
-        83      1162     28386      2010
-        84      1176     29064      2034
-        85      1190     29750      2058
-        86      1204     30444      2082
-        87      1218     31146      2106
-        88      1232     31856      2130
-        89      1246     32574      2154
-        90      1260     33300      2178
-        91      1274     34034      2202
-        92      1288     34776      2226
-        93      1302     35526      2250
-        94      1316     36284      2274
-        95      1330     37050      2298
-        96      1344     37824      2322
-        97      1358     38606      2346
-        98      1372     39396      2370
-        99      1386     40194      2394
-       100      1400     41000      2418
-       101      1414     41814      2442
-       102      1428     42636      2466
-       103      1442     43466      2490
-       104      1456     44304      2514
-       105      1470     45150      2538
-       106      1484     46004      2562
-       107      1498     46866      2586
-       108      1512     47736      2610
-       109      1526     48614      2634
-       110      1540     49500      2658
-       111      1554     50394      2682
-       112      1568     51296      2706
-       113      1582     52206      2730
-       114      1596     53124      2754
-       115      1610     54050      2778
-       116      1624     54984      2802
-       117      1638     55926      2826
-       118      1652     56876      2850
-       119      1666     57834      2874
-       120      1680     58800      2898
-       121      1694     59774      2922
-       122      1708     60756      2946
-       123      1722     61746      2970
-       124      1736     62744      2994
-       125      1750     63750      3018
-       126      1764     64764      3042
-       127      1778     65786      3066
-       128      1792     66816      3090
-       129      1806     67854      3114
-       130      1820     68900      3138
-       131      1834     69954      3162
-       132      1848     71016      3186
-       133      1862     72086      3210
-       134      1876     73164      3234
-       135      1890     74250      3258
-       136      1904     75344      3282
-       137      1918     76446      3306
-       138      1932     77556      3330
-       139      1946     78674      3354
-       140      1960     79800      3378
-       141      1974     80934      3402
-       142      1988     82076      3426
-       143      2002     83226      3450
-       144      2016     84384      3474
-       145      2030     85550      3498
-       146      2044     86724      3522
-       147      2058     87906      3546
-       148      2072     89096      3570
-       149      2086     90294      3594
-       150      2100     91500      3618
-       151      2114     92714      3642
-       152      2128     93936      3666
-       153      2142     95166      3690
-       154      2156     96404      3714
-       155      2170     97650      3738
-       156      2184     98904      3762
-       157      2198    100166      3786
-       158      2212    101436      3810
-       159      2226    102714      3834
-       160      2240    104000      3858
-       161      2254    105294      3882
-       162      2268    106596      3906
-       163      2282    107906      3930
-       164      2296    109224      3954
-       165      2310    110550      3978
-       166      2324    111884      4002
-       167      2338    113226      4026
-       168      2352    114576      4050
-       169      2366    115934      4074
-       170      2380    117300      4098
-       171      2394    118674      4122
-       172      2408    120056      4146
-       173      2422    121446      4170
-       174      2436    122844      4194
-       175      2450    124250      4218
-       176      2464    125664      4242
-       177      2478    127086      4266
-       178      2492    128516      4290
-       179      2506    129954      4314
-       180      2520    131400      4338
-       181      2534    132854      4362
-       182      2548    134316      4386
-       183      2562    135786      4410
-       184      2576    137264      4434
-       185      2590    138750      4458
-       186      2604    140244      4482
-       187      2618    141746      4506
-       188      2632    143256      4530
-       189      2646    144774      4554
-       190      2660    146300      4578
-       191      2674    147834      4602
-       192      2688    149376      4626
-       193      2702    150926      4650
-       194      2716    152484      4674
-       195      2730    154050      4698
-       196      2744    155624      4722
-       197      2758    157206      4746
-       198      2772    158796      4770
-       199      2786    160394      4794
-       200      2800    162000      4818
-       201      2814    163614      4842
-       202      2828    165236      4866
-       203      2842    166866      4890
-       204      2856    168504      4914
-       205      2870    170150      4938
-       206      2884    171804      4962
-       207      2898    173466      4986
-       208      2912    175136      5010
-       209      2926    176814      5034
-       210      2940    178500      5058
-       211      2954    180194      5082
-       212      2968    181896      5106
-       213      2982    183606      5130
-       214      2996    185324      5154
-       215      3010    187050      5178
-       216      3024    188784      5202
-       217      3038    190526      5226
-       218      3052    192276      5250
-       219      3066    194034      5274
-       220      3080    195800      5298
-       221      3094    197574      5322
-       222      3108    199356      5346
-       223      3122    201146      5370
-       224      3136    202944      5394
-       225      3150    204750      5418
-       226      3164    206564      5442
-       227      3178    208386      5466
-       228      3192    210216      5490
-       229      3206    212054      5514
-       230      3220    213900      5538
-       231      3234    215754      5562
-       232      3248    217616      5586
-       233      3262    219486      5610
-       234      3276    221364      5634
-       235      3290    223250      5658
-       236      3304    225144      5682
-       237      3318    227046      5706
-       238      3332    228956      5730
-       239      3346    230874      5754
-       240      3360    232800      5778
-       241      3374    234734      5802
-       242      3388    236676      5826
-       243      3402    238626      5850
-       244      3416    240584      5874
-       245      3430    242550      5898
-       246      3444    244524      5922
-       247      3458    246506      5946
-       248      3472    248496      5970
-       249      3486    250494      5994
-       250      3500    252500      6018
-       251      3514    254514      6042
-       252      3528    256536      6066
-       253      3542    258566      6090
-       254      3556    260604      6114
-       255      3570    262650      6138
-       256      3584    264704     12324
-       257      3598    266766     12372
-       258      3612    268836     12420
-       259      3626    270914     12468
-       260      3640    273000     12516
-       261      3654    275094     12564
-       262      3668    277196     12612
-       263      3682    279306     12660
-       264      3696    281424     12708
-       265      3710    283550     12756
-       266      3724    285684     12804
-       267      3738    287826     12852
-       268      3752    289976     12900
-       269      3766    292134     12948
-       270      3780    294300     12996
-       271      3794    296474     13044
-       272      3808    298656     13092
-       273      3822    300846     13140
-       274      3836    303044     13188
-       275      3850    305250     13236
-       276      3864    307464     13284
-       277      3878    309686     13332
-       278      3892    311916     13380
-       279      3906    314154     13428
-       280      3920    316400     13476
-       281      3934    318654     13524
-       282      3948    320916     13572
-       283      3962    323186     13620
-       284      3976    325464     13668
-       285      3990    327750     13716
-       286      4004    330044     13764
-       287      4018    332346     13812
-       288      4032    334656     13860
-       289      4046    336974     13908
-       290      4060    339300     13956
-       291      4074    341634     14004
-       292      4088    343976     14052
-       293      4102    346326     14100
-       294      4116    348684     14148
-       295      4130    351050     14196
-       296      4144    353424     14244
-       297      4158    355806     14292
-       298      4172    358196     14340
-       299      4186    360594     14388
-       300      4200    363000     14436
-       301      4214    365414     14484
-       302      4228    367836     14532
-       303      4242    370266     14580
-       304      4256    372704     14628
-       305      4270    375150     14676
-       306      4284    377604     14724
-       307      4298    380066     14772
-       308      4312    382536     14820
-       309      4326    385014     14868
-       310      4340    387500     14916
-       311      4354    389994     14964
-       312      4368    392496     15012
-       313      4382    395006     15060
-       314      4396    397524     15108
-       315      4410    400050     15156
-       316      4424    402584     15204
-       317      4438    405126     15252
-       318      4452    407676     15300
-       319      4466    410234     15348
-       320      4480    412800     15396
-       321      4494    415374     15444
-       322      4508    417956     15492
-       323      4522    420546     15540
-       324      4536    423144     15588
-       325      4550    425750     15636
-       326      4564    428364     15684
-       327      4578    430986     15732
-       328      4592    433616     15780
-       329      4606    436254     15828
-       330      4620    438900     15876
-       331      4634    441554     15924
-       332      4648    444216     15972
-       333      4662    446886     16020
-       334      4676    449564     16068
-       335      4690    452250     16116
-       336      4704    454944     16164
-       337      4718    457646     16212
-       338      4732    460356     16260
-       339      4746    463074     16308
-       340      4760    465800     16356
-       341      4774    468534     16404
-       342      4788    471276     16452
-       343      4802    474026     16500
-       344      4816    476784     16548
-       345      4830    479550     16596
-       346      4844    482324     16644
-       347      4858    485106     16692
-       348      4872    487896     16740
-       349      4886    490694     16788
-       350      4900    493500     16836
-       351      4914    496314     16884
-       352      4928    499136     16932
-       353      4942    501966     16980
-       354      4956    504804     17028
-       355      4970    507650     17076
-       356      4984    510504     17124
-       357      4998    513366     17172
-       358      5012    516236     17220
-       359      5026    519114     17268
-       360      5040    522000     17316
-       361      5054    524894     17364
-       362      5068    527796     17412
-       363      5082    530706     17460
-       364      5096    533624     17508
-       365      5110    536550     17556
-       366      5124    539484     17604
-       367      5138    542426     17652
-       368      5152    545376     17700
-       369      5166    548334     17748
-       370      5180    551300     17796
-       371      5194    554274     17844
-       372      5208    557256     17892
-       373      5222    560246     17940
-       374      5236    563244     17988
-       375      5250    566250     18036
-       376      5264    569264     18084
-       377      5278    572286     18132
-       378      5292    575316     18180
-       379      5306    578354     18228
-       380      5320    581400     18276
-       381      5334    584454     18324
-       382      5348    587516     18372
-       383      5362    590586     18420
-       384      5376    593664     18468
-       385      5390    596750     18516
-       386      5404    599844     18564
-       387      5418    602946     18612
-       388      5432    606056     18660
-       389      5446    609174     18708
-       390      5460    612300     18756
-       391      5474    615434     18804
-       392      5488    618576     18852
-       393      5502    621726     18900
-       394      5516    624884     18948
-       395      5530    628050     18996
-       396      5544    631224     19044
-       397      5558    634406     19092
-       398      5572    637596     19140
-       399      5586    640794     19188
-       400      5600    644000     19236
-       401      5614    647214     19284
-       402      5628    650436     19332
-       403      5642    653666     19380
-       404      5656    656904     19428
-       405      5670    660150     19476
-       406      5684    663404     19524
-       407      5698    666666     19572
-       408      5712    669936     19620
-       409      5726    673214     19668
-       410      5740    676500     19716
-       411      5754    679794     19764
-       412      5768    683096     19812
-       413      5782    686406     19860
-       414      5796    689724     19908
-       415      5810    693050     19956
-       416      5824    696384     20004
-       417      5838    699726     20052
-       418      5852    703076     20100
-       419      5866    706434     20148
-       420      5880    709800     20196
-       421      5894    713174     20244
-       422      5908    716556     20292
-       423      5922    719946     20340
-       424      5936    723344     20388
-       425      5950    726750     20436
-       426      5964    730164     20484
-       427      5978    733586     20532
-       428      5992    737016     20580
-       429      6006    740454     20628
-       430      6020    743900     20676
-       431      6034    747354     20724
-       432      6048    750816     20772
-       433      6062    754286     20820
-       434      6076    757764     20868
-       435      6090    761250     20916
-       436      6104    764744     20964
-       437      6118    768246     21012
-       438      6132    771756     21060
-       439      6146    775274     21108
-       440      6160    778800     21156
-       441      6174    782334     21204
-       442      6188    785876     21252
-       443      6202    789426     21300
-       444      6216    792984     21348
-       445      6230    796550     21396
-       446      6244    800124     21444
-       447      6258    803706     21492
-       448      6272    807296     21540
-       449      6286    810894     21588
-       450      6300    814500     21636
-       451      6314    818114     21684
-       452      6328    821736     21732
-       453      6342    825366     21780
-       454      6356    829004     21828
-       455      6370    832650     21876
-       456      6384    836304     21924
-       457      6398    839966     21972
-       458      6412    843636     22020
-       459      6426    847314     22068
-       460      6440    851000     22116
-       461      6454    854694     22164
-       462      6468    858396     22212
-       463      6482    862106     22260
-       464      6496    865824     22308
-       465      6510    869550     22356
-       466      6524    873284     22404
-       467      6538    877026     22452
-       468      6552    880776     22500
-       469      6566    884534     22548
-       470      6580    888300     22596
-       471      6594    892074     22644
-       472      6608    895856     22692
-       473      6622    899646     22740
-       474      6636    903444     22788
-       475      6650    907250     22836
-       476      6664    911064     22884
-       477      6678    914886     22932
-       478      6692    918716     22980
-       479      6706    922554     23028
-       480      6720    926400     23076
-       481      6734    930254     23124
-       482      6748    934116     23172
-       483      6762    937986     23220
-       484      6776    941864     23268
-       485      6790    945750     23316
-       486      6804    949644     23364
-       487      6818    953546     23412
-       488      6832    957456     23460
-       489      6846    961374     23508
-       490      6860    965300     23556
-       491      6874    969234     23604
-       492      6888    973176     23652
-       493      6902    977126     23700
-       494      6916    981084     23748
-       495      6930    985050     23796
-       496      6944    989024     23844
-       497      6958    993006     23892
-       498      6972    996996     23940
-       499      6986   1000994     23988
-       500      7000   1005000     24036
-       501      7014   1009014     24084
-       502      7028   1013036     24132
-       503      7042   1017066     24180
-       504      7056   1021104     24228
-       505      7070   1025150     24276
-       506      7084   1029204     24324
-       507      7098   1033266     24372
-       508      7112   1037336     24420
-       509      7126   1041414     24468
-       510      7140   1045500     24516
-       511      7154   1049594     24564
-       512      7168   1053696     24612
-       513      7182   1057806     24660
-       514      7196   1061924     24708
-       515      7210   1066050     24756
-       516      7224   1070184     24804
-       517      7238   1074326     24852
-       518      7252   1078476     24900
-       519      7266   1082634     24948
-       520      7280   1086800     24996
-       521      7294   1090974     25044
-       522      7308   1095156     25092
-       523      7322   1099346     25140
-       524      7336   1103544     25188
-       525      7350   1107750     25236
-       526      7364   1111964     25284
-       527      7378   1116186     25332
-       528      7392   1120416     25380
-       529      7406   1124654     25428
-       530      7420   1128900     25476
-       531      7434   1133154     25524
-       532      7448   1137416     25572
-       533      7462   1141686     25620
-       534      7476   1145964     25668
-       535      7490   1150250     25716
-       536      7504   1154544     25764
-       537      7518   1158846     25812
-       538      7532   1163156     25860
-       539      7546   1167474     25908
-       540      7560   1171800     25956
-       541      7574   1176134     26004
-       542      7588   1180476     26052
-       543      7602   1184826     26100
-       544      7616   1189184     26148
-       545      7630   1193550     26196
-       546      7644   1197924     26244
-       547      7658   1202306     26292
-       548      7672   1206696     26340
-       549      7686   1211094     26388
-       550      7700   1215500     26436
-       551      7714   1219914     26484
-       552      7728   1224336     26532
-       553      7742   1228766     26580
-       554      7756   1233204     26628
-       555      7770   1237650     26676
-       556      7784   1242104     26724
-       557      7798   1246566     26772
-       558      7812   1251036     26820
-       559      7826   1255514     26868
-       560      7840   1260000     26916
-       561      7854   1264494     26964
-       562      7868   1268996     27012
-       563      7882   1273506     27060
-       564      7896   1278024     27108
-       565      7910   1282550     27156
-       566      7924   1287084     27204
-       567      7938   1291626     27252
-       568      7952   1296176     27300
-       569      7966   1300734     27348
-       570      7980   1305300     27396
-       571      7994   1309874     27444
-       572      8008   1314456     27492
-       573      8022   1319046     27540
-       574      8036   1323644     27588
-       575      8050   1328250     27636
-       576      8064   1332864     27684
-       577      8078   1337486     27732
-       578      8092   1342116     27780
-       579      8106   1346754     27828
-       580      8120   1351400     27876
-       581      8134   1356054     27924
-       582      8148   1360716     27972
-       583      8162   1365386     28020
-       584      8176   1370064     28068
-       585      8190   1374750     28116
-       586      8204   1379444     28164
-       587      8218   1384146     28212
-       588      8232   1388856     28260
-       589      8246   1393574     28308
-       590      8260   1398300     28356
-       591      8274   1403034     28404
-       592      8288   1407776     28452
-       593      8302   1412526     28500
-       594      8316   1417284     28548
-       595      8330   1422050     28596
-       596      8344   1426824     28644
-       597      8358   1431606     28692
-       598      8372   1436396     28740
-       599      8386   1441194     28788
-       600      8400   1446000     28836
-       601      8414   1450814     28884
-       602      8428   1455636     28932
-       603      8442   1460466     28980
-       604      8456   1465304     29028
-       605      8470   1470150     29076
-       606      8484   1475004     29124
-       607      8498   1479866     29172
-       608      8512   1484736     29220
-       609      8526   1489614     29268
-       610      8540   1494500     29316
-       611      8554   1499394     29364
-       612      8568   1504296     29412
-       613      8582   1509206     29460
-       614      8596   1514124     29508
-       615      8610   1519050     29556
-       616      8624   1523984     29604
-       617      8638   1528926     29652
-       618      8652   1533876     29700
-       619      8666   1538834     29748
-       620      8680   1543800     29796
-       621      8694   1548774     29844
-       622      8708   1553756     29892
-       623      8722   1558746     29940
-       624      8736   1563744     29988
-       625      8750   1568750     30036
-       626      8764   1573764     30084
-       627      8778   1578786     30132
-       628      8792   1583816     30180
-       629      8806   1588854     30228
-       630      8820   1593900     30276
-       631      8834   1598954     30324
-       632      8848   1604016     30372
-       633      8862   1609086     30420
-       634      8876   1614164     30468
-       635      8890   1619250     30516
-       636      8904   1624344     30564
-       637      8918   1629446     30612
-       638      8932   1634556     30660
-       639      8946   1639674     30708
-       640      8960   1644800     30756
-       641      8974   1649934     30804
-       642      8988   1655076     30852
-       643      9002   1660226     30900
-       644      9016   1665384     30948
-       645      9030   1670550     30996
-       646      9044   1675724     31044
-       647      9058   1680906     31092
-       648      9072   1686096     31140
-       649      9086   1691294     31188
-       650      9100   1696500     31236
-       651      9114   1701714     31284
-       652      9128   1706936     31332
-       653      9142   1712166     31380
-       654      9156   1717404     31428
-       655      9170   1722650     31476
-       656      9184   1727904     31524
-       657      9198   1733166     31572
-       658      9212   1738436     31620
-       659      9226   1743714     31668
-       660      9240   1749000     31716
-       661      9254   1754294     31764
-       662      9268   1759596     31812
-       663      9282   1764906     31860
-       664      9296   1770224     31908
-       665      9310   1775550     31956
-       666      9324   1780884     32004
-       667      9338   1786226     32052
-       668      9352   1791576     32100
-       669      9366   1796934     32148
-       670      9380   1802300     32196
-       671      9394   1807674     32244
-       672      9408   1813056     32292
-       673      9422   1818446     32340
-       674      9436   1823844     32388
-       675      9450   1829250     32436
-       676      9464   1834664     32484
-       677      9478   1840086     32532
-       678      9492   1845516     32580
-       679      9506   1850954     32628
-       680      9520   1856400     32676
-       681      9534   1861854     32724
-       682      9548   1867316     32772
-       683      9562   1872786     32820
-       684      9576   1878264     32868
-       685      9590   1883750     32916
-       686      9604   1889244     32964
-       687      9618   1894746     33012
-       688      9632   1900256     33060
-       689      9646   1905774     33108
-       690      9660   1911300     33156
-       691      9674   1916834     33204
-       692      9688   1922376     33252
-       693      9702   1927926     33300
-       694      9716   1933484     33348
-       695      9730   1939050     33396
-       696      9744   1944624     33444
-       697      9758   1950206     33492
-       698      9772   1955796     33540
-       699      9786   1961394     33588
-       700      9800   1967000     33636
-       701      9814   1972614     33684
-       702      9828   1978236     33732
-       703      9842   1983866     33780
-       704      9856   1989504     33828
-       705      9870   1995150     33876
-       706      9884   2000804     33924
-       707      9898   2006466     33972
-       708      9912   2012136     34020
-       709      9926   2017814     34068
-       710      9940   2023500     34116
-       711      9954   2029194     34164
-       712      9968   2034896     34212
-       713      9982   2040606     34260
-       714      9996   2046324     34308
-       715     10010   2052050     34356
-       716     10024   2057784     34404
-       717     10038   2063526     34452
-       718     10052   2069276     34500
-       719     10066   2075034     34548
-       720     10080   2080800     34596
-       721     10094   2086574     34644
-       722     10108   2092356     34692
-       723     10122   2098146     34740
-       724     10136   2103944     34788
-       725     10150   2109750     34836
-       726     10164   2115564     34884
-       727     10178   2121386     34932
-       728     10192   2127216     34980
-       729     10206   2133054     35028
-       730     10220   2138900     35076
-       731     10234   2144754     35124
-       732     10248   2150616     35172
-       733     10262   2156486     35220
-       734     10276   2162364     35268
-       735     10290   2168250     35316
-       736     10304   2174144     35364
-       737     10318   2180046     35412
-       738     10332   2185956     35460
-       739     10346   2191874     35508
-       740     10360   2197800     35556
-       741     10374   2203734     35604
-       742     10388   2209676     35652
-       743     10402   2215626     35700
-       744     10416   2221584     35748
-       745     10430   2227550     35796
-       746     10444   2233524     35844
-       747     10458   2239506     35892
-       748     10472   2245496     35940
-       749     10486   2251494     35988
-       750     10500   2257500     36036
-       751     10514   2263514     36084
-       752     10528   2269536     36132
-       753     10542   2275566     36180
-       754     10556   2281604     36228
-       755     10570   2287650     36276
-       756     10584   2293704     36324
-       757     10598   2299766     36372
-       758     10612   2305836     36420
-       759     10626   2311914     36468
-       760     10640   2318000     36516
-       761     10654   2324094     36564
-       762     10668   2330196     36612
-       763     10682   2336306     36660
-       764     10696   2342424     36708
-       765     10710   2348550     36756
-       766     10724   2354684     36804
-       767     10738   2360826     36852
-       768     10752   2366976     36900
-       769     10766   2373134     36948
-       770     10780   2379300     36996
-       771     10794   2385474     37044
-       772     10808   2391656     37092
-       773     10822   2397846     37140
-       774     10836   2404044     37188
-       775     10850   2410250     37236
-       776     10864   2416464     37284
-       777     10878   2422686     37332
-       778     10892   2428916     37380
-       779     10906   2435154     37428
-       780     10920   2441400     37476
-       781     10934   2447654     37524
-       782     10948   2453916     37572
-       783     10962   2460186     37620
-       784     10976   2466464     37668
-       785     10990   2472750     37716
-       786     11004   2479044     37764
-       787     11018   2485346     37812
-       788     11032   2491656     37860
-       789     11046   2497974     37908
-       790     11060   2504300     37956
-       791     11074   2510634     38004
-       792     11088   2516976     38052
-       793     11102   2523326     38100
-       794     11116   2529684     38148
-       795     11130   2536050     38196
-       796     11144   2542424     38244
-       797     11158   2548806     38292
-       798     11172   2555196     38340
-       799     11186   2561594     38388
-       800     11200   2568000     38436
-       801     11214   2574414     38484
-       802     11228   2580836     38532
-       803     11242   2587266     38580
-       804     11256   2593704     38628
-       805     11270   2600150     38676
-       806     11284   2606604     38724
-       807     11298   2613066     38772
-       808     11312   2619536     38820
-       809     11326   2626014     38868
-       810     11340   2632500     38916
-       811     11354   2638994     38964
-       812     11368   2645496     39012
-       813     11382   2652006     39060
-       814     11396   2658524     39108
-       815     11410   2665050     39156
-       816     11424   2671584     39204
-       817     11438   2678126     39252
-       818     11452   2684676     39300
-       819     11466   2691234     39348
-       820     11480   2697800     39396
-       821     11494   2704374     39444
-       822     11508   2710956     39492
-       823     11522   2717546     39540
-       824     11536   2724144     39588
-       825     11550   2730750     39636
-       826     11564   2737364     39684
-       827     11578   2743986     39732
-       828     11592   2750616     39780
-       829     11606   2757254     39828
-       830     11620   2763900     39876
-       831     11634   2770554     39924
-       832     11648   2777216     39972
-       833     11662   2783886     40020
-       834     11676   2790564     40068
-       835     11690   2797250     40116
-       836     11704   2803944     40164
-       837     11718   2810646     40212
-       838     11732   2817356     40260
-       839     11746   2824074     40308
-       840     11760   2830800     40356
-       841     11774   2837534     40404
-       842     11788   2844276     40452
-       843     11802   2851026     40500
-       844     11816   2857784     40548
-       845     11830   2864550     40596
-       846     11844   2871324     40644
-       847     11858   2878106     40692
-       848     11872   2884896     40740
-       849     11886   2891694     40788
-       850     11900   2898500     40836
-       851     11914   2905314     40884
-       852     11928   2912136     40932
-       853     11942   2918966     40980
-       854     11956   2925804     41028
-       855     11970   2932650     41076
-       856     11984   2939504     41124
-       857     11998   2946366     41172
-       858     12012   2953236     41220
-       859     12026   2960114     41268
-       860     12040   2967000     41316
-       861     12054   2973894     41364
-       862     12068   2980796     41412
-       863     12082   2987706     41460
-       864     12096   2994624     41508
-       865     12110   3001550     41556
-       866     12124   3008484     41604
-       867     12138   3015426     41652
-       868     12152   3022376     41700
-       869     12166   3029334     41748
-       870     12180   3036300     41796
-       871     12194   3043274     41844
-       872     12208   3050256     41892
-       873     12222   3057246     41940
-       874     12236   3064244     41988
-       875     12250   3071250     42036
-       876     12264   3078264     42084
-       877     12278   3085286     42132
-       878     12292   3092316     42180
-       879     12306   3099354     42228
-       880     12320   3106400     42276
-       881     12334   3113454     42324
-       882     12348   3120516     42372
-       883     12362   3127586     42420
-       884     12376   3134664     42468
-       885     12390   3141750     42516
-       886     12404   3148844     42564
-       887     12418   3155946     42612
-       888     12432   3163056     42660
-       889     12446   3170174     42708
-       890     12460   3177300     42756
-       891     12474   3184434     42804
-       892     12488   3191576     42852
-       893     12502   3198726     42900
-       894     12516   3205884     42948
-       895     12530   3213050     42996
-       896     12544   3220224     43044
-       897     12558   3227406     43092
-       898     12572   3234596     43140
-       899     12586   3241794     43188
-       900     12600   3249000     43236
-       901     12614   3256214     43284
-       902     12628   3263436     43332
-       903     12642   3270666     43380
-       904     12656   3277904     43428
-       905     12670   3285150     43476
-       906     12684   3292404     43524
-       907     12698   3299666     43572
-       908     12712   3306936     43620
-       909     12726   3314214     43668
-       910     12740   3321500     43716
-       911     12754   3328794     43764
-       912     12768   3336096     43812
-       913     12782   3343406     43860
-       914     12796   3350724     43908
-       915     12810   3358050     43956
-       916     12824   3365384     44004
-       917     12838   3372726     44052
-       918     12852   3380076     44100
-       919     12866   3387434     44148
-       920     12880   3394800     44196
-       921     12894   3402174     44244
-       922     12908   3409556     44292
-       923     12922   3416946     44340
-       924     12936   3424344     44388
-       925     12950   3431750     44436
-       926     12964   3439164     44484
-       927     12978   3446586     44532
-       928     12992   3454016     44580
-       929     13006   3461454     44628
-       930     13020   3468900     44676
-       931     13034   3476354     44724
-       932     13048   3483816     44772
-       933     13062   3491286     44820
-       934     13076   3498764     44868
-       935     13090   3506250     44916
-       936     13104   3513744     44964
-       937     13118   3521246     45012
-       938     13132   3528756     45060
-       939     13146   3536274     45108
-       940     13160   3543800     45156
-       941     13174   3551334     45204
-       942     13188   3558876     45252
-       943     13202   3566426     45300
-       944     13216   3573984     45348
-       945     13230   3581550     45396
-       946     13244   3589124     45444
-       947     13258   3596706     45492
-       948     13272   3604296     45540
-       949     13286   3611894     45588
-       950     13300   3619500     45636
-       951     13314   3627114     45684
-       952     13328   3634736     45732
-       953     13342   3642366     45780
-       954     13356   3650004     45828
-       955     13370   3657650     45876
-       956     13384   3665304     45924
-       957     13398   3672966     45972
-       958     13412   3680636     46020
-       959     13426   3688314     46068
-       960     13440   3696000     46116
-       961     13454   3703694     46164
-       962     13468   3711396     46212
-       963     13482   3719106     46260
-       964     13496   3726824     46308
-       965     13510   3734550     46356
-       966     13524   3742284     46404
-       967     13538   3750026     46452
-       968     13552   3757776     46500
-       969     13566   3765534     46548
-       970     13580   3773300     46596
-       971     13594   3781074     46644
-       972     13608   3788856     46692
-       973     13622   3796646     46740
-       974     13636   3804444     46788
-       975     13650   3812250     46836
-       976     13664   3820064     46884
-       977     13678   3827886     46932
-       978     13692   3835716     46980
-       979     13706   3843554     47028
-       980     13720   3851400     47076
-       981     13734   3859254     47124
-       982     13748   3867116     47172
-       983     13762   3874986     47220
-       984     13776   3882864     47268
-       985     13790   3890750     47316
-       986     13804   3898644     47364
-       987     13818   3906546     47412
-       988     13832   3914456     47460
-       989     13846   3922374     47508
-       990     13860   3930300     47556
-       991     13874   3938234     47604
-       992     13888   3946176     47652
-       993     13902   3954126     47700
-       994     13916   3962084     47748
-       995     13930   3970050     47796
-       996     13944   3978024     47844
-       997     13958   3986006     47892
-       998     13972   3993996     47940
-       999     13986   4001994     47988
-      1000     14000   4010000     48036
-      1001     14014   4018014     48084
-      1002     14028   4026036     48132
-      1003     14042   4034066     48180
-      1004     14056   4042104     48228
-      1005     14070   4050150     48276
-      1006     14084   4058204     48324
-      1007     14098   4066266     48372
-      1008     14112   4074336     48420
-      1009     14126   4082414     48468
-      1010     14140   4090500     48516
-      1011     14154   4098594     48564
-      1012     14168   4106696     48612
-      1013     14182   4114806     48660
-      1014     14196   4122924     48708
-      1015     14210   4131050     48756
-      1016     14224   4139184     48804
-      1017     14238   4147326     48852
-      1018     14252   4155476     48900
-      1019     14266   4163634     48948
-      1020     14280   4171800     48996
-      1021     14294   4179974     49044
-      1022     14308   4188156     49092
-      1023     14322   4196346     49140
-      1024     14336   4204544     49188
index 25844d33e7df041499504fdffe0d0596afea7938..8ef14ab39d3bdb944c054eeb2fef2fce6a6b7f3d 100644 (file)
@@ -5,7 +5,7 @@ Skeleton
 .. include:: ../../../contents.rst
 
 
-With ``-S, --skeleton`` option re2c ignores all non-re2c code and generates a self-contained C-90 program
+With ``-S, --skeleton`` option re2c ignores all non-re2c code and generates a self-contained C program
 that can be further compiled and executed.
 The program consists of lexer code and input data.
 For each constructed DFA (block or condition) re2c generates a standalone lexer and two files:
@@ -13,6 +13,11 @@ For each constructed DFA (block or condition) re2c generates a standalone lexer
 The program runs each lexer on the corresponding ``.input`` file
 and compares results with the expectations.
 
+For encodings with 1-byte code units (such as ASCII, UTF-8 and EBCDIC) the generated data
+covers all DFA transitions (in other words, skeleton program triggers each conditional jump in lexer).
+For encodings with multibyte code units the generated data covers up to 256 transitions
+of each disjoint character range in DFA (see `Generating data`_ section for details).
+
 
 .. include:: example.rst
 .. include:: failures.rst
index 42a2909ad43ce1f1dae3c13f75cfd1181d1ac6b3..c835e2e924fe1aa63cdbf0d9af9e3302e5761767 100644 (file)
     quotes are case insensitive.
 
 ``--no-generation-date``
-    Suppress date output in the generated output so
-    that it only shows the ``re2c`` version.
+    Suppress date output in the generated file.
+
+``--no-version``
+    Suppress version output in the generated file.
 
 ``--encoding-policy POLICY``
     Specify how ``re2c`` must treat Unicode
index db0d742207f6c9340a99a5cd2d7bba38e5019aab..991aefa02f4f9ca086cbba5112779550588442a6 100644 (file)
@@ -2,6 +2,19 @@
 0.15x
 -----
 
+
+0.15.3 (2015-12-02)
+~~~~~~~~~~~~~~~~~~~
+
+- Fixed bugs and applied patches:
+    + #122 "clang does not compile re2c 0.15.x" (reported and fixed by Oleksii Taran).
+    + #124 "Get rid of UINT32_MAX and friends" (patch by Sergei Trofimovich, fixes FreeBSD builds).
+    + #125 "[OS X] git reports changes not staged for commit in newly cloned repository" (by Oleksii Taran, this fix also applies to Windows).
+- Added option ``--no-version`` that allows to omit version information.
+- Reduced memory and time consumed with ``-Wundefined-control-flow``.
+- Improved coverage of input data generated with ``-S --skeleton``.
+
+
 0.15.2 (2015-11-23)
 ~~~~~~~~~~~~~~~~~~~
 
index 34cb0da079f77437c11feed9aae8411a9f67dcaf..b5e06b8782087075422f9a8a77675e534c10a5f7 100644 (file)
@@ -6,6 +6,7 @@ News
 
 ★
 
+* `Release 0.15.3 <release_notes/0_15_3.html>`_
 * `Release 0.15.2 <release_notes/0_15_2.html>`_
 * `Release 0.15.1 <release_notes/0_15_1.html>`_
 * `Release 0.15 <release_notes/0_15.html>`_
diff --git a/src/news/release_notes/0_15_3.rst b/src/news/release_notes/0_15_3.rst
new file mode 100644 (file)
index 0000000..fcc56be
--- /dev/null
@@ -0,0 +1,17 @@
+==============
+Release 0.15.3
+==============
+
+.. include:: ../home.rst
+
+
+This release fixes multiple build-time and run-time failures on OS X, FreeBSD and Windows.
+Most of the problems were reported and fixed by Oleksii Taran (on OS X)
+and Sergei Trofimovich (on FreeBSD and Windows).
+Thank you for your help!
+
+`Skeleton <../../manual/features/skeleton/skeleton.html>`_ coverage has been improved.
+See section `Generating data <../../manual/features/skeleton/skeleton.html#generating-data>`_ for details.
+
+See `changelog <../changelog/changelog.html>`_ for the list of all changes.
+