Hi Jason,
Thanks for the response. I'll check it out and see what I can do. :D
--
Artyom
artyom...@hust.edu.cn
On 3/28/22 23:04, Jason Lowe-Power via gem5-users wrote:
Hi Artyom,
You're absolutely right that the tutorial needs to be updated! The
website is also open source and managed via a git repo:
https://gem5.googlesource.com/public/gem5-website/
<https://gem5.googlesource.com/public/gem5-website/>. Updating this
would be a good way to get started contributing to gem5 :).
By the way, for the namespace, you can also wrap the file in the
following so you don't have to explicitly use namespaces everywhere:
```
namespace gem5
{
<your code>
}
```
Cheers,
Jason
On Sat, Mar 26, 2022 at 10:57 PM Artyom Liu via gem5-users
<gem5-users@gem5.org <mailto:gem5-users@gem5.org>> wrote:
Hi,
The problem is solved by literally adding a new parameter `sim_objects`.
> SimObject("HelloObject.py", sim_objects = ["HelloObject"])
But I find yet another problem with the tutorial: the code that use
classes from gem5 is missing namespace declaration. For example, the
class `SimObject` is under namespace `gem5`, but the tutorial is using
it directly. It makes the compiler unable to find the class.
```
#ifndef __LEARNING_GEM5_HELLO_OBJECT_HH__
#define __LEARNING_GEM5_HELLO_OBJECT_HH__
#include "params/HelloObject.hh"
#include "sim/sim_object.hh"
class HelloObject : public SimObject
{
public:
HelloObject(const HelloObjectParams &p);
};
#endif // __LEARNING_GEM5_HELLO_OBJECT_HH__
```
For the compiler to work, we should use `gem5::SimObject` instead. And
`gem5::HelloObjectParams` for the same reason.
None of the problems are mentioned in the tutorial. I wonder if it is
necessary to *update* the tutorial?
Artyom
artyom...@hust.edu.cn <mailto:artyom...@hust.edu.cn>
On 3/27/22 10:05, Artyom Liu wrote:
> Hi,
>
> I'm new to gem5 and just start learning by following the tutorial on
> gem5.org <http://gem5.org>. However, there's a problem when I try
to create my custom
> object[1].
>
> [1]:
https://www.gem5.org/documentation/learning_gem5/part2/helloobject/
<https://www.gem5.org/documentation/learning_gem5/part2/helloobject/>
>
> I follow exactly the guide, but I fail to re-compile with scons. The
> error message as below.
>
> > Error: SimObject(HelloObject.py...) must list c++ sim_objects or
> enums > (set either to [] if there are none).
>
> My gem5 version is Version 21.2.1.0, and I noticed that there's
an *API
> change* about SimObject declaration in Version 21.2.0.0,
requiring that
> sim_object parameter of SimObject declaration "should list all
SimObject
> classes which have a type attribute defined".
>
> It matches the error message. So I wonder how could I change my
> SConscript to fit this change? My current SConscript is from the
tutorial.
>
> ```
> Import("*")
>
> SimObject("HelloObject.py")
> Source("hello_object.py")
> ```
>
> Artyom
> artyom...@hust.edu.cn <mailto:artyom...@hust.edu.cn>
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
<mailto:gem5-users@gem5.org>
To unsubscribe send an email to gem5-users-le...@gem5.org
<mailto:gem5-users-le...@gem5.org>
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s