Sort the macro keys by their real-world frequency to reduce the average
authorschwarze <schwarze@openbsd.org>
Fri, 17 Jan 2014 19:22:45 +0000 (19:22 +0000)
committerschwarze <schwarze@openbsd.org>
Fri, 17 Jan 2014 19:22:45 +0000 (19:22 +0000)
mask size.  No functional change.

This shrinks the standard /usr/share/man database by 7%, now at 10.3x
the size of whatis.db, and with -Q even by 11%, now at 3.0x of whatis.db.
Now i'm out of ideas to easily shrink the size of the database.

Optimization found somewhere above the West Australian desert.
Committing from Melbourne, Victoria.

usr.bin/mandoc/mansearch.h

index 1960a9c..e6f96e0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mansearch.h,v 1.4 2014/01/06 03:02:40 schwarze Exp $ */
+/*     $Id: mansearch.h,v 1.5 2014/01/17 19:22:45 schwarze Exp $ */
 /*
  * Copyright (c) 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2013 Ingo Schwarze <schwarze@openbsd.org>
 
 #define        MANDOC_DB        "mandoc.db"
 
-#define        TYPE_An          0x0000000000000001ULL
-#define        TYPE_Ar          0x0000000000000002ULL
-#define        TYPE_At          0x0000000000000004ULL
-#define        TYPE_Bsx         0x0000000000000008ULL
-#define        TYPE_Bx          0x0000000000000010ULL
-#define        TYPE_Cd          0x0000000000000020ULL
-#define        TYPE_Cm          0x0000000000000040ULL
-#define        TYPE_Dv          0x0000000000000080ULL
-#define        TYPE_Dx          0x0000000000000100ULL
-#define        TYPE_Em          0x0000000000000200ULL
-#define        TYPE_Er          0x0000000000000400ULL
-#define        TYPE_Ev          0x0000000000000800ULL
-#define        TYPE_Fa          0x0000000000001000ULL
-#define        TYPE_Fl          0x0000000000002000ULL
-#define        TYPE_Fn          0x0000000000004000ULL
-#define        TYPE_Ft          0x0000000000008000ULL
-#define        TYPE_Fx          0x0000000000010000ULL
-#define        TYPE_Ic          0x0000000000020000ULL
-#define        TYPE_In          0x0000000000040000ULL
-#define        TYPE_Lb          0x0000000000080000ULL
-#define        TYPE_Li          0x0000000000100000ULL
-#define        TYPE_Lk          0x0000000000200000ULL
-#define        TYPE_Ms          0x0000000000400000ULL
-#define        TYPE_Mt          0x0000000000800000ULL
-#define        TYPE_Nd          0x0000000001000000ULL
-#define        TYPE_Nm          0x0000000002000000ULL
-#define        TYPE_Nx          0x0000000004000000ULL
-#define        TYPE_Ox          0x0000000008000000ULL
-#define        TYPE_Pa          0x0000000010000000ULL
-#define        TYPE_Rs          0x0000000020000000ULL
-#define        TYPE_Sh          0x0000000040000000ULL
-#define        TYPE_Ss          0x0000000080000000ULL
-#define        TYPE_St          0x0000000100000000ULL
-#define        TYPE_Sy          0x0000000200000000ULL
-#define        TYPE_Tn          0x0000000400000000ULL
-#define        TYPE_Va          0x0000000800000000ULL
-#define        TYPE_Vt          0x0000001000000000ULL
-#define        TYPE_Xr          0x0000002000000000ULL
-#define        TYPE_sec         0x0000004000000000ULL
-#define        TYPE_arch        0x0000008000000000ULL
+#define        TYPE_Nm          0x0000000000000001ULL
+#define        TYPE_Nd          0x0000000000000002ULL
+#define        TYPE_arch        0x0000000000000004ULL
+#define        TYPE_sec         0x0000000000000008ULL
+#define        TYPE_Xr          0x0000000000000010ULL
+#define        TYPE_Ar          0x0000000000000020ULL
+#define        TYPE_Fa          0x0000000000000040ULL
+#define        TYPE_Fl          0x0000000000000080ULL
+#define        TYPE_Dv          0x0000000000000100ULL
+#define        TYPE_Fn          0x0000000000000200ULL
+#define        TYPE_Ic          0x0000000000000400ULL
+#define        TYPE_Pa          0x0000000000000800ULL
+#define        TYPE_Cm          0x0000000000001000ULL
+#define        TYPE_Li          0x0000000000002000ULL
+#define        TYPE_Em          0x0000000000004000ULL
+#define        TYPE_Cd          0x0000000000008000ULL
+#define        TYPE_Va          0x0000000000010000ULL
+#define        TYPE_Ft          0x0000000000020000ULL
+#define        TYPE_Tn          0x0000000000040000ULL
+#define        TYPE_Er          0x0000000000080000ULL
+#define        TYPE_Ev          0x0000000000100000ULL
+#define        TYPE_Sy          0x0000000000200000ULL
+#define        TYPE_Sh          0x0000000000400000ULL
+#define        TYPE_In          0x0000000000800000ULL
+#define        TYPE_Ss          0x0000000001000000ULL
+#define        TYPE_Ox          0x0000000002000000ULL
+#define        TYPE_An          0x0000000004000000ULL
+#define        TYPE_Mt          0x0000000008000000ULL
+#define        TYPE_St          0x0000000010000000ULL
+#define        TYPE_Bx          0x0000000020000000ULL
+#define        TYPE_At          0x0000000040000000ULL
+#define        TYPE_Nx          0x0000000080000000ULL
+#define        TYPE_Fx          0x0000000100000000ULL
+#define        TYPE_Lk          0x0000000200000000ULL
+#define        TYPE_Ms          0x0000000400000000ULL
+#define        TYPE_Bsx         0x0000000800000000ULL
+#define        TYPE_Dx          0x0000001000000000ULL
+#define        TYPE_Rs          0x0000002000000000ULL
+#define        TYPE_Vt          0x0000004000000000ULL
+#define        TYPE_Lb          0x0000008000000000ULL
 
 __BEGIN_DECLS