Package Details: lfortran 0.18.0-1

Git Clone URL: https://aur.archlinux.org/lfortran.git (read-only, click to copy)
Package Base: lfortran
Description: Modern interactive LLVM-based Fortran compiler
Upstream URL: https://lfortran.org
Keywords: fortran
Licenses: BSD
Submitter: ciappi
Maintainer: ciappi
Last Packager: ciappi
Votes: 3
Popularity: 0.56
First Submitted: 2021-11-06 14:37 (UTC)
Last Updated: 2022-10-31 18:52 (UTC)

Latest Comments

ciappi commented on 2022-10-31 19:12 (UTC)

Updated to 0.18 (I missed the new github repo). For what I can tell, llvm11 is used to compile lfortran itself while clang is used just as a linker (you can use gcc with the option --link-with-gcc). However I've added clang as a dependency since it is the default. This distribution is intended to ship only the default llvm backend. I hope it is usable now.

everythingfunct commented on 2022-10-31 15:27 (UTC)

That allowed it to build, but the llvm backend does not work once installed. I get an error like:

$ lfortran hello.f90
sh: line 1: clang: command not found
The command 'clang -o a.out a.out.tmp.o  -L"/usr/bin/../share/lfortran/lib" -Wl,-rpath,"/usr/bin/../share/lfortran/lib" -llfortran_runtime -lm' failed.

I think it points to something still being misconfigured, either in the PKGBUILD, or lfortran's build system.

The error message from using makepkg is coming from the wasm backend, but I don't believe the clean chroot method built the wasm backend, and hence didn't encounter the error. Is this distribution intended to include the wasm backend? If not, what about my environment is causing it to try and be included?

The message about missing clang is true (it's not installed on my system), but the PKGBUILD doesn't list it as a dependency, and there's not a version available in official repos that would be compatible with the listed requirement of llvm11. So do we really still need to stick to llvm11, or could we just list both llvm and clang?

ciappi commented on 2022-10-31 13:02 (UTC)

Not sure what's wrong, It compile fine in a clean chroot. Try to compile it using "extra-x86_64-build" instead of "makepkg" as described here

everythingfunct commented on 2022-10-28 20:40 (UTC)

I still get a build error:

In file included from /home/brad/Downloads/AUR/lfortran/src/lfortran-0.17.0/src/libasr/codegen/asr_to_wasm.cpp:10:
/home/brad/Downloads/AUR/lfortran/src/lfortran-0.17.0/src/libasr/../libasr/codegen/wasm_assembler.h: In function ‘void LFortran::wasm::emit_u32_b32_idx(LFortran::Vec<unsigned char>&, Allocator&, uint32_t, uint32_t)’:
/home/brad/Downloads/AUR/lfortran/src/lfortran-0.17.0/src/libasr/../libasr/codegen/wasm_assembler.h:129:5: error: ‘assert’ was not declared in this scope
  129 |     assert(num.size() <= 4);
      |     ^~~~~~
/home/brad/Downloads/AUR/lfortran/src/lfortran-0.17.0/src/libasr/../libasr/codegen/wasm_assembler.h:2:1: note: ‘assert’ is defined in header ‘<cassert>’; did you forget to ‘#include <cassert>’?
    1 | #include <cassert>
  +++ |+#include <cassert>
    2 | 
make[2]: *** [src/libasr/CMakeFiles/asr.dir/build.make:160: src/libasr/CMakeFiles/asr.dir/codegen/asr_to_wasm.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:297: src/libasr/CMakeFiles/asr.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...

Any help would be appreciated.

ciappi commented on 2022-10-25 19:41 (UTC)

Updated to 0.17.0, latest version as per https://lfortran.org/download/

everythingfunct commented on 2022-10-21 21:48 (UTC)

Version 0.18.0 is available now. Any chance this could be updated to it?

ciappi commented on 2022-03-17 19:54 (UTC)

Ok, now it should compile fine.

ruther commented on 2022-03-16 03:34 (UTC) (edited on 2022-03-16 03:34 (UTC) by ruther)

Can't install on two machines.

I can't install it on either an Arco box and an Almost fresh Arch box, In both machines I get the same error when compiling:

:: (1/1) Parsing SRCINFO: lfortran
==> Making package: lfortran 0.14.0-1 (Wed 16 Mar 2022 12:32:51 AM -03)
==> Retrieving sources...
  -> Found lfortran-0.14.0.tar.gz
==> Validating source files with sha256sums...
    lfortran-0.14.0.tar.gz ... Passed
==> Making package: lfortran 0.14.0-1 (Wed 16 Mar 2022 12:32:52 AM -03)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Found lfortran-0.14.0.tar.gz
==> Validating source files with sha256sums...
    lfortran-0.14.0.tar.gz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Extracting lfortran-0.14.0.tar.gz with bsdtar
==> Sources are ready.
==> Making package: lfortran 0.14.0-1 (Wed 16 Mar 2022 12:32:55 AM -03)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Removing existing $pkgdir/ directory...
==> Starting build()...
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found ZLIB: /usr/lib/libz.a (found version "1.2.11")
-- Found LLVM 11.1.0
-- Using LLVMConfig.cmake in: /usr/lib64/cmake/llvm


Configuration results
---------------------
LFORTRAN_VERSION: 0.14.0
CPACK_PACKAGE_FILE_NAME: lfortran-0.14.0-Linux
C compiler      : /usr/bin/cc
C++ compiler    : /usr/bin/c++
Build type: Release
C compiler flags      : -O3 -DNDEBUG
C++ compiler flags    : -Wall -Wextra -O3 -march=native -funroll-loops -DNDEBUG
Installation prefix: /usr
WITH_LFORTRAN_ASSERT: no
LFORTRAN_STATIC_BIN: no
WITH_STACKTRACE: no
WITH_UNWIND: no
WITH_BFD: no
WITH_DWARFDUMP: no
WITH_LINKH: no
WITH_MACHO: no
HAVE_LFORTRAN_DEMANGLE: yes
WITH_LLVM: yes
WITH_XEUS: no
WITH_JSON: no
WITH_FMT: no
WITH_LFORTRAN_BINARY_MODFILES: YES
WITH_RUNTIME_LIBRARY: YES
WITH_TARGET_AARCH64: no
WITH_TARGET_X86: yes
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ruther/.cache/yay/lfortran/src/lfortran-0.14.0
[  1%] Building CXX object src/tests/CMakeFiles/doctest.dir/doctest.cpp.o
In file included from /home/ruther/.cache/yay/lfortran/src/lfortran-0.14.0/src/tests/doctest.cpp:7:
/home/ruther/.cache/yay/lfortran/src/lfortran-0.14.0/src/tests/doctest.h:4036:47: error: size of array ‘altStackMem’ is not an integral constant-expression
 4036 |         static char             altStackMem[4 * SIGSTKSZ];
      |                                               ^
make[2]: *** [src/tests/CMakeFiles/doctest.dir/build.make:76: src/tests/CMakeFiles/doctest.dir/doctest.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:293: src/tests/CMakeFiles/doctest.dir/all] Error 2
make: *** [Makefile:166: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
 -> error making: lfortran