Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!mit-eddie!uw-beaver!uw-june!brian From: brian@uw-june.UUCP (Brian Bershad) Newsgroups: comp.lang.c++ Subject: C++ on the sequent Message-ID: <2943@uw-june.UUCP> Date: Thu, 6-Aug-87 04:27:52 EDT Article-I.D.: uw-june.2943 Posted: Thu Aug 6 04:27:52 1987 Date-Received: Sat, 8-Aug-87 09:27:06 EDT Reply-To: brian@uw-june.UUCP (Brian Bershad) Distribution: world Organization: U of Washington, Computer Science, Seattle Lines: 55 Keywords: C++, sequent, multi-processor I am trying to port c++ v1.2 to the sequent. Standard c++ with standard c works just fine (this is an NS32K machine with 10 processors). The problem is that Sequent has decided to "extend" C by adding two new storage specifiers: shared private which indicate to the C compiler whether globals should be declared private to each process, or shared among all processes. examples: extern shared int foo; static private char bar[100]; These are very useful constructs in a parallel environment. There are 2 problems. 1. The easy one. The storage specifier keyword "private" is in conflict with an existing C++ keyword. I can work around this by using shared_t and private_t in my C++ code and then just having cfront omit the _t on emission, or just sedding cfront's output on its way to ccom (not great, but hey, it's a multiprocessor!). 2. The hard one. How to (painlessly) get the new keywords through cfront. Semantic checks are unnecessary. ccom will do them for me, and as it is, cfront doesn't always agree with ccom anyway. If possible, I would like to avoid diddling too much with the internals of cfront. Has anyone already done this for the sequent? or for some other "extended" compiler? -- brian@june.cs.washington.edu Brian Bershad {ihnp4,decvax,ucbvax}!uw-beaver!brian Dept. of Computer Science, FR-35 Seattle, WA 98195