<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/1efa126c01ee1902e03d44feecd062214d327e57">https://github.com/macports/macports-ports/commit/1efa126c01ee1902e03d44feecd062214d327e57</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 1efa126c01e lpython: new port in lang
</span>1efa126c01e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 1efa126c01ee1902e03d44feecd062214d327e57
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Sun Feb 4 12:08:29 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    lpython: new port in lang
</span>---
 lang/lpython/Portfile                              | 91 ++++++++++++++++++++++
 ...race.cpp-include-syslimits.h-for-PATH_MAX.patch | 25 ++++++
 ...ride.cmake-fix-native-optflag-for-PowerPC.patch | 27 +++++++
 .../0003-Install-libs-into-a-sane-location.patch   | 24 ++++++
 ...004-parser_stype.h-allow-building-for-ppc.patch | 25 ++++++
 lang/lpython/files/0005-patch-build0.sh.patch      | 27 +++++++
 lang/lpython/files/0006-patch-version.patch        | 10 +++
 7 files changed, 229 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/Portfile b/lang/lpython/Portfile
</span>new file mode 100755
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6524b810c0e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,91 @@
</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               compiler_blacklist_versions 1.0
</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            lcompilers lpython 0.20.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 python
</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             High-performance typed Python compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description        LPython aggressively optimizes type-annotated \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        Python code. It has several backends, including LLVM, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        C, C++ and WASM. LPython’s primary tenet is speed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage                https://lpython.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums               rmd160  01cdab5767af01d017339f79355c34e9ab2ec8d7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  741fb64ddf70528eb713103d5b6e2068344b5768b546b0c21145d5a1507635a0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    1196647
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from     archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set port_libfmt         libfmt10
</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;'>+if {${os.platform} eq "darwin" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    && ${configure.build_arch} in [list ppc ppc64]} {
</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;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_ver          3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</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;'>+patchfiles-append       0001-stacktrace.cpp-include-syslimits.h-for-PATH_MAX.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0002-UserOverride.cmake-fix-native-optflag-for-PowerPC.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0003-Install-libs-into-a-sane-location.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0004-parser_stype.h-allow-building-for-ppc.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0005-patch-build0.sh.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        0006-patch-version.patch
</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;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@VERSION@|${version}|" ${worksrcpath}/ci/version.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PYTHON@|${configure.python}|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;'>+# TODO: add support for LLVM for x86 and aarch64, as it is done for lfortran,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# once it gets fixed: https://github.com/lcompilers/lpython/issues/2462
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   -DLPYTHON_BUILD_ALL=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DLPYTHON_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_INTRINSIC_MODULES=NO \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DWITH_JSON=YES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DWITH_LCOMPILERS_FAST_ALLOC=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_MACHO=YES \
</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_STACKTRACE=NO \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DWITH_UNWIND=NO \
</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;'>+pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${worksrcpath} "sh ./build0.sh"
</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;'>+# CMake Error at CMakeLists.txt:23 (message): CMAKE_BUILD_TYPE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# must be one of: Debug, Release (current value: 'MacPorts')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.build_type        Release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Since no buildbot for PowerPC, we use -mtune=native,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # and just in case force a local build:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    archive_sites
</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;'>+test.run                yes
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0001-stacktrace.cpp-include-syslimits.h-for-PATH_MAX.patch b/lang/lpython/files/0001-stacktrace.cpp-include-syslimits.h-for-PATH_MAX.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bda484588f7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0001-stacktrace.cpp-include-syslimits.h-for-PATH_MAX.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e1614f206bd4d231dc6e5b15e827c9b4ad5a933f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 10 Jan 2024 13:12:10 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] stacktrace.cpp: include syslimits.h for PATH_MAX
</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;'>+ src/libasr/stacktrace.cpp | 5 +++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 5 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/libasr/stacktrace.cpp src/libasr/stacktrace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c356e4b3f..2c730a5ec 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/libasr/stacktrace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/libasr/stacktrace.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,6 +15,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // For registering SIGSEGV callbacks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <csignal>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// For PATH_MAX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  include <sys/syslimits.h>
</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;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // The following C headers are needed for some specific C functionality (see
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // the comments), which is not available in C++:
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0002-UserOverride.cmake-fix-native-optflag-for-PowerPC.patch b/lang/lpython/files/0002-UserOverride.cmake-fix-native-optflag-for-PowerPC.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..43148d65c50
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0002-UserOverride.cmake-fix-native-optflag-for-PowerPC.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From d4cda07a17b24cd5897cc50c1c4d5d4ccdb3b1e3 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 10 Jan 2024 12:49:54 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] UserOverride.cmake: fix native optflag for PowerPC
</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;'>+ cmake/UserOverride.cmake | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git cmake/UserOverride.cmake cmake/UserOverride.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3139f24c8..5c5030118 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- cmake/UserOverride.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ cmake/UserOverride.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # g++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(common "-Wall -Wextra")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    set(CMAKE_CXX_FLAGS_RELEASE_INIT "${common} -O3 -march=native -funroll-loops -DNDEBUG")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (CMAKE_SYSTEM_PROCESSOR MATCHES "ppc|powerpc")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        set(native "-mtune=native")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # else ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #     set(native "-march=native")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    endif ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(CMAKE_CXX_FLAGS_RELEASE_INIT "${common} -O3 ${native} -funroll-loops -DNDEBUG")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(CMAKE_CXX_FLAGS_DEBUG_INIT   "${common} -g -ggdb")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # icpc
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0003-Install-libs-into-a-sane-location.patch b/lang/lpython/files/0003-Install-libs-into-a-sane-location.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..43e2265db9b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0003-Install-libs-into-a-sane-location.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From c3b6f50f85de1a62d3322c6c5e2b1b831ebc0337 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 10 Jan 2024 13:43:09 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Install libs into a sane location
</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;'>+ src/bin/CMakeLists.txt | 4 ++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 2 insertions(+), 2 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/bin/CMakeLists.txt src/bin/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 72a1a1a11..7c836e4ae 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/bin/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/bin/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -73,8 +73,8 @@ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ install(TARGETS lpython
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ARCHIVE DESTINATION share/lpython/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    LIBRARY DESTINATION share/lpython/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ARCHIVE DESTINATION lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    LIBRARY DESTINATION lib
</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;'>+ set_target_properties(lpython PROPERTIES
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0004-parser_stype.h-allow-building-for-ppc.patch b/lang/lpython/files/0004-parser_stype.h-allow-building-for-ppc.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..9b42987e6bf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0004-parser_stype.h-allow-building-for-ppc.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 86c3bfc52f57746acc08d1fb8dc4a6ff11e089ef Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Sergey Fedorov <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 10 Jan 2024 13:47:00 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] parser_stype.h: allow building for ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+See: https://github.com/lcompilers/lpython/issues/2460
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lpython/parser/parser_stype.h | 3 +++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/lpython/parser/parser_stype.h src/lpython/parser/parser_stype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 07458a3f8..e24f07344 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/lpython/parser/parser_stype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/lpython/parser/parser_stype.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -112,7 +112,10 @@ static_assert(std::is_trivial<YYSTYPE>::value);
</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 must 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;'>++// A temporary fix for PowerPC 32-bit, where the following assert fails with (16 == 12).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __ppc__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static_assert(sizeof(YYSTYPE) == sizeof(Vec<LPython::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;'>+ static_assert(std::is_standard_layout<Location>::value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static_assert(std::is_trivial<Location>::value);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0005-patch-build0.sh.patch b/lang/lpython/files/0005-patch-build0.sh.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..0160a55991e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0005-patch-build0.sh.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- build0.sh.orig 2023-09-23 05:11:47.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ build0.sh      2024-01-10 12:37:53.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,19 +6,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ci/version.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate a Python AST from Python.asdl (Python)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-python grammar/asdl_py.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@PYTHON@ grammar/asdl_py.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate a Python AST from Python.asdl (C++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-python src/libasr/asdl_cpp.py grammar/Python.asdl src/lpython/python_ast.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@PYTHON@ src/libasr/asdl_cpp.py grammar/Python.asdl src/lpython/python_ast.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate a Fortran ASR from ASR.asdl (C++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-python src/libasr/asdl_cpp.py src/libasr/ASR.asdl src/libasr/asr.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@PYTHON@ src/libasr/asdl_cpp.py src/libasr/ASR.asdl src/libasr/asr.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate a wasm_visitor.h from src/libasr/wasm_instructions.txt (C++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-python src/libasr/wasm_instructions_visitor.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@PYTHON@ src/libasr/wasm_instructions_visitor.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate the tokenizer and parser
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (cd src/lpython/parser && re2c -W -b tokenizer.re -o tokenizer.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (cd src/lpython/parser && bison -Wall -d -r all parser.yy)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-python -c "file = 'src/lpython/parser/parser.tab.cc'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@PYTHON@ -c "file = 'src/lpython/parser/parser.tab.cc'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with open(file, 'r') as f: text = f.read()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with open(file, 'w') as f:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     f.write('[[maybe_unused]] int yynerrs'.join(text.split('int yynerrs')))"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/lpython/files/0006-patch-version.patch b/lang/lpython/files/0006-patch-version.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3e318e93c39
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/lpython/files/0006-patch-version.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ci/version.sh  2023-10-26 20:56:56.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ci/version.sh  2023-10-27 09:59:39.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -13,6 +13,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set -ex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-version=$(git describe --tags --dirty)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-version="${version:1}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++version="@VERSION@"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo $version > version
</span></pre><pre style='margin:0'>

</pre>