Skip to content

Commit

Permalink
New port: math/teyjus: Higher-order logic programming language Lambda…
Browse files Browse the repository at this point in the history
… Prolog
  • Loading branch information
yurivict committed Dec 5, 2019
1 parent de5c915 commit 3e3c773
Show file tree
Hide file tree
Showing 7 changed files with 94 additions and 0 deletions.
1 change: 1 addition & 0 deletions math/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -868,6 +868,7 @@
SUBDIR += taucs
SUBDIR += tblis
SUBDIR += tetgen
SUBDIR += teyjus
SUBDIR += timbl
SUBDIR += tmv
SUBDIR += tomsfastmath
Expand Down
38 changes: 38 additions & 0 deletions math/teyjus/Makefile
Original file line number Diff line number Diff line change
@@ -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>
3 changes: 3 additions & 0 deletions math/teyjus/distinfo
Original file line number Diff line number Diff line change
@@ -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
13 changes: 13 additions & 0 deletions math/teyjus/files/patch-source_OMakefile
Original file line number Diff line number Diff line change
@@ -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
5 changes: 5 additions & 0 deletions math/teyjus/files/patch-source_compiler_OMakefile
Original file line number Diff line number Diff line change
@@ -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)
15 changes: 15 additions & 0 deletions math/teyjus/files/patch-source_include_standardlib.h
Original file line number Diff line number Diff line change
@@ -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
19 changes: 19 additions & 0 deletions math/teyjus/pkg-descr
Original file line number Diff line number Diff line change
@@ -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/

0 comments on commit 3e3c773

Please sign in to comment.