summaryrefslogtreecommitdiff
path: root/configs/ruby/Ruby.py
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2016-10-13 03:17:19 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2016-10-13 03:17:19 -0400
commit68fdccb30bd85cd99823fb411ec7ae67112062d7 (patch)
treee6ef3d54238c64c63b00a3b83da96a9a1cdaad8b /configs/ruby/Ruby.py
parent2e5e9085792b1a7c47c231a2adf0da6f7ff8f20d (diff)
downloadgem5-68fdccb30bd85cd99823fb411ec7ae67112062d7.tar.xz
ruby: Fix regressions and make Ruby configs Python packages
This patch moves the addition of network options into the Ruby module to avoid the regressions all having to add it explicitly. Doing this exposes an issue in our current config system though, namely the fact that addtoPath is relative to the Python script being executed. Since both example and regression scripts use the Ruby module we would end up with two different (relative) paths being added. Instead we take a first step at turning the config modules into Python packages, simply by adding a __init__.py in the configs/ruby, configs/topologies and configs/network subdirectories. As a result, we can now add the top-level configs directory to the Python search path, and then use the package names in the various modules. The example scripts are also updated, and the messy path-deducing variations in the scripts are unified.
Diffstat (limited to 'configs/ruby/Ruby.py')
-rw-r--r--configs/ruby/Ruby.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index 2670c678a..a82f6dc5c 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -46,10 +46,9 @@ from m5.defines import buildEnv
from m5.util import addToPath, fatal
import MemConfig
-addToPath('../topologies')
-addToPath('../network')
-import Network
+from topologies import *
+from network import Network
def define_options(parser):
# By default, ruby uses the simple timing cpu
@@ -80,6 +79,7 @@ def define_options(parser):
protocol = buildEnv['PROTOCOL']
exec "import %s" % protocol
eval("%s.define_options(parser)" % protocol)
+ Network.define_options(parser)
def setup_memory_controllers(system, ruby, dir_cntrls, options):
ruby.block_size_bytes = options.cacheline_size
@@ -141,7 +141,7 @@ def create_topology(controllers, options):
found in configs/topologies/BaseTopology.py
This is a wrapper for the legacy topologies.
"""
- exec "import %s as Topo" % options.topology
+ exec "import topologies.%s as Topo" % options.topology
topology = eval("Topo.%s(controllers)" % options.topology)
return topology