Emacs for VMS x86

Everything about buying, using, and managing OpenVMS systems not covered by other sections.
Post Reply

Topic author
danielg
Newbie
Posts: 4
Joined: Sat Jul 17, 2021 2:16 am
Reputation: 0
Status: Offline

Emacs for VMS x86

Post by danielg » Tue May 02, 2023 6:46 am

Is there anyone looking at building Emacs for VMSx86?

/Daniel


afassl
Active Contributor
Posts: 27
Joined: Fri Jun 14, 2019 3:15 am
Reputation: 0
Status: Offline

Re: Emacs for VMS x86

Post by afassl » Tue May 02, 2023 8:03 am

Ah, my favourite editor.

Currently checking, if this will work.
We've build one for VAX/Alpha/Itanium.

Will update as soon as I've got an overview

Added in 6 hours 35 minutes 46 seconds:
Hi,

ok - I've build microemacs (more or less a nobrainer) :-)

Code: Select all

=*== MicroEMACS 3.12 L:1 C:1 (ASAVE) == hello.c == File: hello.c ===============
MicroEMACS 4.0 is a little bit more sturdy - have to refresh my coding capabilities.

Code: Select all

UEMACS-4 ┬AIX      
         │         │         	       ├AMIGA    
         │    	   │                   ├ATARI    
         │         │                   ├BRIEF    
         │   	   │                   ├BSD      
         │   	   │                   ├CMD      
         │  	   │                   ├DGUX     
         │         │                   ├DOC      
         │   	   │                   ├FMR      	   
         │    	   │                   ├FREEBSD  	   
         │         │                   ├H        	   
         │   	   │                   ├HP150    	   
         │    	   │                   ├HPUX     	   
         │         │                   ├HTMLHELP ─HTML     
         │  	   │                   ├I55                
         │    	   │                   ├LINUX    
         │  	   │                   ├MACOSX   ─MEMACS_X*┬PROJECT_*┬XCSHARED*
         │  	   │                   │                   │         └XCUSERDA*◆
         │    	   │                   │     	           └XCUSERDA*─PETER_XC*◆
         │         │                   ├MPE      
         │  	   │                   ├MSWIN    ┬BCPP     
         │    	   │                   │         ├BCPP55   
         │    	   │                   │         ├MSC      
         │         │                   │     	 └VS2017   
         │ 	   │                   ├NEC      
         │    	   │                   ├NT       ─BCPP55   
         │    	   │                   ├OS2                
         │         │                   ├PCDOS    ┬ANSI     
         │    	   │                   │         ├ANSI16M  
         │         │                   │         ├DOS16M   
         │   	   │                   │         ├IC       
         │   	   │                   │         ├M6       
         │ 	   │                   │         ├M7       
         │   	   │                   │         ├MSC      
         │   	   │                   │         ├TURBO    ─BIN      
         │         │                   │     	 └XVT      ─BIN      
         │         │                   ├SRC                
         │         │                   ├SUN      ┬CC       
         │         │                   │         └GCC      
         │         │                   ├VMS                
Compile runs fine, with some warnings.

But linking fails

Code: Select all

%ILINK-W-USEUNDEF, undefined symbol TERM referenced
	section: $CODE$
	offset: %X0000000000000EFF
	module: WINDOW 
	file: DKA400:[PRODUKTE.2-5000.02.UEMACS-4.SRC]WINDOW.OBJ;1 

I've used the source from here:
https://github.com/pmachapman/memacs

Added in 1 minute 8 seconds:
ah - and back to the question.
Emacs is a monster source wise, have to find my way how this has to be build.

User avatar

arne_v
Master
Posts: 308
Joined: Fri Apr 17, 2020 7:31 pm
Reputation: 0
Location: Rhode Island, USA
Status: Offline
Contact:

Re: Emacs for VMS x86

Post by arne_v » Tue May 02, 2023 7:25 pm

afassl wrote:
Tue May 02, 2023 2:40 pm
ah - and back to the question.
Emacs is a monster source wise, have to find my way how this has to be build.
Are you going with the version that build on VMS VAX/Alpha/Itanium and just trying to build it on VMS x86-64?

Or are you trying to port a recent version to VMS x86-64?

The first is probably a lot faster than the second.
Arne
arne@vajhoej.dk
VMS user since 1986


hb
Valued Contributor
Posts: 64
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: Emacs for VMS x86

Post by hb » Wed May 03, 2023 6:50 am

arne_v wrote:
Tue May 02, 2023 7:25 pm
afassl wrote:
Tue May 02, 2023 2:40 pm
ah - and back to the question.
Emacs is a monster source wise, have to find my way how this has to be build.
Are you going with the version that build on VMS VAX/Alpha/Itanium and just trying to build it on VMS x86-64?

Or are you trying to port a recent version to VMS x86-64?

The first is probably a lot faster than the second.
The first will probably be the sources from the freeware CD. On the freeware CD there are sources for/based on Emacs 21.2. It's more or less a snapshot of a development environment. If you build and run Emacs it identifies itself as version 21.2.1. Unfortunately there seems to be no matching source code for this version on Savanna. The Itanium specific sources will not really help with the x86 port. The Alpha sources seem to be the base to start with.

I did a cross tools build, some time ago (https://groups.google.com/g/comp.os.vms ... 0GuhReAQAJ). But when I recently tried a native x86 build, I ran into unexpected problems. There is specific VMS code, which either needs to be made compatible with current C headers, or needs to be removed. It's not obvious which way is easier to get a somehow working version. Unfortunately I do not have the time to work on this. But using the sources which compiled for VMS may still be easier than porting the current Emacs sources.


spoofy
Contributor
Posts: 21
Joined: Fri Mar 31, 2023 6:02 pm
Reputation: 0
Location: Erlangen/Germany
Status: Offline

Re: Emacs for VMS x86

Post by spoofy » Wed May 03, 2023 7:23 am

It compiles and link after change in VMSLINK.COM (SYS$SHARE:VAXCRTL/SHARE ==> SYS$SHARE:LIBRTL/SHARE).
hb wrote:
Wed May 03, 2023 6:50 am
arne_v wrote:
Tue May 02, 2023 7:25 pm
afassl wrote:
Tue May 02, 2023 2:40 pm
ah - and back to the question.
Emacs is a monster source wise, have to find my way how this has to be build.
Are you going with the version that build on VMS VAX/Alpha/Itanium and just trying to build it on VMS x86-64?

Or are you trying to port a recent version to VMS x86-64?

The first is probably a lot faster than the second.
The first will probably be the sources from the freeware CD. On the freeware CD there are sources for/based on Emacs 21.2. It's more or less a snapshot of a development environment. If you build and run Emacs it identifies itself as version 21.2.1. Unfortunately there seems to be no matching source code for this version on Savanna. The Itanium specific sources will not really help with the x86 port. The Alpha sources seem to be the base to start with.

I did a cross tools build, some time ago (https://groups.google.com/g/comp.os.vms ... 0GuhReAQAJ). But when I recently tried a native x86 build, I ran into unexpected problems. There is specific VMS code, which either needs to be made compatible with current C headers, or needs to be removed. It's not obvious which way is easier to get a somehow working version. Unfortunately I do not have the time to work on this. But using the sources which compiled for VMS may still be easier than porting the current Emacs sources.


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: Emacs for VMS x86

Post by sms » Wed May 03, 2023 8:52 am

Code: Select all

> It compiles and link after change in VMSLINK.COM
> (SYS$SHARE:VAXCRTL/SHARE ==> SYS$SHARE:LIBRTL/SHARE).

   You're not using VAX C, so I can see why removing the reference to
VAXCRTL.EXE makes sense.  Did you actually need to specify
"SYS$SHARE:LIBRTL/SHARE"?

   Is there something in the builders which decides that you _are_ on a
VAX, possibly because it doesn't recognize the x86_64 architecture?  In
many cases, when Alpha (and/or IA64) arrived, people added tests for
Alpha (and/or IA64), when the smart move would have been to test for
VAX or non-VAX rather than for specific non-VAX architectures (of which
there's now another one).


hb
Valued Contributor
Posts: 64
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: Emacs for VMS x86

Post by hb » Wed May 03, 2023 9:46 am

spoofy wrote:
Wed May 03, 2023 7:23 am
It compiles and link after change in VMSLINK.COM (SYS$SHARE:VAXCRTL/SHARE ==> SYS$SHARE:LIBRTL/SHARE).
and "It" is what?

Code: Select all

$ pipe unzip -v [.EMACS]EMACS21_2.ZIP |search sys$pipe VMSLINK
      39  Defl:N       34  13% 10-21-2004 12:15 88925363  emacs/build/vms/vmslink.opt
$ unzip -p [.EMACS]EMACS21_2.ZIP emacs/build/vms/vmslink.opt
MULTINET:MULTINET_SOCKET_LIBRARY/SHARE
and after @configure ...

Code: Select all

$ ty [...]VMSLINK.OPT

WORK:[USER.EMACS.ALPHA.EMACS.BUILD.VMS]VMSLINK.OPT;1
 
UCX$LIBRARY:TCPIP$LIB/LIBRARY
 
WORK:[USERER.EMACS.IA64.EMACS.BUILD.VMS]VMSLINK.OPT;1
 
UCX$LIBRARY:TCPIP$LIB/LIBRARY
 
WORK:[USER.EMACS.X86.EMACS.BUILD.VMS]VMSLINK.OPT;1
 
UCX$LIBRARY:TCPIP$LIB/LIBRARY
$


spoofy
Contributor
Posts: 21
Joined: Fri Mar 31, 2023 6:02 pm
Reputation: 0
Location: Erlangen/Germany
Status: Offline

Re: Emacs for VMS x86

Post by spoofy » Wed May 03, 2023 9:59 am



sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: Emacs for VMS x86

Post by sms » Wed May 03, 2023 3:27 pm

Code: Select all

> https://github.com/william8000/microemacs

   Ok.  Lame (in more than one way) test in vmslink.com:

> $ if f$getsyi("VERSION") .lts. "V8" then goto USEVAXCRTL

V87 $ write sys$output f$getsyi("VERSION")
E9.2-1  

V87 $ write sys$output f$getsyi("VERSION") .lts. "V8"
1

   1. Stripping the first character off that version string would have
      helped with the "E" v. "V" problem.

   2. As mentioned above, VAXCRTL.EXE should be used with VAX C, _not_
      with DEC C, making it unlikely to be useful on any (")modern(")
      VAX system.  The VMS version does not identify the compiler being
      used, making that test inappropriate, and VAX C is seriously
      unlikely to be used these days.  Which makes the whole USEVAXCRTL
      section an antique waste of space.  (I claim.)

User avatar

martinv
Master
Posts: 102
Joined: Fri Jun 14, 2019 11:05 pm
Reputation: 0
Location: Goslar, Germany
Status: Offline
Contact:

Re: Emacs for VMS x86

Post by martinv » Tue May 16, 2023 2:25 am

Ahhh, MicroEmacs. My editor of choice on all platform I work on.

I found another GitHub repo preserving its source, forked it, fixed a few things to bring the VMS part up-to-date, and issued a pull request.

cu,
Martin
Working hard for something we don't care about is called stress;
working hard for something we love is called passion.
(Simon Sinek)

Post Reply