http://qs321.pair.com?node_id=11122601


in reply to *::Tiny modules namespace origins

Please don't use ::Tiny unless it meets the ::Tiny criteria, thanks!

Here are the rules Adam Kennedy originally defined for what ::Tiny means:

  1. The module should be implemented in "as little code as possible"
  2. The module should implement a useful subset of functionality
  3. The module should use at least 1/10th the amount of memory overhead, ideally less than 100k
  4. The module MUST have no non-core dependencies
  5. The module MUST be only one single .pm file
  6. The module should be back-compatible to at least 5.004
  7. The module should omit functionality rather than implement it incorrectly.
  8. If applicable, the module should be compatible with the larger module.

See also the talk about Acme::Tiny by xdg.

map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]

Replies are listed 'Best First'.
Re^2: ::Tiny modules namespace origins
by Smonff (Scribe) on Oct 08, 2020 at 11:25 UTC

    Thanks! I'm glad I asked because it is much more formal than what I was thinking. Very impressive...

    🌸
Re^2: ::Tiny modules namespace origins
by Aldebaran (Curate) on Oct 09, 2020 at 21:12 UTC
    The module should use at least 1/10th the amount of memory overhead, ideally less than 100k

    Does memory overhead mean memory allocated by C libraries under the hood? Is using 50% of memory allocated "good" and 5 per cent less so, because we will have asked for too much?