<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/9ce5fa98c5bcd43e17c71603847ff2804fa55d0a">https://github.com/macports/macports-ports/commit/9ce5fa98c5bcd43e17c71603847ff2804fa55d0a</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 9ce5fa98c5b lfortran: new port in lang
</span>9ce5fa98c5b is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 9ce5fa98c5bcd43e17c71603847ff2804fa55d0a
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Wed Jan 25 08:27:21 2023 +0800
<span style='display:block; white-space:pre;color:#404040;'> lfortran: new port in lang
</span>---
lang/lfortran/Portfile | 60 ++++++++++++++++++++++++++++++++++++++
lang/lfortran/files/patch-ppc.diff | 13 +++++++++
2 files changed, 73 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lfortran/Portfile b/lang/lfortran/Portfile
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b29cef17da1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lfortran/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup lfortran lfortran 0.18.0 v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers {@barracuda156 gmail.com:vital.had} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Modern open-source interactive Fortran compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description LFortran is a modern open-source interactive Fortran compiler built on top of LLVM. \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ It can execute user’s code interactively to allow exploratory work \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (much like Python, MATLAB or Julia) as well as compile to binaries \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with the goal to run user’s code on modern architectures such as multi-core CPUs and GPUs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage https://lfortran.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 bcf04e7e3d7c52cef49a9c46c266e36d64b4ca24 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 a56ceec77309637120b1f11fb67eb25eecabc57fd5f4f1f2b91eb0769fc40ec7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1713153
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Build system is a bit handicapped.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fetch.type git
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.out_of_source no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set port_libfmt libfmt9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.module_path-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${prefix}/lib/${port_libfmt}/cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:bash \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:bison \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:re2c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append path:lib/pkgconfig/RapidJSON.pc:rapidjson \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:zlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:${port_libfmt}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver 3.11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver_nodot [string map {. {}} ${py_ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append port:python${py_ver_nodot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.python ${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-ppc.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|python src|${configure.python} src|g" ${worksrcpath}/build0.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace "s|/usr/bin/env python|${configure.python}|" ${worksrcpath}/run_tests.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append -DLFORTRAN_BUILD_ALL=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DLFORTRAN_STATIC_BIN=NO \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DWITH_FMT=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DWITH_JSON=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DWITH_LLVM=NO \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DWITH_RUNTIME_LIBRARY=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DWITH_ZLIB=YES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.build_type Release
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lfortran/files/patch-ppc.diff b/lang/lfortran/files/patch-ppc.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e21435de68d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lfortran/files/patch-ppc.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/lfortran/parser/parser_stype.h.orig 2022-10-19 05:48:01.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/lfortran/parser/parser_stype.h 2023-01-25 07:41:41.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,7 +94,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Ensure the YYSTYPE size is equal to Vec<AST::ast_t*>, which is a required member, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // YYSTYPE has to be at least as big, but it should not be bigger, otherwise it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // would reduce performance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// On PPC it reduces to 16 == 12, possibly due to a different size of bool.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __POWERPC__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static_assert(sizeof(YYSTYPE) == sizeof(Vec<AST::ast_t*>));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } // namespace LFortran
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>
</pre>