Deutsch   English   Français   Italiano  
<vs4mjg$1aptp$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: =?UTF-8?Q?Arne_Vajh=C3=B8j?= <arne@vajhoej.dk>
Newsgroups: comp.os.vms
Subject: Re: VSI compiler webinar
Date: Thu, 27 Mar 2025 19:22:24 -0400
Organization: A noiseless patient Spider
Lines: 104
Message-ID: <vs4mjg$1aptp$1@dont-email.me>
References: <vrk01m$1pn8a$1@dont-email.me>
 <31202c11e7c49616ec97f1d5914f8d2803c2184b@i2pn2.org>
 <m4a4e3FoatU1@mid.individual.net> <vrpjdf$2r6bm$1@dont-email.me>
 <vrs90i$1gda7$1@dont-email.me>
 <ab0d386078f6a4641613f45b33d0246145357304@i2pn2.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 28 Mar 2025 00:22:25 +0100 (CET)
Injection-Info: dont-email.me; posting-host="7b664625f37ea09cdc15f765c3e12345";
	logging-data="1402809"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/1UhDnNTML5//mpf3k+aEfOOoTgOVK6K4="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:QPoubOc9e91sIk/wRh97CKTTT2o=
Content-Language: en-US
In-Reply-To: <ab0d386078f6a4641613f45b33d0246145357304@i2pn2.org>
Bytes: 5906

On 3/27/2025 6:22 PM, John Reagan wrote:
> Yes, we are currently using clang/LLVM 10.0.1.  It is bootstrapped using 
> a Linux version of the same code base with changes to create OpenVMS 
> objects (it knows about CRTL name mapping, argcounts, and all that 
> stuff).  What we did was:
> 
> - start with the plain 10.0.1 sources and 10.0.1 binaries
> - add code to clang/LLVM (much of the LLVM changes were just carried 
> over from the LLVM 3.4.2 codebase we used with the cross compilers)
> - build that code on Linux creating a 10.0.1v compiler
> - use that compiler to build it all again
> - copy all the .o files over to an OpenVMS machine to put into OLBs
> - link clang using those OLBs on OpenVMS
> - use that clang on OpenVMS to build our G2L (GEM to LLVM converter)
> - link all the legacy frontends (originally build with cross compilers 
> but now built with native compilers) with the G2L and LLVM libraries
> - test & make kits
> - and Bob's your uncle and much easier than learning to say the French R 
> sound

Ah - so 3.4.2 was only Itanium cross compiling while native use 10.0.1 -
that makes a release even more interesting!!  :-)

> As for native building, we do have a CMake ported and are currently 
> working on native building that 10.0.1v source tree on OpenVMS V9.2-3 
> including some work to CMake to make it easier for symbol vector 
> management for LIBCXX/LIBCXXABI.  Not quite to testing yet.

Do you plan on releasing CMake for VMS?

Please say yes.  :-)

> We have also downloaded the latest LLVM (either 20.1.0 or 20.1.1, I'd 
> have to go check).  As a first step, we've been able to compile that on 
> Linux using the same 10.0.1v compiler that we use today.  The LLVM 20 
> code base is much larger as you can imagine and we're working on linking 
> up the LIBCXX/LIBCXXABI libraries right now.  The number of LLVM 
> libraries is also different.  We've merged in some but not all of the 
> OpenVMS additions but nothing tested yet.  We'll have to upgrade our G2L 
> since the internal LLVM IR is not guaranteed to be upward compatible and 
> they've changed several of the interfaces over the last few years.  And 
> to make it even more painful, LLVM 20 now requires a newer CMake version 
> than the one we ported.  Ugh!  We'll do it again and then look at 
> providing it online as well.
> 
> As for merging our code back into the actually LLVM repo, that's still a 
> work in progress.  Once we switch to LLVM 20, we will be in a much 
> better position to make the case to the LLVM community.  I think it will 
> be an easier discussion for the LLVM changes.

Obviously.

But it will also take longer time.

>                                                The clang changes might 
> be a tougher sell since our addition of dual-sized pointers, listing 
> files, etc might scare off a few people. It would be difficult for the 
> build bots to build (we would have to provide and manage some systems).

I don't think clang changes are as interesting as LLVM changes.

You provide C and C++. No point in community to do another C or C++.

But maybe (just maybe) the community could do some languages that
VSI does not provide utilizing the LLVM backend.

> Making our VSI git repositories visible would be another choice. 
> However, if you haven't noticed,
> 
> https://arstechnica.com/gadgets/2025/03/google-makes-android- 
> development-private-will-continue-open-source-releases/

Google & Android and VSI & VMS are in very different states.

> Besides the sources (and scripts), I'd like to make another kit of pre- 
> built images (and perhaps the LLVM libraries) that come out of the LLVM 
> build today.  There are some of the LLVM tools that are only useful to 
> compiler developers like llvm-dis but there are some tools like clang- 
> format, llvm-objdump, llvm-dwarfdump, llvm-nm, etc that others might 
> want.  For example, the X86ASM product on the support portal is just the 
> llvm-mc tool.  llvm-mc is quite powerful as both an assembler AND 
> disassembler.  It can even convert between AMD and Intel syntax as a 
> party trick.

Go for it!

Please.

> G2L, while completely written by VSI, would only be useful if you have a 
> compiler frontend that generates GEM CIL.  And G2L does use GEM headers 
> so that's where the existing HPE copyrights start to appear.

Are there any non-VSI compilers using GEM? Kednos PL/I? Synergex DBL?

If there are then maybe some interest. Assuming IPR can be worked out.

Not relevant for the "new stuff".

> Vi ses snart i Malmö

:-)

Arne