Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Re: Re: Re: The Perl Compiler (turning perl scripts into binary executables)

by Anonymous Monk
on Jul 10, 2001 at 23:17 UTC ( [id://95434]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Re: The Perl Compiler (turning perl scripts into binary executables)
in thread The Perl Compiler (turning perl scripts into binary executables)

Config.pl counts as source of course. If it doesn't contain 'e' you are in the clear! You must compile it too (beforehand ;-) . But if it is a config-file as the name suggests, therefore hopefully written by the program, the compiler could check the format and make a readroutine.
  • Comment on Re: Re: Re: Re: The Perl Compiler (turning perl scripts into binary executables)

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: The Perl Compiler (turning perl scripts into binary executables)
by BrentDax (Hermit) on Jul 10, 2001 at 23:50 UTC
    I imagine you could put a switch on the compiler call that says "I'm not doing evals or dos or requires, so you can leave out the Perl source compiler."

    =cut
    --Brent Dax

    @HPAJ=split("", "rekcaH lreP rentonA tsuJ"); print reverse @HPAJ; #sucky but who cares?
      I don't see why we need to leave anything out at all. Compiled Perl programs would require the Perl DLL. But since Visual Basic has done that all along, big deal.

      Meanwhile, if you really really want a (small) single exe file solution, I can suppose that (a) you specify what you want to include or leave out, and get an error if you violate that; or (b) the compiler knows what you used or didn't, and leaves things out at link-time automatically. If nothing in the program called eval(), for example, eval() doesn't get pulled in by the linker. (If you do include eval, you might as well pull in everything, so don't worry about the lack of static analysis).

        That doesn't mean we *want* to copy VB. Personally, I hate having to haul around a runtime with my (few) VB programs.

        evals are the reason I want you to *tell* the compiler if you're using something. One of the things I really don't want to do is outsmart the programmer. We should have switches to exclude certain functionality that already exists in the Perl core for size reasons. (For the purposes of this article, I'm using a --no=feature switch.) Perhaps we can have it say, "WARNING:  You don't seem to be using regular expressions.  Support for them can be excluded with the --no=re flag.  (This warning can be disabled with the --notips flag.)" (Or whatever.)

        To pull that off, someone needs to wade through the core and find all the entry functions for regexen--then we just make those die on entry and delete the other regex functions. Unless someone already knows this--anybody?

        =cut
        --Brent Dax

        @HPAJ=split("", "rekcaH lreP rentonA tsuJ"); print reverse @HPAJ; #sucky but who cares?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://95434]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others goofing around in the Monastery: (3)
As of 2024-04-19 02:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found