[comp.sys.pyramid] Any compatibility issues between Pyramid systems?

tim@brspyr1.BRS.Com (Tim Northrup) (03/15/90)

Does anyone know if there are any compatibility issues between Pyramid
models?  We develop all of our software on a 90x (and a rather oldish
one at that); is there anything that we would generate on that box that
would not work on any other Pyramid system (MIServer, 9040, etc.)?

We do all of our work in C, currently in the att universe under OSx 4.4c.

Thanx in advance.
							-- Tim
-- 
Tim Northrup      		  +------------------------------------------+
+---------------------------------+         GEnie:  T.Northrup               |
UUCP: uunet!crdgw1!brspyr1!tim    |   Air Warrior:  "Duke"                   |
ARPA: tim@brspyr1.BRS.Com	  +------------------------------------------+

karl@giza.cis.ohio-state.edu (Karl Kleinpaste) (03/15/90)

tim@brspyr1.BRS.Com writes:
   Does anyone know if there are any compatibility issues between Pyramid
   models?

For what it's worth, we run one each of 90x, 98xe, 98x, and 9825, and
have no qualms at all about moving software among them.  In fact, when
installing the 9825, I simply restored dump tapes from the 90x, which
was the first to go to 4.4.

--karl

csg@pyramid.pyramid.com (Carl S. Gutekunst) (03/16/90)

In article <6707@brspyr1.BRS.Com> tim@brspyr1.BRS.Com (Tim Northrup) writes:
>We develop all of our software on a 90x (and a rather oldish one at that);
>is there anything that we would generate on that box that would not work on
>any other Pyramid system (MIServer, 9040, etc.)?

There are no *problems* that I've ever heard of, but there are a few consider-
ations. OSx upgrades tend not to be downward compatible, meaning that an OSx
5.0 binary will not run on an OSx 4.0 system. But the reverse is usually no
problem, so long as it isn't a binary that requires intimate knowledge of the
kernel. I have OSx 2.5 binaries that work just fine, but an OSx 2.5 version of
ps(1) is not going to run on OSx 3.0, let alone 5.0. And since OSx 4.1, the
compilers have generated some opcodes that don't exist in machines without
data cache; so you cannot run OSx 4.1 on those machines. And *prior* to OSx
4.1, the compilers generated some opcodes that do not exist in the MIServer,
and are simulated by kernel traps (and hence, very slow). 

<csg>

wendyt@cs.washington.edu (Wendy Thrash) (03/17/90)

In article <105575@pyramid.pyramid.com> csg@pyramid.pyramid.com (Carl S. Gutekunst) writes:
>There are no *problems* that I've ever heard of, but there are a few consider-
>ations.

More considerations: 1) The floating-pont format changed slightly from
the older machines to the newer ones.  This means that some numbers
(those with maximum exponent) that were perfectly ordinary numbers on
the oldest machines are now NaN or Inf on the newer ones.  If you do not
have mountains of floating-point data (with fairly wide range) this will
probably not be a problem, but it is a consideration.

2) The newer machines round to nearest by default, whereas the older ones
always truncated.  For details, do man math  (or was it man float . . .
well, something like that) on a reasonably  recent release of OSX.
This means that some programs will get slightly different results on
the newer hardware.

jenkins@esquire.UUCP (Colin Jenkins) (03/22/90)

In article <6707@brspyr1.BRS.Com> tim@brspyr1.BRS.Com (Tim Northrup) writes:
>Does anyone know if there are any compatibility issues between Pyramid
>models? [...] is there anything that we would generate on that box that
>would not work on any other Pyramid system (MIServer, 9040, etc.)?
> 
>We do all of our work in C, currently in the att universe under OSx 4.4c.

We have 98x's running 4.1 and MIServers running 5.0.  We do almost all of
our work in the bsd universe.  Our exprerience is that most binaries will
run on both OSx versions.  There are definite incompatibilities however.  We
have a ksh (probably) compiled on 4.0 that works fine on OSx5.0 *except*
under X windows.  A recompile seems to fix the problem.  Any low level "ps"
type programs (that read kernel structures) probably won't work.  Any 
program that tries to read /dev/drum will not work on OSx5.0.  Since tty 
names have changed in OSx5.0, OSx4.x programs that have tty names hard 
coded into them will break.  The format of device numbers has changed 
between versions as well, however I know of no specific examples of binaries 
breaking for this reason.  I know of at least one OSx2.5 binary that ran 
fine on OSx4.x but not on OSx5.0.

I believe that OSx5.0 supports dynamic sizing of open file descriptor tables,
OSx4.x does not.  A process hoping to open a few hundred file descriptors
on a 4.x system will be disapointed (yes, they do exist...).

Signals between 4.1 and 5.0 have changed- under OSx4.1, SIGLOST is 31, but
under OSx5.0, SIGLOST=SIGURG, and signal 31 is SIGWINCH.  I would guess that
4.1 binaries looking for SIGLOST on a 5.0 system would be looking for window
size change signals erroneously and acting on them incorrectly.

In addition, OSx5.0 adds at least one more system call (perhaps) more, and 
running 5.0 binaries on lower releases is not something I'd recommend.

Also, there are bug fixes in the OSx5.0 libraries that may not have made it
into your 4.x libraries.  If you don't recompile your programs for OSx5.0,
you may be running with 4.x library bugs on the 5.0 system.

My advice is to recompile for both systems and save yourself some potential
headaches.  Even when something appears to be running well on both systems,
you may find some special situation that causes a failure as we have with
our ksh under X windows (as one example).  If you must mix binaries, don't
do it downward (don't run 5.0 binaries on 4.x, run 4.x on 5.0).


						Colin

						jenkins@dpw.com
						jenkins@cs.purdue.edu
						uunet!esquire!jenkins
						cmcl2!esquire!jenkins

eric@pyramid.pyramid.com (Eric Bergan) (03/23/90)

In article <1871@esquire.UUCP> jenkins@esquire.UUCP (Colin Jenkins) writes:
>In article <6707@brspyr1.BRS.Com> tim@brspyr1.BRS.Com (Tim Northrup) writes:
>>Does anyone know if there are any compatibility issues between Pyramid
>>models? [...] is there anything that we would generate on that box that
>>would not work on any other Pyramid system (MIServer, 9040, etc.)?
>> 
>We have 98x's running 4.1 and MIServers running 5.0.  We do almost all of
>our work in the bsd universe.  Our exprerience is that most binaries will
>run on both OSx versions.  There are definite incompatibilities however.  We
>have a ksh (probably) compiled on 4.0 that works fine on OSx5.0 *except*
>under X windows.  A recompile seems to fix the problem.  Any low level "ps"
>type programs (that read kernel structures) probably won't work.  Any 
>program that tries to read /dev/drum will not work on OSx5.0.  Since tty 
>names have changed in OSx5.0, OSx4.x programs that have tty names hard 
>coded into them will break.  The format of device numbers has changed 
>between versions as well, however I know of no specific examples of binaries 
>breaking for this reason.  I know of at least one OSx2.5 binary that ran 
>fine on OSx4.x but not on OSx5.0.

	All of the above are potential cases for incompatibility. I should
point out that there are versions of ksh that seem to have problems, no
matter what. We will be shipping and supporting a version of ksh in
the next OSx release. (RSN)

>I believe that OSx5.0 supports dynamic sizing of open file descriptor tables,
>OSx4.x does not.  A process hoping to open a few hundred file descriptors
>on a 4.x system will be disapointed (yes, they do exist...).

	Actually, this will work in OSx 4.4 (that's when the feature went
in), but not in OSx 4.1 or earlier. All of the processflags() stuff
tends to be aware that it is on a system that can't support it, and
will return an error that the flags could not be set. So the binary
will work on earlier versions, but will not support the enhanced
functionality. Of course, if it has to have that support, then it
can't run at all. But at least we don't core dump or panic the machine.

>In addition, OSx5.0 adds at least one more system call (perhaps) more, and 
>running 5.0 binaries on lower releases is not something I'd recommend.

	I don't have a definitive list in front of me, but the system
calls that have been added in OSx 4.4 and OSx 5.0 have been cleverly
mapped on to trap vectors that on earlier versions of OSx will return
error codes, rather than a more obnoxious behaviour. The user side of
the system calls have been written to look for this. And things such
as the string manipulation and memory move routines adapt to what they
have to work with, and so will work on earlier versions of OS that do not
support the block move instruction.

>Also, there are bug fixes in the OSx5.0 libraries that may not have made it
>into your 4.x libraries.  If you don't recompile your programs for OSx5.0,
>you may be running with 4.x library bugs on the 5.0 system.

	Definitely. Also, an OSx 5.0 built binary is still subject to OSx 4.x
bugs in the kernel if run on OSx 4.x.

>My advice is to recompile for both systems and save yourself some potential
>headaches.  Even when something appears to be running well on both systems,
>you may find some special situation that causes a failure as we have with
>our ksh under X windows (as one example).  If you must mix binaries, don't
>do it downward (don't run 5.0 binaries on 4.x, run 4.x on 5.0).

	I should point out that most of the cases above are fairly rare.
There are many sites that are building under OSx 5.0, and successfully
running on OSx 4.x machines with those binaries. We've even QA'd products
like the DBMS's that were built under OSx 5.0, but re-QA'd under OSx 4.4
so we could certify that they would work on the earlier OSx. We also
routinely go the other direction, taking DBMS's built under, say OSx 4.4,
and were QA'd by Pyramid on OSx 5.0.

	Of course, device drivers, and other kernel installed modules are
an entirely different matter...

-- 

					eric
					...!pyramid!eric