jryans has quit [Remote host closed the connection]
marble[m] has quit [Write error: Connection reset by peer]
jayaura has quit [Remote host closed the connection]
jfng has quit [Write error: Connection reset by peer]
xobs has quit [Remote host closed the connection]
rjo[m] has quit [Remote host closed the connection]
jayaura has joined #m-labs
jfng has joined #m-labs
marble[m] has joined #m-labs
jryans has joined #m-labs
xobs has joined #m-labs
rjo[m] has joined #m-labs
sb0 has quit [Quit: Leaving]
proteusguy has quit [Ping timeout: 246 seconds]
<Streetwalrus>
davidc__: yeah that's perfectly valid, but you could do the same with any other general purpose language, and some are much better at hosting embedded DSLs than python
<emily>
like? there's not actually all that many highly popular languages with good eDSLs support, I wouldn't say
<emily>
Ruby does better than Python, I guess, though I reckon it's less popular, and I think wq has done enough Ruby for several lifetimes
<Streetwalrus>
http://terralang.org/ apparently extends the luajit parser to implement custom syntax
<Streetwalrus>
there's scala and kotlin as long as you don't mind the java runtime, and both are very nice languages that stick to the most common paradigms for the most part
<Streetwalrus>
lisps are probably the most metaprogrammable languages out there but then you're already leaving the mainstream
<whitequark>
scala is well outsie mainstream
<whitequark>
terra is nice but made for a completely different task
<Streetwalrus>
I think its goals are pretty similar
<emily>
C-style low-level programming and RTL-style low-level programming are very different beasts
<Streetwalrus>
that's not the point
<emily>
also the lua library ecosystem is much worse
<emily>
probably better than it was a few years ago, though, it's been a while since used lua for real
<Streetwalrus>
the "language" part of terra is even more stripped down than C itself, it gives you primitives to build up a program and relies on metaprogramming to do the rest (including structs, enums, you can even build an object system in it)
<Streetwalrus>
at least that's how I understand it
<emily>
what does this have to do with nmigen?
<Streetwalrus>
similar to chisel/spinal/migen which give you hardware primitives and all the magic happens in the meta language
<Streetwalrus>
maybe I'm missing the point entirely
<Streetwalrus>
but that's how I see it
<whitequark>
i mean if you want to make a HDL by extending luajit's parser, more power to you
<Streetwalrus>
I can't say I've never considered it though I probably wouldn't choose lua either
<Streetwalrus>
maybe in a few years when I have more resources to dedicate to this
<Streetwalrus>
in the meantime migen still looks like a good option
<davidc__>
Streetwalrus: I think you're underestimating the importance of the popularity of python
<davidc__>
Streetwalrus: For someone from the hardware side; there are _tons_ of references to consult about learning python
<davidc__>
for someone from the software side; they either know python already or would have no problem picking it up because its a simple language
<Streetwalrus>
I mean I'm kind of a python person myself
<davidc__>
Streetwalrus: Check out google's edge TPU talk. They have some good thoughts about learning curves + using Chisel for projects
<davidc__>
(bringing up hardware engineers on Scala + etc)
<Streetwalrus>
I've seen that talk
<whitequark>
I wouldn't call Python a simple language, but it's certainly quick to get started in
<Streetwalrus>
chisel has other issues which make it unsuitable for many use cases anyway (because they don't really care about FPGAs)
<davidc__>
whitequark: sorry; simple languge is a bad description... I think what I'm trying to say is that it has a structure and syntax that would be familiar to most programmers
<whitequark>
indeed
<Streetwalrus>
I haven't looked too much into spinal but vexriscv is really cool (and basically the only interesting codebase that uses it)
<Streetwalrus>
python is full of caveats for newcomers to butt heads with
<Streetwalrus>
it's a nice language and it has a huge ecosystem of libraries (whether that's relevant to hardware is questionable) and learning resources
<whitequark>
it's relevant to hardware because you're rarely only making hardware
<whitequark>
you're also interacting with the platform, reading structured data, designing some sort of filter, and so on
<Streetwalrus>
well yes
<Streetwalrus>
and it works for that
<Streetwalrus>
but it's far from being the ideal tool for the job
<emily>
have you tried it?
<emily>
python sucks but i don't think saying "python is bad" 100x over when you don't have any experience with (n)migen is really contributing anything
<whitequark>
it's also ignoring the reality of the situation, which is, i'm not competing with your imaginary ideal tool, i'm competing with verilog
<davidc__>
whitequark: TBF, you could probably successfully compete with verilog with a DSL embedded in Visual Basic
<whitequark>
precisely
<whitequark>
everything above that is just "oh, and this is how I [hopefully] made your life even easier"
<davidc__>
Streetwalrus: the other thing to remember about migen is that it actually works; today. There are some seriously complex designs that have been successfully done with it.
<davidc__>
Streetwalrus: So any hypothetical alternative needs to catch up to "this works today... and there's a good amount of 'IP' / cores that people have written for it"
<Streetwalrus>
sorry if I sounded rude and/or stubborn, I'm genuinely interested in better tooling for hardware design and I just wanted to talk about it with people who know what they're doing (ie not me nor the people I usually talk to)
<Streetwalrus>
migen is already a huge improvement and the existing ip for it is a fantastic advantage, I just think there's still a lot of headroom
<whitequark>
isn't there always lots of headroom in programming languages, regardless of the field?
<Streetwalrus>
yes
<_whitenotifier>
[nmigen] RobertBaruch opened issue #192: yosys v0.8 not supported, causes assertion error - https://git.io/fjpMk
<_whitenotifier>
[nmigen] whitequark commented on issue #192: yosys v0.8 not supported, causes assertion error - https://git.io/fjpML
<_whitenotifier>
[nmigen] RobertBaruch commented on issue #192: yosys v0.8 not supported, causes assertion error - https://git.io/fjpMY