sb0 changed the topic of #m-labs to: https://m-labs.hk :: Mattermost https://chat.m-labs.hk :: Logs http://irclog.whitequark.org/m-labs
proteusguy has joined #m-labs
rohitksingh has joined #m-labs
rohitksingh has quit [Ping timeout: 276 seconds]
rohitksingh has joined #m-labs
rohitksingh has quit [Ping timeout: 276 seconds]
rohitksingh has joined #m-labs
mauz555 has joined #m-labs
mauz555 has quit []
rohitksingh has quit [Remote host closed the connection]
proteusguy has quit [Ping timeout: 245 seconds]
mauz555 has joined #m-labs
adamgreig has quit [Ping timeout: 252 seconds]
adamgreig has joined #m-labs
adamgreig has quit [Ping timeout: 276 seconds]
adamgreig has joined #m-labs
proteusguy has joined #m-labs
adamgreig has quit [Ping timeout: 252 seconds]
adamgreig has joined #m-labs
mauz555 has quit [Remote host closed the connection]
mauz555 has joined #m-labs
adamgreig has quit [Ping timeout: 276 seconds]
adamgreig has joined #m-labs
mtrbot-ml has quit [Remote host closed the connection]
mtrbot-ml has joined #m-labs
adamgreig_ has joined #m-labs
adamgreig has quit [Disconnected by services]
adamgreig_ is now known as adamgreig
Streetwalrus has joined #m-labs
<Streetwalrus> hi, I was wondering why python was chosen for migen and nmigen
<Streetwalrus> migen is a really nice approach and I also love python
<Streetwalrus> but python feels like a weird choice
<Streetwalrus> it's not very good at anything low level nor at hosting embedded DSLs
<emily> dunno about migen but for (n)migen/Glasgow I think it comes down to "because nobody would use it if it was in OCaml"
<emily> I don't think whitequark has much love for Python.
<Streetwalrus> well that's fair enough but there's plenty of more viable options
<Streetwalrus> chisel and spinalhdl benefit from a much nicer syntax in scala, though that's also far from perfect
<Streetwalrus> I still haven't really looked into the Haskell options either because Haskell
<mtrbot-ml> [mattermost] <sb10q> many people also don't look into scala options because scala
<Streetwalrus> scala is a neat language
<Streetwalrus> main gripe is the java runtime dependency
<whitequark> Streetwalrus: scala, haskell and ocaml are essentially equally obscure if you talk to people who come from Verilog
<Streetwalrus> good point
<whitequark> (n)migen isn't really something new and revolutionary; it doesn't try to experiement with radical semantics that requires a large effort for a large payoff. rather, it's a way to express RTL that isn't as boneheaded as Verilog used for that task
<Streetwalrus> yeah I know how it works
<whitequark> indeed
<Streetwalrus> I've only worked with vhdl but it's the same problem
<whitequark> the main advantage of vhdl in this area is deterministic simulation
<whitequark> but it doesn't buy that much
<emily> Streetwalrus: well, as a (former) Haskeller I haven't looked into the Scala options because Scala :p
<emily> Python is a lowest-common denominator language that we can all happily hate
<whitequark> it could have been javascript
<Streetwalrus> oh no
<Streetwalrus> I guess the hardest part will always be reconciling those who come from a hardware background and those who come from software
<Streetwalrus> I'm the latter and I can't stand writing vhdl
<daveshah> The irony being that behavioural VHDL and Verilog are nothing like "hardware"
<whitequark> ^
<Streetwalrus> yeah
<Streetwalrus> the lack of proper metaprogramming is also a huge handicap
<whitequark> i wouldn't use clash because of the lack of correspondence between the source and the generated code in signal names; i don't even think nmigen is quite good enough on that
<whitequark> not sure how chisel and spinalhdl fare there
<Streetwalrus> I haven't really looked into it either
zng has joined #m-labs
mauz555 has quit [Remote host closed the connection]
proteusguy has quit [Ping timeout: 258 seconds]
mauz555 has joined #m-labs
mauz555 has quit [Ping timeout: 252 seconds]
rohitksingh has joined #m-labs
<davidc__> Streetwalrus: I think python is a good choice for migen/nmigen _because_ it is not a special purpose language. I regularly use migen code as part of a larger python projects (ex: implement gateware to do a small part of a much larger system including firmware and host software)
<davidc__> Streetwalrus: because its just python; its easy to move data back and forth between components (Ex: register maps, or filter taps, or data for connector pinouts, etc)
<davidc__> Streetwalrus: Sure, one could do that in another language; but then you're writing your data marshalling code twice
cr1901_modern has quit [Ping timeout: 245 seconds]
<key2> how would it be with js ?
<ZirconiumX> key2: Painful
<key2> and in Ocaml ?
<whitequark> there's already hardcaml
<ZirconiumX> Possibly painful for a different reason, if you're not used to the strong typing of OCaml
<whitequark> it's so popular, i've never seen anyone use it. the repository doesn't have any commits or issues for years
<whitequark> i expect that i'd be the only person using it on a regular basis if i chose to use it
proteusguy has joined #m-labs
cr1901_modern has joined #m-labs