From 93e8b224454bfdb38b22a8572eadafce6410e358 Mon Sep 17 00:00:00 2001 From: Matthew Brewer Date: Wed, 18 May 2016 19:43:55 +0200 Subject: dev-lang/nqp: 2016.04 (experimental\!) --- dev-lang/nqp/Manifest | 3 + dev-lang/nqp/metadata.xml | 7 ++- dev-lang/nqp/nqp-2016.01.ebuild | 64 +++++++++++++++++++++ dev-lang/nqp/nqp-2016.02.ebuild | 64 +++++++++++++++++++++ dev-lang/nqp/nqp-2016.03.ebuild | 64 +++++++++++++++++++++ dev-lang/nqp/nqp-2016.04-r2.ebuild | 114 +++++++++++++++++++++++++++++++++++++ dev-lang/nqp/nqp-2016.04.ebuild | 79 +++++++++---------------- dev-lang/nqp/nqp-9999.ebuild | 22 ++++--- 8 files changed, 356 insertions(+), 61 deletions(-) create mode 100644 dev-lang/nqp/nqp-2016.01.ebuild create mode 100644 dev-lang/nqp/nqp-2016.02.ebuild create mode 100644 dev-lang/nqp/nqp-2016.03.ebuild create mode 100644 dev-lang/nqp/nqp-2016.04-r2.ebuild diff --git a/dev-lang/nqp/Manifest b/dev-lang/nqp/Manifest index 19088f1..31cdb1c 100644 --- a/dev-lang/nqp/Manifest +++ b/dev-lang/nqp/Manifest @@ -1 +1,4 @@ +DIST nqp-2016.01.tar.gz 5117110 SHA256 87875120af7167093643f2a35869d66a61f735220a9348627ba89cf294387c8b SHA512 e79668f7f5f3679fe3b93f63e1151da1eab109ef4acc6f8ae3da3d9e5c3da814440dd43279978b1a13f30647d7c52bda5575b02f366bd928965b06b47c6d6d91 WHIRLPOOL d2369417707332d8bc045f6f93da81e1301ec2599f197664d80e6edeefc1bc7a2147ad3b7e893eef0fb6b96adf2f68f5ab44b948801e266e68d99552253abeda +DIST nqp-2016.02.tar.gz 5121833 SHA256 051ddd4bab8f73a688836d896340320ff7043a6ecbd5c53be099249e75e33b8d SHA512 9a3233e351ebdf73ed27d3eade2052936d1a49ea95d32a8176e426e7126c720e4a3f69dedc4067925272293329b08ab397f6a7523b9e4129952847fbd86fcf0d WHIRLPOOL 1bad2dc420d59f07c3d9b8d9dcc78d51a772ed2672419fc53e427c68e24fce5645a0dcfd4a4e138e6333f9e909297b49fafe190e6dc763cca8e52dce20309ec5 +DIST nqp-2016.03.tar.gz 5126687 SHA256 50731983cfc0800015bf73a2174000f5631ad09b551ff190153fba00a448067f SHA512 707701e22752cb43b0694c8c57ec834cfee3d2a50c2b6ae3ee36af5881728c94ae1d03d07c624367edb6cf58bba18abd26dcc18656b0483f4f979db5dd26a07e WHIRLPOOL 364abefc3d7b005b89fd3a3180e66971dbc56851377b93e38d2a8b2ed546121ec730628e0f93947f77e8f12346d64e60b4af8ffa720dc0a05810fae846b262a4 DIST nqp-2016.04.tar.gz 5156494 SHA256 9176422eb2a99db24ab520bc78686f3a2c008ba73bf8c7091a790985f5061019 SHA512 5dcb685a90b26fee3e8dac3ca24da11bd967d034b5328232d18d9db37e27645b57259cabf54ef8e10b3ac508b1aa784072f0a9542d30168d3017f86e610c3cee WHIRLPOOL 0711e1471740b0ed181f9e4504f810a084056e74650c0ffb1c6c17e2976b2c1facb6a7e73df5d991d9ffe43f055fe844f0756dbd816375708b4d499a0f7a9162 diff --git a/dev-lang/nqp/metadata.xml b/dev-lang/nqp/metadata.xml index 620f2ca..dd228ef 100644 --- a/dev-lang/nqp/metadata.xml +++ b/dev-lang/nqp/metadata.xml @@ -5,13 +5,18 @@ patrick@gentoo.org Patrick Lauer + + tomboy64@sina.cn + Matthew Brewer + perl@gentoo.org Gentoo Perl Project - Toggle usage of the clang compiler in conjunction with MoarVM + Toggle usage of the clang compiler in conjunction with MoarVM Build the MoarVM backend (experimental/broken) + Use jars provided by the system instead of upstream perl6/nqp diff --git a/dev-lang/nqp/nqp-2016.01.ebuild b/dev-lang/nqp/nqp-2016.01.ebuild new file mode 100644 index 0000000..39d021f --- /dev/null +++ b/dev-lang/nqp/nqp-2016.01.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# still not working +RESTRICT="test" + +inherit eutils multilib versionator + +GITCRAP=b5ebdaa + +DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" +HOMEPAGE="http://rakudo.org/" +SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" + +LICENSE="Artistic-2" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="doc java +moar" +REQUIRED_USE="|| ( java moar )" + +RDEPEND=" + java? ( >=virtual/jre-1.7 ) + moar? ( ~dev-lang/moarvm-${PV} ) + dev-libs/libffi" +DEPEND="${RDEPEND} + java? ( >=virtual/jdk-1.7 ) + dev-lang/perl" + +S=${WORKDIR}/perl6-nqp-${GITCRAP} + +src_configure() { + use java && myconf+="jvm," + use moar && myconf+="moar," + perl Configure.pl --backend=${myconf} --prefix=/usr || die + # dirty hack to make dyncall not fail + sed -i -e 's/-Werror=missing-prototypes//' Makefile || die + sed -i -e 's/-Werror=missing-declarations//' Makefile || die + sed -i -e 's/-Werror=strict-prototypes//' Makefile || die + + # more dirty hack to allow building with newer gcc + sed -i -e 's/-Werror=implicit-function-declaration//' Makefile || die + sed -i -e 's/-Werror=nested-externs//' Makefile || die +} + +src_compile() { + emake -j1 || die +} + +src_test() { + emake -j1 test || die +} + +src_install() { + emake DESTDIR="${ED}" install || die + + dodoc CREDITS README.pod || die + + if use doc; then + dodoc -r docs/* || die + fi +} diff --git a/dev-lang/nqp/nqp-2016.02.ebuild b/dev-lang/nqp/nqp-2016.02.ebuild new file mode 100644 index 0000000..ab671df --- /dev/null +++ b/dev-lang/nqp/nqp-2016.02.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# still not working +RESTRICT="test" + +inherit eutils multilib versionator + +GITCRAP=1d6b8cb + +DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" +HOMEPAGE="http://rakudo.org/" +SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" + +LICENSE="Artistic-2" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="doc java +moar" +REQUIRED_USE="|| ( java moar )" + +RDEPEND=" + java? ( >=virtual/jre-1.7 ) + moar? ( ~dev-lang/moarvm-${PV} ) + dev-libs/libffi" +DEPEND="${RDEPEND} + java? ( >=virtual/jdk-1.7 ) + dev-lang/perl" + +S=${WORKDIR}/perl6-nqp-${GITCRAP} + +src_configure() { + use java && myconf+="jvm," + use moar && myconf+="moar," + perl Configure.pl --backend=${myconf} --prefix=/usr || die + # dirty hack to make dyncall not fail + sed -i -e 's/-Werror=missing-prototypes//' Makefile || die + sed -i -e 's/-Werror=missing-declarations//' Makefile || die + sed -i -e 's/-Werror=strict-prototypes//' Makefile || die + + # more dirty hack to allow building with newer gcc + sed -i -e 's/-Werror=implicit-function-declaration//' Makefile || die + sed -i -e 's/-Werror=nested-externs//' Makefile || die +} + +src_compile() { + emake -j1 || die +} + +src_test() { + emake -j1 test || die +} + +src_install() { + emake DESTDIR="${ED}" install || die + + dodoc CREDITS README.pod || die + + if use doc; then + dodoc -r docs/* || die + fi +} diff --git a/dev-lang/nqp/nqp-2016.03.ebuild b/dev-lang/nqp/nqp-2016.03.ebuild new file mode 100644 index 0000000..63020f3 --- /dev/null +++ b/dev-lang/nqp/nqp-2016.03.ebuild @@ -0,0 +1,64 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +# still not working +RESTRICT="test" + +inherit eutils multilib versionator + +GITCRAP=d1e443f + +DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" +HOMEPAGE="http://rakudo.org/" +SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" + +LICENSE="Artistic-2" +SLOT="0" +KEYWORDS="~x86 ~amd64" +IUSE="doc java +moar" +REQUIRED_USE="|| ( java moar )" + +RDEPEND=" + java? ( >=virtual/jre-1.7 ) + moar? ( ~dev-lang/moarvm-${PV} ) + dev-libs/libffi" +DEPEND="${RDEPEND} + java? ( >=virtual/jdk-1.7 ) + dev-lang/perl" + +S=${WORKDIR}/perl6-nqp-${GITCRAP} + +src_configure() { + use java && myconf+="jvm," + use moar && myconf+="moar," + perl Configure.pl --backend=${myconf} --prefix=/usr || die + # dirty hack to make dyncall not fail + sed -i -e 's/-Werror=missing-prototypes//' Makefile || die + sed -i -e 's/-Werror=missing-declarations//' Makefile || die + sed -i -e 's/-Werror=strict-prototypes//' Makefile || die + + # more dirty hack to allow building with newer gcc + sed -i -e 's/-Werror=implicit-function-declaration//' Makefile || die + sed -i -e 's/-Werror=nested-externs//' Makefile || die +} + +src_compile() { + emake -j1 || die +} + +src_test() { + emake -j1 test || die +} + +src_install() { + emake DESTDIR="${ED}" install || die + + dodoc CREDITS README.pod || die + + if use doc; then + dodoc -r docs/* || die + fi +} diff --git a/dev-lang/nqp/nqp-2016.04-r2.ebuild b/dev-lang/nqp/nqp-2016.04-r2.ebuild new file mode 100644 index 0000000..9575dfb --- /dev/null +++ b/dev-lang/nqp/nqp-2016.04-r2.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit java-pkg-opt-2 + +if [[ ${PV} == "9999" ]]; then + EGIT_REPO_URI="https://github.com/perl6/${PN}.git" + inherit git-r3 + KEYWORDS="" +else + SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" + inherit vcs-snapshot + KEYWORDS="~x86 ~amd64" +fi + +DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" +HOMEPAGE="http://rakudo.org/" + +LICENSE="Artistic-2" +SLOT="0" +IUSE="doc clang java +moar test" +REQUIRED_USE="|| ( java moar )" + +CDEPEND="java? ( + dev-java/asm:4 + dev-java/jline:0 + dev-java/jna:4 + ) + moar? ( ~dev-lang/moarvm-${PV}[clang=] ) + dev-libs/libffi" +RDEPEND="${CDEPEND} + java? ( >=virtual/jre-1.7:* )" +DEPEND="${CDEPEND} + clang? ( sys-devel/clang ) + java? ( >=virtual/jdk-1.7:* ) + dev-lang/perl" + +java_prepare() { + # Don't clean stage0 jars. + java-pkg_clean 3rdparty/ + + # Don't use jars we just deleted. + sed -i -r 's/(:3rdparty[^:]*)+/:${THIRDPARTY_JARS}/g' \ + src/vm/jvm/runners/nqp-j || die +} + +src_configure() { + local backends + use java && backends+="jvm," + use moar && backends+="moar" + + local myconfargs=( + "--backend=${backends}" + "--prefix=/usr" ) + + perl Configure.pl "${myconfargs[@]}" || die + + if use java; then + # Export this for the script we sed'd above. + export THIRDPARTY_JARS=$(java-pkg_getjars --with-dependencies asm-4,jline,jna-4) + fi +} + +src_compile() { + if use java; then + emake -j1 \ + THIRDPARTY_JARS="${THIRDPARTY_JARS}" \ + JAVAC="$(java-pkg_get-javac) $(java-pkg_javac-args)" + else + emake -j1 + fi +} + +src_test() { + emake -j1 test +} + +src_install() { + if use java; then + # Set JAVA_PKG_JARDEST early. + java-pkg_init_paths_ + + # Upstream sets the classpath to this location. Perhaps it's + # used to locate the additional libraries? + java-pkg_addcp "${JAVA_PKG_JARDEST}" + + insinto "${JAVA_PKG_JARDEST}" + local jar + + for jar in *.jar; do + if has ${jar} ${PN}.jar ${PN}-runtime.jar; then + # jars for NQP itself. + java-pkg_dojar ${jar} + else + # jars used by NQP. + doins ${jar} + fi + done + + # Upstream uses -Xbootclasspath/a, which is faster due to lack + # of verification, but gjl isn't flexible enough yet. :( + java-pkg_dolauncher ${PN}-j --main ${PN} + dosym ${PN}-j /usr/bin/${PN} + dobin tools/jvm/eval-client.pl + else + emake DESTDIR="${ED}" install + fi + + dodoc CREDITS README.pod + use doc && dodoc -r docs/* +} diff --git a/dev-lang/nqp/nqp-2016.04.ebuild b/dev-lang/nqp/nqp-2016.04.ebuild index 4354072..4a45644 100644 --- a/dev-lang/nqp/nqp-2016.04.ebuild +++ b/dev-lang/nqp/nqp-2016.04.ebuild @@ -1,79 +1,56 @@ -# Copyright 1999-2016 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ -EAPI=6 +EAPI=5 -inherit java-pkg-2 +# still not working +RESTRICT="test" -if [[ ${PV} == "9999" ]]; then - EGIT_REPO_URI="https://github.com/perl6/${PN}.git" - inherit git-r3 - KEYWORDS="" -else - SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" - KEYWORDS="~x86 ~amd64" -fi +inherit eutils multilib versionator + +GITCRAP=10d3ecc DESCRIPTION="Not Quite Perl, a Perl 6 bootstrapping compiler" HOMEPAGE="http://rakudo.org/" +SRC_URI="https://github.com/perl6/${PN}/tarball/${PV} -> ${P}.tar.gz" LICENSE="Artistic-2" SLOT="0" -IUSE="doc clang java +moar test" +KEYWORDS="~x86 ~amd64" +IUSE="doc java +moar" REQUIRED_USE="|| ( java moar )" -RDEPEND="java? ( >=virtual/jre-1.7:* - dev-java/asm:4 - dev-java/jline:0 ) - moar? ( ~dev-lang/moarvm-${PV}[clang=] ) +RDEPEND=" + java? ( >=virtual/jre-1.7 ) + moar? ( ~dev-lang/moarvm-${PV} ) dev-libs/libffi" DEPEND="${RDEPEND} - clang? ( sys-devel/clang ) - java? ( >=virtual/jdk-1.7:* ) + java? ( >=virtual/jdk-1.7 ) dev-lang/perl" -PATCHES=( "${FILESDIR}/enable-external-jars.patch" ) - -pkg_setup() { - use java && java-pkg-2_pkg_setup -} - -src_prepare() { - eapply "${PATCHES[@]}" - eapply_user - use java && java-pkg-2_src_prepare -} -src_unpack() { - if [[ ${PV} == "9999" ]]; then - git-r3_src_unpack - else - unpack ${A} - mv "${WORKDIR}/perl6-nqp-"* "${WORKDIR}/${P}" || die - fi -} +S=${WORKDIR}/perl6-nqp-${GITCRAP} src_configure() { - # 2016.04 doesn't like our jna-3.4.1 - # keep testing against it - local backends - use java && backends+="jvm," - use moar && backends+="moar" - local myconfargs=( - "--backend=${backends}" - "--with-asm=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm\.jar$')" - "--with-asm-tree=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm-tree\.jar$')" - "--with-jline=$(echo $(java-pkg_getjars jline) | tr : '\n' | grep '/jline\.jar$')" - "--prefix=/usr" ) - perl Configure.pl "${myconfargs[@]}" || die + use java && myconf+="jvm," + use moar && myconf+="moar," + perl Configure.pl --backend=${myconf} --prefix=/usr || die + # dirty hack to make dyncall not fail + sed -i -e 's/-Werror=missing-prototypes//' Makefile || die + sed -i -e 's/-Werror=missing-declarations//' Makefile || die + sed -i -e 's/-Werror=strict-prototypes//' Makefile || die + + # more dirty hack to allow building with newer gcc + sed -i -e 's/-Werror=implicit-function-declaration//' Makefile || die + sed -i -e 's/-Werror=nested-externs//' Makefile || die } src_compile() { - MAKEOPTS=-j1 emake + emake -j1 || die } src_test() { - MAKEOPTS=-j1 emake test + emake -j1 test || die } src_install() { diff --git a/dev-lang/nqp/nqp-9999.ebuild b/dev-lang/nqp/nqp-9999.ebuild index 4354072..6351216 100644 --- a/dev-lang/nqp/nqp-9999.ebuild +++ b/dev-lang/nqp/nqp-9999.ebuild @@ -20,26 +20,27 @@ HOMEPAGE="http://rakudo.org/" LICENSE="Artistic-2" SLOT="0" -IUSE="doc clang java +moar test" +IUSE="doc clang java +moar +system-libs test" REQUIRED_USE="|| ( java moar )" RDEPEND="java? ( >=virtual/jre-1.7:* - dev-java/asm:4 - dev-java/jline:0 ) + system-libs? ( + dev-java/asm:4 + dev-java/jline:0 + ) + ) moar? ( ~dev-lang/moarvm-${PV}[clang=] ) dev-libs/libffi" DEPEND="${RDEPEND} clang? ( sys-devel/clang ) java? ( >=virtual/jdk-1.7:* ) dev-lang/perl" -PATCHES=( "${FILESDIR}/enable-external-jars.patch" ) pkg_setup() { use java && java-pkg-2_pkg_setup } src_prepare() { - eapply "${PATCHES[@]}" eapply_user use java && java-pkg-2_src_prepare } @@ -54,17 +55,20 @@ src_unpack() { } src_configure() { - # 2016.04 doesn't like our jna-3.4.1 - # keep testing against it local backends use java && backends+="jvm," use moar && backends+="moar" local myconfargs=( "--backend=${backends}" + "--prefix=/usr" ) + + # 2016.04 doesn't like our jna-3.4.1 + # keep testing against it + use system-libs && myconfargs+=( "--with-asm=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm\.jar$')" "--with-asm-tree=$(echo $(java-pkg_getjars asm-4) | tr : '\n' | grep '/asm-tree\.jar$')" - "--with-jline=$(echo $(java-pkg_getjars jline) | tr : '\n' | grep '/jline\.jar$')" - "--prefix=/usr" ) + "--with-jline=$(echo $(java-pkg_getjars jline) | tr : '\n' | grep '/jline\.jar$')" ) + perl Configure.pl "${myconfargs[@]}" || die } -- cgit v1.2.3-18-g5258