public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Michał Górny" <mgorny@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/
Date: Wed,  8 Mar 2017 11:32:49 +0000 (UTC)	[thread overview]
Message-ID: <1488972763.80dfd9952e4b140aa5b797b765f4d95fb65a7c98.mgorny@gentoo> (raw)

commit:     80dfd9952e4b140aa5b797b765f4d95fb65a7c98
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  8 09:04:47 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 11:32:43 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=80dfd995

dev-python/pypy: Split translation and compile phases

Use the --source option to disable automatic compiling of generating C
sources, and build them manually afterwards. Most importantly, this
significantly reduces memory use because pypy failed to free memory that
was used for the translation, and that is no longer needed when
the compilation is started. Furthermore, it makes resuming compilation
possible.

 dev-python/pypy/pypy-5.6.0.ebuild | 25 ++++++++++++++++++-------
 dev-python/pypy/pypy-9999.ebuild  | 25 ++++++++++++++++++-------
 2 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/dev-python/pypy/pypy-5.6.0.ebuild b/dev-python/pypy/pypy-5.6.0.ebuild
index ce1b1a3f764..34c1826c856 100644
--- a/dev-python/pypy/pypy-5.6.0.ebuild
+++ b/dev-python/pypy/pypy-5.6.0.ebuild
@@ -105,7 +105,7 @@ src_prepare() {
 	epatch_user
 }
 
-src_compile() {
+src_configure() {
 	tc-export CC
 
 	local jit_backend
@@ -162,12 +162,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)/pypy
 	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)/pypy/pypy-c /usr/bin/pypy
 	dodoc README.rst
 

diff --git a/dev-python/pypy/pypy-9999.ebuild b/dev-python/pypy/pypy-9999.ebuild
index de88fb98a5f..de566f88e80 100644
--- a/dev-python/pypy/pypy-9999.ebuild
+++ b/dev-python/pypy/pypy-9999.ebuild
@@ -111,7 +111,7 @@ src_prepare() {
 	epatch_user
 }
 
-src_compile() {
+src_configure() {
 	tc-export CC
 
 	local jit_backend
@@ -168,12 +168,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() {
@@ -186,10 +196,11 @@ src_test() {
 src_install() {
 	local dest=/usr/$(get_libdir)/pypy
 	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)/pypy/pypy-c /usr/bin/pypy
 	dodoc README.rst
 


             reply	other threads:[~2017-03-08 11:32 UTC|newest]

Thread overview: 163+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-08 11:32 Michał Górny [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-12  9:47 [gentoo-commits] repo/gentoo:master commit in: dev-python/pypy/ Michał Górny
2024-09-15 15:04 Michał Górny
2024-09-15 15:04 Michał Górny
2024-08-29 16:29 Michał Górny
2024-04-25  3:39 Michał Górny
2024-04-24 17:59 Arthur Zamarin
2024-04-24 17:16 Sam James
2024-04-24 15:08 Michał Górny
2024-02-04  4:01 Michał Górny
2024-02-03 21:34 Sam James
2024-02-03 19:09 Sam James
2024-02-02 17:23 Michał Górny
2024-02-02 17:17 Michał Górny
2024-02-02 16:39 Michał Górny
2024-02-02 16:27 Arthur Zamarin
2024-02-02 14:21 Michał Górny
2024-02-02 14:17 Arthur Zamarin
2024-01-15 21:24 Michał Górny
2023-12-25 20:26 Michał Górny
2023-12-21  4:16 Michał Górny
2023-11-02 12:58 Michał Górny
2023-09-30  8:27 Michał Górny
2023-07-24 15:05 Michał Górny
2023-07-24 14:43 Arthur Zamarin
2023-07-24 14:25 Arthur Zamarin
2023-06-19  5:14 Michał Górny
2023-06-16 17:03 Michał Górny
2023-05-31  9:19 Michał Górny
2023-05-14 19:29 Michał Górny
2023-02-03 15:22 Michał Górny
2023-02-03 15:17 Michał Górny
2023-02-03 13:46 Arthur Zamarin
2023-02-03 13:46 Arthur Zamarin
2022-12-30 14:32 Michał Górny
2022-12-11 15:46 Michał Górny
2022-12-07 15:59 Michał Górny
2022-12-07 15:42 Sam James
2022-12-07 15:42 Sam James
2022-12-07 13:04 Michał Górny
2022-11-24 16:47 Michał Górny
2022-09-01  6:22 Michał Górny
2022-08-31 20:39 Agostino Sarubbo
2022-08-30 10:15 Michał Górny
2022-08-25 15:30 Michał Górny
2022-08-10 20:31 Michał Górny
2022-05-04 17:56 Michał Górny
2022-05-04 15:11 Jakov Smolić
2022-05-01 12:20 Jakov Smolić
2022-03-30 15:13 Michał Górny
2022-03-22 10:00 Michał Górny
2022-03-22  9:27 Jakov Smolić
2022-03-22  9:27 Jakov Smolić
2022-02-20 14:19 Michał Górny
2022-02-20 14:19 Michał Górny
2022-02-20 14:19 Michał Górny
2022-02-20 14:19 Michał Górny
2022-02-20 12:28 Michał Górny
2022-02-11 12:16 Michał Górny
2021-11-10  8:00 Michał Górny
2021-11-10  7:05 Agostino Sarubbo
2021-11-10  7:04 Agostino Sarubbo
2021-10-25 20:16 Michał Górny
2021-10-17 21:15 Michał Górny
2021-10-06 18:17 Michał Górny
2021-09-14  8:59 Michał Górny
2021-09-13 20:55 Michał Górny
2021-09-03  6:57 Michał Górny
2021-09-03  6:40 Agostino Sarubbo
2021-09-03  6:34 Agostino Sarubbo
2021-08-31  9:05 Michał Górny
2021-08-31  8:43 Michał Górny
2021-08-29 22:22 Michał Górny
2021-07-30 18:14 Michał Górny
2021-07-17 14:04 Mikle Kolyada
2021-07-17 14:03 Mikle Kolyada
2021-06-19 19:18 Michał Górny
2021-06-19 19:18 Michał Górny
2021-05-24 10:22 Michał Górny
2021-05-23 23:05 Agostino Sarubbo
2021-05-19 20:06 Agostino Sarubbo
2021-05-19 18:21 Michał Górny
2021-05-14 22:00 Michał Górny
2021-05-11 10:03 Agostino Sarubbo
2021-05-02  9:21 Mikle Kolyada
2021-05-01 18:19 Agostino Sarubbo
2021-04-12 13:49 Michał Górny
2021-04-09 11:46 Michał Górny
2021-03-05 20:49 Agostino Sarubbo
2021-03-05 20:48 Agostino Sarubbo
2021-03-04 15:04 Michał Górny
2021-03-04 14:56 Michał Górny
2021-03-04  8:57 Michał Górny
2021-03-03 23:11 Michał Górny
2021-01-09  2:14 Sam James
2020-12-31 23:08 Sam James
2020-11-22 11:51 Michał Górny
2020-09-30  2:25 Sam James
2020-09-25 12:13 Michał Górny
2020-09-25 12:13 Michał Górny
2020-09-17 16:56 Michał Górny
2020-09-16 22:30 Michał Górny
2020-09-16 22:30 Michał Górny
2020-09-11 21:05 Michał Górny
2020-09-09  7:18 Michał Górny
2020-08-29 17:57 Thomas Deutschmann
2020-08-27  5:44 Michał Górny
2020-04-12 17:47 Michał Górny
2020-03-25 20:31 Michał Górny
2020-02-08 13:37 Mikle Kolyada
2020-01-27 15:44 Thomas Deutschmann
2020-01-17 18:35 Michał Górny
2020-01-04 23:53 Georgy Yakovlev
2019-12-30 12:12 Michał Górny
2019-12-30 11:59 Michał Górny
2019-12-30 11:59 Michał Górny
2019-12-25 18:38 Michał Górny
2019-12-14 11:58 Michał Górny
2019-11-20 12:27 Michał Górny
2019-11-01  8:07 Michał Górny
2019-10-18 16:24 Michał Górny
2019-04-21  6:29 Michał Górny
2019-03-28 14:22 Michał Górny
2019-02-14 22:07 Michał Górny
2019-02-14 22:07 Michał Górny
2019-01-05 13:39 Michał Górny
2018-08-01 13:34 Michał Górny
2018-08-01 12:24 Michał Górny
2018-04-29  6:33 Michał Górny
2018-04-27  6:34 Michał Górny
2018-01-08 19:41 Michał Górny
2017-12-27 18:20 Michał Górny
2017-11-16 12:33 Michał Górny
2017-11-11 15:07 Michał Górny
2017-11-05 12:20 Michał Górny
2017-11-05 12:20 Michał Górny
2017-11-05 12:20 Michał Górny
2017-10-15 10:09 Michał Górny
2017-10-15  7:30 Michał Górny
2017-10-15  7:14 Michał Górny
2017-06-09 23:10 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-25 21:49 Michał Górny
2017-04-08  5:42 Michał Górny
2017-03-08 11:32 Michał Górny
2016-09-07 17:11 Michał Górny
2016-09-07 17:11 Michał Górny
2016-09-03 17:35 Michał Górny
2016-07-29 15:09 Michał Górny
2016-07-03  8:19 Michał Górny
2016-06-09 16:10 Michał Górny
2016-06-09 16:10 Michał Górny
2016-06-06 19:17 Michał Górny
2016-06-03 12:57 Anthony G. Basile
2016-05-14  9:07 Michał Górny
2016-05-14  9:07 Michał Górny
2016-03-12 13:41 Michał Górny
2016-03-03 10:47 Michał Górny
2015-12-20 21:13 Michał Górny
2015-11-27 19:49 Michał Górny
2015-08-15  7:12 Michał Górny

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1488972763.80dfd9952e4b140aa5b797b765f4d95fb65a7c98.mgorny@gentoo \
    --to=mgorny@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox