Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

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

by John M. Dlugosz (Monsignor)
on Jul 11, 2001 at 01:24 UTC ( #95491=note: print w/replies, xml ) Need Help??

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

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).

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

Replies are listed 'Best First'.
Re: Re: Re: Re: Re: Re: Re: The Perl Compiler (turning perl scripts into binary executables)
by BrentDax (Hermit) on Jul 11, 2001 at 19:44 UTC
    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?

    --Brent Dax

    @HPAJ=split("", "rekcaH lreP rentonA tsuJ"); print reverse @HPAJ; #sucky but who cares?
      I've read that Larry wants to move more stuff out of the core in Perl 6. He mentioned format.

      Regular expressions are rather central. But maybe you're not using all the exotic features such as zero-width lookahead assertions. Maybe another choice could be a simpler regex module that's substantially smaller but is enough for ordinary grepping and handling your switch statements.

      We also need choices as to static linking vs. loadable runtime libraries. You might prefer a self-contained EXE, but I want 10 little EXE's sharing one runtime library. Depends on the intended use, too.


Log In?

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (9)
As of 2018-12-12 22:58 GMT
Find Nodes?
    Voting Booth?
    How many stories does it take before you've heard them all?

    Results (61 votes). Check out past polls.

    • (Sep 10, 2018 at 22:53 UTC) Welcome new users!