Perl Archiving Toolkit

Development in progress

19pages on
this wiki

Todo List Edit

Note: A ToDo list has been recovered from a 2003 page from the old wiki. The items which I couldn't positively identify as done or to do are reproduced for reference at the end of this document.

New List Edit

  • Add support for command line options. I.e. if a script uses #!perl -n or similar that option is not valid any more after packaging.
  • Add a flag to create installers. That means, PAR created binaries that unpack to a specific, permanent location from which they can be run with no additional start-up unpacking penalty. See also: [1] and Installer discussion
    • Update: In part, this is now possible using PAR Repositories. Writing an application which installs from a repository on a CD should be reasonably simple with that.
  • Rewrite the parl PAR loader. Right now, it's a perl plus lots of modules. That can lead to issues if some of those (XS) modules are upgraded without recompiling PAR (or rather parl). There isn't much reason not to just use some form of unzip instead. It'd be faster, too.
  • Continue processing the RT bug queue!
  • caller() from pp'ed executable should return nothing, instead of the current calling stacks. Currently there's a workaround as PAR_CLEARSTACK in myldr/main.c, but it segfaults and hence is commented out by default.
  • make CHECK blocks work by perl_parse the code instead of eval"". this should cleanly solve the above problem as well. See also Repair CHECK and INIT

Old List Edit

  • Overrides @INC to provide coexistence support for multiple versions of a module on the same machine. Or use Ingy's
  • Refactor pp to use App::Packer. (Note: Questionable as App::Packer author considers App::Packer superseded by PAR. Perhaps this should read "Refactor pp, App::Packer::PAR, and PAR::Packer to remove some of the overly general design decisions which where sensible in the App::Packer but not in the PAR context." -- Steffen)

Another Old List from the distribution Edit

Unsure about the status of some of these...

  • Implement Archive::Zip and friends in C for performance.
  • does not currently work with "pp -C". Need to change it to either use preemptive extraction, or extract under the appropriate directory.
  • On Cygwin, PAR_TEMP is not cleaned up even with "pp -C", because the cleanup time happened too late. Need to either use spawn() or somehow assign win32's auto-unlink flags.
  • Cygwin needs perl_5_x_y.dll to be bundled instead of libperl.dll. It also needs cygcrypt.dll etc, but that is another matter altogether.
  • Skip some binary modules (such as IO.dll) inside .par when packing standalone executables, if parl already contains a copy of them.

Done Edit

  • Better document all PAR_* environment variables in
    • Update: 0.958 and up have a separate PAR::Environment document which documents all PAR environment variables.

Around Wikia's network

Random Wiki