perl-AutoXS - Speed up your code after compile time

Property Value
Distribution ALT Linux Sisyphus
Repository Autoimports i586
Package filename perl-AutoXS-0.04-alt3.1.i586.rpm
Package name perl-AutoXS
Package version 0.04
Package release alt3.1
Package architecture i586
Package type rpm
Category Development/Perl
Homepage -
License -
Maintainer -
Download size 15.35 KB
Installed size 15.35 KB
*Warning:* This module contains some scary code. I'm not even sure
it abides by the official Perl API totally. Furthermore, it's my first
*real* XS module. It abuses some features of the XS/XSUB syntax.
If you break it, you get to keep both halves.
That being said, the purpose of this module and its plugin modules
is to speed up
the execution of your program at the expense of a longer startup time.
the AutoXS::Accessor manpage comes with the same distribution as an example plugin.
the AuotXS manpage plugins use the the B manpage and the B::Utils manpage modules to scan
all subroutines  (or methods) in the calling package for certain
patterns. If a subroutine complies with such a pattern, it is
replaced with an XS subroutine that has the same function.
The XS subroutines for replacement are *not* compiled at runtime
like the Inline::C manpage would do.
They have been compiled at module build time just like any other XSUBs.
In a simple minded test, the AuotXS::Accessor manpage sped up typical
read-only accessors by a factor of
1.6 to a factor of 2.5. Your mileage may vary, of course.
Keep in mind mind that accessors can sometimes be part of
very tight loops.
To get an impression of the imposed pre-runtime penalty of using AutoXS,
a file containing nine methods (code shown in the AutoXS::Accessor manpage)
was compiled with and without AutoXS. The test is contrived because
all nine methods will be replaced. In normal code, there is much more
non-accessor code which will be quickly rejected. Naturally,
rejection is faster than successful matching and replacement.
The compilation with AutoXS took `74ms' longer than without.


Package Version Architecture Repository
perl-AutoXS-0.04-alt3.1.x86_64.rpm 0.04 x86_64 Autoimports
perl-AutoXS - - -


Name Value
/usr/share/perl5 -
perl( -
perl(B/ -
perl(B/ >= 0.050.600
perl(Class/ >= 0.020
perl(Module/ -
perl( -
rpmlib(PayloadIsLzma) -


Name Value
perl( = 0.040
perl(AutoXS/ = 0.030
perl-AutoXS = 0.04-alt3.1


Type URL
Binary Package perl-AutoXS-0.04-alt3.1.i586.rpm
Source Package perl-AutoXS-0.04-alt3.1.src.rpm

Install Howto

  1. Add the following line to /etc/apt/sources.list:
    rpm [Sisyphus] i586 autoimports
    rpm [Sisyphus] noarch autoimports
  2. Update the package index:
    # sudo apt-get update
  3. Install perl-AutoXS rpm package:
    # sudo apt-get install perl-AutoXS



See Also

Package Description
perl-B-COW-0.001-alt1.i586.rpm B::COW additional B helpers to check COW status
perl-B-CallChecker-0.001-alt5.1.i586.rpm custom B-based op checking for subroutines
perl-B-CompilerPhase-Hook-0.04-alt2.1.i586.rpm Programatically install BEGIN/CHECK/INIT/UNITCHECK/END blocks
perl-B-Compiling-0.06-alt6_16.i586.rpm Expose PL_compiling to perl
perl-B-Generate-1.56-alt3_8.i586.rpm Create your own op trees
perl-B-Hooks-AtRuntime-6-alt1.1.i586.rpm Lower blocks from compile time to runtime
perl-B-Hooks-OP-Check-EntersubForCV-0.10-alt4_7.i586.rpm Invoke callbacks on construction of entersub OPs for certain CVs
perl-B-Hooks-OP-Check-EntersubForCV-devel-0.10-alt4_7.i586.rpm XS support for B::Hooks::OP::Check::EntersubForCV
perl-B-Hooks-OP-Check-StashChange-0.06-alt9_32.i586.rpm Invoke callbacks when the stash code is being compiled in changes
perl-B-Hooks-OP-PPAddr-0.06-alt4_8.i586.rpm Hook into opcode execution
perl-B-Hooks-XSUB-CallAsOp-0.02-alt4.1.i586.rpm Invoke code from an XSUB in opcode context
perl-B-LexInfo-0.02-alt6.1.i586.rpm perl module B-LexInfo
perl-B-OPCheck-0.32-alt3.1.i586.rpm PL_check hacks using Perl callbacks
perl-B-Size2-2.07-alt6.1.i586.rpm Measure size of Perl OPs and SVs
perl-B-Stats-0.09-alt4.1.i586.rpm print optree statistics