aboutsummaryrefslogtreecommitdiffstats
path: root/math
diff options
context:
space:
mode:
authoryuri <yuri@FreeBSD.org>2019-12-05 12:12:20 +0800
committeryuri <yuri@FreeBSD.org>2019-12-05 12:12:20 +0800
commit3e3c77378f3a0a82d6b56fb21b038569421c9aaf (patch)
tree5b0a53a7be5dbc39f065cb56176805dcb1900058 /math
parentde5c915efd25394ce35e5e91aaf60de9f099d37c (diff)
downloadfreebsd-ports-gnome-3e3c77378f3a0a82d6b56fb21b038569421c9aaf.tar.gz
freebsd-ports-gnome-3e3c77378f3a0a82d6b56fb21b038569421c9aaf.tar.zst
freebsd-ports-gnome-3e3c77378f3a0a82d6b56fb21b038569421c9aaf.zip
New port: math/teyjus: Higher-order logic programming language Lambda Prolog
Diffstat (limited to 'math')
-rw-r--r--math/Makefile1
-rw-r--r--math/teyjus/Makefile38
-rw-r--r--math/teyjus/distinfo3
-rw-r--r--math/teyjus/files/patch-source_OMakefile13
-rw-r--r--math/teyjus/files/patch-source_compiler_OMakefile5
-rw-r--r--math/teyjus/files/patch-source_include_standardlib.h15
-rw-r--r--math/teyjus/pkg-descr19
7 files changed, 94 insertions, 0 deletions
diff --git a/math/Makefile b/math/Makefile
index 896af95e8b12..971675d21c44 100644
--- a/math/Makefile
+++ b/math/Makefile
@@ -868,6 +868,7 @@
SUBDIR += taucs
SUBDIR += tblis
SUBDIR += tetgen
+ SUBDIR += teyjus
SUBDIR += timbl
SUBDIR += tmv
SUBDIR += tomsfastmath
diff --git a/math/teyjus/Makefile b/math/teyjus/Makefile
new file mode 100644
index 000000000000..3bf4124491f9
--- /dev/null
+++ b/math/teyjus/Makefile
@@ -0,0 +1,38 @@
+# $FreeBSD$
+
+PORTNAME= teyjus
+DISTVERSIONPREFIX= v
+DISTVERSION= 2.1-7
+DISTVERSIONSUFFIX= -ge63f40a
+CATEGORIES= math lang
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Higher-order logic programming language Lambda Prolog
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+BUILD_DEPENDS= ocamlopt:lang/ocaml \
+ omake:devel/omake \
+ bash:shells/bash
+
+USES= dos2unix shebangfix
+DOS2UNIX_FILES= source/OMakefile
+SHBANG_GLOB= run_test
+USE_GITHUB= yes
+
+EXES= tjcc tjdepend tjdis tjlink tjsim
+PLIST_FILES= ${EXES:S/^/bin\//}
+
+post-patch:
+ @${FIND} ${WRKSRC} -name run_test | ${XARGS} ${REINPLACE_CMD} 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|'
+
+do-build:
+ @cd ${WRKSRC} && omake
+
+do-install:
+.for e in ${EXES}
+ ${INSTALL_PROGRAM} ${WRKSRC}/source/${e}.opt ${STAGEDIR}${PREFIX}/bin/${e}
+.endfor
+
+.include <bsd.port.mk>
diff --git a/math/teyjus/distinfo b/math/teyjus/distinfo
new file mode 100644
index 000000000000..f1cc0a435d0c
--- /dev/null
+++ b/math/teyjus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1575264560
+SHA256 (teyjus-teyjus-v2.1-7-ge63f40a_GH0.tar.gz) = 6531808ad7dfe3527581defc1d8841881070274ef04fe3772e056a96a4dc3162
+SIZE (teyjus-teyjus-v2.1-7-ge63f40a_GH0.tar.gz) = 724248
diff --git a/math/teyjus/files/patch-source_OMakefile b/math/teyjus/files/patch-source_OMakefile
new file mode 100644
index 000000000000..1300236dd6d0
--- /dev/null
+++ b/math/teyjus/files/patch-source_OMakefile
@@ -0,0 +1,13 @@
+--- source/OMakefile.orig 2019-12-03 03:41:53 UTC
++++ source/OMakefile
+@@ -208,6 +208,10 @@ if $(mem $(SYSNAME), OpenBSD)
+ INC_C[] += $(INC)/search
+ export
+
++if $(mem $(SYSNAME), FreeBSD)
++ INC_C[] += $(INC)/search
++ export
++
+
+ ############################################################
+ # Generated Files
diff --git a/math/teyjus/files/patch-source_compiler_OMakefile b/math/teyjus/files/patch-source_compiler_OMakefile
new file mode 100644
index 000000000000..4cc4b76e3c38
--- /dev/null
+++ b/math/teyjus/files/patch-source_compiler_OMakefile
@@ -0,0 +1,5 @@
+--- source/compiler/OMakefile.orig 2019-12-03 04:31:49 UTC
++++ source/compiler/OMakefile
+@@ -1 +1,2 @@
++NATIVE_ENABLED = true
+ OCamlGeneratedFiles(lplex.ml lpyacc.ml)
diff --git a/math/teyjus/files/patch-source_include_standardlib.h b/math/teyjus/files/patch-source_include_standardlib.h
new file mode 100644
index 000000000000..8444db56d8e6
--- /dev/null
+++ b/math/teyjus/files/patch-source_include_standardlib.h
@@ -0,0 +1,15 @@
+--- source/include/standardlib.h.orig 2019-12-02 05:46:28 UTC
++++ source/include/standardlib.h
+@@ -79,9 +79,9 @@ typedef unsigned __int64 u_int64_t;
+ # include <unistd.h>
+ # include <sys/endian.h>
+ // Use the functions from byteorder(3)
+-# define bswap_16(x) swap16(x)
+-# define bswap_32(x) swap32(x)
+-# define bswap_64(x) swap64(x)
++# define bswap_16(x) bswap16(x)
++# define bswap_32(x) bswap32(x)
++# define bswap_64(x) bswap64(x)
+ // __WORDSIZE is non-standard and should be inferred otherhow
+ # if defined(__x86_64__) || defined(__amd64__) || defined(__LP64__)
+ # define __WORDSIZE 64
diff --git a/math/teyjus/pkg-descr b/math/teyjus/pkg-descr
new file mode 100644
index 000000000000..65d25533561f
--- /dev/null
+++ b/math/teyjus/pkg-descr
@@ -0,0 +1,19 @@
+The Teyjus system is an efficient implementation of the higher-order logic
+programming language Lambda Prolog. The main strength of Lambda Prolog, a
+language developed by Dale Miller and Gopalan Nadathur, is the support it offers
+for what is known as lambda tree syntax, a new and effective way to view the
+structure of complex syntactic objects such as types, formulas, proofs and
+programs. Lambda Prolog provides this support by using lambda terms as data
+representation devices and by including primitives for probing such terms in
+logically meaningful ways. The new features present in the language raise
+several implementation challenges that have been addressed in collaborative work
+between Nadathur and his students and colleagues. The name "Teyjus" actually
+stands both for a project and for a class of compiler and virtual machine based
+realizations of Lambda Prolog arising from the research carried out within this
+project. Underlying the most recent version of the Teyjus system is a new and
+significantly improved virtual machine that has been designed by Xiaochu Qi as
+part of her doctoral dissertation work at the University of Minnesota. This
+virtual machine extensively exploits a special form of higher-order unification
+known as pattern unification.
+
+WWW: http://teyjus.cs.umn.edu/