On Sun, Sep 23, 2018 at 04:21:05PM +0900, Akira Yokosawa wrote: > >From df6459c699d373a247342b3a79d3bf7a239cfbe3 Mon Sep 17 00:00:00 2001 > From: Akira Yokosawa <akiyks@xxxxxxxxx> > Date: Sun, 23 Sep 2018 09:16:20 +0900 > Subject: [PATCH 0/9] Update code snippet extraction scheme > > Hi Paul, > > This patch set updates scripts to extract code snippet from > source files under CodeSamples/. > > Patch #1 fixes fcvextract.pl to use "linelabel" environment in > extracted .fcv files. > > Patches #2 through #5 add capability to handle code snippets > other than C. Patch #2 is a simple update with a bug fix to > handle source files under deep sub-directories. > > One major obstacle was the restriction of comments in .litmus > files. > > 1) We can't add comments at the beginning nor the end of > a litmus test. > 2) There are a few tokens and characters we can't use in > comments, i.e. "exists" or "filter" as a token in > comment is not accepted by herd7, "{" and "}" characters > sometimes cause error, comments of the form "(*" -- "*)" > are not allowed in the C-language part of litmus test. > > I ended up using comments of the form "//...", which has been > supported by herdtools7. > > Patches #3 and #4 work around the restriction. > > Patch #5 prevents a side-effect of doing "make" under > CodeSamples/formal/herd, which will convert litmus tests under > CodeSamples/formal/litmus so that they can be fed into herd7, > and cause the converted tests to have redundant > "\begin[snippet]" meta commands. > > Patch #6 adds an option "style=" to the meta command > \begin{snippet}, which can be used to specify which of > Verbetim{L/N/U} is to be emitted. It also adds pass-through > handling of other options. > > Patch #7 is not an update to the scripts, but a tweak in > appearance of VerbatimN and VerbatimU environments so that > inline snippets will have frames around them. > > Patches #8 and #9 are examples of actually extracting snippets > from .sh and .litmus files. > > Effect of patch #7 can be seen in Section 4.1 (below the 1st > paragraph) and in Section 4.2.1 (above Quick Quiz 4.6) after > applying the whole patch set. If you don't like the change, > feel free to omit #7. > > By this update, hopefully, the new scheme should be able to > cover 99 percent of snippets. Although the scripts lack > rigorous checks of unexpected inputs. Very nice, thank you!!! Queued and pushed. Thanx, Paul > Thanks, Akira > > Akira Yokosawa (9): > fcvextract.pl: Use 'linelabel' env in extracted snippet > Update build scripts to support code snippets other than 'C' > Add scripts and recipes to work around restriction of herdtools7 > reorder_ltms.pl: Enable further labeling in litmus test snippet > Exclude meta command lines in .litmus -> .litmus.herd conversion > fcvextract.pl: Support 'style=' option and pass through other options > Enable 'single' frame around inline code snippets > toolsoftrade: Example of extraction of snippet from parallel.sh > future/formalregress: Example of extraction of snippet from .litmus > file > > .gitignore | 1 + > .../formal/herd/C-SB+l-o-o-u+l-o-o-u-C.litmus | 2 + > CodeSamples/formal/herd/litmus2herd.sh | 4 +- > CodeSamples/toolsoftrade/parallel.sh | 20 ++-- > Makefile | 19 +++- > future/formalregress.tex | 40 +------ > perfbook.tex | 7 +- > toolsoftrade/toolsoftrade.tex | 12 +-- > utilities/fcvextract.pl | 74 ++++++++++--- > utilities/gen_snippet_d.pl | 66 +++++++++++- > utilities/reorder_ltms.pl | 117 +++++++++++++++++++++ > 11 files changed, 281 insertions(+), 81 deletions(-) > create mode 100755 utilities/reorder_ltms.pl > > -- > 2.7.4 >