From: jasonp@bungie.prime.com (Jason Pascucci)
Subject: Re: X Windows on 50-Series
Organization: Prime Computer R&D
Date: Mon, 21 Dec 1992 02:17:14 GMT

In article <1h1muqINN1e4@werple.apana.org.au>, markd@werple.apana.org.au (Mark Delany) writes:
|> drand@spinner.osf.org (Douglas S. Rand) writes:
|> >In article <9212091722.AA28848@usenet.rpi.edu> alan@res-c4.prime.com (Alan Dossett) writes:
|>>We're still working on the X11 port to the 50-Series, but the release won't
|>>be in Q4.  There's a tangle of C that's causing us some trouble, and we'll be
|>>delayed while we're straightening it out.  The code originates from MIT, where
|>>one generation of grad students after another has "hacked" it without much
|>>consideration for design methodology;  so, each port to a new platform is hard
|>>to schedule accurately.
|> >Pardon?  I've seen most of the X code,  including the comms code.
|> >It has not been "hacked" by generations of grad students.  Most of
|>
|> Are you sure he was talking about the X11 code? If nothing else, the X
|> guys were at least able to settle on a common coding language. There
|> must be 5 in Primos alone!
|> [A low blow, I'll admit. To be fair, most of Primos is written in THE
|> premier Systems Programmer's language - Fortran 4].

PL/P is the highest used Primos language, with 1448 modules as of 23.3,
382 SPL, 373 PMA, 175 FTN, and 99 Modula. (Not including insert files)
In many cases, the 'right language' for the 'right job' was used.
I am a proponant for multiple languages in software products...
admittedly, it is a maintenance problem, but more importantly
no one language has all the capability to do it all, and still come
out looking reasonable. Personally, I'd pick SPL over C in about 80% 
of the cases of software development, from OS to apps. 

|> Let see, that adds up to 24*80 * 8*13 * 8 bits (xy * font * colour
|> planes), or approx 200Kb. Pretty difficult when the largest contiguous
|> pieve of memory you can do in V-mode is 128Kb!

Which is easily enough coded around. However, this isn't much of an 
issue for X, since the X stuff is in IX (c-language support) mode.(Come 
to think of it, I don't know if IX handles this any better, either.)
However, add scrollback to that '24' number, also. I personally use 
at least 200 lines, and I know someone who uses upwards of 1000. 
Viva la VM! 

(Thinking about it a little more, you'd allocate this in chunks 
anyways, not a flat space.)

|> I'll bet that reasons like: fork(), select(), device independence
|> [consider read()/write() of sockets], exec(), pipe() and wait() also
|> have a part to play as just about any Unix prog with a degree of
|> difficulty greater than zero relies on some of these (Xlib uses at
|> least two of these for starters).

These have for the most part been worked around previously, for
PRIMIX support. Others have been done also. Many of these
are fairly useful...I'll ask around about getting them released. 

|> Would Alan Dossett care to elaborate on the reason for most of the
|> problems. It would certainly help those the poor sods who are trying
|> to port other Unix code to Primos...

My take (I'm not directly working on the project) is that the
C compiler is giving most of the headaches. Much of the
#ifdef __50SERIES ... #endif is to get around compiler issues. 
One of the problems with finding the problems was the enormous
number of macros to get to the actual code, and the non-intuitiveness
of the placement of those macros in the source code distribution. Another 
was, if memory serves, an alignment problem in structures. Some of
these problems have only arisen as of the later version of the
C compiler. 

Alan, maybe you can get someone working on X to summarize
some of their porting issues here? It's kind of nice to hear
that there are people out there who are actually porting code
*FROM* a Unix box. :)

|> --
|> Mark Delany                                          markd@werple.apana.org.au

--
Jason R. Pascucci
jasonp@primerd.prime.com
Disclaimer: The opinions above are mine. 
Newsgroups: comp.sys.prime