git: 3c6713efe52c - main - lang/trealla-prolog: New port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 22 Apr 2025 07:03:09 UTC
The branch main has been updated by wen:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3c6713efe52c1fef3dbcae1044b4f1b7369f7700
commit 3c6713efe52c1fef3dbcae1044b4f1b7369f7700
Author: Siva Mahadevan <me@svmhdvn.name>
AuthorDate: 2025-04-22 06:36:14 +0000
Commit: Wen Heping <wen@FreeBSD.org>
CommitDate: 2025-04-22 06:38:49 +0000
lang/trealla-prolog: New port
A compact, efficient Prolog interpreter with ISO Prolog aspirations.
MIT licensed
Integers & Rationals are unbounded
Atoms are UTF-8 of unlimited length
The default double-quoted representation is *chars* list
Strings & slices are super-efficient (especially with mmap'd files)
REPL with history
Runs on Linux, Android, FreeBSD, macOS, and WebAssembly (WASI) & Go
API for calling from C (or by using WASM from Go & JS)
Foreign function interface (FFI) for calling out to user code
Access SQLITE databases using builtin module (uses FFI)
Concurrency via tasks / linda / futures / engines (generators)
Pre-emptive multi-threading
Blackboarding primitives
...
FFIs for GNU Scientific Library (GSL), SQLite, Raylib
Delimited continuations ##EXPERIMENTAL##
Rational trees ##EXPERIMENTAL##
CLP(Z) ##EXPERIMENTAL##
PR: 286272
Reported by: Siva Mahadevan <me@svmhdvn.name>
---
lang/Makefile | 1 +
lang/trealla-prolog/Makefile | 46 +++++++++++++++++++++++++++++++++++++++++++
lang/trealla-prolog/distinfo | 3 +++
lang/trealla-prolog/pkg-descr | 20 +++++++++++++++++++
4 files changed, 70 insertions(+)
diff --git a/lang/Makefile b/lang/Makefile
index b8624503e1ed..b47244907bdd 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -384,6 +384,7 @@
SUBDIR += tclX
SUBDIR += tolua
SUBDIR += tolua++
+ SUBDIR += trealla-prolog
SUBDIR += tuareg-mode.el
SUBDIR += typstfmt
SUBDIR += typstyle
diff --git a/lang/trealla-prolog/Makefile b/lang/trealla-prolog/Makefile
new file mode 100644
index 000000000000..e15215286902
--- /dev/null
+++ b/lang/trealla-prolog/Makefile
@@ -0,0 +1,46 @@
+PORTNAME= trealla-prolog
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.68.20
+CATEGORIES= lang
+
+MAINTAINER= me@svmhdvn.name
+COMMENT= Compact, efficient Prolog interpreter written in plain-old C
+WWW= https://github.com/trealla-prolog/trealla/
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= gmake
+
+BUILD_DEPENDS= xxd:sysutils/xxd
+
+PLIST_FILES= bin/tpl
+
+TEST_TARGET= test
+
+OPTIONS_DEFINE= FFI READLINE SSL THREADS
+OPTIONS_DEFAULT= FFI READLINE SSL THREADS
+
+FFI_DESC= FFI support
+READLINE_DESC= GNU readline support
+SSL_DESC= SSL support
+THREADS_DESC= Preemptive multithreading support
+
+FFI_LIB_DEPENDS= libffi.so:devel/libffi
+FFI_MAKE_ARGS_OFF= NOFFI=1
+
+READLINE_USES= readline
+READLINE_MAKE_ARGS_OFF= ISOCLINE=1
+
+SSL_USES= ssl
+SSL_MAKE_ARGS_OFF= NOSSL=1
+
+THREADS_MAKE_ARGS_OFF= NOTHREADS=1
+
+USE_GITHUB= yes
+GH_PROJECT= trealla
+
+do-install:
+ ${INSTALL_PROGRAM} ${WRKSRC}/tpl ${STAGEDIR}${PREFIX}/bin/
+
+.include <bsd.port.mk>
diff --git a/lang/trealla-prolog/distinfo b/lang/trealla-prolog/distinfo
new file mode 100644
index 000000000000..fe35666e5665
--- /dev/null
+++ b/lang/trealla-prolog/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1745272025
+SHA256 (trealla-prolog-trealla-v2.68.20_GH0.tar.gz) = 2fb4d08e02e75622c78e8f4a5edf5d7a76856b6f3e4c87db37c1b0c040db944a
+SIZE (trealla-prolog-trealla-v2.68.20_GH0.tar.gz) = 610669
diff --git a/lang/trealla-prolog/pkg-descr b/lang/trealla-prolog/pkg-descr
new file mode 100644
index 000000000000..5552f8e154ae
--- /dev/null
+++ b/lang/trealla-prolog/pkg-descr
@@ -0,0 +1,20 @@
+A compact, efficient Prolog interpreter with ISO Prolog aspirations.
+
+MIT licensed
+Integers & Rationals are unbounded
+Atoms are UTF-8 of unlimited length
+The default double-quoted representation is *chars* list
+Strings & slices are super-efficient (especially with mmap'd files)
+REPL with history
+Runs on Linux, Android, FreeBSD, macOS, and WebAssembly (WASI) & Go
+API for calling from C (or by using WASM from Go & JS)
+Foreign function interface (FFI) for calling out to user code
+Access SQLITE databases using builtin module (uses FFI)
+Concurrency via tasks / linda / futures / engines (generators)
+Pre-emptive multi-threading
+Blackboarding primitives
+...
+FFIs for GNU Scientific Library (GSL), SQLite, Raylib
+Delimited continuations ##EXPERIMENTAL##
+Rational trees ##EXPERIMENTAL##
+CLP(Z) ##EXPERIMENTAL##