Author: Ronan Lamy <ronan.l...@gmail.com> Branch: Changeset: r68343:622d676a349e Date: 2013-11-30 15:06 +0000 http://bitbucket.org/pypy/pypy/changeset/622d676a349e/
Log: stick cache_dir definition in rpython.config.translationoption (as a global) diff --git a/rpython/config/translationoption.py b/rpython/config/translationoption.py --- a/rpython/config/translationoption.py +++ b/rpython/config/translationoption.py @@ -1,4 +1,5 @@ import sys +import os from rpython.config.config import OptionDescription, BoolOption, IntOption, ArbitraryOption, FloatOption from rpython.config.config import ChoiceOption, StrOption, Config from rpython.config.config import ConfigError @@ -20,6 +21,9 @@ IS_64_BITS = sys.maxint > 2147483647 +MAINDIR = os.path.dirname(os.path.dirname(__file__)) +CACHE_DIR = os.path.realpath(os.path.join(MAINDIR, '_cache')) + PLATFORMS = [ 'maemo', 'host', diff --git a/rpython/conftest.py b/rpython/conftest.py --- a/rpython/conftest.py +++ b/rpython/conftest.py @@ -5,7 +5,6 @@ pytest_plugins = 'rpython.tool.pytest.expecttest' cdir = realpath(join(dirname(__file__), 'translator', 'c')) -cache_dir = realpath(join(dirname(__file__), '_cache')) option = None def braindead_deindent(self): diff --git a/rpython/tool/gcc_cache.py b/rpython/tool/gcc_cache.py --- a/rpython/tool/gcc_cache.py +++ b/rpython/tool/gcc_cache.py @@ -1,10 +1,12 @@ from hashlib import md5 import py, os -def cache_file_path(c_files, eci, cache_root, cachename): +def cache_file_path(c_files, eci, cachename): "Builds a filename to cache compilation data" # Import 'platform' every time, the compiler may have been changed from rpython.translator.platform import platform + from rpython.config.translationoption import CACHE_DIR + cache_root = py.path.local(CACHE_DIR).ensure(dir=1) cache_dir = cache_root.join(cachename).ensure(dir=1) filecontents = [c_file.read() for c_file in c_files] key = repr((filecontents, eci, platform.key())) @@ -15,9 +17,7 @@ "Builds and run a program; caches the result" # Import 'platform' every time, the compiler may have been changed from rpython.translator.platform import platform - from rpython.conftest import cache_dir - cache_root = py.path.local(cache_dir).ensure(dir=1) - path = cache_file_path(c_files, eci, cache_root, 'build_executable_cache') + path = cache_file_path(c_files, eci, 'build_executable_cache') try: return path.read() except py.error.Error: @@ -54,9 +54,7 @@ "Try to compile a program. If it works, caches this fact." # Import 'platform' every time, the compiler may have been changed from rpython.translator.platform import platform - from rpython.conftest import cache_dir - cache_root = py.path.local(cache_dir).ensure(dir=1) - path = cache_file_path(c_files, eci, cache_root, 'try_compile_cache') + path = cache_file_path(c_files, eci, 'try_compile_cache') try: data = path.read() if data == 'True': diff --git a/rpython/tool/test/test_gcc_cache.py b/rpython/tool/test/test_gcc_cache.py --- a/rpython/tool/test/test_gcc_cache.py +++ b/rpython/tool/test/test_gcc_cache.py @@ -9,9 +9,6 @@ localudir = udir.join('test_gcc_cache').ensure(dir=1) -from rpython.conftest import cache_dir -cache_root = py.path.local(cache_dir).ensure(dir=1) - def test_gcc_exec(): f = localudir.join("x.c") f.write(""" @@ -29,7 +26,7 @@ dir2.join('test_gcc_exec.h').write('#define ANSWER 42\n') eci = ExternalCompilationInfo(include_dirs=[str(dir1)]) # remove cache - path = cache_file_path([f], eci, cache_root, 'build_executable_cache') + path = cache_file_path([f], eci, 'build_executable_cache') if path.check(): path.remove() res = build_executable_cache([f], eci) @@ -60,7 +57,7 @@ dir2.join('test_gcc_ask.h').write('#error boom\n') eci = ExternalCompilationInfo(include_dirs=[str(dir1)]) # remove cache - path = cache_file_path([f], eci, cache_root, 'try_compile_cache') + path = cache_file_path([f], eci, 'try_compile_cache') if path.check(): path.remove() assert try_compile_cache([f], eci) diff --git a/rpython/translator/goal/translate.py b/rpython/translator/goal/translate.py --- a/rpython/translator/goal/translate.py +++ b/rpython/translator/goal/translate.py @@ -7,19 +7,17 @@ import os import sys -from rpython.conftest import cache_dir - import py -# clean up early rpython/_cache -try: - py.path.local(cache_dir).remove() -except Exception: - pass - from rpython.config.config import (to_optparse, OptionDescription, BoolOption, ArbitraryOption, StrOption, IntOption, Config, ChoiceOption, OptHelpFormatter) from rpython.config.translationoption import (get_combined_translation_config, - set_opt_level, OPT_LEVELS, DEFAULT_OPT_LEVEL, set_platform) + set_opt_level, OPT_LEVELS, DEFAULT_OPT_LEVEL, set_platform, CACHE_DIR) + +# clean up early rpython/_cache +try: + py.path.local(CACHE_DIR).remove() +except Exception: + pass GOALS = [ _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit