[gem5-dev] Change in gem5/gem5[develop]: tests: Remove the stattest "UnitTest".

2021-05-06 Thread Gabe Black (Gerrit) via gem5-dev
Gabe Black has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45166 )



Change subject: tests: Remove the stattest "UnitTest".
..

tests: Remove the stattest "UnitTest".

This "UnitTest" would compile against and exercise the various stats
types in gem5, but did not verify that anything that happened was
correct. It was also not really a unit test in the sense that while it
did try to do something fairly specific, it did that using an
arbitrarily large portion of gem5.

Actual unit tests using the googletest framework are a more appropriate
way to test these mechanisms.

Change-Id: I3b424e9f5ffcf41f7de1cb42e6a222bf1c40054a
---
D src/unittest/SConscript
D src/unittest/stattest.cc
D src/unittest/stattestmain.py
3 files changed, 0 insertions(+), 743 deletions(-)



diff --git a/src/unittest/SConscript b/src/unittest/SConscript
deleted file mode 100644
index 43eb16a..000
--- a/src/unittest/SConscript
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- mode:python -*-
-
-# Copyright (c) 2004-2005 The Regents of The University of Michigan
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-Import('*')
-
-stattest_py = PySource('m5', 'stattestmain.py', tags='stattest')
-UnitTest('stattest', 'stattest.cc', with_tag('stattest'), main=True)
diff --git a/src/unittest/stattest.cc b/src/unittest/stattest.cc
deleted file mode 100644
index 7e80669..000
--- a/src/unittest/stattest.cc
+++ /dev/null
@@ -1,692 +0,0 @@
-/*
- * Copyright (c) 2003-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "pybind11/pybind11.h"
-
-#include 
-#include 
-#include 
-
-#include "base/cprintf.hh"
-#include "base/logging.hh"
-#include "base/statistics.hh"
-#include "base/types.hh"
-#include "sim/core.hh"
-#include "sim/eventq.hh"
-#include "sim/init.hh"
-#include "sim/stat_control.hh"
-
-namespace py = pybind11;
-
-// override the default main() code for this unittest
-const char 

[gem5-dev] Change in gem5/gem5[develop]: tests: Delete the nmtest "UnitTest".

2021-05-06 Thread Gabe Black (Gerrit) via gem5-dev
Gabe Black has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45165 )



Change subject: tests: Delete the nmtest "UnitTest".
..

tests: Delete the nmtest "UnitTest".

This "UnitTest" actually links against all of gem5, and can be used to
look at a binary and find either what symbol goes with an address, or
what address goes with a symbol.

While that could be a useful thing to want to do, there are other ways
to do that with external tools. Also, other than by seeing if this tool
compiles and manually seeing if it returns reasonable results, this
doesn't really actually test anything.

Finally, this is one of the old style "UnitTest"s, quotes intentional,
since while it may try to do a fairly specific thing, it actually
exercises an arbitrarily large portion of gem5 as a whole to do it, does
not self report success or failure, contain any test cases or input data
or expected output, and is not run automatically as part of our testing
suite.

Tests for the underlying classes in the Loader namespace would be/are
more appropriate, and make this test unnecessary.

Change-Id: I48db315d3da440fd26be0a81cc8e07affcacda46
---
M src/unittest/SConscript
D src/unittest/nmtest.cc
2 files changed, 0 insertions(+), 74 deletions(-)



diff --git a/src/unittest/SConscript b/src/unittest/SConscript
index 5008066..43eb16a 100644
--- a/src/unittest/SConscript
+++ b/src/unittest/SConscript
@@ -28,7 +28,5 @@

 Import('*')

-UnitTest('nmtest', 'nmtest.cc')
-
 stattest_py = PySource('m5', 'stattestmain.py', tags='stattest')
 UnitTest('stattest', 'stattest.cc', with_tag('stattest'), main=True)
diff --git a/src/unittest/nmtest.cc b/src/unittest/nmtest.cc
deleted file mode 100644
index fd24524..000
--- a/src/unittest/nmtest.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (c) 2002-2005 The Regents of The University of Michigan
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include 
-#include 
-#include 
-
-#include "base/loader/object_file.hh"
-#include "base/logging.hh"
-#include "base/str.hh"
-
-int
-main(int argc, char *argv[])
-{
-if (argc != 2 && argc != 3)
-panic("usage: %s  \n", argv[0]);
-
-auto *obj = Loader::createObjectFile(argv[1]);
-if (!obj)
-panic("file not found\n");
-
-if (argc == 2) {
-for (const Loader::Symbol : obj->symtab())
-cprintf("%#x %s\n", symbol.address, symbol.name);
-} else {
-std::string symbol = argv[2];
-Addr address;
-
-if (symbol[0] == '0' && symbol[1] == 'x') {
-Loader::SymbolTable::const_iterator it;
-if (to_number(symbol, address) &&
-(it = obj->symtab().find(address)) != obj->symtab().end())  
{

-cprintf("address = %#x, symbol = %s\n", address, it->name);
-} else {
-cprintf("address = %#x was not found\n", address);
-}
-} else {
-auto it = obj->symtab().find(symbol);
-if (it != obj->symtab().end())
-cprintf("symbol = %s address = %#x\n", symbol,  
it->address);

-else
-cprintf("symbol = %s was not found\n", symbol);
-}
-}
-
-return 0;
-}

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/45165
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5

[gem5-dev] Change in gem5/gem5[develop]: misc: Delete the unittest/genini.py script.

2021-05-06 Thread Gabe Black (Gerrit) via gem5-dev
Gabe Black has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45167 )



Change subject: misc: Delete the unittest/genini.py script.
..

misc: Delete the unittest/genini.py script.

It looks like this script was intended to be used to generate config.ini
files from a given gem5 configuration, although some of the functions
and paths it uses are quite obsolete and won't work any more, for
instance m5execfile and the util/pbs directory.

The currently recommended way to generate a config.ini file is to run a
configurtion up to the point it would be generated and then stop it,
that *will* work today, and while it's not necessarily elegant to have
to run a simulation to an arbitrary point and then kill it, relying on
the config.ini itself, an intermediate artifact, is also not
particularly elegant.

Rather than move this script to util or config, either of which would be
a more appropriate home for it, and then also attempting to fix it up to
work with modern gem5, where it may then still sit unused and forgotten,
it's better to just delete it and rely on the other existing method.

Change-Id: I1ae2842730bbe5e76549eb1d962d7d30fb5edfc0
---
D src/unittest/genini.py
1 file changed, 0 insertions(+), 72 deletions(-)



diff --git a/src/unittest/genini.py b/src/unittest/genini.py
deleted file mode 100755
index 854ce02..000
--- a/src/unittest/genini.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python2.7
-# Copyright (c) 2005 The Regents of The University of Michigan
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import getopt, os, os.path, sys
-from os.path import join as joinpath, realpath
-
-mypath = sys.path[0]
-sys.path.append(joinpath(mypath, '..'))
-sys.path.append(joinpath(mypath, '../python'))
-sys.path.append(joinpath(mypath, '../util/pbs'))
-
-pathlist = [ '.' ]
-
-m5_build_env = {}
-
-try:
-opts, args = getopt.getopt(sys.argv[1:], '-E:I:')
-for opt,arg in opts:
-if opt == '-E':
-offset = arg.find('=')
-if offset == -1:
-name = arg
-value = 'True'
-else:
-name = arg[:offset]
-value = arg[offset+1:]
-os.environ[name] = value
-m5_build_env[name] = value
-if opt == '-I':
-pathlist.append(arg)
-except getopt.GetoptError:
-sys.exit('Improper Usage')
-
-import __main__
-__main__.m5_build_env = m5_build_env
-
-from m5 import *
-
-for path in pathlist:
-AddToPath(path)
-
-for arg in args:
-m5execfile(arg, globals())
-
-if 'root' in globals() and isinstance(root, Root):
-instantiate(root)
-else:
-print("Instantiation skipped: no root object found.")

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/45167
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: I1ae2842730bbe5e76549eb1d962d7d30fb5edfc0
Gerrit-Change-Number: 45167
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Change in gem5/gem5[develop]: scons,tests: Delete support for the UnitTest scons class/function.

2021-05-06 Thread Gabe Black (Gerrit) via gem5-dev
Gabe Black has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45168 )



Change subject: scons,tests: Delete support for the UnitTest scons  
class/function.

..

scons,tests: Delete support for the UnitTest scons class/function.

There are no more UnitTest()s, and we shouldn't write any new ones.
Delete the function-like class used to set them up.

Change-Id: Ia353cf698c907b5c7f7c383495f611089fa8b019
---
M src/SConscript
1 file changed, 0 insertions(+), 17 deletions(-)



diff --git a/src/SConscript b/src/SConscript
index bf2d22e..41ae1ad 100644
--- a/src/SConscript
+++ b/src/SConscript
@@ -589,22 +589,6 @@
 else:
 return env.Program(self.path(env), objs)

-class UnitTest(Executable):
-'''Create a UnitTest'''
-def __init__(self, target, *srcs_and_filts, **kwargs):
-super(UnitTest, self).__init__(target, *srcs_and_filts)
-
-self.main = kwargs.get('main', False)
-
-def declare(self, env):
-sources = list(self.sources)
-for f in self.filters:
-sources += Source.all.apply_filter(env, f)
-objs = self.srcs_to_objs(env, sources) + env['STATIC_OBJS']
-if self.main:
-objs += env['MAIN_OBJS']
-return super(UnitTest, self).declare(env, objs)
-
 class GTest(Executable):
 '''Create a unit test based on the google test framework.'''
 all = []
@@ -660,7 +644,6 @@
 Export('ProtoBuf')
 Export('GrpcProtoBuf')
 Export('Executable')
-Export('UnitTest')
 Export('GTest')

 

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/45168
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: Ia353cf698c907b5c7f7c383495f611089fa8b019
Gerrit-Change-Number: 45168
Gerrit-PatchSet: 1
Gerrit-Owner: Gabe Black 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: gem5 namespace

2021-05-06 Thread Gabe Black via gem5-dev
Be warned though, that there are some pitfalls with this namespace
deprecation approach. The namespaces here are not actually equivalent, and
so the old deprecated namespace can have things added to it that won't show
up in the new one. This is probably not that big a deal in practice, and
should be pretty useful letting people know what's going on, but it's still
important to be aware of limitations.

Gabe

On Thu, May 6, 2021 at 7:36 AM Jason Lowe-Power via gem5-dev <
gem5-dev@gem5.org> wrote:

> Thanks for putting this all together, Daniel!
>
> IMO, we should do our best with providing deprecation notices, but not
> bend over backwards. For things that are easy to add deprecations to (e.g.,
> function names / class names) we should do it, and for things that have a
> big impact on our users we should provide the warnings. However, if it's
> very difficult to provide the notice *and* if it's for something that is
> unlikely to affect users, then the deprecation warnings are less important.
>
> Example: if we change `panic` to `gem5_panic` (or `GEM5_PANIC`?) we
> definitely need a deprecation warning. This will significantly impact
> users. If, on the other hand, we change a macro that is used in exactly one
> place, it's probably less important
>
> Thanks for coming up with a way to do namespaces! This will be useful.
>
> Cheers,
> Jason
>
> On Thu, May 6, 2021 at 7:06 AM Daniel Carvalho via gem5-dev <
> gem5-dev@gem5.org> wrote:
>
>> Glad to see that we are reaching a consensus! Then we will create the
>> "gem5" namespace, rename (most) macros to use a "GEM5_" prefix, and will
>> rename all namespaces to snake case.
>>
>>
>> I agree that we should do the renaming on a case-by-case basis. I've
>> created a new Jira Epic to cover converting all namespaces to snake case:
>> https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-974
>> .
>>
>>
>> Regarding deprecating namespaces, aliases cannot be assigned attributes
>> (thus they cannot be marked as deprecated), but I believe this will do the
>> trick:
>>
>>
>> #define GEM5_DEPRECATE_NAMESPACE(old_namespace, new_namespace) \
>> namespace [[gnu::deprecated("Please use the new namespace: '" \
>> #new_namespace "'")]] old_namespace { \
>> using namespace new_namespace; \
>> }
>>
>>
>> Example:
>>
>>
>> // Suppose we want to rename a namespace from Test to test
>> namespace test {
>> int var;
>> }
>> // This can be added to the base file (i.e., the one we know
>> everybody will include)
>> GEM5_DEPRECATE_NAMESPACE(Test, test)
>>
>> ...
>>
>> // In code, somewhere:
>> test::var = 2; // Does not show deprecation warning
>> Test::var = 2; // Shows deprecation warning
>>
>>
>> Cheers,
>>
>> Daniel
>> Em quarta-feira, 5 de maio de 2021 23:28:31 BRT, Gabe Black via gem5-dev <
>> gem5-dev@gem5.org> escreveu:
>>
>>
>> Yeah, we don't have a ton of namespaces already, but having two copies of
>> all of them for a while might be messy. I also don't think you can really
>> mark a namespace as deprecated without even more macro trickery.
>>
>> Using snake case for the namespaces would be a change to acclimate to and
>> I'm not *excited* to make a big change like that, especially to something
>> I'm so used to, but importantly it would maintain consistency which is
>> arguably more important. It would bring us in line with namespaces like
>> "std" too, which, given how common it is, wouldn't be the worst thing.
>>
>> We would have to be careful that short, simple namespace names like
>> "loader" don't conflict with existing local variable names. Given the
>> potential for problems there and that we only have a handful of namespaces
>> currently, it might make sense to convert each namespace one by one, which
>> might make it easier to deal with fallout.
>>
>> Gabe
>>
>> On Wed, May 5, 2021 at 6:45 AM Giacomo Travaglini via gem5-dev <
>> gem5-dev@gem5.org> wrote:
>>
>> Hi all,
>>
>> I agree with Daniel's analysis and solution, as enforcing snake_case for
>> namespaces would probably make everyone happy.
>> We could in theory adopt namespace aliases for backward compatibility, to
>> transition smoothly from one "convention" (PascalCase for namespaces is not
>> mentioned in our coding style) to the other, but I think it will complicate
>> things even further.
>>
>> Kind Regards
>>
>> Giacomo
>>
>> > -Original Message-
>> > From: Jason Lowe-Power via gem5-dev 
>> > Sent: 03 May 2021 21:27
>> > To: gem5 Developer List 
>> > Cc: Jason Lowe-Power 
>> > Subject: [gem5-dev] Re: gem5 namespace
>> >
>> > Hey Daniel,
>> >
>> > Sorry, I didn't mean to add to the confusion :). I may have gotten my
>> case
>> > names confused! Also, I really appreciate the thoughtfulness and effort
>> > you're putting into this conversation! I believe I agree with your
>> email below.
>> >
>> >
>> > I think that most people don't care that much (which is why we haven't
>> heard
>> > from many). 

[gem5-dev] Re: Build failed in Jenkins: Compiler-Checks #65

2021-05-06 Thread Bobby Bruce via gem5-dev
This can be ignored. Just a hiccup during the Jenkins migration process :).
--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net


On Thu, May 6, 2021 at 3:57 PM jenkins-no-reply--- via gem5-dev <
gem5-dev@gem5.org> wrote:

> See <
> https://jenkins.gem5.org/job/Compiler-Checks/65/display/redirect?page=changes
> >
>
> Changes:
>
> [shingarov] arch-power: Fix disassembly for branch instructions
>
> [Bobby R. Bruce] arch-gcn3: Add missing overrides
>
> [shingarov] arch-power: Add TAR and associated instructions
>
> [Giacomo Travaglini] base: Add DPRINTFV macro
>
> [chesp3] dev-amdgpu: Add initial AMDGPU device
>
> [hoanguyen] base: Add warnings for legacy stats
>
> [hoanguyen] util-docker: Use python3 by default for Ubuntu 18.04 docker
> images
>
>
> --
> Started by user Bobby R. Bruce
> Running as SYSTEM
> Building in workspace 
> Selected Git installation does not exist. Using Default
> The recommended git tool is: NONE
> No credentials specified
>  > git rev-parse --resolve-git-dir <
> https://jenkins.gem5.org/job/Compiler-Checks/ws/.git> # timeout=10
> Fetching changes from the remote Git repository
>  > git config remote.origin.url https://gem5.googlesource.com/public/gem5
> # timeout=10
> Fetching upstream changes from https://gem5.googlesource.com/public/gem5
>  > git --version # timeout=10
>  > git --version # 'git version 2.25.1'
>  > git fetch --tags --force --progress --
> https://gem5.googlesource.com/public/gem5
> +refs/heads/*:refs/remotes/origin/* # timeout=10
>  > git rev-parse refs/remotes/origin/develop^{commit} # timeout=10
> Checking out Revision 808056ce4e2c56415062e0a455851c1bedc8d9cd
> (refs/remotes/origin/develop)
>  > git config core.sparsecheckout # timeout=10
>  > git checkout -f 808056ce4e2c56415062e0a455851c1bedc8d9cd # timeout=10
> Commit message: "util-docker: Use python3 by default for Ubuntu 18.04
> docker images"
>  > git rev-list --no-walk 1517cdf8a7b2044f3902d0f39c0c691557783852 #
> timeout=10
> [Compiler-Checks] $ /bin/sh -xe /tmp/jenkins8662611937869613696.sh
> + ./util/compiler-tests.sh -j 4
> Starting build tests with 'gcc-version-10'...
> 'gcc-version-10' was found in the comprehensive tests. All ISAs will be
> built.
> ./util/compiler-tests.sh: line 97: docker: command not found
>   * Building target 'RISCV.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'RISCV.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'X86_MOESI_AMD_Base.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'X86_MOESI_AMD_Base.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'POWER.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'POWER.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'SPARC.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'SPARC.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'X86.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'X86.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MESI_Two_Level.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MESI_Two_Level.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_CMP_directory.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_CMP_directory.fast' with
> 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'MIPS.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'MIPS.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'ARM.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'ARM.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_hammer.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'NULL_MOESI_hammer.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'GCN3_X86.opt' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building target 'GCN3_X86.fast' with 'gcc-version-10'...
>   ! Failed with exit code 127.
>   * Building 

[gem5-dev] Jenkins Server migrated to UC Davis. Web Portal temporarily unavailable.

2021-05-06 Thread Bobby Bruce via gem5-dev
Dear all,

In order to save the project some money, the Jenkins server has been moved
from the cloud to a server at UC Davis. This is a temporary solution until
we can find our Jenkins instance a more permanent home.

The only important thing to note is that, in order to keep the UC Davis
machine secure, we have not exposed the Jenkin's web-portal to the outside
world. I apologize for this inconvenience. However, you can continue to
monitor the progress of Jenkins' runs through the mailing list, where build
failures will be reported as usual.

Kind regards.
Bobby
--
Dr. Bobby R. Bruce
Room 2235,
Kemper Hall, UC Davis
Davis,
CA, 95616

web: https://www.bobbybruce.net
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Build failed in Jenkins: Compiler-Checks #65

2021-05-06 Thread jenkins-no-reply--- via gem5-dev
See 


Changes:

[shingarov] arch-power: Fix disassembly for branch instructions

[Bobby R. Bruce] arch-gcn3: Add missing overrides

[shingarov] arch-power: Add TAR and associated instructions

[Giacomo Travaglini] base: Add DPRINTFV macro

[chesp3] dev-amdgpu: Add initial AMDGPU device

[hoanguyen] base: Add warnings for legacy stats

[hoanguyen] util-docker: Use python3 by default for Ubuntu 18.04 docker images


--
Started by user Bobby R. Bruce
Running as SYSTEM
Building in workspace 
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
 > git rev-parse --resolve-git-dir 
 >  # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://gem5.googlesource.com/public/gem5 # 
 > timeout=10
Fetching upstream changes from https://gem5.googlesource.com/public/gem5
 > git --version # timeout=10
 > git --version # 'git version 2.25.1'
 > git fetch --tags --force --progress -- 
 > https://gem5.googlesource.com/public/gem5 
 > +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/develop^{commit} # timeout=10
Checking out Revision 808056ce4e2c56415062e0a455851c1bedc8d9cd 
(refs/remotes/origin/develop)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 808056ce4e2c56415062e0a455851c1bedc8d9cd # timeout=10
Commit message: "util-docker: Use python3 by default for Ubuntu 18.04 docker 
images"
 > git rev-list --no-walk 1517cdf8a7b2044f3902d0f39c0c691557783852 # timeout=10
[Compiler-Checks] $ /bin/sh -xe /tmp/jenkins8662611937869613696.sh
+ ./util/compiler-tests.sh -j 4
Starting build tests with 'gcc-version-10'...
'gcc-version-10' was found in the comprehensive tests. All ISAs will be built.
./util/compiler-tests.sh: line 97: docker: command not found
  * Building target 'RISCV.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'RISCV.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'X86_MOESI_AMD_Base.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'X86_MOESI_AMD_Base.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'POWER.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'POWER.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'SPARC.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'SPARC.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'X86.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'X86.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MESI_Two_Level.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MESI_Two_Level.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_CMP_directory.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_CMP_directory.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'MIPS.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'MIPS.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'ARM.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'ARM.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_CMP_token.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_CMP_token.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'ARM_MESI_Three_Level.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'ARM_MESI_Three_Level.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_hammer.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'NULL_MOESI_hammer.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'GCN3_X86.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'GCN3_X86.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'Garnet_standalone.opt' with 'gcc-version-10'...
  ! Failed with exit code 127.
  * Building target 'Garnet_standalone.fast' with 'gcc-version-10'...
  ! Failed with exit code 127.
Starting build tests with 'gcc-version-9'...
./util/compiler-tests.sh: line 97: docker: command not found
  * Building target 'GCN3_X86.opt' with 'gcc-version-9'...
  ! Failed with exit code 127.
  * Building target 'GCN3_X86.fast' with 'gcc-version-9'...
  ! Failed with exit code 

[gem5-dev] Change in gem5/gem5[minor-release-staging-v21-0-1]: util,arch-gcn3: Fixing gcn-gpu Dockerfile to v21-0 bucket

2021-05-06 Thread Bobby R. Bruce (Gerrit) via gem5-dev
Bobby R. Bruce has uploaded this change for review. (  
https://gem5-review.googlesource.com/c/public/gem5/+/45146 )



Change subject: util,arch-gcn3: Fixing gcn-gpu Dockerfile to v21-0 bucket
..

util,arch-gcn3: Fixing gcn-gpu Dockerfile to v21-0 bucket

Was previously pointing towards the "develop" bucket which is subject to
change over time.

Change-Id: I769d8ac5dc2348e5a6477d75d883cc2a3add7bd3
---
M util/dockerfiles/gcn-gpu/Dockerfile
1 file changed, 1 insertion(+), 1 deletion(-)



diff --git a/util/dockerfiles/gcn-gpu/Dockerfile  
b/util/dockerfiles/gcn-gpu/Dockerfile

index e5683ab..2f5d1b4 100644
--- a/util/dockerfiles/gcn-gpu/Dockerfile
+++ b/util/dockerfiles/gcn-gpu/Dockerfile
@@ -52,7 +52,7 @@
 RUN python3 get-pip.py
 RUN pip install -U setuptools scons==3.1.2 six

-ARG gem5_dist=http://dist.gem5.org/dist/develop
+ARG gem5_dist=http://dist.gem5.org/dist/v21-0

 # Install ROCm 1.6 binaries
 RUN wget -qO- ${gem5_dist}/apt_1.6.4.tar.bz2 \

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/45146
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: minor-release-staging-v21-0-1
Gerrit-Change-Id: I769d8ac5dc2348e5a6477d75d883cc2a3add7bd3
Gerrit-Change-Number: 45146
Gerrit-PatchSet: 1
Gerrit-Owner: Bobby R. Bruce 
Gerrit-MessageType: newchange
___
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

[gem5-dev] Re: gem5 namespace

2021-05-06 Thread Jason Lowe-Power via gem5-dev
Thanks for putting this all together, Daniel!

IMO, we should do our best with providing deprecation notices, but not bend
over backwards. For things that are easy to add deprecations to (e.g.,
function names / class names) we should do it, and for things that have a
big impact on our users we should provide the warnings. However, if it's
very difficult to provide the notice *and* if it's for something that is
unlikely to affect users, then the deprecation warnings are less important.

Example: if we change `panic` to `gem5_panic` (or `GEM5_PANIC`?) we
definitely need a deprecation warning. This will significantly impact
users. If, on the other hand, we change a macro that is used in exactly one
place, it's probably less important

Thanks for coming up with a way to do namespaces! This will be useful.

Cheers,
Jason

On Thu, May 6, 2021 at 7:06 AM Daniel Carvalho via gem5-dev <
gem5-dev@gem5.org> wrote:

> Glad to see that we are reaching a consensus! Then we will create the
> "gem5" namespace, rename (most) macros to use a "GEM5_" prefix, and will
> rename all namespaces to snake case.
>
>
> I agree that we should do the renaming on a case-by-case basis. I've
> created a new Jira Epic to cover converting all namespaces to snake case:
> https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-974 .
>
>
> Regarding deprecating namespaces, aliases cannot be assigned attributes
> (thus they cannot be marked as deprecated), but I believe this will do the
> trick:
>
>
> #define GEM5_DEPRECATE_NAMESPACE(old_namespace, new_namespace) \
> namespace [[gnu::deprecated("Please use the new namespace: '" \
> #new_namespace "'")]] old_namespace { \
> using namespace new_namespace; \
> }
>
>
> Example:
>
>
> // Suppose we want to rename a namespace from Test to test
> namespace test {
> int var;
> }
> // This can be added to the base file (i.e., the one we know everybody
> will include)
> GEM5_DEPRECATE_NAMESPACE(Test, test)
>
> ...
>
> // In code, somewhere:
> test::var = 2; // Does not show deprecation warning
> Test::var = 2; // Shows deprecation warning
>
>
> Cheers,
>
> Daniel
> Em quarta-feira, 5 de maio de 2021 23:28:31 BRT, Gabe Black via gem5-dev <
> gem5-dev@gem5.org> escreveu:
>
>
> Yeah, we don't have a ton of namespaces already, but having two copies of
> all of them for a while might be messy. I also don't think you can really
> mark a namespace as deprecated without even more macro trickery.
>
> Using snake case for the namespaces would be a change to acclimate to and
> I'm not *excited* to make a big change like that, especially to something
> I'm so used to, but importantly it would maintain consistency which is
> arguably more important. It would bring us in line with namespaces like
> "std" too, which, given how common it is, wouldn't be the worst thing.
>
> We would have to be careful that short, simple namespace names like
> "loader" don't conflict with existing local variable names. Given the
> potential for problems there and that we only have a handful of namespaces
> currently, it might make sense to convert each namespace one by one, which
> might make it easier to deal with fallout.
>
> Gabe
>
> On Wed, May 5, 2021 at 6:45 AM Giacomo Travaglini via gem5-dev <
> gem5-dev@gem5.org> wrote:
>
> Hi all,
>
> I agree with Daniel's analysis and solution, as enforcing snake_case for
> namespaces would probably make everyone happy.
> We could in theory adopt namespace aliases for backward compatibility, to
> transition smoothly from one "convention" (PascalCase for namespaces is not
> mentioned in our coding style) to the other, but I think it will complicate
> things even further.
>
> Kind Regards
>
> Giacomo
>
> > -Original Message-
> > From: Jason Lowe-Power via gem5-dev 
> > Sent: 03 May 2021 21:27
> > To: gem5 Developer List 
> > Cc: Jason Lowe-Power 
> > Subject: [gem5-dev] Re: gem5 namespace
> >
> > Hey Daniel,
> >
> > Sorry, I didn't mean to add to the confusion :). I may have gotten my
> case
> > names confused! Also, I really appreciate the thoughtfulness and effort
> > you're putting into this conversation! I believe I agree with your email
> below.
> >
> >
> > I think that most people don't care that much (which is why we haven't
> heard
> > from many). From my experience, our users only care when they get merge
> > conflicts :D. That said, I'm not sure if "straightforward" is a way most
> of our
> > users ever feel about merge conflicts. IMO, stability and ease of update
> > should be high priority. If we are going to be changing names, etc. in a
> way
> > that means external users of gem5 will have compiler errors, we should
> > probably provide backwards compatibility and warnings. Most of our users
> > are not software engineers and do not have as much experience with git,
> > compilers, etc. as we do.
> >
> >
> > Cheers,
> > Jason
> >
> >
> > On Mon, May 3, 2021 at 12:40 PM Daniel 

[gem5-dev] Re: gem5 namespace

2021-05-06 Thread Daniel Carvalho via gem5-dev
 Glad to see that we are reaching a consensus! Then we will create the "gem5" 
namespace, rename (most) macros to use a "GEM5_" prefix, and will rename all 
namespaces to snake case.


I agree that we should do the renaming on a case-by-case basis. I've created a 
new Jira Epic to cover converting all namespaces to snake case: 
https://gem5.atlassian.net/jira/software/c/projects/GEM5/issues/GEM5-974 .

Regarding deprecating namespaces, aliases cannot be assigned attributes (thus 
they cannot be marked as deprecated), but I believe this will do the trick: 

    #define GEM5_DEPRECATE_NAMESPACE(old_namespace, new_namespace) \    
namespace [[gnu::deprecated("Please use the new namespace: '" \
    #new_namespace "'")]] old_namespace { \
    using namespace new_namespace; \
        }


Example:

    // Suppose we want to rename a namespace from Test to test
    namespace test {    int var;
    }    // This can be added to the base file (i.e., the one we know everybody 
will include)
    GEM5_DEPRECATE_NAMESPACE(Test, test)
    ...
    // In code, somewhere:    test::var = 2; // Does not show deprecation 
warning
    Test::var = 2; // Shows deprecation warning

Cheers,
Daniel
Em quarta-feira, 5 de maio de 2021 23:28:31 BRT, Gabe Black via gem5-dev 
 escreveu:  
 
 Yeah, we don't have a ton of namespaces already, but having two copies of all 
of them for a while might be messy. I also don't think you can really mark a 
namespace as deprecated without even more macro trickery.
Using snake case for the namespaces would be a change to acclimate to and I'm 
not *excited* to make a big change like that, especially to something I'm so 
used to, but importantly it would maintain consistency which is arguably more 
important. It would bring us in line with namespaces like "std" too, which, 
given how common it is, wouldn't be the worst thing.
We would have to be careful that short, simple namespace names like "loader" 
don't conflict with existing local variable names. Given the potential for 
problems there and that we only have a handful of namespaces currently, it 
might make sense to convert each namespace one by one, which might make it 
easier to deal with fallout.
Gabe
On Wed, May 5, 2021 at 6:45 AM Giacomo Travaglini via gem5-dev 
 wrote:

Hi all,

I agree with Daniel's analysis and solution, as enforcing snake_case for 
namespaces would probably make everyone happy.
We could in theory adopt namespace aliases for backward compatibility, to 
transition smoothly from one "convention" (PascalCase for namespaces is not 
mentioned in our coding style) to the other, but I think it will complicate 
things even further.

Kind Regards

Giacomo

> -Original Message-
> From: Jason Lowe-Power via gem5-dev 
> Sent: 03 May 2021 21:27
> To: gem5 Developer List 
> Cc: Jason Lowe-Power 
> Subject: [gem5-dev] Re: gem5 namespace
>
> Hey Daniel,
>
> Sorry, I didn't mean to add to the confusion :). I may have gotten my case
> names confused! Also, I really appreciate the thoughtfulness and effort
> you're putting into this conversation! I believe I agree with your email 
> below.
>
>
> I think that most people don't care that much (which is why we haven't heard
> from many). From my experience, our users only care when they get merge
> conflicts :D. That said, I'm not sure if "straightforward" is a way most of 
> our
> users ever feel about merge conflicts. IMO, stability and ease of update
> should be high priority. If we are going to be changing names, etc. in a way
> that means external users of gem5 will have compiler errors, we should
> probably provide backwards compatibility and warnings. Most of our users
> are not software engineers and do not have as much experience with git,
> compilers, etc. as we do.
>
>
> Cheers,
> Jason
>
>
> On Mon, May 3, 2021 at 12:40 PM Daniel Carvalho via gem5-dev  d...@gem5.org  > wrote:
>
>
>       I'm confused, Jason. I thought you were in favor of adopting snake
> case as a "general convention" (i.e., "the google way"), so by adopting snake
> case we would be adopting the "general convention", not forging our own
> path. However, if by "general convention" you mean "the convention vastly
> adopted by gem5", I don't have the exact numbers, but I'd guess it is 70%
> pascal, 30% snake case - i.e., IMHO, not a "general convention", just a
> preference. Adding "gem5" or "Gem5" would only extend this mess, not add
> an exception.
>
>       Regarding changing the name of the variable, indeed, it is not a
> necessary step.
>
>       Again, as stated before, I don't care which solution is taken. The
> important thing is to come to a decision that appeases most community
> members; however, it is hard to reach a consensus when we seem to have
> strong opinions on both sides, yet we only have 5 votes. That is why I have
> suggested officially adopting snake case namespaces: it would solve the
> "gem5 VS Gem5" problem, it is feasible to do it