Yes, someone will likely add it this time, since the compiler will be written in Perl and not macro-encrusted C. In addition, the compiler is being structured more like an ordinary compiler that separates compilation from execution with the express intention of allowing a better optimization pass in the middle when you aren't running in load-and-go mode. Plus the very fact that there's a switch statement will put people in mind to do it.

Your implication that 5.8.x does no optimizations that look beyond the current opcode is incorrect, or at least completely misleading. It would be more correct to say that it limits itself to optimizations on the current subtree and nearby opcodes. But it is correct insofar as it describes the idea that Perl 5 avoids expensive optimizations in the interests of starting up faster. Code movement optimizations tend to be expensive. (The switch optimization is not in fact such an expensive optimization, roughly O(n), I think, since it's scanning for linear consistency, and inserting an extra jump table opcode if it finds such a consistency. There are no stages where it compares everything against everything else.)

Anyway, if the switch optimization is so important to you that you are willing to sit there and snipe as AM, maybe you should add it yourself. :-)


In reply to Re^4: Switch/case (given/when) in Perl5 by TimToady
in thread Switch/case (given/when) in Perl5 by Roy Johnson

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.