⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 perltodo.pod

📁 MSYS在windows下模拟了一个类unix的终端
💻 POD
📖 第 1 页 / 共 2 页
字号:
=head1 NAMEperltodo - Perl TO-DO List=head1 DESCRIPTIONThis is a list of wishes for Perl.  It is maintained by NathanTorkington for the Perl porters.  Send updates toI<perl5-porters@perl.org>.  If you want to work on any of theseprojects, be sure to check the perl5-porters archives for past ideas,flames, and propaganda.  This will save you time and also prevent youfrom implementing something that Larry has already vetoed.  One setof archives may be found at:    http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/=head1 Infrastructure=head2 Mailing list archivesChaim suggests contacting egroup and asking them to archive the otherperl.org mailing lists.  Probably not advocacy, but definitelyperl6-porters, etc.=head2 Bug tracking systemRichard Foley I<richard@perl.org> is writing one.  We looked atseveral, like gnats and the Debian system, but at the time weinvestigated them, none met our needs.  Since then, Jitterbug hasmatured, and may be worth reinvestigation.The system we've developed is the recipient of perlbug mail, and anyfollowups it generates from perl5-porters.  New bugs are enteredinto a mysql database, and sent on toperl5-porters with the subject line rewritten to include a "ticketnumber" (unique ID for the new bug).  If the incoming message alreadyhad a ticket number in the subject line, then the message is loggedagainst that bug.  There is a separate email interface (not forwardingto p5p) that permits porters to claim, categorize, and close tickets.There is also a web interface to the system at http://bugs.perl.org.The current delay in implementation is caused by perl.org lockups.One suspect is the mail handling system, possibly going into loops.We still desperately need a bugmaster, someone who will look atevery new "bug" and kill those that we already know about, thosethat are not bugs at all, etc.=head2 Regression TestsThe test suite for Perl serves two needs: ensuring features work, andensuring old bugs have not been reintroduced.  Both need work.Brent LaVelle (lavelle@metronet.com) has stepped forward to work onperformance tests and improving the size of the test suite.=over 4=item CoverageDo the tests that come with Perl exercise every line (or every block,or ...)  of the Perl interpreter, and if not then how can we make themdo so?=item RegressionNo bug fixes should be made without a corresponding testsuite addition.This needs a dedicated enforcer, as the current pumpking is either toolazy or too stupid or both and lets enforcement wander all over themap.  :-)=item __DIE__Tests that fail need to be of a form that can be readily mailedto perlbug and diagnosed with minimal back-and-forth's to determinewhich test failed, due to what cause, etc.=item suidperlWe need regression/sanity tests for suidperl=item The 25% slowdown from perl4 to perl5This value may or may not be accurate, but it certainly iseye-catching.  For some things perl5 is faster than perl4, but oftenthe reliability and extensibility have come at a cost of speed.  Thebenchmark suite that Gisle released earlier has been hailed as both afantastic solution and as a source of entirely meaningless figures.Do we need to test "real applications"?  Can you do so?  Anyone havemachines to dedicate to the task?  Identify the things that have grownslower, and see if there's a way to make them faster.=back=head1 ConfigureAndy Dougherty maintain(ed|s) a list of "todo" items for the configurethat comes with Perl.  See Porting/pumpkin.pod in the latestsource release.=head2 Install HTMLHave "make install" give you the option to install HTML as well.  Thiswould be part of Configure.  Andy Wardley (certified Perl studmuffin)will look into the current problems of HTML installation--is'installhtml' preventing this from happening cleanly, or is pod2htmlthe problem?  If the latter, Brad Appleton's pod work may fix theproblem for free.=head1 Perl Language=head2 64-bit PerlVerify complete 64 bit support so that the value of sysseek, or C<-s>, orstat(), or tell can fit into a perl number without losing precision.Work with the perl-64bit mailing list on perl.org.=head2 Prototypes=over 4=item Named prototypesAdd proper named prototypes that actually work usefully.=item Indirect objectsFix prototype bug that forgets indirect objects.=item Method callsPrototypes for method calls.=item ContextReturn context prototype declarations.=item Scoped subslexically-scoped subs, e.g. my sub=back=head1 Perl Internals=head2 magic_setisaC<magic_setisa> should be made to update %FIELDS [???]=head2 Garbage CollectionThere was talk of a mark-and-sweep garbage collector at TPC2, but the(to users) unpredictable nature of its behaviour put some off.Sarathy, I believe, did the work.  Here's what he has to say:Yeah, I hope to implement it someday too.  The points that wereraised in TPC2 were all to do with calling DESTROY() methods, butI think we can accommodate that by extending bless() to stashextra information for objects so we track their lifetime accuratelyfor those that want their DESTROY() to be predictable (this will bea speed hit, naturally, and will therefore be optional, naturally. :)[N.B. Don't even ask me about this now!  When I have the time towrite a cogent summary, I'll post it.]=head2 Reliable signalsSarathy and Dan Sugalski are working on this.  Chip posted a patchearlier, but it was not accepted into 5.005.  The issue is tricky,because it has the potential to greatly slow down the core.There are at least three things to consider:=over 4=item Alternate runops() for signal despatchSarathy and Dan are discussed this on perl5-porters.=item Figure out how to die() in delayed sighandler=item Add tests for Thread::Signal=item Automatic tests against CPANIs there some way to automatically build all/most of CPAN withthe new Perl and check that the modules there pass all the tests?=back=head2 Interpolated regex performance bugs  while (<>) {    $found = 0;    foreach $pat (@patterns) {      $found++ if /$pat/o;    }    print if $found;  }The qr// syntax added in 5.005 has solved this problem, butit needs more thorough documentation.=head2 Memory leaks from failed eval/regcompThe only known memory leaks in Perl are in failed code or regexpcompilation.  Fix this.  Hugo Van Der Sanden will attempt this butwon't have tuits until January 1999.=head2 Make XS easier to useThere was interest in SWIG from porters, but nothing has happenedlately.=head2 Make embedded Perl easier to useThis is probably difficult for the same reasons that "XS For Dummies"will be difficult.=head2 Namespace cleanup    CPP-space:    restrict CPP symbols exported from headers    header-space: move into CORE/perl/    API-space:    begin list of things that constitute public api    env-space:    Configure should use PERL_CONFIG instead of CONFIG etc.=head2 MULTIPLICITYComplete work on safe recursive interpreters C<Perl-E<gt>new()>.Sarathy says that a reference implementation exists.=head2 MacPerlChris Nandor and Matthias Neeracher are working on better integratingMacPerl into the Perl distribution.=head1 DocumentationThere's a lot of documentation that comes with Perl.  The quantity ofdocumentation makes it difficult for users to know which section ofwhich manpage to read in order to solve their problem.  TomChristiansen has done much of the documentation work in the past.=head2 A clear division into tutorial and referenceSome manpages (e.g., perltoot and perlreftut) clearly set out toeducate the reader about a subject.  Other manpages (e.g., perlsub)are references for which there is no tutorial, or are references witha slight tutorial bent.  If things are either tutorial or reference,then the reader knows which manpage to read to learn about a subject,and which manpage to read to learn all about an aspect of thatsubject.  Part of the solution to this is:=head2 Remove the artificial distinction between operators and functionsHistory shows us that users, and often porters, aren't clear on theoperator-function distinction.  The present split in referencematerial between perlfunc and perlop hinders user navigation.  Giventhat perlfunc is by far the larger of the two, move operator referenceinto perlfunc.=head2 More tutorialsMore documents of a tutorial nature could help.  Here are somecandidates:=over 4=item Regular expressionsRobin Berjon (r.berjon@ltconsulting.net) has volunteered.=item I/OMark-Jason Dominus (mjd@plover.com) has an outline for perliotut.=item pack/unpackThis is badly needed.  There has been some discussion on thesubject on perl5-porters.=item DebuggingRonald Kimball (rjk@linguist.dartmouth.edu) has volunteered.=back=head2 Include a search toolperldoc should be able to 'grep' fulltext indices of installed PODfiles.  This would let people say:  perldoc -find printing numbers with commasand get back the perlfaq entry on 'commify'.This solution, however, requires documentation to contain the keywordsthe user is searching for.  Even when the users know what they'relooking for, often they can't spell it.=head2 Include a locate toolperldoc should be able to help people find the manpages on aparticular high-level subject:  perldoc -find webwould tell them manpages, web pages, and books with material on webprogramming.  Similarly C<perldoc -find databases>, C<perldoc -findreferences> and so on.We need something in the vicinity of:  % perl -help random stuff  No documentation for perl function `random stuff' found  The following entry in perlfunc.pod matches /random/a:    =item rand EXPR    =item rand    Returns a random fractional number greater than or equal to C<0> and less    than the value of EXPR.  (EXPR should be positive.)  If EXPR is    omitted, the value C<1> is used.  Automatically calls C<srand()> unless    C<srand()> has already been called.  See also C<srand()>.    (Note: If your rand function consistently returns numbers that are too    large or too small, then your version of Perl was probably compiled    with the wrong number of RANDBITS.)  The following pod pages seem to have /stuff/a:    perlfunc.pod	(7 hits)    perlfaq7.pod	(6 hits)    perlmod.pod		(4 hits)    perlsyn.pod		(3 hits)    perlfaq8.pod	(2 hits)    perlipc.pod		(2 hits)    perl5004delta.pod	(1 hit)    perl5005delta.pod	(1 hit)    perlcall.pod	(1 hit)    perldelta.pod	(1 hit)    perlfaq3.pod	(1 hit)    perlfaq5.pod	(1 hit)    perlhist.pod	(1 hit)    perlref.pod		(1 hit)    perltoc.pod		(1 hit)    perltrap.pod	(1 hit)  Proceed to open perlfunc.pod? [y] n  Do you want to speak perl interactively? [y] n  Should I dial 911? [y] n  Do you need psychiatric help? [y] y  <PELIZA> Hi, what bothers you today?           A Python programmer in the next cubby is driving me nuts!  <PELIZA> Hmm, thats fixable.  Just [rest censored]=head2 Separate function manpages by defaultPerl should install 'manpages' for every function/operator into the3pl or 3p manual section.  By default.  The splitman program in thePerl source distribution does the work of turning big perlfunc intolittle 3p pages.=head2 Users can't find the manpagesMake C<perldoc> tell users what they need to add to their .login or.cshrc to set their MANPATH correctly.=head2 Install ALL DocumentationMake the standard documentation kit include the VMS, OS/2, Win32,Threads, etc information.  installperl and pod/Makefile should knowenough to copy README.foo to perlfoo.pod before building everything,when appropriate.=head2 Outstanding issues to be documentedTom has a list of 5.005_5* features or changes that requiredocumentation.Create one document that coherently explains the delta between thelast camel release and the current release.  perldelta was supposedto be that, but no longer.  The things in perldelta never seemed toget placed in the right places in the real manpages, either.  Thisneeds work.=head2 Adapt www.linuxhq.com for PerlThis should help glorify documentation and get more people involved inperl development.=head2 Replace man with a perl programCan we reimplement man in Perl?  Tom has a start.  I believe some ofthe Linux systems distribute a manalike.  Alternatively, build onperldoc to remove the unfeatures like "is slow" and "has no apropos".=head2 Unicode tutorialWe could use more work on helping people understand Perl's newUnicode support that Larry has created.=head1 Modules=head2 Update the POSIX extension to conform with the POSIX 1003.1 Edition 2The current state of the POSIX extension is as of Edition 1, 1991,whereas the Edition 2 came out in 1996.  ISO/IEC 9945:1-1996(E),ANSI/IEEE Std 1003.1, 1996 Edition. ISBN 1-55937-573-6.  The updateswere legion: threads, IPC, and real time extensions.=head2 Module versionsAutomate the checking of versions in the standard distribution soit's easy for a pumpking to check whether CPAN has a newer versionthat we should be including?=head2 New modulesWhich modules should be added to the standard distribution?  This tiesin with the SDK discussed on the perl-sdk list at perl.org.=head2 ProfilerMake the profiler (Devel::DProf) part of the standard release, anddocument it well.=head2 Tie Modules=over 4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -