Skip to content

Keep imports and functions out of your namespace, in XS

Notifications You must be signed in to change notification settings

dur-randir/namespace-clean-xs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME
    namespace::clean::xs - Keep imports and functions out of your namespace,
    in XS

SYNOPSIS
        use namespace::clean::xs; # be lean and mean

DESCRIPTION
    This module is a much faster (~30x) alternative for namespace::clean.
    namespace::clean spends approximately 1ms per module, so it can
    significantly impact startup time for a large codebase. This module
    tries to be a drop-in replacement for it.

    See namespace::clean for a workflow description/usage examples.

COMPABILITY
    This module tries to minimize memory impact after it's usage, so it
    won't expand constant/stub functions to full globs. It also removes
    symbols without data from the package completely.

    Since version 0.27 namespace::clean allows you to clean a single package
    twice. This behaviour is not supported yet.

    While all methods from namespace::clean are implemented, individual
    functions have the following differences:

    "import"
        Will croak on unrecognized options.

    "unimport"
        Will croak on unrecognized options.

    "get_class_store"
        Structure of the returned hash is the same, but it has nothing to do
        with the internal storage. Modifications of it are in vain.

        While namespace::clean saves this info forever, this module deletes
        it after namespace cleanup is done.

    "get_functions"
        In the returned hash function stubs and constants are not expanded.
        You can't count on calling values in it as functions unless you
        access corresponding glob first (and loose any memory savings in the
        process).

SEE ALSO
    *   namespace::clean

    *   namespace::clean::xs::all

COPYRIGHT AND LICENSE
    Copyright (C) 2016-2017 by Sergey Aleynikov

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself, either Perl version 5.10.1 or, at
    your option, any later version of Perl 5 you may have available.

About

Keep imports and functions out of your namespace, in XS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published