[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]

Re: configure-less Perl builds



On Tue, 4 Jan 2000, Simon Cozens wrote:

> Anyway, I started the port of Configure today (Sorry, Sarathy, I know I
> said I wouldn't do this yet, but work got boring :) and am about 10% of
> the way through. However, I'm running into some interesting `issues'. 

Amazing :-).  If you get even 50% of the way there without going crazy,
I'll be even more amazed.  Or perhaps at that point I should assume that
your inability to detect your own insanity is proof of your own
insantity :-).

> As the patch stands, it sacrifices everything for portability.
> `Everything' here currently includes things like opendir(), which is
> nasty. (but not insurmountable) The reason is, I'm not sure what we can
> sensibly assume - if anything - that a C library will give us. And if I
> want opendir() should I bank on there being a dirent.h, or should we
> implement it ourselves? In fact, how much of the C library are we
> prepared to provide ourselves in order to get it up and working?

The general idea traditionally has been that anything in v7 is probably
ok.  The metaconfig units sometimes (but not often enough) contain helpful
comments (that don't make it into Configure) about which systems were
particularly troublesome and why things are done in a particular way. If
you want a copy of the approximately-current units, let me know.  They may
help you answer specific questions about specific functions.

Now metaconfig is a quite old package, of course (Raphael started his work
on dist-3 in 1990; I don't know offhand when Larry released dist-2.0) and
it carries with it workarounds for many systems long extinct.  (Configure
still sometimes checks for Eunice, for example.)  Figuring out which ones
are long extinct is left as an exercise for the re-implementor, but
beware, there is a lot of old hardware out there that continues to run
just fine.

Opendir, dirent.h (and the associated #ifdef forrest in perl.h) was indeed
a pain to work out.  My original System V manuals are packed away right
now, but I seem to recall that <dirent.h> is safe for System Vr3 and
later, and that the ndir.h stuff was really only relevant for Vr2 and
earlier and SCO and Xenix systems.  In short, I'd say assume you have
<dirent.h> (but you might as well leave in the NeXT-specific code in
perl.h to pick up <sys/dir.h> as well.)

> Oh, and general comments on the whole thing welcome.

Good luck.  You're going to need it :-).

At some point, you might want to take a look at how metaconfig works.
Rather than editing a humungous script like Configure, metaconfig builds
up Configure from a very large number of small units.  These units
explicitly declare their dependencies, and then are assembled together.
It's a pretty neat system.

    Andy Dougherty		doughera@lafayette.edu



References to:
Simon Cozens <simon@brecon.co.uk>

[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index][Thread Index][Top&Search][Original]