-
Notifications
You must be signed in to change notification settings - Fork 542
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove trailing whitespace in .c , .cpp and .h files #2
Conversation
Perl doesn't use pull requests, patches should be filed using perlbug. Trailing whitespace removal is also not considered important, but merely noise... |
I think lots of whitespaces bring bad code quality to the Perl source code... |
Trailing whitespace has nothing to do with quality... |
Thank you very much for the patch, @xatier. This GitHub repository is just a mirror of the main repository at http://perl5.git.perl.org. But some folks like to clone from GitHub because it has a fast content delivery network. As @seveas said, patches for Perl can be submitted with I don't know if the Perl5 Porters have a policy about trailing whitespace. But I share your feelings -- code that looks good tends to run good [sic]. I'm sure the Porters would be happy to consider your patch. |
In the op tree, a statement consists of a nextstate/dbstate op (of class cop) followed by the contents of the statement. This cop is created after the statement has been parsed. So if you have nested statements, the outermost statement has the highest sequence number (cop_seq). Every sub (including BEGIN blocks) has a sequence number indicating where it occurs in its containing sub. So BEGIN { } #1 # seq 2 { # seq 1 ... } is indistinguishable from # seq 2 { BEGIN { } #1 # seq 1 ... } because the sequence number of the BEGIN block is 1 in both examples. By reserving a sequence number at the start of every block and using it once the block has finished parsing, we can do this: BEGIN { } #1 # seq 1 { # seq 2 ... } # seq 1 { BEGIN { } #2 # seq 2 ... } and now B::Deparse can tell where to put the blocks. PL_compiling.cop_seq was unused, so this is where I am stashing the pending sequence number.
[DELTA] 1.25 2016-11-17 - Reduce memory usage by only loading Config if needed and not importing from Carp. Based on PR #2 from J. Nick Coston.
[DELTA] 1.25 2016-11-17 - Reduce memory usage by only loading Config if needed and not importing from Carp. Based on PR #2 from J. Nick Coston.
At this maximal level of debugging output, it displays the top 3 state stack entries each time it pushes, but with no obvious indication that a push is occurring. This commit changes this output: | 1| Setting an EVAL scope, savestack=9, | 2| #4 WHILEM_A_max | 2| #3 WHILEM_A_max | 2| #2 CURLYX_end yes 0 <abcdef> <g> | 2| 4:POSIXD[\w](5) to be this (which includes the word "push" and extra indentation for the stack dump): | 1| Setting an EVAL scope, savestack=9, | 2| push #4 WHILEM_A_max | 2| #3 WHILEM_A_max | 2| #2 CURLYX_end yes 0 <abcdef> <g> | 2| 4:POSIXD[\w](5) Also, replace curd (current depth) var with a positive integer offset (i) var, to avoid signed/unsigned mixing problems.
[DELTA] 1.57 2017-01-22 rurban ---- * Todo the t/exec.t test 2 on cygwin. * Fixed/Todo the t/decrypt.t test 7 utf8 failures. Skip with non UTF-8 locale. 1.56 2017-01-20 rurban ---- * add binmode to the decrypt/encr,decrypt sample scripts * add utf8-encoded testcase to t/decrypt.t [cpan #110921]. use -C * stabilized some tests, add diag to sometimes failing sh tests * moved filter-util.pl to t/ * fixed INSTALLDIRS back to site since 5.12 [gh #2] * fixed exec/sh test races using the same temp. filenames * reversed this Changes file to latest first * added Travis CI
Commit v5.27.8-405-gf548aeca98 from a year ago tweaked this timing-sensitive test script to reduce false positives. However, we're still seeing the occasional failure of test 2 in smokes, so twaks the timing a little further.
Fixed the issue with warning
On some platforms, building a -DDEBUGGING perl triggers the following compiler warnings: In file included from locale.c:385: locale.c: In function ‘S_bool_setlocale_2008_i’: locale.c:2494:29: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 7 has type ‘int’ [-Wformat=] "bool_setlocale_2008_i: creating new object" \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ perl.h:4983:33: note: in definition of macro ‘DEBUG__’ DEBUG_PRE_STMTS a; DEBUG_POST_STMTS \ ^ locale.c:2493:7: note: in expansion of macro ‘DEBUG_L’ DEBUG_L(PerlIO_printf(Perl_debug_log, \ ^~~~~~~ locale.c:2523:17: note: in expansion of macro ‘DEBUG_NEW_OBJECT_FAILED’ DEBUG_NEW_OBJECT_FAILED(category_names[index], new_locale, ^~~~~~~~~~~~~~~~~~~~~~~ In file included from locale.c:322: config.h:4052:18: note: format string is defined here #define U32uf "lu" /**/ This is because the code tries to format __LINE__ with a varargs function using %"LINE_Tf". Things are slightly tricky here because in a varargs function, no type context is available, so the format string absolutely has to match the intrinsic type of each argument. The __LINE__ macro expands to a simple (decimal) integer constant. According to C, such a constant has type int if its value fits, otherwise unsigned int if it fits, otherwise long int, etc. None of the *.c files in the perl distribution exceed 32767 lines (the minimum INT_MAX required by C), so even on ancient 16-bit systems, our __LINE__ will always be of type int. The %"LINE_Tf" format is designed to match a line_t argument, not int. (On some platforms, line_t is defined as unsigned long and incompatible with int for formatting purposes.) Therefore it is an error to use %"LINE_Tf" with __LINE__. One way to fix this is to convert the argument to match the format string: ... %"LINE_Tf" ...", (line_t)__LINE__. The other way is to change the format string to match the (int) argument: "... %d ...", __LINE__. I chose option Perl#2 because it is by far the most common way to output __LINE__ elsewhere in the perl source.
I removed some trailing whitespaces with the following shell commands.