Hi ports --

Attached is a new port, lang/flang/f18. F18 is the new LLVM Fortran compiler.

Some explanation:
Flang isn't going anywhere. It is still a production-quality Fortran compiler built on top of LLVM (it's basically PGI Fortran bolted on top of an LLVM IR generator, for those keeping score at home). However, Flang isn't suitable for being donated directly to the LLVM project, which was one of the goals of open sourcing the PGI Fortran compiler.

F18 is designed to meet this goal. It is a completely new from the ground-up Fortran compiler. The conversation about donating F18 to LLVM began recently, so I think now is the time to get this into ports. It's written in C++17, so clang-only for now though once ports-gcc moves to 8.2.0 it will build with that too. I've tested with both compilers.

What F18 is not:
* A finished compiler. It will parse and validate your Fortran code but it will not produce LLVM IR or native code. The Flang team expect F18 to begin generating LLVM IR in about two to three months time.
* A replacement for Flang. Flang isn't going anywhere.

This port is for people who are looking to get their hands dirty with the new compiler. The Flang team overall has been really great getting OpenBSD issues resolved in both Flang and F18; I've had f18 on my machine since the repo was posted a little over a year ago.

NOTE: F18 requires a lot of memory to build.

Attached is the tarball for the new port and a diff to tweak the flang scaffolding to include f18.

OK?

~Brian

Attachment: f18.tgz
Description: Binary data

Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- Makefile	9 May 2018 22:27:41 -0000	1.2
+++ Makefile	5 Mar 2019 07:31:35 -0000
@@ -2,6 +2,7 @@
 
 SUBDIR =
 SUBDIR += driver
+SUBDIR += f18
 SUBDIR += flang
 SUBDIR += libpgmath
 
Index: Makefile.inc
===================================================================
RCS file: /cvs/ports/lang/flang/Makefile.inc,v
retrieving revision 1.6
diff -u -p -r1.6 Makefile.inc
--- Makefile.inc	15 Feb 2019 17:51:09 -0000	1.6
+++ Makefile.inc	5 Mar 2019 07:31:35 -0000
@@ -1,8 +1,5 @@
 # $OpenBSD: Makefile.inc,v 1.6 2019/02/15 17:51:09 bcallah Exp $
 
-# Also ppc64le
-ONLY_FOR_ARCHS =	amd64 arm64
-
 CATEGORIES ?=	lang
 
 HOMEPAGE ?=	http://www.flang-compiler.org/
@@ -11,8 +8,9 @@ MAINTAINER ?=	Brian Callahan <bcallah@op
 GH_ACCOUNT ?=	flang-compiler
 
 # driver: BSD
-# flang: Apache 2.0 (will become BSD once integrated into LLVM)
-# libpgmath: Apache 2.0 (will become BSD once integrated into LLVM)
+# f18: Apache 2.0
+# flang: Apache 2.0
+# libpgmath: Apache 2.0
 PERMIT_PACKAGE_CDROM =	Yes
 
 NO_TEST ?=	Yes
Index: driver/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/driver/Makefile,v
retrieving revision 1.16
diff -u -p -r1.16 Makefile
--- driver/Makefile	4 Mar 2019 01:07:22 -0000	1.16
+++ driver/Makefile	5 Mar 2019 07:31:35 -0000
@@ -1,5 +1,8 @@
 # $OpenBSD: Makefile,v 1.16 2019/03/04 01:07:22 jsg Exp $
 
+# Also ppc64le
+ONLY_FOR_ARCHS =	amd64 arm64
+
 # If you are updating to a new version
 # (e.g. 7.0->7.1 or 8.0), you need to sync
 # patches with devel/llvm
Index: flang/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/flang/Makefile,v
retrieving revision 1.37
diff -u -p -r1.37 Makefile
--- flang/Makefile	5 Mar 2019 06:47:59 -0000	1.37
+++ flang/Makefile	5 Mar 2019 07:31:35 -0000
@@ -1,5 +1,8 @@
 # $OpenBSD: Makefile,v 1.37 2019/03/05 06:47:59 bcallah Exp $
 
+# Also ppc64le
+ONLY_FOR_ARCHS =	amd64 arm64
+
 COMMENT =	LLVM Fortran compiler passes and runtime library
 DISTNAME =	flang-7.0.1.20190301
 
Index: libpgmath/Makefile
===================================================================
RCS file: /cvs/ports/lang/flang/libpgmath/Makefile,v
retrieving revision 1.24
diff -u -p -r1.24 Makefile
--- libpgmath/Makefile	5 Mar 2019 06:47:59 -0000	1.24
+++ libpgmath/Makefile	5 Mar 2019 07:31:35 -0000
@@ -1,5 +1,8 @@
 # $OpenBSD: Makefile,v 1.24 2019/03/05 06:47:59 bcallah Exp $
 
+# Also ppc64le
+ONLY_FOR_ARCHS =	amd64 arm64
+
 # Sync version with lang/flang/flang always!
 COMMENT =	LLVM Fortran math library
 DISTNAME =	flang-7.0.1.20190301

Reply via email to