On Thu, Aug 5, 2021 at 3:08 PM Bobby Bruce <bbr...@ucdavis.edu> wrote:

> Hey Gabe,
>
> Just so we're on the same page, I'd like to take a moment to outline how I
> understand this problem/solution. Please let me know if I've understood
> correctly:
>
> We essentially have three components of the project which interpret gem5
> Python code: The gem5 binary, the Marshal binary, and the Scons build
> system. The gem5 and Marshal binaries both link to the Python library, so
> we have no problems there; they should interpret things identically. The
> problematic entity is Scons which will use the host python executable when
> processing Simobjects et al. at compile time. Your solution is to offload
> the relevant Scons gem5 Python interpretations/auto-generations to the
> Marshal binary where they'll use the Python library. Is this correct?
>

Correct.


>
> If so, I support this move as it makes things considerably easier to work
> with. While there is the small `--without-python` drawback, I don't
> personally see this being a big problem for the vast majority of users.
>

Ok, great. I'll move forward with that then.


>
>
> I do have a few of questions (I'm not sure if you an answer them, but may
> be something to think about):
>
> 1) Will this make it easier to embed configuration scripts (such as those
> found in the `configs` directory) into the gem5 binary?
>

That would be orthogonal to this. You could more or less do that today,
although I think in most cases you wouldn't want to since then you'd have
to recompile gem5 to change them.


> 2) Will this change the way we add new SimObjects or will it be
> more-or-less identical as before?
>

There should be no change. Unrelated to this, the more I dig around in how
SimObjects are set up the more I think we may need to change something
there, but I haven't thought about that enough to know for sure if that's
necessary, or what a better system might look like.


> 3) One of our goals moving forward is to enforce more Python type
> annotations so we can use tools such as MyPy. We've had some problems
> running this with this due to embedding (i.e., we can't just point MyPy at
> a SimObject Python file). Do you have any idea if this could be made easier?
>


I'm not familiar with mypy, but looking at their website, something like
this might work?

https://mypy.readthedocs.io/en/latest/extending_mypy.html

It looks like it would be fairly easy to add that to gem5's python "main"
method, although of course I haven't tried it.

Gabe

>
_______________________________________________
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

Reply via email to