diff options
author | Michał Górny <mgorny@gentoo.org> | 2017-03-08 11:56:27 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2017-03-08 12:32:44 +0100 |
commit | 890fe16c41e02c0df1de61c6813ae27aeae28e0b (patch) | |
tree | 8220061961040ee6f7796327e34c5880ea0bcf40 /dev-python/pypy3/pypy3-9999.ebuild | |
parent | dev-python/pypy3: Sync the live ebuild (diff) | |
download | gentoo-890fe16c41e02c0df1de61c6813ae27aeae28e0b.tar.gz gentoo-890fe16c41e02c0df1de61c6813ae27aeae28e0b.tar.bz2 gentoo-890fe16c41e02c0df1de61c6813ae27aeae28e0b.zip |
dev-python/pypy3: Split translation and compile phases
Like in dev-python/pypy, use --source to disable auto-spawning
compilation phase in rpython. Instead, run it manually in src_compile().
This way we reduce memory consumption (since rpython normally does not
free the lots of memory it used during the translation while spawning
the compiler), and make the process easier to resume.
Diffstat (limited to 'dev-python/pypy3/pypy3-9999.ebuild')
-rw-r--r-- | dev-python/pypy3/pypy3-9999.ebuild | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/dev-python/pypy3/pypy3-9999.ebuild b/dev-python/pypy3/pypy3-9999.ebuild index 9c486a55bf39..b399af1a9d49 100644 --- a/dev-python/pypy3/pypy3-9999.ebuild +++ b/dev-python/pypy3/pypy3-9999.ebuild @@ -103,7 +103,7 @@ src_prepare() { epatch_user } -src_compile() { +src_configure() { tc-export CC local jit_backend @@ -160,12 +160,22 @@ src_compile() { "${PYTHON}" --jit loop_longevity=300 ) fi - set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}" + # translate into the C sources + # we're going to make them ourselves since otherwise pypy does not + # free up the unneeded memory before spawning the compiler + set -- "${interp[@]}" rpython/bin/rpython --batch --source "${args[@]}" echo -e "\033[1m${@}\033[0m" - "${@}" || die "compile error" + "${@}" || die "translation failed" +} + +src_compile() { + emake -C "${T}"/usession*-current/testing_1 - #use doc && emake -C pypy/doc/ html + # copy back to make sys.prefix happy + cp -p "${T}"/usession*-current/testing_1/{pypy-c,libpypy-c.so} . || die pax-mark m pypy-c libpypy-c.so + + #use doc && emake -C pypy/doc html } src_test() { @@ -180,10 +190,11 @@ src_test() { src_install() { local dest=/usr/$(get_libdir)/pypy3 einfo "Installing PyPy ..." - insinto "${dest}" - doins -r include lib_pypy lib-python pypy-c libpypy-c.so - fperms a+x ${dest}/pypy-c ${dest}/libpypy-c.so + exeinto "${dest}" + doexe pypy-c libpypy-c.so pax-mark m "${ED%/}${dest}/pypy-c" "${ED%/}${dest}/libpypy-c.so" + insinto "${dest}" + doins -r include lib_pypy lib-python dosym ../$(get_libdir)/pypy3/pypy-c /usr/bin/pypy3 dodoc README.rst |