Re: [GIT PULL v3] Trial of labeling lines in code snippets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)?

I can't reproduce the above issue on the head of the branch.

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'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.

> 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.)

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.

        Thanks, Akira

> 
> But even so, this is -way- more convenient than my old approach of doing
> all the changes by hand!!!
> 
> 							Thanx, Paul
> 

--
To unsubscribe from this list: send the line "unsubscribe perfbook" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux