🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.emacs.bug
Article #99818

Problems with lispref on VMS (v5.2-1) and GNU C (v1.36)

#99818
From: Roland Roberts
Date: Fri, 11 May 1990 16:45
59 lines
3402 bytes
I just retrieved the file lispref.tar.Z and moved everything to our
VAX/VMS system.  However, I found a couple of problems.

First, make-permuted-index is referred to in the README file.  Is this
supposed to be permute-index?  If not, where can I obtain it?

MAKEINFO.C:
The first was that makeinfo had to be be modified to compile under gcc
(version 1.36) on VMS.  I'm sending the context diffs to the this file
separately.  Part of the problem lies in a VAXC RTL routine (stat)
that lies about the file size.  The value of the field st_size is
always larger than the number of bytes you can read.  I spent a day
trying to understand the systematics of the difference but haven't yet
figured it out.

Additionally, `read' will not cross an record boundary (i.e., a
newline for "normal" VMS files), so I used the same technique found in
the Emacs source fileio.c and bagged the comparison with the value of
st_size.  Converting the files to STREAM_LF or something similar
*might* work, but there is supposedly a limit of 32767 bytes/record
which is smaller than several of the file sizes.  Everything is
appropriately `#ifdef'd.

The last change was to change the hardwired exit codes to macros which
are `#defined' inside an `#ifdef VMS' block.

Once this was done, the files lispref, and lispref-* were all created
and running info on them was fine except for the node Index.  For some
reason, any attempt to get to the node `Index'

Wrong type argument: integer-or-marker-p, Top^?1009

The cure here was to run makeinfo with the +no-split flag set and then
manually run M-x Info-tagify and M-x Info-split.

makeinfo did issue an error message (which, from looking at the
texinfo source, I assume was deliberate),

lispref.texinfo:107: Node `Top''s Next field not pointed back to.
intro.texinfo:171: This node (`Introduction') is the one with the bad `Prev'.


TEXINDEX.C:
I also found texindex.c needed some changes to compile under gcc 1.36.
I am sending the context diff's for this as well.  Most of the changes
were to avoid a name conflict with a global symbol in the VAXCRTL
shareable image library.  For some reason, there is a symbol called
`LINES'.  I have no idea what it is, but I changed all references in
texindex.c from `lines' to `nlines'.

I added #ifdef's to define `noshare' to an empty string if VAX11C is
not defined, and instead `#include <perror.h>'.  This keeps gcc happy. 

Inside the function bzero, one of the arguments is declared register
and then has its address taken.  I changed this to keep the value as
register, but copy the value to another variable before calling
LIB$MOVC5.  Perhaps VAXC lets you get away with taking the address of
a register variable, but gcc won't, so I don't.
Technical Details
Message-ID: <9005111645.AA08641@uhura.cc.rochester.edu>
Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!tut.cis.ohio-state.edu!UHURA.CC.ROCHESTER.EDU!rbr4

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fb2f1,859d6ec0060c35de,start
X-Google-Attributes: gidfb2f1,public
X-Google-ArrivalTime: 1990-05-11 10:48:55 PST
Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!tut.cis.ohio-state.edu!UHURA.CC.ROCHESTER.EDU!rbr4
From: rbr4@UHURA.CC.ROCHESTER.EDU (Roland Roberts)
Newsgroups: gnu.emacs.bug
Subject: Problems with lispref on VMS (v5.2-1) and GNU C (v1.36)
Message-ID: <9005111645.AA08641@uhura.cc.rochester.edu>
Date: 11 May 90 16:45:27 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: GNUs Not Usenet
Lines: 59
Posted: Fri May 11 17:45:27 1990