• R/O
  • SSH
  • HTTPS

tsukurimashou: Commit


Commit MetaInfo

Revision460 (tree)
Time2013-08-25 10:47:19
Authormskala

Log Message

some final packaging and 0.8 documentation stuff

Change Summary

Incremental Difference

--- trunk/ocr/Makefile.am (revision 459)
+++ trunk/ocr/Makefile.am (revision 460)
@@ -31,7 +31,7 @@
3131 comma:=,
3232 percent=%
3333
34-SHELL=@KLEKNEV@
34+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
3535
3636 ############################################################################
3737
--- trunk/idsgrep/Makefile.am (revision 459)
+++ trunk/idsgrep/Makefile.am (revision 460)
@@ -36,7 +36,7 @@
3636 comma:=,
3737 percent=%
3838
39-SHELL=@KLEKNEV@
39+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
4040
4141 ############################################################################
4242
--- trunk/beikaitoru/Makefile.am (revision 459)
+++ trunk/beikaitoru/Makefile.am (revision 460)
@@ -51,7 +51,7 @@
5151 comma:=,
5252 percent=%
5353
54-SHELL=@KLEKNEV@
54+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
5555
5656 ############################################################################
5757
--- trunk/kleknev/Makefile.am (revision 459)
+++ trunk/kleknev/Makefile.am (revision 460)
@@ -36,7 +36,7 @@
3636 comma:=,
3737 percent=%
3838
39-SHELL=@KLEKNEV@
39+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
4040
4141 ############################################################################
4242
--- trunk/configure.ac (revision 459)
+++ trunk/configure.ac (revision 460)
@@ -192,7 +192,7 @@
192192 # Autoconf initialization
193193 #
194194 AC_PREREQ([2.67])
195-AC_INIT([Tsukurimashou],[0.7],[mskala@ansuz.sooke.bc.ca],[tsukurimashou],
195+AC_INIT([Tsukurimashou],[0.8],[mskala@ansuz.sooke.bc.ca],[tsukurimashou],
196196 [[http://tsukurimashou.sourceforge.jp/]])
197197 AC_PRESERVE_HELP_ORDER
198198 AM_INIT_AUTOMAKE([foreign check-news color-tests dist-zip no-dist-gzip
@@ -200,9 +200,9 @@
200200 AC_CONFIG_SRCDIR([hamlog/hamlog])
201201 AC_CONFIG_HEADERS([config.h])
202202 AC_CONFIG_MACRO_DIR([m4])
203-AC_REVISION([$Id: configure.ac 2388 2013-08-05 22:37:41Z mskala $])
203+AC_REVISION([$Id: configure.ac 2421 2013-08-25 01:41:59Z mskala $])
204204 AC_COPYRIGHT([Copyright (C) 2011, 2012, 2013 Matthew Skala])
205-AC_SUBST([release_date],["March 7, 2013"])
205+AC_SUBST([release_date],["August 26, 2013"])
206206 AM_SILENT_RULES
207207 #
208208 ############################################################################
@@ -395,7 +395,7 @@
395395 #
396396 AC_SUBST([enable_parasites])
397397 AS_IF([test "x$enable_parasites" = "xnone"],[],
398- [AC_CONFIG_SUBDIRS([beikaitoru genjimon idsgrep ocr])])
398+ [AC_CONFIG_SUBDIRS([beikaitoru genjimon idsgrep kleknev ocr])])
399399 #
400400 AS_IF([test "x$prefix" = "xNONE"],[prefix="$ac_default_prefix"])
401401 AS_IF([test "$with_kanjidic2" = "auto"],[
--- trunk/doc/usermanual.tex (revision 459)
+++ trunk/doc/usermanual.tex (revision 460)
@@ -413,74 +413,48 @@
413413 \blsubsection{\TsukurimashouVWide
414414 のニュース}{What's new in \TsukurimashouVersion?}
415415
416-This version extends the kanji coverage to roughly halfway through Grade
417-Four. There have also been a lot of infrastructure changes, some of them
418-with important visible effects. This version has taken a long time to bring
419-to release, and the rate of kanji per unit time is a fair bit below what I'd
420-like it to be. That's partly because of issues outside the project that
421-have limited my available time to work on defining kanji. There's a lot of
422-important material here other than kanji, however, and my hope is that the
423-infrastructure improvements in 0.7 will help improve the rate of kanji
424-addition further in the future and keep the project sustainable long enough
425-that it can reach full coverage. Here's a summary of the new stuff.
416+Version 0.8 covers 1502 kanji, including all those taught through Grade Four
417+in the Japanese school system. This release includes relatively few major
418+changes to infrastructure. The new kanji are the main new content in this
419+version. These (100 scheduled by the roadmap, roughly another hundred
420+spin-offs as a result of building kanji that are parts of others, and so on)
421+turned out to be disproportionately hard. It seems like Grade Four is when
422+the Japanese school system takes the gloves off, so to speak, and expects
423+children to learn kanji that are much less well-behaved than before in terms
424+of being made of simple parts in simple ways. Many of the new kanji in this
425+release contain weird stroke structures that do \emph{not} occur widely in
426+other glyphs. As a result, they required a fair bit more new code, and this
427+new code is likely to be less reusable, than the kanji in earlier releases.
428+I'm hoping that some of the kanji in the next few versions will be easier to
429+handle, but that remains to be seen.
426430
431+Here are some other things of note in the new version:
432+
427433 \begin{itemize}
428-\item Font weight (bold, light, and so on) has been added, along with what
429- I think
430- is a reasonable if idiosyncratic way of handling ``style'' definitions like
431- ``Anbiruteki'' that are actually weight-related. This feature basically
432- multiplies by six the number of fonts the package can generate. It
433- was gratifying that almost all the code I wrote a long time ago to support
434- font weight in the future and never really tested, actually worked when I
435- added the missing parts and flipped the switch.
436-\item ``Anchors,'' which are primarily used for attaching combining accents
437- in Latin, have been reworked almost completely. They were broken in the
438- previous version and should at least be less broken now.
439-\item A general mechanism for ``parasite'' packages was added to the build
440- system, and several of my other projects were reorganized to use this
441- mechanism. They now come included with full distributions of
442- Tsukurimashou. Genjimon and IDSgrep were already affiliated with
443- Tsukurimashou, but I've made their interfaces to Tsukurimashou's build
444- system more consistent and have added OCR and Beikaitoru.
445-\item Dependency scanning for PFB files has been split into smaller
446- chunks that can run simultaneously; this significantly speeds up some
447- common scenarios when running the build system on a multicore computer.
448-\item Build-system dependency handling should have been improved in the case
449- of a brand-new Metapost source file being added. This is difficult to
450- test, however, and may require further work in the future.
451-\item IDSgrep has many new features. I
452- released a version 0.3 of it in late 2012, but Tsukurimashou 0.7 now ships
453- with a pre-release of version IDSgrep 0.4, containing some interesting
454- features beyond those of IDSgrep 0.3.
455-\item Some lowercase Latin letters in TsuIta have been redrawn. This was
456- a to-do list item; the last released version of TsuIta was experimental
457- and this version is less so.
458-\item There is more support for ``Hangul Extension'' Unicode blocks, covering
459- rare, historical, and dialect vowels and consonants in Korean.
460-\item The ``xpua'' feature was added, to remove private-use code points from
461- glyphs meant to be accessed via OpenType features. This may improve the
462- ability to cut and paste from PDF documents made with Tsukurimashou fonts.
463-\item The bundled version of METATYPE1 has diverged further from GUST's
464- distributed version; many features not used by Tsukurimashou have been
465- removed, and the hope is that this stripped-down version will be easier to
466- maintain.
467-\item Low-level shape-drawing operations in Tsukurimashou have been modified
468- to insert extra nodes in some curves in order to produce more accurate
469- shapes and line widths, especially when a stroke turns a tight corner.
470- This has necessitated some changes to the definitions some shapes
471- (especially in the hiragana, which contain some of the oldest code still in
472- use) because of unexpected dependence on the old, broken behaviour. It is
473- possible that some glyphs may have visibly changed shape, but the goal is
474- for that not to have happened to any significant degree.
475-\item FontForge's fontlint script has been replaced. This was a last-minute
476- addition and detailed documentation isn't written yet, but there's a
477- strong chance that Tsukurimashou's replacement for fontlint will end up
478- being adopted by FontForge mainline anyway. Shipping it with
479- Tsukurimashou is still worthwhile for the benefit of people who aren't
480- using cutting-edge FontForge.
481-\item Another thing that came up at the last minute: CHISE's servers appear
482- to be shutting down, and I have posted a snapshot of the part of their
483- Git repository that is relevant to IDSgrep, in my own Github account.
434+\item Kleknev, a build system profiler, added as a parasite package. This
435+actually originated in some last-minute issues that came up while packaging
436+the previous version, 0.7. It remains somewhat undocumented and
437+experimental, but there is at least a man page.
438+
439+\item The expect script used for invoking \XeLaTeX\ and a few other things
440+now waits for child processes to avoid creating zombies. That it didn't,
441+before, was a bug discovered during Kleknev development.
442+
443+\item IDSgrep 0.4, released a few days before this version of Tsukurimashou,
444+now incorporates experimental bit vector indices. This is actually a pretty
445+big deal; it is cutting-edge computer science research from which I hope to
446+gain many prestigious academic publications. From a user's point of view,
447+though, the practical consequence is simply that IDSgrep should now run a
448+lot faster. See the IDSgrep documentation for more about the bit vector
449+indices.
450+
451+\item Shortly after the release of Tsukurimashou~0.8, I will be giving a
452+presentation about the project at TUG~2013, the \TeX\ Users Group annual
453+meeting, in Tokyo. That should raise the profile of the project a bit.
454+
455+\item Since May 2013, I am unemployed and looking for work. That may have
456+consequences eventually. The fact that I am still single really worries me
457+more, but both are important.
484458 \end{itemize}
485459
486460 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -505,6 +479,12 @@
505479
506480 \begin{itemize}
507481
482+\item ``LCCD, A Language for Chinese Character Design,'' Tung Yun Mei,
483+Stanford technical report STAN-CS-80-824. He built a language similar in
484+nature to METAFONT (collaborating with Knuth and sharing ideas with the
485+earliest versions of METAFONT) and constructed 112 kanji for use in TAOCP.
486+It's interesting how little has changed since this early work.
487+
508488 \item ``A Chinese Meta-Font,'' John Hobby and Gu Guoan, paper in TUGboat
509489 5--2, 1984. Proof of concept and discussion of some of the graphic design
510490 issues for parameterized CJK fonts. They built 140 radicals and 128
@@ -635,7 +615,7 @@
635615 \blsubsection{デベロップメントロードマップ}{Development roadmap}
636616
637617 This version contains all the kyouiku kanji (the ones taught in Japanese
638-elementary school) through Grade 3 and half of Grade 4. The current plan is
618+elementary school) through Grade 4. The current plan is
639619 to release a minor version after each grade level of kyouiku kanji and one
640620 halfway through each grade level, which will take us up to version 0.12 at
641621 the end of Grade 6. Version 1.0 will probably be a separate version
@@ -696,9 +676,10 @@
696676 % 0.5 20111216 2455911 776 2260 36479
697677 % 0.6 20120618 2456096 1110 2586 46635
698678 % 0.7 20130307 2456358 1291 2770 48879
679+% 0.8 20130826 2456530 1502 2981 60177
699680
700681 \begin{figure}
701-\tikzset{horizontal axis/.style={xscale=0.14,xshift=1.5cm}}
682+\tikzset{horizontal axis/.style={xscale=0.11,xshift=1.5cm}}
702683 \tikzset{vertical axis/.style={yscale=0.2}}
703684 \centering
704685 \begin{tikzpicture}
@@ -712,9 +693,9 @@
712693 \node[rotate=90] at (-2,16) {glyphs};
713694 \end{scope}
714695 \begin{scope}[horizontal axis]
715- \draw[arrows=-triangle 60] (-2,0) -- (78.0,0);
696+ \draw[arrows=-triangle 60] (-2,0) -- (95.0,0);
716697 \foreach \x/\xlbl in
717- {1.2/0.1,5.8/0.2,9.2/0.3,25.1/0.4,31.1/0.5,49.6/0.6,76.0/0.7} {
698+ {1.2/0.1,5.8/0.2,9.2/0.3,25.1/0.4,31.1/0.5,49.6/0.6,76.0/0.7,93.0/0.8} {
718699 \draw (\x,-0.2) -- (\x,0.2);
719700 \node[anchor=north] at (\x,-0.2) {\scriptsize\xlbl};
720701 }
@@ -728,6 +709,7 @@
728709 \node (v5k) at (31.1,7.76) {漢};
729710 \node (v6k) at (49.6,11.10) {漢};
730711 \node (v7k) at (75.7,12.91) {漢};
712+ \node (v8k) at (93.0,15.02) {漢};
731713 \node (v1t) at (1.2,13.07) {\labelitemi};
732714 \node (v2t) at (5.8,16.46) {\labelitemi};
733715 \node (v3t) at (9.2,17.97) {\labelitemi};
@@ -734,13 +716,14 @@
734716 \node (v4t) at (25.1,20.21) {\labelitemi};
735717 \node (v5t) at (31.1,22.60) {\labelitemi};
736718 \node (v6t) at (49.6,25.86) {\labelitemi};
737- \node (v7t) at (76.0,27.70) {\labelitemi};
719+ \node (v7t) at (75.7,27.70) {\labelitemi};
720+ \node (v8t) at (93.0,29.81) {\labelitemi};
738721 \draw (v1k) -- (v2k) -- (v3k) -- (v4k)
739- -- (v5k) -- (v6k) node[sloped,above,midway] {kanji};
740- \draw (v6k) -- (v7k);
722+ -- (v5k) -- (v6k) -- (v7k) node[sloped,above,midway] {kanji};
723+ \draw (v7k) -- (v8k);
741724 \draw (v1t) -- (v2t) -- (v3t) -- (v4t)
742- -- (v5t) -- (v6t) node[sloped,above,midway] {total};
743- \draw (v6t) -- (v7t);
725+ -- (v5t) -- (v6t) -- (v7t) node[sloped,above,midway] {total};
726+ \draw (v7t) -- (v8t);
744727 \end{scope}
745728 \end{tikzpicture}
746729 \caption{Growth of glyph counts}
@@ -760,8 +743,9 @@
760743 \centering
761744 \begin{tikzpicture}
762745 \begin{scope}[vertical axis]
763- \draw[arrows=-triangle 60] (0,0) -- (0,52);
764- \foreach \y/\ylbl in {0/0,10/10000,20/20000,30/30000,40/40000,50/50000} {
746+ \draw[arrows=-triangle 60] (0,0) -- (0,62);
747+ \foreach \y/\ylbl in
748+ {0/0,10/10000,20/20000,30/30000,40/40000,50/50000,60/60000} {
765749 \draw (-0.2,\y) -- (0.2,\y);
766750 \node[anchor=east] at (-0.2,\y) {\ylbl};
767751 }
@@ -784,7 +768,8 @@
784768 \node (v5) at (22.60,36.479) {\labelitemi};
785769 \node (v6) at (25.86,46.635) {\labelitemi};
786770 \node (v7) at (27.70,48.879) {\labelitemi};
787- \draw (v1) -- (v2) -- (v3) -- (v4) -- (v5) -- (v6) -- (v7);
771+ \node (v8) at (29.81,60.177) {\labelitemi};
772+ \draw (v1) -- (v2) -- (v3) -- (v4) -- (v5) -- (v6) -- (v7) -- (v8);
788773 \end{scope}
789774 \end{tikzpicture}
790775 \caption{Lines of code per glyph}
@@ -844,12 +829,13 @@
844829 ``uni1100.l1'' from Tsukurimashou 0.5; in the new METATYPE1 version
845830 0.55, that gets tokenized in a context where the token ``l'' is a
846831 ``spark,'' and so the whole compilation fails. The workaround
847- is to change ``l'' to ``lj'' (for ``lead jamo''). We are not
848- actually using the glyph names written into the Postscript files,
849- so it doesn't matter if they are incorrect, but compilation must
850- not fail. In the longer term it would be nice to make METATYPE1
851- not exhibit this behaviour, and pass the strings intact into the
852- Postscript file.
832+ for that was to change ``l'' to ``lj'' (for ``lead jamo''). A further
833+ workaround, introduced in Tsukurimashou 0.6, was to modify the bundled
834+ METATYPE1 code to save the glyph name as a string and put that in the
835+ Postscript file instead of the tokenized version. It still also parses
836+ the names as tokens, however, so there is also code to insert a bunch of
837+ underscores in the internally-used name before doing that, to reduce the
838+ chance of name collisions from this parsing.
853839
854840 \item METATYPE1 pen\_stroke\_edge macro: as of METATYPE1 version
855841 0.44, for reasons unknown to me if left to its own devices it will
@@ -895,7 +881,8 @@
895881 macro will sometimes abort in response to some conditions on ``turning
896882 number'' that do not appear to actually be harmful. Workaround is to
897883 use our dangerousFill in intro.mp instead, which is just a copy of Fill
898- with the error checking removed.
884+ with the error checking removed. Since the switch to bundled code based
885+ on METATYPE1 version 0.55, this seems to be a less significant issue.
899886
900887 \item FontForge spline geometry operations, such as overlap removal and
901888 simplification: these have historically tended to be very numerically
@@ -968,6 +955,18 @@
968955 actually be built without FreeType. As of April 2012, seems not to
969956 be an issue with Arch Linux's packaged versions.
970957
958+ \item FontForge attempts to modify the names of all glyphs that it thinks
959+ are ``related'' whenever a glyph name changes for any reason.
960+ Related-glyph renaming has wacky consequences when one glyph name is a
961+ substring of another, and the Beikaitoru glyph-naming scripts (among
962+ other things in Tsukurimashou) have to take it into account. This issue
963+ was reported as FontForge Github issue number 523
964+ (\url{https://github.com/fontforge/fontforge/issues/523}) and patched in
965+ their mainline; I don't understand FontForge's release schedule if they
966+ have one, but presumably, distributed versions will someday contain the
967+ fix. Until we're sure that day has passed, Tsukurimashou will continue
968+ to work around the issue.
969+
971970 \item \XeTeX\ fails to advance glyph pointer after a successful match in a
972971 GSUB table, which has complicated consequences for chaining
973972 substitutions, most notably that ``ignore sub'' rules have no effect.
@@ -2051,11 +2050,11 @@
20512050 as part of the basic Hamlog name but may be introduced via rewriting, as
20522051 explained below.
20532052 \begin{description}
2054- \item{tsukurimashou} kaku, maru, mincho, bokukko, anbiruteki$^*$,
2055- tenshinokami$^*$.
2056- \item{tsuita} soku, atama.
2057- \item{jieubsida} dodum, batang, sunmoon.
2058- \item{blackletter\_lolita} cosette.
2053+ \item{\anbiruteki tsukurimashou} kaku, maru, mincho, bokukko,
2054+ anbiruteki$^*$, tenshinokami$^*$.
2055+ \item{\anbiruteki tsuita} soku, atama.
2056+ \item{\anbiruteki jieubsida} dodum, batang, sunmoon.
2057+ \item{\anbiruteki blackletter\_lolita} cosette.
20592058 \end{description}
20602059
20612060 The weight may be ``extralight,'' ``light,'' ``normal,'' ``demibold,''
@@ -2427,6 +2426,21 @@
24272426 parasite package test suites (in particular, the one for IDSgrep) may be of
24282427 more practical use than the main Tsukurimashou fontlint tests.
24292428
2429+If you try to do ``make distcheck,'' it will fail if any of the tests fail;
2430+and the tests probably \emph{will} fail because of the bugs in FontForge
2431+spline geometry. A workaround, used in my Tsukurimashou 0.8 distribution
2432+packages, is to override the options for \texttt{fontlint.pe} as follows:
2433+\begin{verbatim}
2434+make DISTCHECK\_CONFIGURE\_FLAGS='FONTLINT_FLAGS="-w 2,3,5,23"' distcheck
2435+\end{verbatim}
2436+
2437+The \texttt{DISTCHECK\_CONFIGURE\_FLAGS} variable specifies additional flags
2438+(actually a command-line fragment) that ``make distcheck'' will pass to
2439+``configure.'' Then inside that, the \texttt{FONTLINT\_FLAGS} variable
2440+specifies flags to pass to the font integrity checker. The codes 2, 3, 5,
2441+and 23 are the errors that I wasn't able to correct with the version of
2442+FontForge installed on my development system as of the time of the release.
2443+
24302444 Don't bother with ``-{}-disable-dependency-tracking''; that is an
24312445 Autotools thing meant for much larger and more softwary packages. It
24322446 applies only to code in languages supported by Autotools, which at
@@ -2513,11 +2527,11 @@
25132527 dist'' target. Parasites will generally look for a Tsukrimashou Project
25142528 build in the parent directory and connect to it if one is found.
25152529
2516-The current parasites are Beikaitoru, Genjimon, IDSgrep, and OCR. Each of
2517-these has its own detailed documentation, which see; the notes here are just
2518-a summary to give some idea of what the packages are all about. Most of
2519-these existed in some form prior to the introduction of the parasite build
2520-mechanism, and in some cases vestiges still exist of their old, less
2530+The current parasites are Beikaitoru, Genjimon, IDSgrep, Kleknev, and OCR.
2531+Each of these has its own detailed documentation, which see; the notes here
2532+are just a summary to give some idea of what the packages are all about.
2533+Most of these existed in some form prior to the introduction of the parasite
2534+build mechanism, and in some cases vestiges still exist of their old, less
25212535 systematic, ways of connecting to Tsukurimashou. In the future, the
25222536 connections will be more streamlined and normalized.
25232537
@@ -2552,6 +2566,15 @@
25522566 interface to several different character dictionaries, including
25532567 structural data extracted from Tsukruimashou. GPLv3.
25542568
2569+ \item{Kleknev} A coarse-grained profiler for build systems, such as the
2570+ Tsukurimashou build. This is still rather experimental. It basically
2571+ consists of a wrapper program that Make can invoke instead of
2572+ \texttt{/bin/sh}, which will (when told to do so by a special
2573+ environment variable) collect a bunch of performance information that
2574+ can be analysed by a separate reporting program to provide some insight
2575+ into where all the time goes during a long build. See my Web log
2576+ article at
2577+
25552578 \item{OCR} Freely usable vector versions of the standard OCR A and OCR B
25562579 fonts, based on the work of Tor Lillqvist, Richard B.\ Wales, and
25572580 Norbert Schwarz. License terms vary, but the fonts should all be
--- trunk/doc/bkstyle.tex (revision 459)
+++ trunk/doc/bkstyle.tex (revision 460)
@@ -334,7 +334,7 @@
334334 \vspace*{\fill}
335335
336336 Proofs and pretty-printed source code for Tsukurimashou\\
337-Copyright © 2011, 2012~~Matthew Skala
337+Copyright © 2011, 2012, 2013~~Matthew Skala
338338
339339 This program is free software: you can redistribute it and/or modify
340340 it under the terms of the GNU General Public License as published by
--- trunk/genjimon/Makefile.am (revision 459)
+++ trunk/genjimon/Makefile.am (revision 460)
@@ -45,7 +45,7 @@
4545 comma:=,
4646 percent=%
4747
48-SHELL=@KLEKNEV@
48+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
4949
5050 ############################################################################
5151
--- trunk/Makefile.am (revision 459)
+++ trunk/Makefile.am (revision 460)
@@ -57,7 +57,7 @@
5757 ZZZZHACKZZZZ=include makefile-vars.inc
5858 $(error This Makefile must be edited by Perl code in config.status before use)
5959
60-SHELL=@KLEKNEV@
60+SHELL=$(if $(wildcard @KLEKNEV@),@KLEKNEV@,/bin/sh)
6161 SUBDIRS = . $(PARASITES)
6262
6363 ############################################################################
Show on old repository browser