Date:        Thu, 27 Jun 2019 12:27:55 +0200
    From:        Joerg Schilling <joerg.schill...@fokus.fraunhofer.de>
    Message-ID:  <5d149a2b.tueush4pd3wqoutl%joerg.schill...@fokus.fraunhofer.de>

  | Note that POSIX is a portable source standard and other shells that may
  | behave like bash5 currently only compile and work on a single platform.

I haven't been paying much attention here recently (other stuff to do)
and have a lot of unread mail on this list.

But I wanted to address this point in particular when I saw it (it also
came up in some other message I saw in passing) - and apologies one and all
if others have also said what I am about to say, and I just haven't read
your messages yet.

I shall eventually (if needed) return to substantial points of the actual
issues being discussed in this thread sometime later.

First, you're absolutely right that the NetBSD sh isn't (currently)
portable to other systems - though the issue is mostly its build environment,
rather than its code (but yes, <sys/cdefs.h> is a nuisance).   Fixing
that is somewhere on my list of things to do one day, but it is not
nearly as high a priority as making the shell work correctly (for my,
and the NetBSD developers' and users' definition of correctly) and
then more efficiently.   [Aside: people I know have managed to build
it on other systems, it is not an impossible task - though it is certainly
not trivial either.]

But all that is 100% irrelevant to anything here - POSIX is so that
applications can be portable, not necessarily in order to make the
systems that implement it portable, or even available at all.   In fact,
when POSIX (and or the SUS before it) were initially written, the shell
which was mostly used as the basis for the XCU section, was not really
available at all - it was all proprietary sources.

Any of today's POSIX conforming systems can (could) be the same.

The is no requirement, anywhere, that any particular piece of any
of those systems be portable to any other system, or be available for
you to test in any way at all.

To be certified, as I undersand it, the whole system needs to be tested
and verified correct (plus all the documentation, blah blah ...) but I
don't believe that you are any part of that process, nor that any of the
sources for the certified system ever need be made available to anyone.

None of that makes such a system less relevant for determining what the
the actual expected operations and expectations of the shell in the
wild actually are - that is, what the standard should say.

Further, shells that are actively being distributed and used with systems
available now (particularly those that are installed as /bin/sh on the
various different systems) are much more relevant to use in deciding what
is (and should be) the standard than other random code that is used almost
nowhere - whatever its ancient lineage.   And whether you can get at them
to test their operations is 100% irrelevant.

Lastly, if you really want to test the NetBSD shell, that is easy to do - all
you need to do is install NetBSD somewhere - which is not a difficult process,
as while it doesn't always handle all the newest hardware all that well, it
is highly portable, and runs on just about every emulation environment you
can imagine (XEN, Virtualbox, VMware, Qemu, ...) as well as on a large
variety of real (bare metal) hardware of many different architectures.

kre


Reply via email to