<Wanda[cis]>
it behaves exactly as I'd expect from a method of that name though (except maybe for being a bitwise operation, but then so are normal and/or in Amaranth)
<whitequark[cis]>
I was considering writing a doc for it
<whitequark[cis]>
and then realized that describing a method named implies with the return value list matching bitwise_binary_op seems insane
<_whitenotifier-7>
[amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1112-4014f6429c97be16d0c0c8b944e3b85437bd0583 - https://github.com/amaranth-lang/amaranth
<whitequark[cis]>
by the way, I'm wondering when we could get rid of @ValueCastable.lowermethod
<whitequark[cis]>
I'm... not sure we actually need it?
<Wanda[cis]>
well
<Wanda[cis]>
it enforces a contract. with violence.
<whitequark[cis]>
well yes, but do we actually need that contract?
<Wanda[cis]>
hmmm
<whitequark[cis]>
ValueCastables are not actually included in the AST fragments
<whitequark[cis]>
since they're instantly cast to a concrete representation
<Wanda[cis]>
basically any AST class constructed with ValueCastable argument will instantly lower it, yes
<whitequark[cis]>
I think this was originally "because the person who most wanted something like ValueCastable was a complete asshole with a disregard for contracts in general, so I decided to make sure this one sticks"
<whitequark[cis]>
(contracts such as, you know, "don't yell at me over IRC because I'm not doing the exact thing you're demanding I do"...)
<Wanda[cis]>
... yeah
<Wanda[cis]>
I do remember that, unfortunately
<whitequark[cis]>
ah, you were around. my condolences
<whitequark[cis]>
should we just kill ValueCastable.lowermethod?
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a8a9c3e - Deploying to main from @ amaranth-lang/amaranth@4a3a9a90e825e366cb15974e1c4d0f03ddf8a007 🚀
<Wanda[cis]>
I think so, yes
<Wanda[cis]>
it's a very odd special case of enforcing one particular contract in *Castable interface
<whitequark[cis]>
ok, I'm going to submit my WIP documentation changes and then we can do it
<whitequark[cis]>
I've reordered everything in the Value* classes, so the potential for merge conflicts is sky-high
<Wanda[cis]>
... hmmm
<Wanda[cis]>
looking at #1111 again
<Wanda[cis]>
so I screwed up a bit, and forgot to also remove the matches() warning
<whitequark[cis]>
yeah ok, documenting matches in the reference is my next priority
sugarbee1 has joined #amaranth-lang
vup2 has joined #amaranth-lang
Degi_ has joined #amaranth-lang
Xesxen_ has joined #amaranth-lang
notgull has joined #amaranth-lang
mindw0rk has quit [Ping timeout: 264 seconds]
Raito_Bezarius has quit [Ping timeout: 264 seconds]
josuah has quit [Ping timeout: 264 seconds]
mindw0rk_ is now known as mindw0rk
feldim2425_ has quit [Ping timeout: 264 seconds]
lambda has quit [Ping timeout: 264 seconds]
Degi has quit [Ping timeout: 264 seconds]
skipwich has quit [Ping timeout: 264 seconds]
sugarbeet has quit [Ping timeout: 264 seconds]
vup has quit [Ping timeout: 264 seconds]
Xesxen has quit [Ping timeout: 264 seconds]
Degi_ is now known as Degi
<Wanda[cis]>
Catherine: should I fix the `matches` docs in guide, or do you also have a lock on that file?
<whitequark[cis]>
no lock on the guide
notgull has quit [Ping timeout: 256 seconds]
lambda has joined #amaranth-lang
Raito_Bezarius has joined #amaranth-lang
<whitequark[cis]>
oh, right, I finally remembered why signals aren't hashable
<whitequark[cis]>
because dict will call __eq__
<whitequark[cis]>
istr Migen had some horrific workaround that basically made __eq__ return a boolean for the dict, which tried to guess that based on context clues
<whitequark[cis]>
oh yeah, I guess it evaluated (== (sig a) (sig b)) to true/false as a special case
<Wanda[cis]>
... I see
<whitequark[cis]>
because the dict does the equivalent of if a == b:, you see?
<whitequark[cis]>
and if does __bool__.
<whitequark[cis]>
I found the workaround horrific.
<whitequark[cis]>
but on second thought, it's probably not. consider how this would actually be used: you'd have like Signal or Const return some odd user object as its shape
<whitequark[cis]>
that's... not a great idea
<Wanda[cis]>
oh right, signals could have funny shapes
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 19a7e2d - Deploying to main from @ amaranth-lang/amaranth@0056e982c5a85b26935b8c750cc00cf4b1e66ebc 🚀
<whitequark[cis]>
(I suppose you could lower it to a Cat(elems).word_select(index)
<whitequark[cis]>
s//`/, s//`)/
<whitequark[cis]>
actually... isn't that like, completely equivalent to our Choice? modulo signed/unsigned
<whitequark[cis]>
I guess what might make good sense is to add Choice and then lower both Part and ArrayProxy to it?
<Wanda[cis]>
Choice supports patterns, right?
<Wanda[cis]>
it's strictly more powerful
<whitequark[cis]>
oh yeah! good point
<whitequark[cis]>
and yeah, very happy to add Choice as a private class
<Wanda[cis]>
I'm not convinced about lowering Part, that $shift will likely codegen better than a switch
<whitequark[cis]>
I guess only `Part` with `stride>1`?
<Wanda[cis]>
you mean word_select? yeah that'd be just a normal binary mux
<whitequark[cis]>
yeah, we could simplify codegen and everything for Part by lowering word_select to Choice
<Wanda[cis]>
so... ArrayProxy becomes ValueCastable that lowers to Choice, word_select instantiates Choice directly, Part gets changed to remove stride; on NIR level, we kill ArrayMux (and implement Choice via existing AssignmentList) and likewise simplify Part
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 06cbabd - Deploying to main from @ amaranth-lang/amaranth@e2fd819742a1d9934f051079a48c8a4faece439f 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 1d743af - Deploying to main from @ amaranth-lang/amaranth@0da439cce1f2dc9e9acbf0c2e360513c88bb4e72 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 7facfd3 - Deploying to main from @ amaranth-lang/amaranth@eebb6ec3bb3ebb8e42b5ae8cbd232c02f2be962d 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] e283bfa - Deploying to main from @ amaranth-lang/amaranth@1dc1d2d7093b33ad9b2bf7a36194231e1aa6972d 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth] whitequark 2dea83c - docs/reference: minor fixes.
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 435633e - Deploying to main from @ amaranth-lang/amaranth@3867623727f4a23b2be5c85e341847d1ba38fbe8 🚀
<Wanda[cis]>
... I think I found a bug in the intel platform
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a7d5ebd - Deploying to main from @ amaranth-lang/amaranth@a0c8b18546e4d95791e55edb67424e936b984e38 🚀
<_whitenotifier-7>
[amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1111-a0c8b18546e4d95791e55edb67424e936b984e38 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-5>
[amaranth-lang/amaranth] wanda-phi 5797643 - docs: remove leftover TODO and warning from #1003, fix `matches` docs.
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a55f6f0 - Deploying to main from @ amaranth-lang/amaranth@5797643c9c868049c387bf7e100e1261ed6619ca 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 5d4b79f - Deploying to main from @ amaranth-lang/amaranth@3cb5f63aba974fce55519b04efdd8f84fb6d7dcc 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 67888f1 - Deploying to main from @ amaranth-lang/amaranth@b9c9948038b39f3f454ed3db77ec4bd312903a15 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 0ac9ccd - Deploying to main from @ amaranth-lang/amaranth@841ab94a766afe4793e6d06e1b0a947ad0efec37 🚀
<_whitenotifier-5>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 11ed112 - Deploying to main from @ amaranth-lang/amaranth@4a8dd808c30820fbc53fe919f04fd2b96b62cfd9 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] jfng 4d1449b - Deploying to main from @ amaranth-lang/amaranth-soc@1e1490ef85433493b9c43050eae8925ec85b2a53 🚀
<_whitenotifier-7>
[amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 5788005 - Deploying to main from @ amaranth-lang/amaranth@353a8ce7e313e8d203635151402ef88a0171bf45 🚀
<Wanda[cis]>
so not blocking 0.5, ok
<whitequark[cis]>
yeah
<tpw_rules>
i'd like to be looped in a little for the HPS stuff
<tpw_rules>
i've gotten rather familiar with that on the intel side, and i had seen some old issues which proposed such a thing might be part of that revamp?
<Wanda[cis]>
oh, I was thinking of the exact same thing actually, except Zynq
<Wanda[cis]>
just oh
<Wanda[cis]>
glanced at some of my old codew
<Wanda[cis]>
s/codew/code/
<tpw_rules>
soon™ i plan to share an amaranth Elaboratable which handles it for cyclone v
<Wanda[cis]>
oh, you want to just wrap the HPS?
<tpw_rules>
well that's what i'll be doing in my current design, to finally cut out all the verilog
<tpw_rules>
i'd like to see it as part of the platform system eventually, but that way we'll identify how to use it and guide that design
<Wanda[cis]>
I think wrapping it as an elaboratable is not the right thing in the first place
<tpw_rules>
i mean, it's what i can do with the tools i have now
<Wanda[cis]>
I was thinking of having the platform create the Instance, and giving you individual AXI ports or whatever as a requestable resource or something
<Wanda[cis]>
well you can subclass the platform
<tpw_rules>
like i said, the point really is to collect the knowledge into one place. the elaboratable right now would function like that pretty much, just elaborate the guts to actually connect it up and configure everything
<tpw_rules>
the missing bit is to be able to hook logic behind a resource i think
<tpw_rules>
if you'd prefer to see it as methods on the platform, then sure, but i don't know how to hook it into the resource system
<Wanda[cis]>
I mean, you can just override the request method?
<tpw_rules>
does the platform get a chance to add its own elaboratable?
<tpw_rules>
i guess in build
<tpw_rules>
mmh we'll see how it goes
polymerizedsage has quit [Quit: Ping timeout (120 seconds)]
<tpw_rules>
does anyone have any AXI port signatures available right now?