whitequark[cis] changed the topic of #amaranth-lang to: Amaranth hardware definition language · weekly meetings: Amaranth each Mon 1700 UTC, Amaranth SoC each Fri 1700 UTC · play https://amaranth-lang.org/play/ · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
cr1901_ has quit [Read error: Connection reset by peer]
cr1901 has joined #amaranth-lang
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 255 seconds]
Degi_ is now known as Degi
<cr1901> Cool stuff
<whitequark[cis]> that's very standard for a source synchronous interface
<whitequark[cis]> matches up all the latencies to each other
SpaceCoaster has quit [Ping timeout: 256 seconds]
SpaceCoaster has joined #amaranth-lang
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 268 seconds]
TD-Linux has quit [Ping timeout: 268 seconds]
TD-Linux has joined #amaranth-lang
bob_twinkles has quit [Ping timeout: 268 seconds]
bob_twinkles has joined #amaranth-lang
FFY00_ has quit [Read error: Connection reset by peer]
FFY00 has joined #amaranth-lang
mindw0rk has quit [Read error: Connection reset by peer]
mindw0rk has joined #amaranth-lang
d_olex_ has joined #amaranth-lang
Wanda[cis] has quit [*.net *.split]
d_olex has quit [*.net *.split]
sorear has quit [*.net *.split]
alanvgreen has quit [*.net *.split]
mithro has quit [*.net *.split]
mobius has quit [*.net *.split]
ormiret has quit [*.net *.split]
benreynwar has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
alanvgreen has joined #amaranth-lang
mithro has joined #amaranth-lang
sorear has joined #amaranth-lang
Wanda[cis] has joined #amaranth-lang
mobius has joined #amaranth-lang
ormiret has joined #amaranth-lang
benreynwar has joined #amaranth-lang
gruetzkopf has joined #amaranth-lang
Wanda[cis] has quit [*.net *.split]
sorear has quit [*.net *.split]
alanvgreen has quit [*.net *.split]
mithro has quit [*.net *.split]
mobius has quit [*.net *.split]
ormiret has quit [*.net *.split]
benreynwar has quit [*.net *.split]
gruetzkopf has quit [*.net *.split]
Wanda[cis] has joined #amaranth-lang
sorear has joined #amaranth-lang
alanvgreen has joined #amaranth-lang
mithro has joined #amaranth-lang
mobius has joined #amaranth-lang
benreynwar has joined #amaranth-lang
ormiret has joined #amaranth-lang
gruetzkopf has joined #amaranth-lang
<_whitenotifier-9> [amaranth] wanda-phi opened pull request #1408: sim: improve error messages for weird objects passed as testbenches. - https://github.com/amaranth-lang/amaranth/pull/1408
<_whitenotifier-9> [amaranth] wanda-phi opened pull request #1409: sim: improve error messages for weird objects passed as testbenches. [0.5 backport] - https://github.com/amaranth-lang/amaranth/pull/1409
<_whitenotifier-9> [rfcs] wanda-phi commented on pull request #67: Add RFC for combinable simulation triggers with `initial()`. - https://github.com/amaranth-lang/rfcs/pull/67#issuecomment-2176288889
<_whitenotifier-9> [rfcs] wanda-phi closed pull request #67: Add RFC for combinable simulation triggers with `initial()`. - https://github.com/amaranth-lang/rfcs/pull/67
<_whitenotifier-9> [amaranth] wanda-phi opened pull request #1410: lib.data: make views of `ArrayLayout` iterable. - https://github.com/amaranth-lang/amaranth/pull/1410
<_whitenotifier-9> [amaranth] wanda-phi opened pull request #1411: lib.data: make views of `ArrayLayout` iterable. [0.5 backport] - https://github.com/amaranth-lang/amaranth/pull/1411
<Wanda[cis]> Catherine: crap on a stick
<Wanda[cis]> making View iterable breaks amaranth-stdio
<Wanda[cis]> because it passes a View to Cat at one point, and Cat flattens anything that has an __iter__ method
<Wanda[cis]> which includes non-array View, which will result in an exception
<Wanda[cis]> (see the CI failures on 1410 and 1411)
<_whitenotifier-9> [amaranth] wanda-phi commented on issue #1404: `stream.Signature` should allow setting the init value for the payload - https://github.com/amaranth-lang/amaranth/issues/1404#issuecomment-2176624400
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 240 seconds]
<_whitenotifier-9> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1408-7a58b6204d9920a42fd3bc902e5c00f945ef9134 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-9> [amaranth] whitequark closed pull request #1409: sim: improve error messages for weird objects passed as testbenches. [0.5 backport] - https://github.com/amaranth-lang/amaranth/pull/1409
<_whitenotifier-9> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/7a58b6204d99...94becb521ab7
<_whitenotifier-9> [amaranth-lang/amaranth] wanda-phi 94becb5 - sim: improve error messages for weird objects passed as testbenches.
<_whitenotifier-9> [amaranth] whitequark closed pull request #1408: sim: improve error messages for weird objects passed as testbenches. - https://github.com/amaranth-lang/amaranth/pull/1408
<_whitenotifier-9> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1408-7a58b6204d9920a42fd3bc902e5c00f945ef9134 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±37] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/d20405cb77e1...e992e608e663
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] e992e60 - Deploying to main from @ amaranth-lang/amaranth@94becb521ab7537f05d6facb1e32ea3e99a94873 🚀
<whitequark[cis]> <Wanda[cis]> "because it passes a View to ..." <- oh. oops. i guess we should consider removing the flatten, but thats rfc worthy...
<Wanda[cis]> indeed
<Wanda[cis]> I'm considering making it do a little modified flatten that stops when it encounters a ValueCastable even if it happens to be iterable
<Wanda[cis]> not completely sure if it's a good idea
<whitequark[cis]> is flatten in cat a good idea in first place?
<Wanda[cis]> not really, no
<whitequark[cis]> then we should stop having it
<whitequark[cis]> i would say put a warning into 0.5; not "will be removed" but "considered for removal, tell us if you need it"
<Wanda[cis]> the question becomes what even is Cat interface
<Wanda[cis]> I think both Cat(*iterable) or Cat(iterable) are used?
<Wanda[cis]> like, we definitely want to remove deeper or mixed nesting, but even just having these two can result in weirdness
<Wanda[cis]> on edge cases
<whitequark[cis]> oh, you're right
<whitequark[cis]> this... is actually quite annoying
<whitequark[cis]> I wish we had a corpus of Amaranth code we could use like crater
<Wanda[cis]> I looked into the possibility of killing flatten this afternoon already
<Wanda[cis]> Cat is the tricky one
<whitequark[cis]> rite
<Wanda[cis]> the other two uses that are visible in the interface (m.domains += and m.submodules +=) can be solved by just handling two cases (Iterable or ClockDomain/Elaboratable), and it won't change semantics unless someone is insane enough to have an iterable elaboratable, in which case they deserve whatever happens anyway
<Wanda[cis]> but with Cat, as we have just seen, we can legitimately have an interable ValueCastable
<Wanda[cis]> (of course, with ArrayLayout specifically it doesn't matter if we Cat the whole array or its flattened pieces, but that doesn't have to be true in general)
<whitequark[cis]> yeah...
<Wanda[cis]> (say you are in an unhealthy relationship with IBM and like to index your bitvectors starting from MSB)
<whitequark[cis]> that is actually against python iterable rules
<Wanda[cis]> <del>(I am getting spray-bottled for this, aren't I)</del>
<whitequark[cis]> myhdl does it anyway ofc
<whitequark[cis]> theres a guide note on that
<Wanda[cis]> I mean you could imagine an IBMArrayLayout where lower indices go in MSBs, it wouldn't violate python iterable rules since it's self-consistent, it just isn't consistent with array.as_value()
<Wanda[cis]> <whitequark[cis]> "I wish we had a corpus of..." <- that would be neat, but we don't have anything like Cargo that makes it possible
<Wanda[cis]> <del>hey if we made everyone use `amarath.cli`...</del>
<whitequark[cis]> manually collected is fine
<whitequark[cis]> <Wanda[cis]> "I mean you could imagine an ..." <- ah yeah