Dear testers,

Cpantesters is a unique infrastructure.  I (ab)use it to collect platform
specific information around POSIX compliancy, which I cannot find anywhere
else.  I need more uncommon platforms to run my tests...  Please cpantest
my POSIX::1003 module.


* Let me explain.
The POSIX.pm module offers a few extra OS calls, which are not in core
(why is getpwnam() still build-in?)  But the POSIX standards are much
larger.  See where the 1200+ functions of POSIX* are:
http://search.cpan.org/~markov/POSIX-1003/lib/POSIX/Overview.pod#FUNCTIONS

POSIX::1003 extends POSIX.pm, firstly breaking its exported info into
groups with some documentation.  Most importantly, the module autodetects
constants and adds more functions.  There are many many more constants
than core modules define.


* Approach.
I have manually grabbed constant names from the manual pages of
many operating systems.  There are collections of manual pages
which are helpful.  I have found close to 1700 constants this way.
During installation of the module, XS builds tables with the names which
are found.  Those names are also added to the manual pages.  Example:

https://metacpan.org/pod/distribution/POSIX-1003/lib/POSIX/1003/Errno.pod#CONSTANTS

I add new functions very fast, but need to see which platforms support
which extensions.  Also, I need to spot compilation problems for platforms
which I do not have.

Worth to notice: I go to great pain *not* to hide platform differences!
People may want to produce abstractions which do hide differences,
but to do that correctly, we need the pure native interface first.
For instance, I offer a pure getuid() and geteuid() and getreuid() and
getresuid() (if platforms offer them), without an attempt to unify them.


* New project.
Ok, to support my own development, I was looking for the reverse
mapping: we do have a "platform to constants" map via manual-pages,
but it is not clear when constants and functions got added to some OS.
Now, I use cpantesters to get the reverse mapping!  When tests are run
on cpantesters, they dump the discovered tables.  It will benefit Perl's
connection to the OS, but this data is useful for any OS programmer.

Have a look at http://posix.cpan6.net what I do with the information
collected via cpantesters.  It's a new project, so far from optimal
output.  When I get more cpantest results, I will (have to) be smarter
with the browsing.

* Please help
Please run tests for POSIX::1003 -- especially when you run something
else than Mac, Linux, FreeBSD, Windows.   At least, I would like to get
results from aix, hpux, solaris, and openbsd.  Thanks in advance!
-- 
Regards,

               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       m...@overmeer.net                          soluti...@overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net

Reply via email to