[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: porting Mozart to alpha, arm, hppa, mipsel, s390

On Wed, Apr 10, 2002 at 04:25:48PM +0200, Denys Duchier wrote:
> Petter Reinholdtsen <pere@hungry.com> writes:

> > Part of the problem seem to be that the configure script tests for OS
> > and architecture, not if the needed features are present or not.  This
> > of course makes it fail on all new OS/architecture combination, as
> > well as old combinations when the feature set changes over time.

> This is not exactly the case.  We do check for "features" (if I
> understand that term correctly), however features are not necessarily
> as reliable as you'd like and the inferences that you may draw from
> them vary depending on the platform.  Thus we use knowledge about the
> platform (1) to conditionalize inferences (2) make platform specific
> inferences and guesses or override inferences that are known not to
> work.

If you're checking for the *right* features, it's possible to guarantee 
that your code will work on all platforms that are encompassed by your 
feature checks, because ideally you have a direct mapping between the 
feature you're checking for in your configure-time script and what your
code actually does at run-time.  GNU autoconf provides a good framework 
for this, but using autoconf doesn't guarantee that you're using the 
right feature checks.

I don't know that I can easily reconcile this with your desire to not 
"accidentally" support additional platforms; except to say that using 
autoconf to check for the actual features used by your program will make 
the job of new porters much easier, as well as making less work for you 
whenever a supported platform happens to change an interface.

> While transparently accommodating new OS/architectures is reasonably
> possible for most software, it is not realistic for a VM with complex
> memory management (tagged pointers, tagged data, GC), support for
> concurrent computations, and protocols to support distributed data,
> distributed computations, and mobile objects.

Well, if the VM is fully virtual, it should be relatively easy to 
support all Linux architectures by generalizing your existing support -- 
the only major variables are word size and endianness..

Steve Langasek
postmodern programmer

Attachment: pgp24KeQM5A_j.pgp
Description: PGP signature

Reply to: