Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re^3: Why doesn't perl optimize this?

by nbtrap (Sexton)
on Jun 04, 2013 at 02:09 UTC ( #1036861=note: print w/replies, xml ) Need Help??


in reply to Re^2: Why doesn't perl optimize this?
in thread Why doesn't perl optimize this?

I know the difference. My question was not about the difference, it was about why the difference is not optimized away in cases like the one I cited.

Replies are listed 'Best First'.
Re^4: Why doesn't perl optimize this?
by LanX (Chancellor) on Jun 04, 2013 at 10:29 UTC
    You seem to believe in magical powers of static code analysis in a dynamic language.

    plz tell me

    sub func { my ($code,@a) = @_; my $b = [@a]; eval $code; return $b; }

    How is the compiler supposed to know that '@a' can be destroyed w/o knowing what happens in '$code' at runtime?

    Cheers Rolf

    ( addicted to the Perl Programming Language)

      I agree that the compiler can't know in the case you cite. But what about the case I cited?
        > But what about the case I cited?

        It's extremely complicated and risky to cover ALL edge cases. It's not worth it and BrowserUK already told you!

        If you think such code analysis is easy, please better try implementing a JIT compiler for Perl...

        Cheers Rolf

        ( addicted to the Perl Programming Language)

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1036861]
help
Chatterbox?
[stevieb]: I went on my merry way writing a cross-platform, network-aware system that works across Perlbrew and Berrybrew systems and runs unit tests for Perl dists on all installed versions, with the ability to manage *brew commands themselves
[stevieb]: That worked out exceptionally well, as when I started that project, I hadn't delved into hardware development yet.
[stevieb]: found a issue in MetaCPAN::Client though today for my revdep tests. At least I think it's an issue
[stevieb]: I'm working on hiding the fact the software needs MetaCPAN::Client, as I often have a hell of a time installing it. I'm going to change it to let the user know if they do revdep that it needs to be installed, and remove that distribution ..
[stevieb]: ...from being a prereq

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2017-06-25 23:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (572 votes). Check out past polls.