python: Add DeprecatedParam type
authorJason Lowe-Power <jason@lowepower.com>
Wed, 29 Jul 2020 15:21:10 +0000 (08:21 -0700)
committerJason Lowe-Power <power.jg@gmail.com>
Wed, 26 Aug 2020 16:09:33 +0000 (16:09 +0000)
commitb1245973beb4c338f43c8bc3dd9af8a11d56d3f8
treef6f76c857aff9171939e3315a4646d367354f77c
parentdf639a1c28580626931b4da3caf6795d7e1a45bd
python: Add DeprecatedParam type

There are times when we need to change the name of parameter, but this
breaks the external-facing python API used in configuration files. Using
this "type" for a parameter will warn users that they are using the old
name, but allow for backwards compatibility.

Declaring a SimObject parameter of type `DeprecatedParam` allows the
python configuration files to use the old name transparently. This
leverages some of the SimObject magic to remember the names of
deprecated parameters and the DeprecatedParam object stores the
"translation" from old name to new name.

This has been tested with Ports, "normal" parameters, and SimObject
parameters. It has not been tested with checkpointing as there are no
checkpointing tests in gem5 right now. The testing was manually adding
some deprecated params and checking that config scripts still run
correctly that use the old, deprecated, variables.

Change-Id: I0465a748c08a24278d6b1a9d9ee1bcd67baa5b13
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/31954
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/python/m5/SimObject.py
src/python/m5/params.py