[comp.sys.masscomp] Help! I need GNU Emacs

dennis@beaver.cs.washington.edu (Dennis Gentry) (02/09/88)

I have tried (so far unsuccessfully) to get GNU Emacs 18.49
going on this Masscomp 5600 running RTU 3.1c.  I can get a
temacs successfully compiled (but only by adding the C compiler
flag -fsoft or else the linker flag -lflight), but then it dies
in the regexp search code.  If I skip the search code (i.e.
inc-vers.el), the bare emacs can load most of the stuff listed
in loadup.el.

The debugger (mdb) variously craps out or not depending on
which printf statements I've included to try to (reliably) find
out the values of variables.  This is not good.  Also, when I
change the printfs I'm using, not only does mdb work
differently, but the values of variables I'm trying to debug
get modified differently.  Finally, the same copy of
temacs behaves differently (internally, not just output-wise)
when piped through less from when the output goes directly to
the screen.

During a make, in the first invocation of temacs (./temacs
-batch -l inc-vers ), there is a regexp search using
"[^"]*[0-9]+" as a pattern to try to match "18.49.0" The
pattern seems to compile o.k., but then it looks like translate
and/or fastmap in re_search_2 get whomped somewhere inside
re_match_2.  It depends on whether I "watch" them with printfs
or not.  If I watch them, they appear to be o.k. most of the
time.  During the first use of translate and fastmap,
they're ok (i.e. before calling re_match_2).

Any Masscomp gurus know anything about weird memory allocation
problems or C compiler bugs?  How about any of you veteran
emacs porters out there?  Has anyone else seen anything like
this?  I thought this had already been done.

I would greatly appreciate any prompt help anyone could give
me.

Thanks.

-- 
Dennis.
-------
arpa:   uw-nsr!uw-warp!dennis@beaver.cs.washington.edu
usenet: {ihnp4|decvax|...}uw-beaver!uw-nsr!uw-warp!dennis

sdr@mrmarx.UUCP (Stephen D. Rogers) (02/18/88)

In article <3325@soma.bcm.tmc.edu> uw-warp!dennis@beaver.cs.washington.edu
(Dennis Gentry) writes:
>
>I have tried (so far unsuccessfully) to get GNU Emacs 18.49
>going on this Masscomp 5600 running RTU 3.1c.
>... I would greatly appreciate any prompt help anyone could give
>me.
>

I have brought up GNU Emacs v17.49, v18.46, and GNU Emacs v18.49 on our
Masscomp systems.  We are currently running GNU Emacs v18.49.  The
workarounds to apply to the GNU distribution depend primarily on the version
of the C compiler and runtime library that you are using, and somewhat on
the release of RTU 3.1 that you are using.  I have applied the following
workarounds at various times.

1) Several releases of Masscomp's C compiler have trouble with register
declarations.  Disable register declarations by defining the keyword
"register" as an empty macro.  For example, "cc -c -Dregister='' foo.c".  You
will have to fix-up a handful of source files which use, for example,
"register i" rather than "register int i".

2) Masscomp's alloca() is broken in some releases.  I have successfully used
the alloca() "emulator", written in C, which comes with GNU Emacs.

3) Masscomp's fsync() is broken in some (all?) releases.  It is only used in
one place, in the write-region(?) code in "src/fileio.c".  I am currently
running with the fsync() call essentially commented out.  This is not the
best solution, but it works, since RTU flushes its file buffers reasonably
often anyway.  If you do not disable the call to Masscomp's fsync(), RTU will
eventually lock up.  The symptoms I have seen involve a file save or an
autosave, after which the system load ramps steeply up "forever".

4) Make sure that you compile and link everything in the ucb universe.  Even
so, a few of the programs in etc/ will not compile due to missing BSD header
files.  Fortunately, these few programs are not particularly important.

There may be other workarounds which I have forgotten, or which I am not
aware of.  Once you apply the workarounds, GNU Emacs v18.49 works quite
nicely on RTU.
-- 
Stephen D. Rogers		{uunet,masscomp,alliant}!mrmarx!sdr
Decision Software Company
51 Spinelli Place
Cambridge, MA 02138