mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-23 18:38:08 -07:00
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.
This commit is contained in:
@@ -94,7 +94,7 @@ src_prepare() {
|
||||
epatch_user
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
src_configure() {
|
||||
tc-export CC
|
||||
|
||||
local jit_backend
|
||||
@@ -151,16 +151,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"
|
||||
}
|
||||
|
||||
# Exception occurred:
|
||||
# File "/tmp/1/pypy3-2.4.0-src/pypy/config/makerestdoc.py", line 199, in config_role
|
||||
# assert txt.check()
|
||||
# AssertionError
|
||||
#use doc && emake -C pypy/doc/ html
|
||||
src_compile() {
|
||||
emake -C "${T}"/usession*-current/testing_1
|
||||
|
||||
# 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() {
|
||||
@@ -175,10 +181,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
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
#use doc && emake -C pypy/doc/ html
|
||||
src_compile() {
|
||||
emake -C "${T}"/usession*-current/testing_1
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user