Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Perl::Dist::APPerl - Actually Portable Perl

by Anonymous Monk
on Jan 06, 2023 at 12:34 UTC ( [id://11149376]=perlnews: print w/replies, xml ) Need Help??

"Actually Portable Perl (APPerl) is a distribution of Perl that runs on several x86_64 operating systems (most Unix-like and Windows) via the same binary. It builds to a single binary with perl modules packed inside of it. Cross-platform, single binary, standalone Perl applications can be made by building custom versions of APPerl, with and without compiling Perl from scratch"

  • Perl::Dist::APPerl
    • Comment on Perl::Dist::APPerl - Actually Portable Perl
  • Replies are listed 'Best First'.
    Re: Perl::Dist::APPerl - Actually Portable Perl
    by talexb (Chancellor) on Jan 31, 2023 at 16:13 UTC

      That second link should be this. Interesting write-up.

      Alex / talexb / Toronto

      Thanks PJ. We owe you so much. Groklaw -- RIP -- 2003 to 2013.

    Re: Perl::Dist::APPerl - Actually Portable Perl
    by Anonymous Monk on Feb 02, 2023 at 11:40 UTC
      Revision history for Perl-Dist-APPerl
      v0.3.0  2023-01-29
              Added running scripts from APPERL_SCRIPTNAME environment
              Added setting fallback script to run if argv[0] script
              execution fails, set `default_script` in your config
              Added installing CPAN distributions from tarball or directory
              on disk via "install_modules" in project config.
              full, small, and vista variant configs:
                Removed version from privlib archlib sitelib sitearch
                Updated Cosmopolitan source
                Updated Perl source
              Added dbg config: gdb not working for me, YYMV
              Better support --ftrace by outputting .com.dbg instead of elf
              Updated docs with new info.
    Re: Perl::Dist::APPerl - Actually Portable Perl
    by Anonymous Monk on Jan 06, 2023 at 23:14 UTC
      This is revolutionary! Download one 24mb file and you have the latest Perl, with no installation or compilation, that runs on Unix, Linux, Mac and Windows. All you have to do is chmod +x. Now all we need is a web tool that compiles selected CPAN modules into custom binaries on the fly for those who don't have Linux. Imagine that on the official Perl site, or the CPAN!


      If your application requires non-standard C or XS extensions, APPerl must be built from scratch as it does not support dynamic libraries, only static linking. Note, this process can only be completed on Linux as building the Cosmopolitan Libc from scratch is only supported on Linux and APPerl uses the unix-like Configure to configure perl."--Perl::Dist::APPerl

      From the full release of APPerl, perl v5.36.0 built with all default modules and C extensions (

      > -v This is perl 5, version 36, subversion 0 (v5.36.0) built for x86_64-co +smo (with 3 registered patches, see perl -V for more detail) Copyright 1987-2022, Larry Wall ...
      > -V Summary of my perl5 (revision 5 version 36 subversion 0) configuration +: Commit id: b22da6b83c37604132694ead0bdcf61690f74a53 Platform: osname=cosmo osvers= archname=x86_64-cosmo uname='linux fv-az28-460 5.15.0-1023-azure #29~20.04.1-ubuntu smp +wed oct 26 19:18:25 utc 2022 x86_64 x86_64 x86_64 gnulinux ' config_args='-Dprefix=/zip -Uversiononly -Dmyhostname=cosmo -Dmydo +main=invalid -Doptimize=-Os -de -Dcf_by=Gavin Hayes -Dcf_email=gavin@' hint=recommended useposix=true d_sigaction=define useithreads=undef usemultiplicity=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define Compiler: cc='/home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopolit +an/o/third_party/gcc/bin/x86_64-linux-musl-gcc' ccflags ='-static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zo +ne -fno-omit-frame-pointer -fno-stack-protector -pg -mnop-mcount -mno +-tls-direct-seg-refs -I /home/runner/work/Perl-Dist-APPerl/Perl-Dist- +APPerl/cosmopolitan -include /home/runner/work/Perl-Dist-APPerl/Perl- +Dist-APPerl/cosmopolitan/libc/integral/ -isystem /home/r +unner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopolitan/libc/isyste +m -fwrapv -fno-strict-aliasing -pipe -D_FORTIFY_SOURCE=2' optimize='-Os' cppflags='-nostdinc -fno-pie -no-pie -mno-red-zone -fno-omit-frame +-pointer -fno-stack-protector -pg -mnop-mcount -mno-tls-direct-seg-re +fs -I /home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopolita +n -include /home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmop +olitan/libc/integral/ -isystem /home/runner/work/Perl-Di +st-APPerl/Perl-Dist-APPerl/cosmopolitan/libc/isystem -fwrapv -fno-str +ict-aliasing -pipe' ccversion='' gccversion='9.2.0' gccosandvers='' intsize=4 longsize=8 ptrsize=8 doublesize=8 byteorder=12345678 doublekind=3 d_longlong=define longlongsize=8 d_longdbl=define longdblsize=16 longdblkind=3 ivtype='long' ivsize=8 nvtype='double' nvsize=8 Off_t='off_t' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='ld' ldflags ='-static -nostdlib -nostdinc -fno-pie -no-pie -mno-red-zo +ne -fno-omit-frame-pointer -fno-stack-protector -pg -mnop-mcount -mno +-tls-direct-seg-refs -Wl,--gc-sections -fuse-ld=bfd -Wl,-T,/home/runn +er/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopolitan/o//ape/public/ /home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopoli +tan/o//libc/crt/crt.o /home/runner/work/Perl-Dist-APPerl/Perl-Dist-AP +Perl/cosmopolitan/o//ape/ape-no-modify-self.o' libpth= libs=/home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmopoli +tan/o//cosmopolitan.a perllibs=/home/runner/work/Perl-Dist-APPerl/Perl-Dist-APPerl/cosmo +politan/o//cosmopolitan.a libc= so=none useshrplib=false libperl=libperl.a gnulibc_version='' Dynamic Linking: dlsrc=dl_none.xs dlext=none d_dlsymun=undef ccdlflags='' cccdlflags='' lddlflags='' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES PERLIO_LAYERS PERL_COPY_ON_WRITE PERL_DONT_CREATE_GVSV PERL_OP_PARENT PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_LOCALE_TIME USE_PERLIO USE_PERL_ATOF Locally applied patches: G4Vi:cosmo/73ecc6c - +640c61baa00ee91949d502f0fe991db5 various changes to support building +with the Cosmopolitan Libc G4Vi:cosmo-apperl/9719db2 - +719db2dfbb19454177a31d8ce874a61f17a30da add argv[0] /zip/bin script l +aunching G4Vi:cosmo/2fb034f - +b02db2b3ac09706c954704930c620c0b fix Time-HiRes Configure to work for + cosmopolitan Built under cosmo Compiled at Dec 3 2022 05:13:21 %ENV: ... @INC: /Users/user/lib /zip/lib/perl5/site_perl/5.36.0/x86_64-cosmo /zip/lib/perl5/site_perl/5.36.0 /zip/lib/perl5/5.36.0/x86_64-cosmo /zip/lib/perl5/5.36.0
    Re: Perl::Dist::APPerl - Actually Portable Perl
    by Anonymous Monk on Jan 06, 2023 at 13:24 UTC

    Log In?

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

    How do I use this?Last hourOther CB clients
    Other Users?
    Others rifling through the Monastery: (2)
    As of 2024-04-25 06:05 GMT
    Find Nodes?
      Voting Booth?

      No recent polls found