in reply to What modules should be added to the corelist?

PDL would be nice, but very much impractical to add to the core.

I think that, while existing modules should not be removed, the criteria for adding new modules to the core distribution should be fairly strict. Particularly, I would suggest limiting inclusion of new modules to either:

  1. Pure Perl modules that are both small and very widely used. If the majority of installations will be pulling a small module from CPAN, it might belong in core.

  2. Modules (usually XS, but some pragmata are pure Perl) that are intricately tied to the core and are effectively "optional builtins". If the module relies to a great extent on other support within the core, it should probably be shipped with the core. I believe that Scalar::Util::weaken and the restricted hash interface in Hash::Util are examples of features in this category. Another monk mentioned Hash::Util::FieldHash, which, as I understand, requires cooperation from the core garbage collector to do its work. It is therefore closely tied to the core and should probably be maintained with the core.

Or do I misunderstand the issue?

Replies are listed 'Best First'.
Re^2: What modules should be added to the corelist?
by etj (Priest) on Aug 02, 2024 at 14:49 UTC
    Putting aside my possible bias in this, I do think that small parts of PDL should in fact be in the core:
    • a way to do PDL's "NiceSlice" syntax extension of having a hook for array-index interpreting in user-space. Python did this to support array programming in 1995 (according to https://en.wikipedia.org/wiki/NumPy); specifically, hooks for enabling $x[0:4:2] without the current source filter shenanigans
    • a heavily stripped-down PDL core that was dual-life (supplied with Perl but also upgradable from CPAN) would be a good idea too; the way to decide what would be in core would be to define small operations that would still be valuable without the wider PDL infrastructure (this would also be a candidate for a non-core "PDL::Tiny" or "PDL::Core" as its own distro)
Re^2: What modules should be added to the corelist?
by Anonymous Monk on Aug 18, 2019 at 04:04 UTC
    Modules (usually XS, but some pragmata are pure Perl) that are intricately tied to the core and are effectively "optional builtins".

    You mean the modules called "core extensions" in Config::Extensions?

    perl -MConfig::Extensions=%Extensions -e 'for (sort{lc$a cmp lc$b}keys + %Extensions){print"$_\t$Extensions{$_}\n"}'
    Why are some core modules referred to as "extensions"?