[comp.unix.xenix] Xenix 286 reliability, and a Xenix/SysV question

drew@vrdxhq.UUCP (Drew Johnson) (08/10/88)

   Just thought that I'd throw in my 0.02 cents worth to the discussion
of reliability of 286 Xenix, and also ask a question.

   I will not say that the 286 xenix 2.2.1 is not without problems.
Their C compiler leaves a little to be desired, as it has problems with
evaluation of complex statements (can you say 'infinite spill'?), also
with the order of evaluation.  I had a statement like:

	if ((ptr != NULL) && (ptr -> foo != 1))

And it will actually evaluate the second condition, even if the first is
false!  Actually, it simply evaluated them in reverse order.  At any rate,
it was a problem.  Another one that I personally like is their optimizer.
In the release notes, it says something to the effect of "If you use the
-O option, and your program segmentation faults, remove the -O option".
I just recently compiled two programs with the -O option, where 1 forked
and exec'ed the other.  Use of the -O option caused the exec to fail
with hardware address fault.  Lovely.

    Concerning loss of data on shared interrupt vectors, I use an 8-port
mux that shares a vector, and has no hardware flow control or buffering.
It works fine as long as no more than 1 port is run at 9600.  Running 2
at 9600 is a problem, and you find out quick, because most of the ports
on the mux stop working.

    Now, the question:  I am in the process of migrating a system from
a xenix 286 to a 386 box.  We already have it running under Xenix 2.2.1
on the 386.  I would like opinions on how hard it would be to change
to SysV/386.  Xenix 2.2.1 has a hard limit of 40 message queues, but
we find that we will need more than that.  Is this a problem for SysV/386?
(I'm pretty sure that SysV/386 can handle it)  Basically, I need to find
out just how difficult it would be to port the code.  My system makes
use of xenix shared-memory and message queues. 

Please e-mail responses to me.

Drew Johnson
verdix!drew
or 
drew@verdix.uu.net