diff options
Diffstat (limited to 'dev-lang/teyjus')
5 files changed, 236 insertions, 0 deletions
diff --git a/dev-lang/teyjus/Manifest b/dev-lang/teyjus/Manifest index ee19c61e4f5c..12264ebd5914 100644 --- a/dev-lang/teyjus/Manifest +++ b/dev-lang/teyjus/Manifest @@ -2,7 +2,11 @@ AUX 50teyjus-gentoo.el 74 BLAKE2B 877ca25928f4a497102a516f3495691cab2ac7421a22f9 AUX teyjus-2.1-p001-Fixes-arity-for-pervasive-modulo-operation.patch 1144 BLAKE2B 1ed38015d73e575950a06cbb343f5cc3ed93f0e1da739c73189da3200cfcb59b72846c7c9e02f8328d968ef0c0b68b2d75422dbec4b0857ace80248b01784bc1 SHA512 ebe80c760007f68b14b87ee178cf0c031cd851e3c9d935a87469fe20f28048ded42a6898441bdd0fa730d2d8edb2d8b6122535ef167bf57180397d6638f354f1 AUX teyjus-2.1-p002-Add-string-literals-from-proper-character-groups.patch 2083 BLAKE2B 4480c4cc607988fe4b55e5d0405298d37ca3f7364a694b750dd2a544a5cee71d27f84745a5559b33ed67ec215b389b349e9a73fa3d65ce6f69e949b6bc19e205 SHA512 9bca80da36bcb300fca23553205e1ce459e7b52e6d2b3a8b27e9e330413cd8b49ca928bd92d47fe16546854f945d05e2280143ff75cc45aa93d7850c2da8a916 AUX teyjus-2.1-p003-Removing-deprecated-function-String.set.patch 1599 BLAKE2B e264e64eda3b877e1042fbef4173d4483697fab19e33ceb51176c65a57df651cc0566df486ab551cc50cbf43a47bf60cdfdbd72cc42a2156b195b4f711c06fc3 SHA512 627dd8328a33fa3489ba3da59b4e8c43202b327c27ddecbef2beeddaeecff9f749522d7d9e3e105781b1e60cd633a87aedff39a7e6aa0ec8e1f76556e58ff1f3 +AUX teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch 2446 BLAKE2B 77312490290aef66a2f01fdfa03e3da45d212841f7aec60661bd826af09a0d5f20807b90368bde0022b19e7082e73757aeeced7d69b0fbba7e1c7bb60646e214 SHA512 510c6ad6bfeba2a0000dbadd291a416fc4316d0a970a2f820924e09b044ea3e1a98f1b32803ff93c62160ca18e8a2d301412f64e2830bcbbeb25437e183fda31 +AUX teyjus-2.1-p005-Unbundle-ocaml-header-files.patch 1366 BLAKE2B 73d9f8c81c04e2e6557bf1d49919fe7af5552129546f7b1580e18fde23b3f4d1a11ba135b2e0025c9f6714f9f87df7b7dde7a4e8f1ce692e5d31171c710a6046 SHA512 d1f8f9dd7c707d53548a16ecceaf12623cf80a7ae325a0da53eae230aae63898629b11e96158b469f8b183b5e2125da496f37e623019552a13e422a1d0676397 +AUX teyjus-2.1-p006-Version.patch 444 BLAKE2B 85bbfc958760a5d738897be6d6fbe4e16cadd1d7ad64093a4b496b43b761a6ea814be9ae184ae30ad081fe1a90ebb61f1cdf9032fea38350d6c2e06764725f04 SHA512 eb5e281e76e8d235fcc325ef4a451f0bbe29f1fafd59fdd833b8da64cb9a1c15cbfd0ffddd61d4118e76f8b3ebcd3118bd5c0a3a886f81fc04a2ec09fdb764cd DIST teyjus-2.1.tar.gz 723763 BLAKE2B ab6a98c2d2291620b586ab0b419a214b0f7c0b27aad444324e5a417c1a0b27382e2d5c622f798ea88cab77853bca3305ec37904c50a7304ace20237afb993b91 SHA512 1f71d19502f4f4da00f635d2c3d4e141403182d65f039e0d43660edf84c5fcd900e7225ac92dc5bdbe0c8379c4e2ce6e27879af504fcfafddf2695a0c8a13379 EBUILD teyjus-2.1-r1.ebuild 2940 BLAKE2B 25186b27d4c2d69f4e6bc9cfc5e49edc43110b75664270eb7d459c5cc85587d85a4f29255a1f7a3df771beedc3f6fc1b988ccbfeea437fabe071610a7b2edc99 SHA512 8af839bedc5049f1ac4b4128425ea1f71abeb3b38d9c3739b46ce7bc0466ce4e1df64dac0923cbd4f7017dc48eb9746ace712ca7ac32bd880a5aa7a3b70acd42 +EBUILD teyjus-2.1-r2.ebuild 3136 BLAKE2B 64dc82f30ca272ea406c29c5ec9ae1b183a9677fac6f3b21bcca4baa861bd9d531a8951f3b2d057f0e281bad91f8294fa037b74860cb8ddaef28768cfbd013f0 SHA512 f58d484a72ebe0434b36f5a1bb82737cabd0003319b0c6cdc5d32086417582a59f3c3eabdceafe4d0d8fe8b2c8d61418c25511f17028752ba3ead1df09ffc694 EBUILD teyjus-2.1.ebuild 2905 BLAKE2B c3035b05c8c2c398b9c4baf4545a9c06f3bdfb978626fa8aaaf50d2765e7fca411195d3b8612b9680ea8788660dbeefd8e595d9895b81749e882cfae941b7f1b SHA512 21af8eabfc012c1e435dfaca528a1689103ff53f74c901973ab52477753a60ff6a1a9a29e9ff8403e7b33a25ea0d5f20a1ac80ef29049c21936dbb92586cefe1 MISC metadata.xml 1654 BLAKE2B 6361e555cae1b12db47e36e7362c78262a5753ecdb9fb3e8e5386d3945d6f7aeeaeb32e98c3a71e40a017c0bd9ff2d576205e3db96771f67ce7ad888cc2f12cf SHA512 077b511496bda9dfa0f577bac466a33fd5d4b5b759ae243157b385b244c7e9b210c3f7fc0221ed48c7f4277dd86f9f05fed484c375747bcda590258f278cda41 diff --git a/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch new file mode 100644 index 000000000000..739653c9ea93 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p004-Renaming-ccode_stubs-for-compilation.patch @@ -0,0 +1,65 @@ +commit e63f40aa9f1d0ea5e7bac41aae5e479c3616545c (HEAD -> master, origin/master, origin/HEAD) +Author: Giselle Reis <giselle.mnr@gmail.com> +Date: Fri Jul 26 15:57:18 2019 +0300 + + Renaming ccode_stubs for compilation + + Based on the fix at + https://github.com/teyjus/teyjus/issues/112#issuecomment-272336299 + + Fixes #118. + +diff --git a/source/OMakefile b/source/OMakefile +index e6bd37e..87b9bc5 100644 +--- a/source/OMakefile ++++ b/source/OMakefile +@@ -88,7 +88,7 @@ FNT_ML[] = + $(FNT)/parseargs + + FNT_C[] = +- $(FNT)/ccode_stubs ++ $(FNT)/ccode_stubs_c + $(FNT)/front_c + $(FNT)/query_c + $(FNT)/readterm_c +@@ -100,6 +100,7 @@ FNT_ML_TO_C[] = + $(FNT)/front + $(FNT)/readterm + $(FNT)/simerrors ++ $(FNT)/ccode_stubs + + SIM_C[] = + $(SIM)/abstmachine +diff --git a/source/front/README b/source/front/README +index 10608a3..d4d3f10 100644 +--- a/source/front/README ++++ b/source/front/README +@@ -60,10 +60,10 @@ query_c.h{c} + Defines C functions invoked from query.ml for solving queries or display + answer substitutions. + +-ccode_stubs.mli +-=============== ++ccode_stubs.ml ++============== + Interface declaration for the invocation of C functions from OCaml code. + +-ccode_stubs.c +-============== ++ccode_stubs_c.c ++=============== + Interface functions for the invocation of C functions from OCaml code. +diff --git a/source/front/makefile b/source/front/makefile +index c607ba1..92dfd2c 100644 +--- a/source/front/makefile ++++ b/source/front/makefile +@@ -1,6 +1,6 @@ + tjsim: +- ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.mli simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim ++ ocamake parseargs.ml parseargs.mli simulatorfront.ml module.ml module.mli query.ml query.mli front.ml front.mli readterm.ml readterm.mli ccode_stubs.ml simerrors.mli simerrors.ml ../compiler/*.ml ../compiler/*.mli ../loader/*.ml ../loader/*.mli -lp ccode_stubs_c.o front_c.o query_c.o ../tables/*.o ../system/*.o ../simulator/*.o ../simulator/builtins/*.o -opt -o tjsim + + + clean: +- rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx +\ No newline at end of file ++ rm *.cmx ../compiler/*.cmx ../disassembler/*.cmx ../myloader/*.cmx diff --git a/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch new file mode 100644 index 000000000000..11351755e465 --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p005-Unbundle-ocaml-header-files.patch @@ -0,0 +1,44 @@ +commit 7371d8e75ce11c825a79614c44d70316759b16c3 +Author: Mark Wright <gienah@gentoo.org> +Date: Sun Jul 17 20:08:37 2022 +1000 + + include ocaml system header files instead of old bundled ocaml header files + +diff --git a/source/front/ccode_stubs_c.c b/source/front/ccode_stubs_c.c +index f1a62a7..f5f9042 100644 +--- a/source/front/ccode_stubs_c.c ++++ b/source/front/ccode_stubs_c.c +@@ -21,10 +21,10 @@ + #include "../simulator/builtins/readterm.h" + #include "front_c.h" + #include "query_c.h" +-#include "caml/mlvalues.h" +-#include "caml/memory.h" +-#include "caml/alloc.h" +-#include "caml/custom.h" ++#include <caml/mlvalues.h> ++#include <caml/memory.h> ++#include <caml/alloc.h> ++#include <caml/custom.h> + + /***************************************************************************/ + /* front */ +diff --git a/source/front/linker_c.c b/source/front/linker_c.c +index d9cb1bc..0c173cd 100644 +--- a/source/front/linker_c.c ++++ b/source/front/linker_c.c +@@ -20,10 +20,10 @@ + + #include "../linker/module.h" + #include "../linker/linker_message.h" +-#include "caml/mlvalues.h" +-#include "caml/memory.h" +-#include "caml/alloc.h" +-#include "caml/custom.h" ++#include <caml/mlvalues.h> ++#include <caml/memory.h> ++#include <caml/alloc.h> ++#include <caml/custom.h> + + value FRONT_link(value mod_str, value verb) + { diff --git a/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch new file mode 100644 index 000000000000..d2ba3758315b --- /dev/null +++ b/dev-lang/teyjus/files/teyjus-2.1-p006-Version.patch @@ -0,0 +1,13 @@ +# https://github.com/teyjus/teyjus/issues/117 Version number not updated in release 2.1 + +--- teyjus-2.1-orig/source/front/parseargs.ml 2015-07-06 08:07:17.000000000 +1000 ++++ teyjus-2.1/source/front/parseargs.ml 2022-07-17 13:47:19.844819942 +1000 +@@ -24,7 +24,7 @@ + in + List.flatten (List.map seperate dualSpecList) + +-let version = "2.0-b2" ++let version = "2.1" + + let printVersion () = + print_endline ("Teyjus version " ^ version) ; diff --git a/dev-lang/teyjus/teyjus-2.1-r2.ebuild b/dev-lang/teyjus/teyjus-2.1-r2.ebuild new file mode 100644 index 000000000000..d19b8ef93092 --- /dev/null +++ b/dev-lang/teyjus/teyjus-2.1-r2.ebuild @@ -0,0 +1,110 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit elisp-common + +DESCRIPTION="Higher-order logic programming language Lambda Prolog" +HOMEPAGE="http://teyjus.cs.umn.edu/" +SRC_URI="https://github.com/teyjus/teyjus/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +LICENSE="GPL-3" +IUSE="emacs examples" + +RDEPEND=">=sys-devel/binutils-2.17:* + >=sys-devel/gcc-2.95.3:* + >=dev-lang/ocaml-3.10[ocamlopt] + emacs? ( >=app-editors/emacs-23.1:* )" +DEPEND="${RDEPEND} + app-text/dos2unix + dev-util/omake" + +SITEFILE=50${PN}-gentoo.el + +PATCHES=( "${FILESDIR}/${P}-p001-Fixes-arity-for-pervasive-modulo-operation.patch" + "${FILESDIR}/${P}-p002-Add-string-literals-from-proper-character-groups.patch" + "${FILESDIR}/${P}-p003-Removing-deprecated-function-String.set.patch" + "${FILESDIR}/${P}-p004-Renaming-ccode_stubs-for-compilation.patch" + "${FILESDIR}/${P}-p005-Unbundle-ocaml-header-files.patch" + "${FILESDIR}/${P}-p006-Version.patch" ) + +src_prepare() { + rm -rf source/front/caml \ + || die "Could not remove bundled ocaml header files" + find . -type f -exec dos2unix {} \; \ + || die "Could not convert files from DOS to Unix format" + mv source/front/ccode_stubs.c source/front/ccode_stubs_c.c \ + || die "Could not rename source/front/ccode_stubs.c to source/front/ccode_stubs_c.c" + mv source/front/ccode_stubs.mli source/front/ccode_stubs.ml \ + || die "Could not rename source/front/ccode_stubs.mli to source/front/ccode_stubs.ml" + default + local cflags="" + for i in ${CFLAGS} + do + cflags="${cflags} -ccopt ${i}" + done + local lflags="" + for i in ${LDFLAGS} + do + lflags="${lflags} -cclib ${i}" + done + sed -e "s@\(OCAMLFLAGS= -w -A\)@\1 ${cflags}${lflags}@" \ + -e "s@\(CFLAGS +=\) -g@\1 ${CFLAGS}\nLDFLAGS += ${LDFLAGS}@" \ + -i "${S}/source/OMakefile" \ + || die "Could not set flags in ${S}/source/OMakefile" +} + +src_compile() { + export HOME="${T}" + omake --verbose --force-dotomake all || die "omake all failed" + if use emacs ; then + pushd "${S}/emacs" || die "Could change directory to emacs" + elisp-compile *.el || die "emacs elisp compile failed" + popd + fi +} + +ins_example_dir() { + insinto "/usr/share/${PN}/examples/${1}" + cd "${S}/examples/${1}" + doins * +} + +src_install() { + newbin source/tjcc.opt tjcc + newbin source/tjdepend.opt tjdepend + newbin source/tjdis.opt tjdis + newbin source/tjlink.opt tjlink + newbin source/tjsim.opt tjsim + dodoc README.md QUICKSTART + if use emacs ; then + elisp-install ${PN} emacs/*.{el,elc} + cp "${FILESDIR}"/${SITEFILE} "${S}" + sed -e "s@/usr/bin/tjcc@${EPREFIX}/usr/bin/tjcc@" -i ${SITEFILE} \ + || die "Could not set tjcc executable path in emacs site file" + elisp-site-file-install ${SITEFILE} + fi + if use examples; then + ins_example_dir "handbook/logic" + ins_example_dir "handbook/progs" + ins_example_dir "misc" + ins_example_dir "ndprover" + ins_example_dir "pcf" + fi +} + +pkg_postinst() { + if use emacs; then + elisp-site-regen + ewarn "For teyjus emacs, add this line to ~/.emacs" + ewarn "" + ewarn "(require 'teyjus)" + fi +} + +pkg_postrm() { + use emacs && elisp-site-regen +} |