#
13714:35636064b7a1 |
|
25-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
python: Enforce absolute imports for Python 3 compatibility
Change-Id: Ia88d7fd472f7aed9b97df81468211384981bf6c6 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15983 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
|
#
13671:b288ca1bcae8 |
|
24-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
python: Update use of exec to work with Python 3
Python 3 uses 'exec(code, globals)' instead of 'exec code in globals'. Switch to the newer syntax since it is supported by Python 2.7. Also, move check_tracing out of main to work around a bug in Python 2.7.
Change-Id: I6d390160f58783e1b038a572b64cdf3ff09535fa Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15986 Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
|
#
13670:8a98db5a481f |
|
24-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
python: Switch to using open instead of file
Python 3 doesn't support the file(name, mode) syntax which has been deprecated in favour of open.
Change-Id: I35ef8690d97a5243860a64ff985fd22fa86253f1 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15985 Reviewed-by: Gabe Black <gabeblack@google.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
|
#
13663:9b64aeabf9a5 |
|
25-Jan-2019 |
Andreas Sandberg <andreas.sandberg@arm.com> |
python: Make exception handling Python 3 safe
Change-Id: I9c2cdfad20deb1ddfa224320cf93f2105d126652 Reviewed-on: https://gem5-review.googlesource.com/c/15980 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
|
#
9737:cc3b8601f582 |
|
03-Jun-2013 |
Andreas Sandberg <andreas@sandberg.pp.se> |
base: Make the Python module loader PEP302 compliant
The custom Python loader didn't comply with PEP302 for two reasons:
* Previously, we would overwrite old modules on name conflicts. PEP302 explicitly states that: "If there is an existing module object named 'fullname' in sys.modules, the loader must use that existing module".
* The "__package__" attribute wasn't set. PEP302: "The __package__ attribute must be set."
This changeset addresses both of these issues.
|
#
7801:f71f9634d809 |
|
21-Dec-2010 |
Nathan Binkert <nate@binkert.org> |
importer: fix error message
|
#
7502:3ef7ff12c788 |
|
21-Jul-2010 |
Nathan Binkert <nate@binkert.org> |
python: Add mechanism to override code compiled into the exectuable If the user sets the environment variable M5_OVERRIDE_PY_SOURCE to True, then imports that would normally find python code compiled into the executable will instead first check in the absolute location where the code was found during the build of the executable. This only works for files in the src (or extras) directories, not automatically generated files.
This is a developer feature!
|
#
5522:e56c3d89be79 |
|
03-Aug-2008 |
Nathan Binkert <nate@binkert.org> |
libm5: Create a libm5 static library for embedding m5.
This should allow m5 to be more easily embedded into other simulators. The m5 binary adds a simple main function which then calls into the m5 libarary to start the simulation. In order to make this work correctly, it was necessary embed python code directly into the library instead of the zipfile hack. This is because you can't just append the zipfile to the end of a library the way you can a binary. As a result, Python files that are part of the m5 simulator are now compile, marshalled, compressed, and then inserted into the library's data section with a certain symbol name. Additionally, a new Importer was needed to allow python to get at the embedded python code.
Small additional changes include: - Get rid of the PYTHONHOME stuff since I don't think anyone ever used it, and it just confuses things. Easy enough to add back if I'm wrong. - Create a few new functions that are key to initializing and running the simulator: initSignals, initM5Python, m5Main.
The original code for creating libm5 was inspired by a patch Michael Adler, though the code here was done by me.
|