From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: perfbook@vger.kernel.org
Subject: Re: [GIT PULL v3] Trial of labeling lines in code snippets
Date: Fri, 3 Aug 2018 09:45:11 -0700 [thread overview]
Message-ID: <20180803164511.GB24813@linux.vnet.ibm.com> (raw)
In-Reply-To: <1c8fb4a3-dd43-f6e9-3bf9-b1acf078f6e6@gmail.com>
On Sat, Aug 04, 2018 at 12:49:34AM +0900, Akira Yokosawa wrote:
> On 2018/08/03 07:35:57 -0700, Paul E. McKenney wrote:
> > On Fri, Aug 03, 2018 at 07:34:51AM +0900, Akira Yokosawa wrote:
> >> Hi Paul,
> >>
> >> This is v3 of the trial of fancyvrb scheme.
> >>
> >> Changes in v2 -> v3
> >>
> >> o Define "linelabel" and "lineref" environments and use them in the early part of
> >> toolsoftrade.
> >> o Define "VerbatimU" env for short snippet with no line count and use it for
> >> a couple of snippet in toolsoftrade.
> >> o Rename "VerbatimM" to "VerbatimN".
> >> o Remove "[EXP]" in commit log titles.
> >>
> >> Thanks, Akira
> >>
> >> ---
> >> The following changes since commit 3b62f67a76e15f8d8f8190a4252362d4ac0cdf23:
> >>
> >> Regenerating the atomic counter graph on a more modern CPU (2018-07-23 13:47:51 -0700)
> >>
> >> are available in the git repository at:
> >>
> >> https://github.com/akiyks/perfbook.git trial-fancyvrb-20180802a
> >>
> >> for you to fetch changes up to 6bf7a51b7b9dadf54a0b1edc8959fafed0fcf671:
> >>
> >> Add 'linelabel' and 'lineref' environment (2018-08-03 07:21:49 +0900)
> >>
> >> ----------------------------------------------------------------
> >> Akira Yokosawa (9):
> >> toolsoftrade: Add labels in code samples as comments
> >> Add script to extract code snippet from code sample
> >> toolsoftrade: Reference line in code snippets by label
> >> Update hyphen2endash
> >> Add *.fcv to .gitignore
> >> Automate sub makefile update
> >> Specify lmtt font for VerbatimM env
> >> toolsoftrade: Use \lnlbl in inline code snippet
> >> Add 'linelabel' and 'lineref' environment
> >>
> >> .gitignore | 2 +
> >> CodeSamples/api-pthreads/api-pthreads.h | 18 +--
> >> CodeSamples/toolsoftrade/forkjoinvar.c | 12 +-
> >> CodeSamples/toolsoftrade/pcreate.c | 7 +-
> >> Makefile | 14 ++-
> >> perfbook.tex | 21 ++++
> >> toolsoftrade/toolsoftrade.tex | 211 +++++++++++---------------------
> >> utilities/fcvextract.pl | 166 +++++++++++++++++++++++++
> >> utilities/gen_snippet_mk.pl | 55 +++++++++
> >> utilities/hyphen2endash.sh | 3 +
> >> 10 files changed, 351 insertions(+), 158 deletions(-)
> >> create mode 100755 utilities/fcvextract.pl
> >> create mode 100755 utilities/gen_snippet_mk.pl
> >
> > Looks nice!
> >
> > However, I tried updating a label in CodeSamples/toolsoftrade/forkjoinvar.c
> > like this (and yes, this is a nonsensical change just for testing):
> >
> > ------------------------------------------------------------------------
> >
> > diff --git a/CodeSamples/toolsoftrade/forkjoinvar.c b/CodeSamples/toolsoftrade/forkjoinvar.c
> > index 1580478fe2f9..642451d9e880 100644
> > --- a/CodeSamples/toolsoftrade/forkjoinvar.c
> > +++ b/CodeSamples/toolsoftrade/forkjoinvar.c
> > @@ -35,11 +35,11 @@ int main(int argc, char *argv[])
> > if (pid == 0) { /* child */
> > x = 1; //\lnlbl{setx}
> > printf("Child process set x=1\n"); //\lnlbl{print:c}
> > - exit(EXIT_SUCCESS); //\lnlbl{exit:s}
> > + exit(EXIT_SUCCESS);
> > }
> > if (pid < 0) { /* parent, upon error */
> > perror("fork");
> > - exit(EXIT_FAILURE);
> > + exit(EXIT_FAILURE); //\lnlbl{exit:s}
> > }
> >
> > /* parent */
> >
> > ------------------------------------------------------------------------
> >
> > When I typed "make", I got this:
> >
> > ------------------------------------------------------------------------
> >
> > $ make
> > sh utilities/autodate.sh >autodate.tex
> > ./utilities/gen_snippet_mk.pl > CodeSamples/snippets.mk
> > Use of uninitialized value $_ in substitution (s///) at ./utilities/gen_snippet_mk.pl line 47.
> > Use of uninitialized value $_ in concatenation (.) or string at ./utilities/gen_snippet_mk.pl line 48.
> > echo > qqz.tex
> > echo > contrib.tex
> > echo > origpub.tex
> > make -C CodeSamples -f snippets.mk
> > make[1]: Entering directory `/home/git/perfbook/CodeSamples'
> > --> toolsoftrade/toolsoftrade.fcv
> > Use of uninitialized value $extract_labelbase in concatenation (.) or string at ../utilities/fcvextract.pl line 115.
> > make[1]: *** [toolsoftrade/toolsoftrade.fcv] Error 1
> > make[1]: Leaving directory `/home/git/perfbook/CodeSamples'
> > make: *** [perfbook_flat.tex] Error 2
> >
> > ------------------------------------------------------------------------
>
> There is one thing I'd like to confirm.
> Did you do "make" just after checking out the trial branch (before
> modifying forkjoinvar.c)?
Yes. I pulled your changes, typed "make", modified forkjoinvar.c,
typed "make" again, and then saw the failure. When I next modified
forkjoinvar.c yet again and yet again typed "make", no failure.
> I can't reproduce the above issue on the head of the branch.
Hmmm... Let me try again.
1. Checkout origin/master, type "make". Builds fine.
2. Checkout your most recent branch, type "make". Builds fine.
3. Apply diff. Builds fine.
So I cannot reproduce, either. Hate it when that happens. :-/
But all the .fcv files would be left around, which might be influencing
things. Let's remove those and try again.
1. Checkout origin/master, type "make". Builds fine.
2. Checkout your most recent branch, type "make". This now fails:
$ make
sh utilities/autodate.sh >autodate.tex
./utilities/gen_snippet_mk.pl > CodeSamples/snippets.mk
Use of uninitialized value $_ in substitution (s///) at ./utilities/gen_snippet_mk.pl line 47.
Use of uninitialized value $_ in concatenation (.) or string at ./utilities/gen_snippet_mk.pl line 48.
echo > qqz.tex
echo > contrib.tex
echo > origpub.tex
make -C CodeSamples -f snippets.mk
make[1]: Entering directory `/home/git/perfbook/CodeSamples'
toolsoftrade/pcreate.c --> toolsoftrade/pcreate@mythread.fcv
--> toolsoftrade/toolsoftrade.fcv
Use of uninitialized value $extract_labelbase in concatenation (.) or string at ../utilities/fcvextract.pl line 115.
make[1]: *** [toolsoftrade/toolsoftrade.fcv] Error 1
make[1]: Leaving directory `/home/git/perfbook/CodeSamples'
make: *** [perfbook_flat.tex] Error 2
3. Type "make" again. Builds fine.
> In the middle of the branch, there is a point when CodeSamples/snippets.mk
> resides in the repository. It might have newer time stamp than the
> modified forkjoinvar.c. (Well, I'don't think this is likely...)
I didn't test any but your last commit, if that is what you are asking.
> I'll add a recipe to remove CodeSamples/snippets.mk by "make clean".
> You'll be able to do "make clean; make" if something goes wrong.
Adding that and the .fcv files to "make clean" sounds like a good thing
in general. Give or take my experience when the .fcv files were missing,
anyway. ;-)
Except that "make clean" already removes at least some of the .fcv files.
And the top-level snippets.mk file. Ah, but not CodeSamples/snippets.mk.
> > I typed "make" again and no errors. Plus it did update as I expected it
> > to. And when I changed it back, it built the first time without errors.
>
> Ah, you don't reproduce it once "make" succeeds. Hmm...
>
> > Do I perhaps have a shortcoming in my (admittedly ancient) environment?
> > Or is this something that happens the first time the new functionality
> > is exercised on a change?
>
> Build script changes might need "make clean" after "git pull".
> (Current HEAD doesn't remove snippets.mk even by "make neatfreak", though.)
If I do "rm CodeSamples/toolsoftrade/*.fcv", "make clean", and then
"make", I get this:
$ make
sh utilities/autodate.sh >autodate.tex
future/ibmqx2-labeled.svg --> future/ibmqx2-labeled.png
echo > qqz.tex
echo > contrib.tex
echo > origpub.tex
make -C CodeSamples -f snippets.mk
make[1]: Entering directory `/home/git/perfbook/CodeSamples'
toolsoftrade/pcreate.c --> toolsoftrade/pcreate@mythread.fcv
--> toolsoftrade/toolsoftrade.fcv
Use of uninitialized value $extract_labelbase in concatenation (.) or string at ../utilities/fcvextract.pl line 115.
make[1]: *** [toolsoftrade/toolsoftrade.fcv] Error 1
make[1]: Leaving directory `/home/git/perfbook/CodeSamples'
make: *** [perfbook_flat.tex] Error 2
Then another "make" works fine.
> I also have some other updates in build scripts to add dependencies to
> code/makefile generation scripts themselves. Will submit another pull request
> when it's ready.
Sounds very good!
Thanx, Paul
> Thanks, Akira
>
> >
> > But even so, this is -way- more convenient than my old approach of doing
> > all the changes by hand!!!
> >
> > Thanx, Paul
> >
>
next prev parent reply other threads:[~2018-08-03 18:42 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-21 0:19 [NOT YET PULL] Trial of labeling lines in code snippets Akira Yokosawa
2018-07-21 16:51 ` Paul E. McKenney
2018-07-22 15:43 ` Akira Yokosawa
2018-07-22 22:49 ` Paul E. McKenney
2018-07-23 15:09 ` Akira Yokosawa
2018-07-23 15:12 ` Akira Yokosawa
2018-07-23 21:03 ` Paul E. McKenney
2018-07-30 16:04 ` [NOT YET PULL v2] " Akira Yokosawa
2018-07-31 15:10 ` Paul E. McKenney
2018-08-01 15:24 ` Akira Yokosawa
2018-08-01 15:59 ` Paul E. McKenney
2018-08-01 22:14 ` Akira Yokosawa
2018-08-02 0:22 ` Paul E. McKenney
2018-08-02 22:34 ` [GIT PULL v3] " Akira Yokosawa
2018-08-03 14:35 ` Paul E. McKenney
2018-08-03 15:02 ` Akira Yokosawa
2018-08-03 15:49 ` Akira Yokosawa
2018-08-03 16:45 ` Paul E. McKenney [this message]
2018-08-03 23:12 ` Akira Yokosawa
2018-08-03 23:43 ` Paul E. McKenney
2018-08-04 0:00 ` Akira Yokosawa
2018-08-04 11:57 ` [GIT PULL v4] " Akira Yokosawa
2018-08-04 15:15 ` Akira Yokosawa
2018-08-05 0:06 ` [GIT PULL v5] " Akira Yokosawa
2018-08-05 16:35 ` Paul E. McKenney
2018-08-05 16:54 ` Paul E. McKenney
2018-08-05 21:58 ` Akira Yokosawa
2018-08-05 22:47 ` Paul E. McKenney
2018-08-05 23:26 ` Akira Yokosawa
2018-08-05 23:40 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180803164511.GB24813@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akiyks@gmail.com \
--cc=perfbook@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.