[Pdx-pm] RE:Perl & XS

On Wed, 19 Mar 2003, Brian Ingerson wrote:
> On 19/03/03 13:44 -0800, Joe Oppegaard wrote:
> > >
> > > > Until yesterday, I hadn't heard of the Inline:: module.
> > > > Thanks people. Now, I've studied C, but I never found
> > > > just a library reference. How can I find out what
> > > > libraries are available, and what their functions do?
> > > > I'm really used to the CPAN and was wondering why there
> > > > isn't a C counterpart. Am I just totally missing it?
> > > > Is it right there in front of my eyes? Thanks.
> > > >
> > >
> > > Funny you should bring that up. Where's Ingy? :)
> > >
> >
> > While being cryptic above was fun:
> >
> > See the in development, though very exciting FreePAN:
> > http://freepan.org>> FreePAN should definitely be extended to C. I think it require a little
> bit of design, but I'd really like to see it. It would be great to have
> a repository of C "modules", and I think it would be a great resource
> for people learning how to create sharable C libraries.
</lurk>
Wow. This is a pretty spiffy idea. It sure wouldn't be easy, though. Unlike
Perl, Ruby, or other relatively "pure" languages, you have to deal with dozens
of vendors, and decades of cruft and incompatibilities. And that's if you just
limit yourself to Unix derivatives. Things get ever so much more interesting
if you want to add in Win32, Classic Mac (it's probably safe enough to lump
OSX with the *nix crowd), etc.
1. There should probably be a way to select a "module" and have it built from
source and installed, or select an appropriate pre-compiled version.
2. There's got to be some fairly standard mechanisim to turn source into
a binary. Perhaps auto(conf|make) would be appropriate. But you'd have to
be take care that the FreePAN installed stuff either played well with the
OS-supplied packages (which would be a virtual impossibility), or store the
results in some FreePAN managed directory structure.
3. If the latter, it'd be nice to provide pkg-config like functionality to
easily get the appropriate compiler / linker arguments. That'd require
tracking dependency information sufficient to ensure that the linker
arguments were ordered correctly.
-lImlib before -lX11 and all is heaven. -lX11 before -lImlib and all is
glib.
4. There are probably a thousand other details I'm missing....
-- Nick
I don't have suspenders big enough for *those* disbelief pants.
- chromatic