perltodo.html
来自「perl教程」· HTML 代码 · 共 739 行 · 第 1/3 页
HTML
739 行
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>perltodo - Perl TO-DO List</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>perltodo - Perl TO-DO List</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#description">DESCRIPTION</a></li>
<li><a href="#the_roadmap_to_5_10">The roadmap to 5.10</a></li>
<ul>
<li><a href="#needed_for_a_5_9_4_release">Needed for a 5.9.4 release</a></li>
<li><a href="#needed_for_a_5_9_5_release">Needed for a 5.9.5 release</a></li>
<li><a href="#needed_for_a_5_9_6_release">Needed for a 5.9.6 release</a></li>
</ul>
<li><a href="#tasks_that_only_need_perl_knowledge">Tasks that only need Perl knowledge</a></li>
<ul>
<li><a href="#common_test_code_for_timed_bail_out">common test code for timed bail out</a></li>
<li><a href="#pod___html_conversion_in_the_core_still_sucks">POD -> HTML conversion in the core still sucks</a></li>
<li><a href="#parallel_testing">Parallel testing</a></li>
<li><a href="#make_schwern_poorer">Make Schwern poorer</a></li>
<li><a href="#improve_the_coverage_of_the_core_tests">Improve the coverage of the core tests</a></li>
<li><a href="#test_b">test B</a></li>
<li><a href="#a_decent_benchmark">A decent benchmark</a></li>
<li><a href="#fix_tainting_bugs">fix tainting bugs</a></li>
<li><a href="#dual_life_everything">Dual life everything</a></li>
<li><a href="#improving_threads__shared">Improving <code>threads::shared</code></a></li>
<li><a href="#posix_memory_footprint">POSIX memory footprint</a></li>
</ul>
<li><a href="#tasks_that_need_a_little_sysadmintype_knowledge">Tasks that need a little sysadmin-type knowledge</a></li>
<ul>
<li><a href="#relocatable_perl">Relocatable perl</a></li>
<li><a href="#make_html_install_work">make HTML install work</a></li>
<li><a href="#compressed_man_pages">compressed man pages</a></li>
<li><a href="#add_a_code_coverage_target_to_the_makefile">Add a code coverage target to the Makefile</a></li>
<li><a href="#make_config_pm_cope_with_differences_between_build_and_installed_perl">Make Config.pm cope with differences between build and installed perl</a></li>
<li><a href="#make_parallel_builds_work">make parallel builds work</a></li>
<li><a href="#linker_specification_files">linker specification files</a></li>
</ul>
<li><a href="#tasks_that_need_a_little_c_knowledge">Tasks that need a little C knowledge</a></li>
<ul>
<li><a href="#make_it_clear_from_v_if_this_is_the_exact_official_release">Make it clear from -v if this is the exact official release</a></li>
<li><a href="#tidy_up_global_variables">Tidy up global variables</a></li>
<li><a href="#ordering_of_global_variables_">Ordering of "global" variables.</a></li>
<li><a href="#bincompat_functions">bincompat functions</a></li>
<li><a href="#am_i_hot_or_not">am I hot or not?</a></li>
<li><a href="#emulate_the_perthread_memory_pool_on_unix">emulate the per-thread memory pool on Unix</a></li>
<li><a href="#reduce_duplication_in_sv_setsv_flags">reduce duplication in sv_setsv_flags</a></li>
</ul>
<li><a href="#tasks_that_need_a_knowledge_of_xs">Tasks that need a knowledge of XS</a></li>
<ul>
<li><a href="#ipv6">IPv6</a></li>
<li><a href="#shrink_gvs__cvs">shrink <code>GV</code>s, <code>CV</code>s</a></li>
<li><a href="#merge_perl_sv_2_inpu_v">merge Perl_sv_2[inpu]v</a></li>
<li><a href="#utf8_caching_code">UTF8 caching code</a></li>
<li><a href="#implicit_latin_1____unicode_translation">Implicit Latin 1 => Unicode translation</a></li>
<li><a href="#autovivification">autovivification</a></li>
<li><a href="#unicode_in_filenames">Unicode in Filenames</a></li>
<li><a href="#unicode_in__env">Unicode in %ENV</a></li>
<li><a href="#use_less__memory_">use less 'memory'</a></li>
<li><a href="#reimplement__unique_in_a_way_that_is_actually_threadsafe">Re-implement <code>:unique</code> in a way that is actually thread-safe</a></li>
<li><a href="#make_tainting_consistent">Make tainting consistent</a></li>
<li><a href="#readpipe_list_"><a href="../../lib/Pod/perlfunc.html#item_readpipe"><code>readpipe(LIST)</code></a></a></li>
</ul>
<li><a href="#tasks_that_need_a_knowledge_of_the_interpreter">Tasks that need a knowledge of the interpreter</a></li>
<ul>
<li><a href="#lexical_pragmas">lexical pragmas</a></li>
<li><a href="#attach_detach_debugger_from_running_program">Attach/detach debugger from running program</a></li>
<li><a href="#constant_folding">Constant folding</a></li>
<li><a href="#lvalue_functions_for_lists">LVALUE functions for lists</a></li>
<li><a href="#lvalue_functions_in_the_debugger">LVALUE functions in the debugger</a></li>
<li><a href="#__prototype_character">_ prototype character</a></li>
<li><a href="#state_variables">state variables</a></li>
<li><a href="#_inc_source_filter_to_filter__simple">@INC source filter to Filter::Simple</a></li>
<li><a href="#regexp_optimiser_optional">regexp optimiser optional</a></li>
<li><a href="#unitcheck">UNITCHECK</a></li>
<li><a href="#optional_optimizer">optional optimizer</a></li>
<li><a href="#you_want__how__many">You WANT *how* many</a></li>
<li><a href="#lexical_aliases">lexical aliases</a></li>
<li><a href="#entersub_xs_vs_perl">entersub XS vs Perl</a></li>
<li><a href="#self_ties">Self ties</a></li>
<li><a href="#optimize_away___">Optimize away @_</a></li>
<li><a href="#what_hooks_would_assertions_need">What hooks would assertions need?</a></li>
</ul>
<li><a href="#big_projects">Big projects</a></li>
<ul>
<li><a href="#make_ithreads_more_robust">make ithreads more robust</a></li>
<li><a href="#icow">iCOW</a></li>
<li><a href="#________closures_in_regexps">(?{...}) closures in regexps</a></li>
<li><a href="#a_reentrant_regexp_engine">A re-entrant regexp engine</a></li>
</ul>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>perltodo - Perl TO-DO List</p>
<p>
</p>
<hr />
<h1><a name="description">DESCRIPTION</a></h1>
<p>This is a list of wishes for Perl. The tasks we think are smaller or easier
are listed first. Anyone is welcome to work on any of these, but it's a good
idea to first contact <em><a href="mailto:perl5-porters@perl.org">perl5-porters@perl.org</a></em> to avoid duplication of
effort. By all means contact a pumpking privately first if you prefer.</p>
<p>Whilst patches to make the list shorter are most welcome, ideas to add to
the list are also encouraged. Check the perl5-porters archives for past
ideas, and any discussion about them. One set of archives may be found at:</p>
<pre>
<a href="http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/">http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/</a></pre>
<p>What can we offer you in return? Fame, fortune, and everlasting glory? Maybe
not, but if your patch is incorporated, then we'll add your name to the
<em>AUTHORS</em> file, which ships in the official distribution. How many other
programming languages offer you 1 line of immortality?</p>
<p>
</p>
<hr />
<h1><a name="the_roadmap_to_5_10">The roadmap to 5.10</a></h1>
<p>The roadmap to 5.10 envisages feature based releases, as various items in this
TODO are completed.</p>
<p>
</p>
<h2><a name="needed_for_a_5_9_4_release">Needed for a 5.9.4 release</a></h2>
<ul>
<li>
<p>Review assertions. Review syntax to combine assertions. Assertions could take
advantage of the lexical pragmas work. <a href="#what_hooks_would_assertions_need">What hooks would assertions need?</a></p>
</li>
</ul>
<p>
</p>
<h2><a name="needed_for_a_5_9_5_release">Needed for a 5.9.5 release</a></h2>
<ul>
<li><strong><a name="item_implement__2f__prototype_character">Implement <a href="#__prototype_character">_ prototype character</a></a></strong>
<li><strong><a name="item_implement__2fstate_variables">Implement <a href="#state_variables">state variables</a></a></strong>
</ul>
<p>
</p>
<h2><a name="needed_for_a_5_9_6_release">Needed for a 5.9.6 release</a></h2>
<p>Stabilisation. If all goes well, this will be the equivalent of a 5.10-beta.</p>
<p>
</p>
<hr />
<h1><a name="tasks_that_only_need_perl_knowledge">Tasks that only need Perl knowledge</a></h1>
<p>
</p>
<h2><a name="common_test_code_for_timed_bail_out">common test code for timed bail out</a></h2>
<p>Write portable self destruct code for tests to stop them burning CPU in
infinite loops. This needs to avoid using alarm, as some of the tests are
testing alarm/sleep or timers.</p>
<p>
</p>
<h2><a name="pod___html_conversion_in_the_core_still_sucks">POD -> HTML conversion in the core still sucks</a></h2>
<p>Which is crazy given just how simple POD purports to be, and how simple HTML
can be. It's not actually <em>as</em> simple as it sounds, particularly with the
flexibility POD allows for <code>=item</code>, but it would be good to improve the
visual appeal of the HTML generated, and to avoid it having any validation
errors. See also <a href="#make_html_install_work">make HTML install work</a>, as the layout of installation tree
is needed to improve the cross-linking.</p>
<p>The addition of <code>Pod::Simple</code> and its related modules may make this task
easier to complete.</p>
<p>
</p>
<h2><a name="parallel_testing">Parallel testing</a></h2>
<p>The core regression test suite is getting ever more comprehensive, which has
the side effect that it takes longer to run. This isn't so good. Investigate
whether it would be feasible to give the harness script the <strong>option</strong> of
running sets of tests in parallel. This would be useful for tests in
<em>t/op/*.t</em> and <em>t/uni/*.t</em> and maybe some sets of tests in <em>lib/</em>.</p>
<p>Questions to answer</p>
<ol>
<li>
<p>How does screen layout work when you're running more than one test?</p>
</li>
<li>
<p>How does the caller of test specify how many tests to run in parallel?</p>
</li>
<li>
<p>How do setup/teardown tests identify themselves?</p>
</li>
</ol>
<p>Pugs already does parallel testing - can their approach be re-used?</p>
<p>
</p>
<h2><a name="make_schwern_poorer">Make Schwern poorer</a></h2>
<p>We should have for everything. When all the core's modules are tested,
Schwern has promised to donate to $500 to TPF. We may need volunteers to
hold him upside down and shake vigorously in order to actually extract the
cash.</p>
<p>See <em>t/lib/1_compile.t</em> for the 3 remaining modules that need tests.</p>
<p>
</p>
<h2><a name="improve_the_coverage_of_the_core_tests">Improve the coverage of the core tests</a></h2>
<p>Use Devel::Cover to ascertain the core's test coverage, then add tests that
are currently missing.</p>
<p>
</p>
<h2><a name="test_b">test B</a></h2>
<p>A full test suite for the B module would be nice.</p>
<p>
</p>
<h2><a name="a_decent_benchmark">A decent benchmark</a></h2>
<p><code>perlbench</code> seems impervious to any recent changes made to the perl core. It
would be useful to have a reasonable general benchmarking suite that roughly
represented what current perl programs do, and measurably reported whether
tweaks to the core improve, degrade or don't really affect performance, to
guide people attempting to optimise the guts of perl. Gisle would welcome
new tests for perlbench.</p>
<p>
</p>
<h2><a name="fix_tainting_bugs">fix tainting bugs</a></h2>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?