Bug 273922 - [NEW PORT] lang/emilua: Lua execution engine with support for async IO and flexible threading layout
Summary: [NEW PORT] lang/emilua: Lua execution engine with support for async IO and fl...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Robert Clausecker
URL:
Keywords:
Depends on: 273986
Blocks:
  Show dependency treegraph
 
Reported: 2023-09-18 07:42 UTC by Valter Nazianzeno
Modified: 2023-09-22 05:17 UTC (History)
2 users (show)

See Also:


Attachments
[patch] lang/emilua (9.27 KB, patch)
2023-09-18 07:42 UTC, Valter Nazianzeno
no flags Details | Diff
lang/emilua: Lua execution engine with support for async IO and flexible threading layout (20.37 KB, patch)
2023-09-22 01:42 UTC, Valter Nazianzeno
no flags Details | Diff
lang/emilua: Lua execution engine with support for async IO and flexible threading layout (10.24 KB, patch)
2023-09-22 02:34 UTC, Valter Nazianzeno
no flags Details | Diff
lang/emilua: Lua execution engine with support for async IO and flexible threading layout (10.51 KB, patch)
2023-09-22 04:31 UTC, Valter Nazianzeno
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Valter Nazianzeno 2023-09-18 07:42:09 UTC
Created attachment 244989 [details]
[patch] lang/emilua

QA:
- portlint -AC: ok (yes, I really need a specific version of GCC)
- portclippy:   ok
Comment 1 Mina Galić freebsd_triage 2023-09-18 07:45:07 UTC
which platforms have you tested `poudriere testport` on
Comment 2 Valter Nazianzeno 2023-09-18 07:55:19 UTC
(In reply to Mina Galić from comment #1)
Sorry, I couldn't test it with poudriere.
I tested only on my x86-64 machine and on my Raspiberry PI, both using FreeBSD 13.2.
Comment 3 Robert Clausecker freebsd_committer freebsd_triage 2023-09-19 05:07:33 UTC
Thank you for your submission.

Please check the following items on your patch:

 - The indentation is a bit wonky.  You can use portfmt to auto-indent a port
   Makefile
 - Do the git hashes for the github dependencies correspond to tagged versions?
   If yes, it would be great if you could replace them with the tag names.
 - you should be able to use the /... syntax in GH_TUPLE to automatically have
   the dependencies moved into the right places, e.g.

       breese:trial.protocol:79149f6:trial_protocol/subprojects/trial-protocol

 - do not use REINPLACE_CMD for static replacements.  Instead, supply patch
   files.  You can use "make makepatch" to have them automatically generated,
   if you left copies of the originals with a .orig suffix.

 - Please expand pkg-descr to at least 3 lines.  Perhaps say a bit more about
   the project and what makes it interesting!

 - check if devel/cmake-core suffices for getting cmake.  This removes the need
   to build the entire cmake documentation as a dependency.

A build test on arm64 FreeBSD 13.2 fails as the luajit binary is for some reason a dead link.  Not sure what the problem is.  Maybe a bug in luajit-openresty's port?

Please check these issues and resubmit if appropriate.
Comment 4 Robert Clausecker freebsd_committer freebsd_triage 2023-09-22 01:31:47 UTC
Please check if you can address the other issues I raised, too.  I can commit a fix for bug #273986 when committing this port, but only if you produce a workable patch.
Comment 5 Valter Nazianzeno 2023-09-22 01:38:41 UTC
Comment on attachment 244989 [details]
[patch] lang/emilua

From 89de8a82b89fd3131b4f82987ab4786e8949cbc8 Mon Sep 17 00:00:00 2001
From: Valter Nazianzeno <manipuladordedados@gmail.com>
Date: Thu, 21 Sep 2023 20:45:09 -0300
Subject: [PATCH] [NEW PORT]  lang/emilua: Lua execution engine with support for
 async IO and flexible threading layout

---
 lang/emilua/Makefile                         |  54 ++++++
 lang/emilua/distinfo                         |   7 +
 lang/emilua/emilua/Makefile                  |  54 ++++++
 lang/emilua/emilua/distinfo                  |   7 +
 lang/emilua/emilua/files/patch-meson.build   |  10 ++
 lang/emilua/emilua/files/patch-src_mutex.cpp |  10 ++
 lang/emilua/emilua/pkg-descr                 |   4 +
 lang/emilua/emilua/pkg-plist                 | 166 +++++++++++++++++++
 lang/emilua/files/patch-meson.build          |  10 ++
 lang/emilua/files/patch-src_mutex.cpp        |  10 ++
 lang/emilua/pkg-descr                        |   4 +
 lang/emilua/pkg-plist                        | 166 +++++++++++++++++++
 12 files changed, 502 insertions(+)
 create mode 100644 lang/emilua/Makefile
 create mode 100644 lang/emilua/distinfo
 create mode 100644 lang/emilua/emilua/Makefile
 create mode 100644 lang/emilua/emilua/distinfo
 create mode 100644 lang/emilua/emilua/files/patch-meson.build
 create mode 100644 lang/emilua/emilua/files/patch-src_mutex.cpp
 create mode 100644 lang/emilua/emilua/pkg-descr
 create mode 100644 lang/emilua/emilua/pkg-plist
 create mode 100644 lang/emilua/files/patch-meson.build
 create mode 100644 lang/emilua/files/patch-src_mutex.cpp
 create mode 100644 lang/emilua/pkg-descr
 create mode 100644 lang/emilua/pkg-plist

diff --git a/lang/emilua/Makefile b/lang/emilua/Makefile
new file mode 100644
index 000000000000..3e052d711d15
--- /dev/null
+++ b/lang/emilua/Makefile
@@ -0,0 +1,54 @@
+PORTNAME=	emilua
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.3
+CATEGORIES=	lang devel
+
+MAINTAINER=	manipuladordedados@gmail.com
+COMMENT=	Lua execution engine
+WWW=		https://emilua.org
+
+LICENSE=	BSL
+LICENSE_FILE=	${WRKSRC}/LICENSE_1_0.txt
+
+ONLY_FOR_ARCHS=	aarch64 amd64
+ONLY_FOR_ARCHS_REASON=	the software structures have not yet been ported
+
+BUILD_DEPENDS=	asciidoctor:textproc/rubygem-asciidoctor \
+		boost-libs>0:devel/boost-libs \
+		cmake:devel/cmake-core \
+		gawk:lang/gawk \
+		gperf:devel/gperf \
+		re2c:devel/re2c \
+		xxd:sysutils/xxd
+LIB_DEPENDS=	libfmt.so:devel/libfmt \
+		libserd-0.so:devel/serd \
+		libsord-0.so:devel/sord
+
+USES=		localbase luajit:luajit-openresty meson ncurses pathfix \
+		pkgconfig ssl
+USE_GCC=	12
+USE_GITHUB=	nodefault
+GH_TUPLE=	BoostGSoC14:boost.http:93ae527c89ffc517862e1f5f54c8a257278f1195:emilua_http/subprojects/emilua-http \
+		breese:trial.protocol:79149f6:trial_protocol/subprojects/trial-protocol
+USE_GITLAB=	yes
+
+MESON_ARGS=	--buildtype=plain \
+		--wrap-mode=nodownload \
+		-Db_pch=false \
+		-Denable_http=true \
+		-Denable_manpages=true \
+		-Denable_tests=true
+
+LDFLAGS+=	-static-libstdc++
+
+post-extract:
+	${CP} ${WRKSRC}/subprojects/packagefiles/emilua-http/meson.build \
+		${WRKSRC}/subprojects/emilua-http/
+	${CP} ${WRKSRC}/subprojects/packagefiles/trial.protocol/meson.build \
+		${WRKSRC}/subprojects/trial-protocol/
+
+post-install:
+	${MV} ${STAGEDIR}${PREFIX}/man/man3em/* \
+		${STAGEDIR}${PREFIX}/man/man3/
+
+.include <bsd.port.mk>
diff --git a/lang/emilua/distinfo b/lang/emilua/distinfo
new file mode 100644
index 000000000000..182313668fd7
--- /dev/null
+++ b/lang/emilua/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1694922832
+SHA256 (BoostGSoC14-boost.http-93ae527c89ffc517862e1f5f54c8a257278f1195_GH0.tar.gz) = 4e90417806c285348d968183072918e86d7fd7d7db5affb63ec03faee92ed8ed
+SIZE (BoostGSoC14-boost.http-93ae527c89ffc517862e1f5f54c8a257278f1195_GH0.tar.gz) = 237404
+SHA256 (breese-trial.protocol-79149f6_GH0.tar.gz) = ea82ba7736a2c6ae94e72587a454d3380517ed764df89e2297e6fac2acdeac03
+SIZE (breese-trial.protocol-79149f6_GH0.tar.gz) = 255698
+SHA256 (emilua-v0.4.3.tar.bz2) = 8e3ca114a3c71c985dfb8d84171a145bf245a679b5228dad27ce301ba899b15c
+SIZE (emilua-v0.4.3.tar.bz2) = 313696
diff --git a/lang/emilua/emilua/Makefile b/lang/emilua/emilua/Makefile
new file mode 100644
index 000000000000..3e052d711d15
--- /dev/null
+++ b/lang/emilua/emilua/Makefile
@@ -0,0 +1,54 @@
+PORTNAME=	emilua
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.4.3
+CATEGORIES=	lang devel
+
+MAINTAINER=	manipuladordedados@gmail.com
+COMMENT=	Lua execution engine
+WWW=		https://emilua.org
+
+LICENSE=	BSL
+LICENSE_FILE=	${WRKSRC}/LICENSE_1_0.txt
+
+ONLY_FOR_ARCHS=	aarch64 amd64
+ONLY_FOR_ARCHS_REASON=	the software structures have not yet been ported
+
+BUILD_DEPENDS=	asciidoctor:textproc/rubygem-asciidoctor \
+		boost-libs>0:devel/boost-libs \
+		cmake:devel/cmake-core \
+		gawk:lang/gawk \
+		gperf:devel/gperf \
+		re2c:devel/re2c \
+		xxd:sysutils/xxd
+LIB_DEPENDS=	libfmt.so:devel/libfmt \
+		libserd-0.so:devel/serd \
+		libsord-0.so:devel/sord
+
+USES=		localbase luajit:luajit-openresty meson ncurses pathfix \
+		pkgconfig ssl
+USE_GCC=	12
+USE_GITHUB=	nodefault
+GH_TUPLE=	BoostGSoC14:boost.http:93ae527c89ffc517862e1f5f54c8a257278f1195:emilua_http/subprojects/emilua-http \
+		breese:trial.protocol:79149f6:trial_protocol/subprojects/trial-protocol
+USE_GITLAB=	yes
+
+MESON_ARGS=	--buildtype=plain \
+		--wrap-mode=nodownload \
+		-Db_pch=false \
+		-Denable_http=true \
+		-Denable_manpages=true \
+		-Denable_tests=true
+
+LDFLAGS+=	-static-libstdc++
+
+post-extract:
+	${CP} ${WRKSRC}/subprojects/packagefiles/emilua-http/meson.build \
+		${WRKSRC}/subprojects/emilua-http/
+	${CP} ${WRKSRC}/subprojects/packagefiles/trial.protocol/meson.build \
+		${WRKSRC}/subprojects/trial-protocol/
+
+post-install:
+	${MV} ${STAGEDIR}${PREFIX}/man/man3em/* \
+		${STAGEDIR}${PREFIX}/man/man3/
+
+.include <bsd.port.mk>
diff --git a/lang/emilua/emilua/distinfo b/lang/emilua/emilua/distinfo
new file mode 100644
index 000000000000..182313668fd7
--- /dev/null
+++ b/lang/emilua/emilua/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1694922832
+SHA256 (BoostGSoC14-boost.http-93ae527c89ffc517862e1f5f54c8a257278f1195_GH0.tar.gz) = 4e90417806c285348d968183072918e86d7fd7d7db5affb63ec03faee92ed8ed
+SIZE (BoostGSoC14-boost.http-93ae527c89ffc517862e1f5f54c8a257278f1195_GH0.tar.gz) = 237404
+SHA256 (breese-trial.protocol-79149f6_GH0.tar.gz) = ea82ba7736a2c6ae94e72587a454d3380517ed764df89e2297e6fac2acdeac03
+SIZE (breese-trial.protocol-79149f6_GH0.tar.gz) = 255698
+SHA256 (emilua-v0.4.3.tar.bz2) = 8e3ca114a3c71c985dfb8d84171a145bf245a679b5228dad27ce301ba899b15c
+SIZE (emilua-v0.4.3.tar.bz2) = 313696
diff --git a/lang/emilua/emilua/files/patch-meson.build b/lang/emilua/emilua/files/patch-meson.build
new file mode 100644
index 000000000000..ff22d20b73bc
--- /dev/null
+++ b/lang/emilua/emilua/files/patch-meson.build
@@ -0,0 +1,10 @@
+--- meson.build.orig	2023-05-01 18:05:51 UTC
++++ meson.build
+@@ -31,7 +31,6 @@ luajit = dependency('luajit', version : '>=2.0.5')
+ boost = dependency(
+     'boost',
+     version : '>=1.80',
+-    modules : boost_modules,
+ )
+ fmt = dependency('fmt', version : '>=8.0')
+ serd = dependency('serd-0')
diff --git a/lang/emilua/emilua/files/patch-src_mutex.cpp b/lang/emilua/emilua/files/patch-src_mutex.cpp
new file mode 100644
index 000000000000..efcafa0015a9
--- /dev/null
+++ b/lang/emilua/emilua/files/patch-src_mutex.cpp
@@ -0,0 +1,10 @@
+--- src/mutex.cpp.orig	2023-05-01 18:05:51 UTC
++++ src/mutex.cpp
+@@ -4,6 +4,7 @@
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */
+ 
+ EMILUA_GPERF_DECLS_BEGIN(includes)
++#define FMT_HEADER_ONLY
+ #include <fmt/format.h>
+ 
+ #include <emilua/mutex.hpp>
diff --git a/lang/emilua/emilua/pkg-descr b/lang/emilua/emilua/pkg-descr
new file mode 100644
index 000000000000..fa5812a8dd14
--- /dev/null
+++ b/lang/emilua/emilua/pkg-descr
@@ -0,0 +1,4 @@
+Emilua strives to be the most complete execution engine for Lua.
+Whether you want single-VM concurrency support to exploit complex
+async IO interactions or multi-VM support to exploit possible parallelism
+your needs should be covered.
diff --git a/lang/emilua/emilua/pkg-plist b/lang/emilua/emilua/pkg-plist
new file mode 100644
index 000000000000..447a35ec025d
--- /dev/null
+++ b/lang/emilua/emilua/pkg-plist
@@ -0,0 +1,166 @@
+bin/emilua
+include/emilua/actor.hpp
+include/emilua/asio_error.hpp
+include/emilua/async_base.hpp
+include/emilua/byte_span.hpp
+include/emilua/condition_variable.hpp
+include/emilua/config.h
+include/emilua/core.hpp
+include/emilua/detail/core.hpp
+include/emilua/fiber.hpp
+include/emilua/file.hpp
+include/emilua/file_descriptor.hpp
+include/emilua/filesystem.hpp
+include/emilua/generic_error.hpp
+include/emilua/http.hpp
+include/emilua/ip.hpp
+include/emilua/json.hpp
+include/emilua/linux_namespaces.hpp
+include/emilua/lua_shim.hpp
+include/emilua/modules.re
+include/emilua/mutex.hpp
+include/emilua/pipe.hpp
+include/emilua/plugin.hpp
+include/emilua/regex.hpp
+include/emilua/scope_cleanup.hpp
+include/emilua/serial_port.hpp
+include/emilua/socket_base.hpp
+include/emilua/state.hpp
+include/emilua/stream.hpp
+include/emilua/system.hpp
+include/emilua/time.hpp
+include/emilua/tls.hpp
+include/emilua/unix.hpp
+include/emilua/websocket.hpp
+include/emilua/windows.hpp
+libdata/pkgconfig/emilua.pc
+libexec/emilua/emilua_gperf.awk
+man/man1/emilua.1.gz
+man/man3/asio_error.3em.gz
+man/man3/byte_span.3em.gz
+man/man3/condition_variable.3em.gz
+man/man3/file.open_flag.3em.gz
+man/man3/file.random_access.3em.gz
+man/man3/file.read_all_at.3em.gz
+man/man3/file.read_at_least_at.3em.gz
+man/man3/file.stream.3em.gz
+man/man3/file.write_all_at.3em.gz
+man/man3/file.write_at_least_at.3em.gz
+man/man3/file_descriptor.3em.gz
+man/man3/filesystem.absolute.3em.gz
+man/man3/filesystem.canonical.3em.gz
+man/man3/filesystem.cap_get_file.3em.gz
+man/man3/filesystem.cap_set_file.3em.gz
+man/man3/filesystem.chmod.3em.gz
+man/man3/filesystem.clock.3em.gz
+man/man3/filesystem.copy.3em.gz
+man/man3/filesystem.copy_file.3em.gz
+man/man3/filesystem.copy_symlink.3em.gz
+man/man3/filesystem.create_directory.3em.gz
+man/man3/filesystem.create_hard_link.3em.gz
+man/man3/filesystem.create_symlink.3em.gz
+man/man3/filesystem.current_working_directory.3em.gz
+man/man3/filesystem.directory_entry.3em.gz
+man/man3/filesystem.directory_iterator.3em.gz
+man/man3/filesystem.equivalent.3em.gz
+man/man3/filesystem.file_size.3em.gz
+man/man3/filesystem.hard_link_count.3em.gz
+man/man3/filesystem.is_empty.3em.gz
+man/man3/filesystem.last_write_time.3em.gz
+man/man3/filesystem.path.3em.gz
+man/man3/filesystem.proximate.3em.gz
+man/man3/filesystem.read_symlink.3em.gz
+man/man3/filesystem.recursive_directory_iterator.3em.gz
+man/man3/filesystem.relative.3em.gz
+man/man3/filesystem.remove.3em.gz
+man/man3/filesystem.rename.3em.gz
+man/man3/filesystem.resize_file.3em.gz
+man/man3/filesystem.space.3em.gz
+man/man3/filesystem.status.3em.gz
+man/man3/filesystem.temp_directory_path.3em.gz
+man/man3/filesystem.umask.3em.gz
+man/man3/filesystem.weakly_canonical.3em.gz
+man/man3/generic_error.3em.gz
+man/man3/http.headers.3em.gz
+man/man3/http.request.3em.gz
+man/man3/http.response.3em.gz
+man/man3/http.socket.3em.gz
+man/man3/ip.address.3em.gz
+man/man3/ip.address_info_flag.3em.gz
+man/man3/ip.connect.3em.gz
+man/man3/ip.get_address_info.3em.gz
+man/man3/ip.get_name_info.3em.gz
+man/man3/ip.host_name.3em.gz
+man/man3/ip.message_flag.3em.gz
+man/man3/ip.tcp.acceptor.3em.gz
+man/man3/ip.tcp.socket.3em.gz
+man/man3/ip.toendpoint.3em.gz
+man/man3/ip.tostring.3em.gz
+man/man3/ip.udp.socket.3em.gz
+man/man3/json.3em.gz
+man/man3/json.writer.3em.gz
+man/man3/mutex.3em.gz
+man/man3/pipe.pair.3em.gz
+man/man3/pipe.read_stream.3em.gz
+man/man3/pipe.write_stream.3em.gz
+man/man3/regex.3em.gz
+man/man3/serial_port.3em.gz
+man/man3/stream.read_all.3em.gz
+man/man3/stream.read_at_least.3em.gz
+man/man3/stream.scanner.3em.gz
+man/man3/stream.write_all.3em.gz
+man/man3/stream.write_at_least.3em.gz
+man/man3/system.arguments.3em.gz
+man/man3/system.environment.3em.gz
+man/man3/system.err.3em.gz
+man/man3/system.exit.3em.gz
+man/man3/system.getgroups.3em.gz
+man/man3/system.getpgid.3em.gz
+man/man3/system.getpgrp.3em.gz
+man/man3/system.getpid.3em.gz
+man/man3/system.getppid.3em.gz
+man/man3/system.getresgid.3em.gz
+man/man3/system.getresuid.3em.gz
+man/man3/system.getsid.3em.gz
+man/man3/system.in_.3em.gz
+man/man3/system.kill.3em.gz
+man/man3/system.linux_capabilities.3em.gz
+man/man3/system.out.3em.gz
+man/man3/system.setgroups.3em.gz
+man/man3/system.setpgid.3em.gz
+man/man3/system.setresgid.3em.gz
+man/man3/system.setresuid.3em.gz
+man/man3/system.setsid.3em.gz
+man/man3/system.signal.3em.gz
+man/man3/system.signal.default.3em.gz
+man/man3/system.signal.ignore.3em.gz
+man/man3/system.signal.raise.3em.gz
+man/man3/system.signal.set.3em.gz
+man/man3/system.spawn.3em.gz
+man/man3/time.high_resolution_clock.3em.gz
+man/man3/time.sleep.3em.gz
+man/man3/time.steady_clock.3em.gz
+man/man3/time.steady_timer.3em.gz
+man/man3/time.system_clock.3em.gz
+man/man3/time.system_timer.3em.gz
+man/man3/tls.context.3em.gz
+man/man3/tls.context_flag.3em.gz
+man/man3/tls.socket.3em.gz
+man/man3/unix.datagram_socket.3em.gz
+man/man3/unix.message_flag.3em.gz
+man/man3/unix.seqpacket_acceptor.3em.gz
+man/man3/unix.seqpacket_socket.3em.gz
+man/man3/unix.stream_acceptor.3em.gz
+man/man3/unix.stream_socket.3em.gz
+man/man3/websocket.3em.gz
+man/man7/emilua-actor.7.gz
+man/man7/emilua-alternatives.7.gz
+man/man7/emilua-errors.7.gz
+man/man7/emilua-fiber.7.gz
+man/man7/emilua-getting-started.7.gz
+man/man7/emilua-internals.7.gz
+man/man7/emilua-interruption.7.gz
+man/man7/emilua-linux_namespaces.7.gz
+man/man7/emilua-lua51.7.gz
+man/man7/emilua-modules.7.gz
+man/man7/emilua-streams.7.gz
diff --git a/lang/emilua/files/patch-meson.build b/lang/emilua/files/patch-meson.build
new file mode 100644
index 000000000000..ff22d20b73bc
--- /dev/null
+++ b/lang/emilua/files/patch-meson.build
@@ -0,0 +1,10 @@
+--- meson.build.orig	2023-05-01 18:05:51 UTC
++++ meson.build
+@@ -31,7 +31,6 @@ luajit = dependency('luajit', version : '>=2.0.5')
+ boost = dependency(
+     'boost',
+     version : '>=1.80',
+-    modules : boost_modules,
+ )
+ fmt = dependency('fmt', version : '>=8.0')
+ serd = dependency('serd-0')
diff --git a/lang/emilua/files/patch-src_mutex.cpp b/lang/emilua/files/patch-src_mutex.cpp
new file mode 100644
index 000000000000..efcafa0015a9
--- /dev/null
+++ b/lang/emilua/files/patch-src_mutex.cpp
@@ -0,0 +1,10 @@
+--- src/mutex.cpp.orig	2023-05-01 18:05:51 UTC
++++ src/mutex.cpp
+@@ -4,6 +4,7 @@
+    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */
+ 
+ EMILUA_GPERF_DECLS_BEGIN(includes)
++#define FMT_HEADER_ONLY
+ #include <fmt/format.h>
+ 
+ #include <emilua/mutex.hpp>
diff --git a/lang/emilua/pkg-descr b/lang/emilua/pkg-descr
new file mode 100644
index 000000000000..fa5812a8dd14
--- /dev/null
+++ b/lang/emilua/pkg-descr
@@ -0,0 +1,4 @@
+Emilua strives to be the most complete execution engine for Lua.
+Whether you want single-VM concurrency support to exploit complex
+async IO interactions or multi-VM support to exploit possible parallelism
+your needs should be covered.
diff --git a/lang/emilua/pkg-plist b/lang/emilua/pkg-plist
new file mode 100644
index 000000000000..447a35ec025d
--- /dev/null
+++ b/lang/emilua/pkg-plist
@@ -0,0 +1,166 @@
+bin/emilua
+include/emilua/actor.hpp
+include/emilua/asio_error.hpp
+include/emilua/async_base.hpp
+include/emilua/byte_span.hpp
+include/emilua/condition_variable.hpp
+include/emilua/config.h
+include/emilua/core.hpp
+include/emilua/detail/core.hpp
+include/emilua/fiber.hpp
+include/emilua/file.hpp
+include/emilua/file_descriptor.hpp
+include/emilua/filesystem.hpp
+include/emilua/generic_error.hpp
+include/emilua/http.hpp
+include/emilua/ip.hpp
+include/emilua/json.hpp
+include/emilua/linux_namespaces.hpp
+include/emilua/lua_shim.hpp
+include/emilua/modules.re
+include/emilua/mutex.hpp
+include/emilua/pipe.hpp
+include/emilua/plugin.hpp
+include/emilua/regex.hpp
+include/emilua/scope_cleanup.hpp
+include/emilua/serial_port.hpp
+include/emilua/socket_base.hpp
+include/emilua/state.hpp
+include/emilua/stream.hpp
+include/emilua/system.hpp
+include/emilua/time.hpp
+include/emilua/tls.hpp
+include/emilua/unix.hpp
+include/emilua/websocket.hpp
+include/emilua/windows.hpp
+libdata/pkgconfig/emilua.pc
+libexec/emilua/emilua_gperf.awk
+man/man1/emilua.1.gz
+man/man3/asio_error.3em.gz
+man/man3/byte_span.3em.gz
+man/man3/condition_variable.3em.gz
+man/man3/file.open_flag.3em.gz
+man/man3/file.random_access.3em.gz
+man/man3/file.read_all_at.3em.gz
+man/man3/file.read_at_least_at.3em.gz
+man/man3/file.stream.3em.gz
+man/man3/file.write_all_at.3em.gz
+man/man3/file.write_at_least_at.3em.gz
+man/man3/file_descriptor.3em.gz
+man/man3/filesystem.absolute.3em.gz
+man/man3/filesystem.canonical.3em.gz
+man/man3/filesystem.cap_get_file.3em.gz
+man/man3/filesystem.cap_set_file.3em.gz
+man/man3/filesystem.chmod.3em.gz
+man/man3/filesystem.clock.3em.gz
+man/man3/filesystem.copy.3em.gz
+man/man3/filesystem.copy_file.3em.gz
+man/man3/filesystem.copy_symlink.3em.gz
+man/man3/filesystem.create_directory.3em.gz
+man/man3/filesystem.create_hard_link.3em.gz
+man/man3/filesystem.create_symlink.3em.gz
+man/man3/filesystem.current_working_directory.3em.gz
+man/man3/filesystem.directory_entry.3em.gz
+man/man3/filesystem.directory_iterator.3em.gz
+man/man3/filesystem.equivalent.3em.gz
+man/man3/filesystem.file_size.3em.gz
+man/man3/filesystem.hard_link_count.3em.gz
+man/man3/filesystem.is_empty.3em.gz
+man/man3/filesystem.last_write_time.3em.gz
+man/man3/filesystem.path.3em.gz
+man/man3/filesystem.proximate.3em.gz
+man/man3/filesystem.read_symlink.3em.gz
+man/man3/filesystem.recursive_directory_iterator.3em.gz
+man/man3/filesystem.relative.3em.gz
+man/man3/filesystem.remove.3em.gz
+man/man3/filesystem.rename.3em.gz
+man/man3/filesystem.resize_file.3em.gz
+man/man3/filesystem.space.3em.gz
+man/man3/filesystem.status.3em.gz
+man/man3/filesystem.temp_directory_path.3em.gz
+man/man3/filesystem.umask.3em.gz
+man/man3/filesystem.weakly_canonical.3em.gz
+man/man3/generic_error.3em.gz
+man/man3/http.headers.3em.gz
+man/man3/http.request.3em.gz
+man/man3/http.response.3em.gz
+man/man3/http.socket.3em.gz
+man/man3/ip.address.3em.gz
+man/man3/ip.address_info_flag.3em.gz
+man/man3/ip.connect.3em.gz
+man/man3/ip.get_address_info.3em.gz
+man/man3/ip.get_name_info.3em.gz
+man/man3/ip.host_name.3em.gz
+man/man3/ip.message_flag.3em.gz
+man/man3/ip.tcp.acceptor.3em.gz
+man/man3/ip.tcp.socket.3em.gz
+man/man3/ip.toendpoint.3em.gz
+man/man3/ip.tostring.3em.gz
+man/man3/ip.udp.socket.3em.gz
+man/man3/json.3em.gz
+man/man3/json.writer.3em.gz
+man/man3/mutex.3em.gz
+man/man3/pipe.pair.3em.gz
+man/man3/pipe.read_stream.3em.gz
+man/man3/pipe.write_stream.3em.gz
+man/man3/regex.3em.gz
+man/man3/serial_port.3em.gz
+man/man3/stream.read_all.3em.gz
+man/man3/stream.read_at_least.3em.gz
+man/man3/stream.scanner.3em.gz
+man/man3/stream.write_all.3em.gz
+man/man3/stream.write_at_least.3em.gz
+man/man3/system.arguments.3em.gz
+man/man3/system.environment.3em.gz
+man/man3/system.err.3em.gz
+man/man3/system.exit.3em.gz
+man/man3/system.getgroups.3em.gz
+man/man3/system.getpgid.3em.gz
+man/man3/system.getpgrp.3em.gz
+man/man3/system.getpid.3em.gz
+man/man3/system.getppid.3em.gz
+man/man3/system.getresgid.3em.gz
+man/man3/system.getresuid.3em.gz
+man/man3/system.getsid.3em.gz
+man/man3/system.in_.3em.gz
+man/man3/system.kill.3em.gz
+man/man3/system.linux_capabilities.3em.gz
+man/man3/system.out.3em.gz
+man/man3/system.setgroups.3em.gz
+man/man3/system.setpgid.3em.gz
+man/man3/system.setresgid.3em.gz
+man/man3/system.setresuid.3em.gz
+man/man3/system.setsid.3em.gz
+man/man3/system.signal.3em.gz
+man/man3/system.signal.default.3em.gz
+man/man3/system.signal.ignore.3em.gz
+man/man3/system.signal.raise.3em.gz
+man/man3/system.signal.set.3em.gz
+man/man3/system.spawn.3em.gz
+man/man3/time.high_resolution_clock.3em.gz
+man/man3/time.sleep.3em.gz
+man/man3/time.steady_clock.3em.gz
+man/man3/time.steady_timer.3em.gz
+man/man3/time.system_clock.3em.gz
+man/man3/time.system_timer.3em.gz
+man/man3/tls.context.3em.gz
+man/man3/tls.context_flag.3em.gz
+man/man3/tls.socket.3em.gz
+man/man3/unix.datagram_socket.3em.gz
+man/man3/unix.message_flag.3em.gz
+man/man3/unix.seqpacket_acceptor.3em.gz
+man/man3/unix.seqpacket_socket.3em.gz
+man/man3/unix.stream_acceptor.3em.gz
+man/man3/unix.stream_socket.3em.gz
+man/man3/websocket.3em.gz
+man/man7/emilua-actor.7.gz
+man/man7/emilua-alternatives.7.gz
+man/man7/emilua-errors.7.gz
+man/man7/emilua-fiber.7.gz
+man/man7/emilua-getting-started.7.gz
+man/man7/emilua-internals.7.gz
+man/man7/emilua-interruption.7.gz
+man/man7/emilua-linux_namespaces.7.gz
+man/man7/emilua-lua51.7.gz
+man/man7/emilua-modules.7.gz
+man/man7/emilua-streams.7.gz
-- 
2.42.0
Comment 6 Valter Nazianzeno 2023-09-22 01:39:06 UTC
(In reply to Robert Clausecker from comment #4)
Oh sorry.
My changes are ready but I thought I couldn't send them yet until the luajit-openresty bug was fixed.
Thank you for the tips.
Comment 7 Valter Nazianzeno 2023-09-22 01:42:34 UTC
Created attachment 245103 [details]
lang/emilua: Lua execution engine with support for async IO and flexible threading layout
Comment 8 Valter Nazianzeno 2023-09-22 01:44:22 UTC
I made a mistake when using the interface and ended up posting the patch as a comment there, I'm sorry about that.
Comment 9 Robert Clausecker freebsd_committer freebsd_triage 2023-09-22 01:58:48 UTC
(In reply to Valter Nazianzeno from comment #8)

Please check your patch.  It seems to contain emilua twice, once in lang/emilua and once in lang/emilua/emilua.

Also, could you check the issue with the git commit hashes vs tags?
Comment 10 Valter Nazianzeno 2023-09-22 02:34:52 UTC
Created attachment 245104 [details]
lang/emilua: Lua execution engine with support for async IO and flexible threading layout
Comment 11 Valter Nazianzeno 2023-09-22 02:35:29 UTC
(In reply to Robert Clausecker from comment #9)
Sorry for the confusion on the patch.
About the tags/commits.
My dependencies use specific commits, that's why I'm using them, they don't have any specific tags.
Comment 12 Robert Clausecker freebsd_committer freebsd_triage 2023-09-22 03:01:12 UTC
Build fails on arm64 amd64 FreeBSD 12.4 and 13.2:

Program bash ksh found: NO

meson.build:192:16: ERROR: Program 'bash ksh' not found or not executable

A full log can be found at /wrkdirs/usr/ports/lang/emilua/work/emilua-v0.4.3/_build/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
===>  Script "configure" failed unexpectedly.

Note that we do not have bash in the default install on FreeBSD.  Either check if /bin/sh does the trick, or add a BUILD_DEPENDS on bash or ksh.
Comment 13 Valter Nazianzeno 2023-09-22 04:31:59 UTC
Created attachment 245105 [details]
lang/emilua: Lua execution engine with support for async IO and flexible threading layout

Turns out that tcsh works fine with the current version.
Thanks!
Comment 14 commit-hook freebsd_committer freebsd_triage 2023-09-22 05:08:53 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=cc75996f708359e0b29da6d329e2645812e9895f

commit cc75996f708359e0b29da6d329e2645812e9895f
Author:     Valter Nazianzeno <manipuladordedados@gmail.com>
AuthorDate: 2023-09-22 04:29:38 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-09-22 04:56:49 +0000

    lang/emilua: Lua execution engine with support for async IO and flexible threading layout

    Emilua strives to be the most complete execution engine for Lua.
    Whether you want single-VM concurrency support to exploit complex
    async IO interactions or multi-VM support to exploit possible parallelism
    your needs should be covered.

    WWW: https://emilua.org

    PR:             273922

 lang/Makefile                               |   1 +
 lang/emilua/Makefile (new)                  |  55 +++++++++
 lang/emilua/distinfo (new)                  |   7 ++
 lang/emilua/files/patch-meson.build (new)   |  19 ++++
 lang/emilua/files/patch-src_mutex.cpp (new) |  10 ++
 lang/emilua/pkg-descr (new)                 |   4 +
 lang/emilua/pkg-plist (new)                 | 166 ++++++++++++++++++++++++++++
 7 files changed, 262 insertions(+)
Comment 15 Robert Clausecker freebsd_committer freebsd_triage 2023-09-22 05:17:02 UTC
Thank you for your contribution.