This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perltodo nit for SelfLoader
[perl5.git] / pod / perltodo.pod
index be9fd79..1c8496c 100644 (file)
@@ -141,6 +141,25 @@ 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.
 
+=head2 use strict; and AutoLoad
+
+Currently if you write
+
+    package Whack;
+    use AutoLoader 'AUTOLOAD';
+    use strict;
+    1;
+    __END__
+    sub bloop {
+        print join (' ', No, strict, here), "!\n";
+    }
+
+then C<use strict;> isn't in force within the autoloaded subroutines. It would
+be more consistent (and less surprising) to arrange for all lexical pragmas
+in force at the __END__ block to be in force within each autoloaded subroutine.
+
+There's a similar problem with SelfLoader.
+
 =head1 Tasks that need a little sysadmin-type knowledge
 
 Or if you prefer, tasks that you would learn from, and broaden your skills
@@ -438,6 +457,11 @@ L<perlrun>.)
 
 Currently the %ENV entries are always byte strings.
 
+=head2 Unicode and glob()
+
+Currently glob patterns and filenames returned from File::Glob::glob()
+are always byte strings.
+
 =head2 use less 'memory'
 
 Investigate trade offs to switch out perl's choices on memory usage.
@@ -507,6 +531,15 @@ PerlIO doesn't do directories or symlinks, either: mkdir(), rmdir(),
 opendir(), closedir(), seekdir(), rewinddir(), glob(); symlink(),
 readlink().
 
+=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.
+
+
 =head1 Tasks that need a knowledge of the interpreter
 
 These tasks would need C knowledge, and knowledge of how the interpreter works,
@@ -544,6 +577,16 @@ its performance to be measured, and its bugs to be easily demonstrated.
 Allow to delete functions. One can already undef them, but they're still
 in the stash.
 
+=head2 C</w> regex modifier
+
+That flag would enable to match whole words, and also to interpolate
+arrays as alternations. With it, C</P/w> would be roughly equivalent to:
+
+    do { local $"='|'; /\b(?:P)\b/ }
+
+See L<http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2007-01/msg00400.html>
+for the discussion.
+
 =head2 optional optimizer
 
 Make the peephole optimizer optional. Currently it performs two tasks as
@@ -597,6 +640,16 @@ set. The pad API only takes a C<char *> pointer, so that's all bytes too. The
 tokeniser ignores the UTF-8-ness of C<PL_rsfp>, or any SVs returned from
 source filters.  All this could be fixed.
 
+=head2 The yada yada yada operators
+
+Perl 6's Synopsis 3 says:
+
+I<The ... operator is the "yada, yada, yada" list operator, which is used as
+the body in function prototypes. It complains bitterly (by calling fail)
+if it is ever executed. Variant ??? calls warn, and !!! calls die.>
+
+Those would be nice to add to Perl 5. That could be done without new ops.
+
 =head1 Big projects
 
 Tasks that will get your name mentioned in the description of the "Highlights
@@ -611,6 +664,8 @@ will be greatly appreciated.
 
 One bit would be to write the missing code in sv.c:Perl_dirp_dup.
 
+Fix Perl_sv_dup, et al so that threads can return objects.
+
 =head2 iCOW
 
 Sarathy and Arthur have a proposal for an improved Copy On Write which
@@ -631,5 +686,3 @@ This will allow the use of a regex from inside (?{ }), (??{ }) and
 Apparently these are quite useful. Anyway, Jeffery Friedl wants them.
 
 demerphq has this on his todo list, but right at the bottom.  
-
-