WARNING! Access to this system is limited to authorised users only.
Unauthorised users may be subject to prosecution.
Unauthorised access to this system is a criminal offence under Australian law (Federal Crimes Act 1914 Part VIA)
It is a criminal offence to:
(1) Obtain access to data without authority. -Penalty 2 years imprisonment.
(2) Damage, delete, alter or insert data without authority. -Penalty 10 years imprisonment.
User activity is monitored and recorded. Anyone using this system expressly consents to such monitoring and recording.

To protect your data, the CISO officer has suggested users to enable 2FA as soon as possible.
Currently 2.7% of users enabled 2FA.

Commit 28371f18 authored by John Zhang's avatar John Zhang
Browse files

switch to new rewrite version of PyPy Mu back-end

parent 7725fa8c
......@@ -100,10 +100,10 @@ testjit:rpython:
- git clone https://gitlab.anu.edu.au/mu/mu-client-pypy.git tests/test_jit/mu-client-pypy
- cd tests/test_jit/mu-client-pypy
- git checkout test-mu-impl-jit
- git checkout mu-rewrite-zebu-no-binop-with-flag
- cd rpython/translator/mu/rpyc; make
- cd $CI_PROJECT_DIR/tests/test_jit
- RUST_BACKTRACE=1 LD_LIBRARY_PATH=mu-client-pypy/rpython/translator/mu/rpyc PYTHONPATH=mu-client-pypy MU_RUST=$CI_PROJECT_DIR pytest test_rpython*.py -v
- RUST_BACKTRACE=1 LD_LIBRARY_PATH=. PYTHONPATH=mu-client-pypy MU_RUST=$CI_PROJECT_DIR pytest test_rpython*.py -v
from rpython.rtyper.lltypesystem import rffi, lltype
from rpython.rlib import rmu_fast as rmu
from rpython.rlib.rmu import zebu as rmu
from rpython.translator.platform import platform
from util import fncptr_from_rpy_func, fncptr_from_py_script, may_spawn_proc
import ctypes, py, stat
......@@ -833,7 +833,6 @@ def test_throw():
"@refi64": refi64
from rpython.rlib import rmu_fast as rmu
(fnp, _), (mu, ctx, bldr) = fncptr_from_py_script(build_test_bundle, None, 'test_fnc', [ctypes.c_int64],
ctypes.c_int64, mode=ctypes.RTLD_GLOBAL)
......@@ -843,7 +842,6 @@ def test_throw():
def test_exception_stack_unwind():
from rpython.rlib import rmu_fast as rmu
def build_test_bundle(bldr, rmu):
Builds the following test bundle.
......@@ -990,12 +988,12 @@ def test_exception_stack_unwind():
def run_boot_image(entry, output, has_c_main_sig = False, args = []):
from rpython.translator.interactive import Translation
if has_c_main_sig:
t = Translation(entry, [rffi.INT, rffi.CCHARPP], backend='mu', muimpl='fast', mucodegen='api')
t = Translation(entry, [rffi.INT, rffi.CCHARPP], backend='mu', impl='zebu', codegen='api')
t = Translation(entry, None, backend='mu', muimpl='fast', mucodegen='api')
t = Translation(entry, None, backend='mu', impl='zebu', codegen='api')
t.driver.standalone = True # force standalone
t.driver.exe_name = output
......@@ -1004,8 +1002,6 @@ def run_boot_image(entry, output, has_c_main_sig = False, args = []):
exe = py.path.local(output + '.mu')
# zebu
import os
from rpython.translator.mu import dir_mu
res = platform.execute(str(exe), args)
......@@ -1055,7 +1051,6 @@ def test_rpython_helloworld():
@pytest.mark.xfail(reason = "new test")
def test_rpython_print_number():
from rpython.translator.interactive import Translation
def main(argv):
print 233
......@@ -113,18 +113,14 @@ def is_ctypes(t):
def fncptr_from_py_script(py_fnc, heapinit_fnc, name, argtypes=[], restype=ctypes.c_longlong, mode=ctypes.RTLD_LOCAL, **kwargs):
import os
# NOTE: requires mu-client-pypy
from rpython.rlib import rmu_fast as rmu
from rpython.rlib.rmu import zebu as rmu
# load libmu before rffi so to load it with RTLD_GLOBAL
libmu = preload_libmu()
from rpython.translator.mu import dir_mu
loglvl = os.environ.get('MU_LOG_LEVEL', 'none')
emit_dir = kwargs.get('muemitdir', os.environ.get('MU_EMIT_DIR', 'emit'))
mu = rmu.MuVM("--log-level=%(loglvl)s --aot-emit-dir=%(emit_dir)s "
"--bootimage-external-lib=rpyc "
"--bootimage-external-libpath=%(dir_mu)s/rpyc" % locals())
mu = rmu.MuVM("--log-level=%(loglvl)s --aot-emit-dir=%(emit_dir)s" % locals())
ctx = mu.new_context()
bldr = ctx.new_ir_builder()
......@@ -166,18 +162,18 @@ def fncptr_from_rpy_func(rpy_fnc, llargtypes, llrestype, mode=ctypes.RTLD_LOCAL,
from rpython.config.translationoption import set_opt_level
emit_dir = os.environ.get('MU_EMIT_DIR', 'emit')
kwargs.setdefault('backend', 'mu')
kwargs.setdefault('muimpl', 'fast')
kwargs.setdefault('mucodegen', 'api')
kwargs.setdefault('mutestjit', True)
kwargs.setdefault('muemitdir', os.environ.get('MU_EMIT_DIR', 'emit'))
kwargs.setdefault('impl', 'zebu')
kwargs.setdefault('codegen', 'api')
kwargs.setdefault('testjit', True)
kwargs.setdefault('vmargs', "--aot-emit-dir=" + emit_dir)
t = Translation(rpy_fnc, llargtypes, **kwargs)
set_opt_level(t.config, '3')
if kwargs['backend'] == 'mu':
db, bdlgen, fnc_name = t.compile_mu()
emit_dir = py.path.local(kwargs['muemitdir'])
emit_dir = py.path.local(emit_dir)
libpath = emit_dir.join('lib%(fnc_name)s' % locals() + libext)
bdlgen.mu.compile_to_sharedlib(libpath.strpath, [])
extras = (db, bdlgen)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment