[libre-riscv-dev] TLB

Luke Kenneth Casson Leighton lkcl at lkcl.net
Tue Apr 23 07:11:16 BST 2019


On Mon, Apr 22, 2019 at 10:57 PM Jacob Lifshay <programmerjake at gmail.com> wrote:
>
> On Mon, Apr 22, 2019, 05:27 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
> wrote:
>
> >
> > ... the thing is, there were *so many* things (10 commits in one
> > hour!!) i thought it best done as a video:
> >
> > https://youtu.be/dljWBXSBGYw
> >
> > some comments:
> nmigen isn't a good example here: repr() is supposed to return valid python
> code when possible.

ah, y'know, it's funny: some things i've picked up about python by a
process of osmosis :)

and no, nmigen is not... necessarily a good example to follow: import
* is incredibly dangerous and costs a *lot* of time and effort in
tracking down hard-to-find errors in large projects (google "import
wildcard considered dangerous") ... yet explaining that to the nmigen
developers, and explaining that its use is exposing first-time python
users (hardware engineers whose first use of python ever has been
nmigen) to very bad practices, has been met with strong resistance.

> Also nmigen wants you to derive from Elaboratable and warns if you don't.

that's very very weird. Elaboratable doesn't exist (which  is why i
removed it).  what's even stranger: in working with nmigen for months,
now, i've *never* seen a warning - ever - about not deriving from
Elaboratable - and also never seen any code or examples that use it.
ever.

 "grep -r Elaboratable nmigen" shows no known instances of a class
with that name in nmigen, as of this commit:
commit f22106e5ef001f4be51257ac22d8e5779b9d4c0e (origin/master, origin/HEAD)
Author: whitequark <whitequark at whitequark.org>
Date:   Sat Apr 20 08:12:29 2019 +0000

    back.rtlil: allow record slices on LHS.

which version are you using, and from which source? i am using
https://github.com/m-labs/nmigen.git and keeping it reasonably
up-to-date (at least every couple weeks, or as-needed).

l.



More information about the libre-riscv-dev mailing list