Jason Lowe-Power has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/63151?usp=email )
Change subject: python: Update -c to work like normal python
......................................................................
python: Update -c to work like normal python
In python, when you use -c it consumes all subsequent parameters and
appends them to argv. Now, gem5 and python behave the same with -c.
Python:
python -c "import sys; print(sys.argv)" --hello -j
['-c', '--hello', '-j']
gem5:
gem5.opt -c "import sys; print(sys.argv)" --hello -j
gem5 Simulator System. https://www.gem5.org
gem5 is copyrighted software; use the --copyright option for details.
gem5 version [DEVELOP-FOR-22.1]
gem5 compiled Oct 17 2022 15:47:46
gem5 started Oct 17 2022 15:53:45
gem5 executing on challenger, pid 4021103
command line: build/ALL/gem5.opt -c 'import sys; print(sys.argv)' --hello -j
['-c', '--hello', '-j']
Change-Id: I53e87712be9523e0583149235c9787c92618f884
Signed-off-by: Jason Lowe-Power <ja...@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/63151
Tested-by: kokoro <noreply+kok...@google.com>
Reviewed-by: Andreas Sandberg <andreas.sandb...@arm.com>
Maintainer: Andreas Sandberg <andreas.sandb...@arm.com>
---
M src/python/m5/main.py
1 file changed, 53 insertions(+), 9 deletions(-)
Approvals:
Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/python/m5/main.py b/src/python/m5/main.py
index 2f11633..205f3f1 100644
--- a/src/python/m5/main.py
+++ b/src/python/m5/main.py
@@ -176,6 +176,23 @@
"-v", "--verbose", action="count", default=0, help="Increase
verbosity"
)
+ # To make gem5 mimic python better. After `-c` we should consume all
other
+ # arguments and add those to argv.
+ def collect_args(option, opt_str, value, parser):
+ extra_args = parser.rargs[:]
+ del parser.rargs[:]
+ setattr(parser.values, option.dest, (value, extra_args))
+
+ option(
+ "-c",
+ type=str,
+ help="program passed in as string (terminates option list)",
+ default="",
+ metavar="cmd",
+ action="callback",
+ callback=collect_args,
+ )
+
# Statistics options
group("Statistics Options")
option(
@@ -281,14 +298,6 @@
help="List all built-in SimObjects, their params and default
values",
)
- option(
- "-c",
- type=str,
- help="program passed in as string (terminates option list)",
- default="",
- metavar="cmd",
- )
-
arguments = options.parse_args()
return options, arguments
@@ -556,8 +565,9 @@
sys.argv = arguments
if options.c:
- filedata = options.c
+ filedata = options.c[0]
filecode = compile(filedata, "<string>", "exec")
+ sys.argv = ["-c"] + options.c[1]
scope = {"__name__": "__m5_main__"}
else:
sys.path = [os.path.dirname(sys.argv[0])] + sys.path
--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/63151?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I53e87712be9523e0583149235c9787c92618f884
Gerrit-Change-Number: 63151
Gerrit-PatchSet: 4
Gerrit-Owner: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: Andreas Sandberg <andreas.sandb...@arm.com>
Gerrit-Reviewer: Jason Lowe-Power <ja...@lowepower.com>
Gerrit-Reviewer: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org