In perl.git, the branch nicholas/todo-prune-pass-0 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/69fef8ac0a29428b1b688db66487f1345ddc031e?hp=f361baee78c6ce1b9e5bf528d45084ad804d878a>
- Log ----------------------------------------------------------------- commit 69fef8ac0a29428b1b688db66487f1345ddc031e Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 18:55:37 2012 +0200 Remove two specific smartmatch suggestions from the todo list. As smartmatch is "subject to review" these are unlikely to be appropriate. M Porting/todo.pod commit c53091f6d290fdd514c5cd21db8bcd506b3207dc Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 18:35:52 2012 +0200 5.12.0 and later permit -C on the #! line with similar rules to -T Whilst this isn't as totally flexible as it might be, it's good enough to remove the todo entry, which was added when -C was forbidden on the #! line. However, making -C parsing on the #! more flexible probably requires removing the "feature" that a C<#line 1> directive triggers re-processing of #! directives. M Porting/todo.pod commit f2fe9e1771ad0486e9d120a82265755adcf78d0d Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 18:22:50 2012 +0200 Remove the reference to -fstack-protector, which is done. Exploring the use of -D_FORTIFY_SOURCE=2 remains to be done. M Porting/todo.pod commit 50a7f897d645ef4d5befe3dc9544689b0862f9ce Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 18:07:34 2012 +0200 Remove the "POD -> HTML conversion in the core still sucks" todo entry. Thanks to GSoC 2011, Pod::HTML has been refactored to use Pod::Simple::XHTML. M Porting/todo.pod commit 3ed2a851de4146c86512ebf604ae1a4a880492bb Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 17:01:39 2012 +0200 Update the todo entry for makedef.pl duplicating C conditional compilation. makedef.pl has been refactored to read from embed.fnc directly, cutting out the embed.pl middleman. Correct the header filename - it's "intrpvar.h", not "interpvar.h". M Porting/todo.pod commit 69f7c8f60fb6c59217008c28dbf3d417eedfd6d3 Author: Nicholas Clark <n...@ccl4.org> Date: Fri Mar 30 15:54:00 2012 +0200 Remove "Remove duplication of test setup" from the todo list. It's no longer obvious which files in t/ contain significant amounts of setup code which is duplicated. Common cases of skip logic have already been moved into t/test.pl. The suggestion of replacing $Is_Foo checks with %Is is not a clear-cut win - each $Is_Foo eliminated is only a 1 line saving, at the cost of another testing idiom the future maintenance programmer has to become familiar with. The related suggestion "Migrate t/ from custom TAP generation" remains something to do. There are still various files in t/ which could use be converted to use the comparison functions of t/test.pl reducing code size, improving failure diagnostics and where this eliminates manual test counters, increasing flexibility for adding tests in the logically correct location within the file. M Porting/todo.pod ----------------------------------------------------------------------- Summary of changes: Porting/todo.pod | 67 ++++++++++------------------------------------------- 1 files changed, 13 insertions(+), 54 deletions(-) diff --git a/Porting/todo.pod b/Porting/todo.pod index 130f5fa..29c6276 100644 --- a/Porting/todo.pod +++ b/Porting/todo.pod @@ -56,25 +56,6 @@ automated with a bit of perl, specifically the generation of See F<Porting/how_to_write_a_perldelta.pod> for details. -=head2 Remove duplication of test setup. - -Schwern notes, that there's duplication of code - lots and lots of tests have -some variation on the big block of C<$Is_Foo> checks. We can safely put this -into a file, change it to build an C<%Is> hash and require it. Maybe just put -it into F<test.pl>. Throw in the handy tainting subroutines. - -=head2 POD -E<gt> HTML conversion in the core still sucks - -Which is crazy given just how simple POD purports to be, and how simple HTML -can be. It's not actually I<as> simple as it sounds, particularly with the -flexibility POD allows for C<=item>, but it would be good to improve the -visual appeal of the HTML generated, and to avoid it having any validation -errors. See also L</make HTML install work>, as the layout of installation tree -is needed to improve the cross-linking. - -The addition of C<Pod::Simple> and its related modules may make this task -easier to complete. - =head2 Make Schwern poorer We should have tests for everything. When all the core's modules are tested, @@ -121,17 +102,16 @@ Ilya observed that use POSIX; eats memory like there's no tomorrow, and at various times worked to cut it down. There is probably still fat to cut out - for example POSIX passes Exporter some very memory hungry data structures. -=head2 embed.pl/makedef.pl +=head2 makedef.pl and conditional compilation -There is a script F<embed.pl> that generates several header files to prefix -all of Perl's symbols in a consistent way, to provide some semblance of -namespace support in C<C>. Functions are declared in F<embed.fnc>, variables -in F<interpvar.h>. Quite a few of the functions and variables -are conditionally declared there, using C<#ifdef>. However, F<embed.pl> -doesn't understand the C macros, so the rules about which symbols are present -when is duplicated in F<makedef.pl>. Writing things twice is bad, m'kay. -It would be good to teach C<embed.pl> to understand the conditional -compilation, and hence remove the duplication, and the mistakes it has caused. +The script F<makedef.pl> that generates the list of exported symbols on +platforms which need this. Functions are declared in F<embed.fnc>, variables +in F<intrpvar.h>. Quite a few of the functions and variables are conditionally +declared there, using C<#ifdef>. However, F<makedef.pl> doesn't understand the +C macros, so the rules about which symbols are present when is duplicated in +the Perl code. Writing things twice is bad, m'kay. It would be good to teach +F<.pl> to understand the conditional compilation, and hence remove the +duplication, and the mistakes it has caused. =head2 use strict; and AutoLoad @@ -520,14 +500,13 @@ ever creep back to libperl.a. Note, of course, that this will only tell whether B<your> platform is using those naughty interfaces. -=head2 -D_FORTIFY_SOURCE=2, -fstack-protector +=head2 -D_FORTIFY_SOURCE=2 -Recent glibcs support C<-D_FORTIFY_SOURCE=2> and recent gcc -(4.1 onwards?) supports C<-fstack-protector>, both of which give +Recent glibcs support C<-D_FORTIFY_SOURCE=2> which gives protection against various kinds of buffer overflow problems. -These should probably be used for compiling Perl whenever available, +It should probably be used for compiling Perl whenever available, Configure and/or hints files should be adjusted to probe for the -availability of these features and enable them as appropriate. +availability of these feature and enable it as appropriate. =head2 Arenas for GPs? For MAGIC? @@ -793,14 +772,6 @@ readlink(). See also L</"Virtualize operating system access">. -=head2 -C on the #! line - -It should be possible to make -C work correctly if found on the #! line, -given that all perl command line options are strict ASCII, and -C changes -only the interpretation of non-ASCII characters, and not for the script file -handle. To make it work needs some investigation of the ordering of function -calls during startup, and (by implication) a bit of tweaking of that order. - =head2 Organize error messages Perl's diagnostics (error messages, see L<perldiag>) could use @@ -848,13 +819,6 @@ bareword expressions after a "goto" as a label and never as a keyword. The prototype of truncate() is currently C<$$>. It should probably be C<*$> instead. (This is changed in F<opcode.pl>) -=head2 decapsulation of smart match argument - -Currently C<$foo ~~ $object> will die with the message "Smart matching a -non-overloaded object breaks encapsulation". It would be nice to allow -to bypass this by using explicitly the syntax C<$foo ~~ %$object> or -C<$foo ~~ @$object>. - =head2 error reporting of [$a ; $b] Using C<;> inside brackets is a syntax error, and we don't propose to change @@ -918,11 +882,6 @@ implement the necessary code in Perl 5. There are comments in C<Perl_newASSIGNOP()> that show the code paths taken by various assignment constructions involving state variables. -=head2 Implement $value ~~ 0 .. $range - -It would be nice to extend the syntax of the C<~~> operator to also -understand numeric (and maybe alphanumeric) ranges. - =head2 A does() built-in Like ref(), only useful. It would call the C<DOES> method on objects; it -- Perl5 Master Repository