[libre-riscv-dev] Very Subtle Synchronous nMigen Behavior

Jacob Lifshay programmerjake at gmail.com
Fri Jun 19 04:51:45 BST 2020


On Thu, Jun 18, 2020, 18:01 Luke Kenneth Casson Leighton <lkcl at lkcl.net>
wrote:

> On Fri, Jun 19, 2020 at 1:31 AM Yehowshua <yimmanuel3 at gatech.edu> wrote:
> >
> > I will mention I won’t use wildcards in any code I commit ever.
>
> urrr, thank you :)
>
> the problem is not immediately apparent until you start developing
> large codebases, importing from multiple sources (some your own, some
> other people's libraries), and wish to navigate them.
>

not to imply I think wildcards are a good idea in python, but pyls (the
language server protocol implemention for python) makes it nearly trivial
to navigate to the place where each symbol is defined, just by using the
go-to-definition command. it can be used with vim and many other text
editors/IDEs, such as VSCode (what I use, mostly because it has the best
Rust support out of all non-vim editors).


> for minerva, i found it was already seriously problematic to navigate
> the codebase in order to track down which class came from which actual
> file.  in addition, they actually had (may still have) a duplicate
> class that was wildcard-imported in one location and *overridden with
> a second*.  if they had explicitly named it the discrepancy would have
> been caught fairly quickly.
>

I quite like how rust handles wildcard imports: all explicitly named
imports take priority over wildcards and if there is a name that comes from
multiple wildcard imports, then it errors with an ambiguity error.

Jacob

>


More information about the libre-riscv-dev mailing list