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

dragonchild has asked for the wisdom of the Perl Monks concerning the following question:

After shaving a yak, I ended up in Hash::Util, specifically in lock_keys(). Noticed heavy use in the PurePerl version of Internals, specifically Internals::SvREADONLY(). Never having heard of it, I looked it up. Lo and behold, although SvREADONLY() was used by the XS, it wasn't exposed by the XS. Bopping around a bit, I found use of a bunch of functions in the Internals:: namespace that aren't exposed by Internals. And, furthermore, it seems like these functions are available without use-ing Internals itself.

So, the question - what's in Internals:: and where can I get some documentation on it? Sounds like all sorts of goodies are in there and I wanna get me some of that! :-)

Update: Per Anonymonk's reply, apparently a whole bunch of seemingly-unrelated things are provided in universal.c and that's just the list for 5.8.9. In 5.10.0's universal.c, there's twice the list. (Scroll down halfway looking for /^XS\(/). Why are these functions all stuffed together in universal.c? Where are they documented? If they're exposed, I would think they would be documented somewhere.


My criteria for good software:
  1. Does it work?
  2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?