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
notgull has joined #amaranth-lang
lf_ has joined #amaranth-lang
lf has quit [Ping timeout: 264 seconds]
notgull has quit [Ping timeout: 260 seconds]
<tpw_rules> i nested interfaces in my AXI code
<tpw_rules> it being a stream quintuplet
_whitenotifier-6 has joined #amaranth-lang
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 252 seconds]
Degi_ is now known as Degi
skipwich has quit [Quit: DISCONNECT]
skipwich has joined #amaranth-lang
<_whitenotifier-6> [amaranth] wanda-phi opened pull request #1203: Implement RFC 53: Low-level I/O primitives. - https://github.com/amaranth-lang/amaranth/pull/1203
<_whitenotifier-5> [amaranth] codecov[bot] commented on pull request #1203: Implement RFC 53: Low-level I/O primitives. - https://github.com/amaranth-lang/amaranth/pull/1203#issuecomment-1998992762
<cr1901> http://gopher.wdj-consulting.com:70/paste/a62fae7e-29f5-4f6a-9108-b46e9fa74595.txt I'm trying to refactor Sentinel's decoder. This works, but is it considered desirable, cursed, neutral, or...?
<_whitenotifier-6> [amaranth] whitequark opened pull request #1204: lib.wiring: remove unnecessary flipping in `Signature.flatten` - https://github.com/amaranth-lang/amaranth/pull/1204
<_whitenotifier-6> [amaranth] codecov[bot] commented on pull request #1204: lib.wiring: remove unnecessary flipping in `Signature.flatten` - https://github.com/amaranth-lang/amaranth/pull/1204#issuecomment-1999372612
<_whitenotifier-6> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1204-3e6e78012d596d6e8154eefd4bd4cc95efd58339 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-6> [amaranth] whitequark opened pull request #1205: Backport bug fixes to v0.4.x - https://github.com/amaranth-lang/amaranth/pull/1205
<_whitenotifier-6> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/3e6e78012d59...11ec35d258b0
<_whitenotifier-5> [amaranth-lang/amaranth] whitequark 11ec35d - lib.wiring: remove unnecessary flipping in `Signature.flatten`.
<_whitenotifier-5> [amaranth] whitequark closed pull request #1204: lib.wiring: remove unnecessary flipping in `Signature.flatten` - https://github.com/amaranth-lang/amaranth/pull/1204
<_whitenotifier-6> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1204-3e6e78012d596d6e8154eefd4bd4cc95efd58339 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 12eb174 - Deploying to main from @ amaranth-lang/amaranth@11ec35d258b059f5c8b1c3d4a4fe1538d2bee046 🚀
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±35] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/eebb2688c512...12eb1742267b
<_whitenotifier-5> [amaranth] codecov[bot] commented on pull request #1205: Backport bug fixes to v0.4.x - https://github.com/amaranth-lang/amaranth/pull/1205#issuecomment-1999389245
<_whitenotifier-6> [amaranth] whitequark commented on pull request #1203: Implement RFC 53: Low-level I/O primitives. - https://github.com/amaranth-lang/amaranth/pull/1203#issuecomment-1999414109
<whitequark[cis]> zyp: do you think you'll be able to update RFC 36 in time for the Monday meeting?
<whitequark[cis]> I think there's likely going to be a few more rounds of feedback
zyp[m] has joined #amaranth-lang
<zyp[m]> yeah, I can fix the currently outstanding points after work
frgo_ has joined #amaranth-lang
<whitequark[cis]> thanks!
frgo has quit [Ping timeout: 260 seconds]
<zyp[m]> if you've got more feedback, I'd appreciate to have it before I get started
<_whitenotifier-6> [rfcs] whitequark reviewed pull request #36 commit - https://github.com/amaranth-lang/rfcs/pull/36#discussion_r1526155037
<_whitenotifier-6> [rfcs] whitequark reviewed pull request #36 commit - https://github.com/amaranth-lang/rfcs/pull/36#discussion_r1526155446
<whitequark[cis]> zyp: that's basically it. the only thing that really concerns me is `process_type` as I think we should not have that
<_whitenotifier-5> [amaranth] whitequark closed pull request #1205: Backport bug fixes to v0.4.x - https://github.com/amaranth-lang/amaranth/pull/1205
<_whitenotifier-6> [amaranth] whitequark created tag v0.4.4 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-6> [amaranth-lang/amaranth] whitequark tagged 0564dd5 as v0.4.4 https://github.com/amaranth-lang/amaranth/commit/0564dd5d7853bd768aef8cc1bd8405ec0b7e48c5
Chips4MakersakaS has joined #amaranth-lang
<Chips4MakersakaS> I am looking a Minimig (Amiga emulation) code for MiSTer. They are using PLLs and custom interface to the on-chip ARM cores as Quartus IP. AFAICS there is no common way in handling these Altera IP in Amaranth and you need to manuallly `Instance()` them yourself. Correct ?
<galibert[m]> Correct
<whitequark[cis]> pretty much
<galibert[m]> Note that it works very well with an instance
<whitequark[cis]> interfacing altpll is pretty easy
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+166/-0/±0] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/12eb1742267b...934ce08f8d90
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark 934ce08 - Deploying to main from @ amaranth-lang/amaranth@0564dd5d7853bd768aef8cc1bd8405ec0b7e48c5 🚀
<zyp[m]> <whitequark[cis]> "zyp: that's basically it. the..." <- how about instead of a decorator, we have a `.ensure_testbench()` method on the context that raises if it's not in a testbench process? it saves needing a module level name for the decorator, and it also means that the decorator doesn't have to find the `sim` argument and the restrictions that imposes on decorated functions
<whitequark[cis]> zyp: I was thinking that that's how the decorator would be implemented
<zyp[m]> I just don't think having a decorator adds anything, it's one line either way
<whitequark[cis]> I think a decorator is more idiomatic in Python in this context
<whitequark[cis]> it annotates the whole function with a different semantic
<whitequark[cis]> meanwhile, a function call assigning a semantic to the whole function is quite magical
<whitequark[cis]> think of how a documentation tool would understand that a certain method is a simulation helper
<whitequark[cis]> parse the code and hunt for a function call?
<zyp[m]> fair point
<zyp[m]> how would you have the wrapper functions handle arguments? def wrapper(sim, *args, **kwargs): … f(sim, *args, **kwargs) ?
<_whitenotifier-6> [amaranth] github-actions[bot] published v0.4.4 | 0.4.4 - https://github.com/amaranth-lang/amaranth/releases/tag/v0.4.4
<whitequark[cis]> yes, and we may also mandate sim to be a positional-only argument
<whitequark[cis]> def testbench(sim, /, foo, bar, ...)
<whitequark[cis]> although there's the complication of self, hm
<zyp[m]> yeah, a decorator should be usable on both functions and methods
<whitequark[cis]> Wanda: ideas?
<Wanda[cis]> meow?
<Wanda[cis]> do not ask catgirl complex questions within 10 minutes of it waking up
<zyp[m]> I mean, the decorator could introspect the wrapped function and determine whether it takes self or not
<_whitenotifier-6> [amaranth] whitequark opened pull request #1206: CI: automatically publish GitHub releases - https://github.com/amaranth-lang/amaranth/pull/1206
<_whitenotifier-6> [amaranth] whitequark edited pull request #1206: CI: automatically publish GitHub releases - https://github.com/amaranth-lang/amaranth/pull/1206
<whitequark[cis]> zyp: yes but... I don't think Python requires the self argument to be named `self`.
<whitequark[cis]> imagine if the function is a testbench helper AND a class method
<zyp[m]> we could check if it's a unbound/class method and pass the first argument through in that case, otherwise expect sim to be the first argument
<whitequark[cis]> it's a normal function when the decorator sees it though
<Wanda[cis]> you cannot know if it's a method because it's not assigned to a class yet
<whitequark[cis]> (do you know how decorators / class dictionaries work?)
<whitequark[cis]> basically, it's accessing something on a class thru an object that imbues it with methodness
<Wanda[cis]> you could check if you're in a class scope by crimes, but then you won't know if you're in something that will soon be passed to a staticmethod or not
<_whitenotifier-5> [amaranth] codecov[bot] commented on pull request #1206: CI: automatically publish GitHub releases - https://github.com/amaranth-lang/amaranth/pull/1206#issuecomment-1999548241
<zyp[m]> I'm familiar with decorators, just not magically making them work on both methods and functions
<whitequark[cis]> I think the solution is just to have def wrapper(*args, **kwargs): and then check if args[0] or args[1] is a simulator context
<Wanda[cis]> thinks
<whitequark[cis]> and I guess mandate that the first argument or two are positional only
<whitequark[cis]> which is ... pretty weird
<Wanda[cis]> why do you need them to be positional only?
<whitequark[cis]> cause otherwise, if someone passes sim as a kwarg the decorator will not see it
<_whitenotifier-6> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1206-11ec35d258b059f5c8b1c3d4a4fe1538d2bee046 - https://github.com/amaranth-lang/amaranth
<Wanda[cis]> oh right, it's not called by our simulator, it's a helper
<Wanda[cis]> uh
<Wanda[cis]> <Wanda[cis]> "do not ask catgirl complex..." <- yeah you may want to refer to that
<Wanda[cis]> ok, but also
<Wanda[cis]> if the wrapper sees a kwarg named sim, we can just ... look at it?
<Wanda[cis]> ok no, you're right, positional-easy is just less messy
<whitequark[cis]> but there's no actual requirement to name it sim
<zyp[m]> unless we make it one
<whitequark[cis]> the same problem will later manifest itself with a "this is a function over Module" decorator
<whitequark[cis]> where the body must be executed in the root scope of the Module and not the inner one, to respect lexical nesting of with m.If
<Wanda[cis]> the wha... oh
<Wanda[cis]> you want something like that
<Wanda[cis]> hm
<whitequark[cis]> people keep constructing those things
<Wanda[cis]> true
<Wanda[cis]> so the easy ways out of it are 1) separate decorators (or a decorator arg) for plain functions and methods, 2) just look at both args[0] and args[1]
<_whitenotifier-5> [amaranth-lang/amaranth] whitequark 83701d7 - CI: automatically publish GitHub releases.
<_whitenotifier-6> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/11ec35d258b0...83701d74cfca
<_whitenotifier-5> [amaranth] whitequark closed pull request #1206: CI: automatically publish GitHub releases - https://github.com/amaranth-lang/amaranth/pull/1206
<_whitenotifier-6> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1206-11ec35d258b059f5c8b1c3d4a4fe1538d2bee046 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±35] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/934ce08f8d90...4e8c9f23cedc
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 4e8c9f2 - Deploying to main from @ amaranth-lang/amaranth@83701d74cfca7d684f1137a3eb5d277d1ef572ce 🚀
<_whitenotifier-5> [amaranth-lang/playground] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/playground/compare/89cbf9e4f51c...8c80da5fc534
<_whitenotifier-6> [amaranth-lang/playground] whitequark 8c80da5 - Update for Amaranth v0.4.4.
<_whitenotifier-6> [rfcs] FatsieFS commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999617537
<_whitenotifier-5> [rfcs] whitequark commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999622503
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/4e8c9f23cedc...39f07c96ec62
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark 39f07c9 - Deploying to main from @ amaranth-lang/playground@8c80da5fc53432a2dc30fea72b8c1a5009c93685 🚀
<_whitenotifier-6> [rfcs] wanda-phi commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999720542
<_whitenotifier-5> [rfcs] whitequark commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999742375
<_whitenotifier-5> [rfcs] whitequark commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999747731
<_whitenotifier-5> [rfcs] wanda-phi commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999759374
<_whitenotifier-5> [rfcs] whitequark commented on pull request #55: RFC 55: New `lib.io` components. - https://github.com/amaranth-lang/rfcs/pull/55#issuecomment-1999761674
<_whitenotifier-5> [rfcs] whitequark commented on pull request #54: RFC 54: Initial and reset values on memory read ports. - https://github.com/amaranth-lang/rfcs/pull/54#issuecomment-1999765844
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 260 seconds]
<_whitenotifier-5> [rfcs] jfng reviewed pull request #57 commit - https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1526578447
jfng[m] has joined #amaranth-lang
<jfng[m]> hi! it is time for our weekly SoC meeting
<tpw_rules> hi hello
<jfng[m]> on today's agenda: RFC 57
<cr1901> Yea this one I want
<jfng[m]> who is attending ?
<cr1901> Me
<galibert[m]> Vaguely, doing a factorio break
<Chips4MakersakaS> o/
<tpw_rules> me
<jfng[m]> i am happy with the content of this RFC, if it also renames `Register.fields` to `.field`
<galibert[m]> Suggest adding a way to give a name to the field/register for memory map dumping purposes
<galibert[m]> Possibly a magic member name lookup as Signals do mind you
<jfng[m]> also, while the motivation states that register subclasses are unnecessary, i think they provide a natural place for documentation
<tpw_rules> i think your proposed option (c) https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1526578447 is good
<tpw_rules> galibert[m]: the memory map already takes a mandatory name, you'd pass it to csr.Builder.add
<jfng[m]> i like that RFC 57 still allows subclasses for single-field regs (you just can't use annotations)
<galibert[m]> 'kay
<Chips4MakersakaS> LGTM
<tpw_rules> anybody have any further input on https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1521761494 ?
<jfng[m]> there is a backward-compatibility question for a register with a single anonymous field, in the scenario where you want to add another one in the future
<jfng[m]> then the existing field would need to have a name
<jfng[m]> although this constitutes a breaking change anyway, for other reasons (e.g. changing the size of the register)
<jfng[m]> so this is probably not a concern
<tpw_rules> yeah, it could really confuse the code but that's unlikely, and should be localized
<whitequark[cis]> I'm on a train so my connectivity is bad
<whitequark[cis]> I do have comments though
<whitequark[cis]> if we're changing .fields to .field, the constructor argument should be changed too
<whitequark[cis]> which would be pretty weird
<cr1901> I thought it would be changed to .field for only single-field regs
<jfng[m]> cr1901: that's somehow worse
<tpw_rules> i don't think it's that unjustified to have the property and the constructor be different. "fields=" is the fields on the register, ".field" is to access a specific one
<whitequark[cis]> is `fields=Field(...)` not problematic?
<tpw_rules> a) when would you do that? b) it's still pointing to the fields that will be on the register, it's just one field this time. i guess you could say that implies a data structure
<jfng[m]> also `fields=` and `.fields` are not the same (type, etc), so i don't think we have a strong incentive to make them have the same name
<tpw_rules> but `field=[Field(...)]` is still weird in the same way
<whitequark[cis]> tpw_rules: no, the list is plural
<tpw_rules> so we would have two constructor arguments?
<whitequark[cis]> that is not weird at all
<jfng[m]> whitequark[cis]: as i said in the GH thread, for a single-field register, you would use something like `super().__init__(csr.Field(...), access="rw")`
<whitequark[cis]> jfng[m]: ok, good point
<jfng[m]> not the kwarg form
<whitequark[cis]> I'm ok with fields= + .field
<tpw_rules> i am too
<whitequark[cis]> jfng[m]: don't have email on my phone
<cr1901> I think .field is weird if it's for multi-field regs
<jfng[m]> in both cases, you'd use `.f` 99% of the time
<jfng[m]> which is an alias to `.field`
<tpw_rules> you also are trying to access only one field through .field
<tpw_rules> at a time
<cr1901> that is true...
<Chips4MakersakaS> Rather than doing it in Register maybe a SingleFieldRegister could be made for this functionality ? This would then have both .field and .fields
<Chips4MakersakaS> SingleFieldRegister subclass of Register
<cr1901> I kinda like that more
<jfng[m]> i think that would more complexity for a relatively basic use-case, the CSR register API already has a lot of moving parts
<tpw_rules> jfng[m]: that is my feeling, i don't want to be introducing more types
peeps[zen] has quit [Remote host closed the connection]
peeps[zen] has joined #amaranth-lang
<cr1901> .field is growing on me the more I think about it
<whitequark[cis]> yeah I don't want to see more types either
<cr1901> maybe if there's a pressing reason to access all fields at once, .fields can be reintroduced in a backward-compat (sic, since we're getting rid of it) manner with .field
<tpw_rules> well .field would still work for accessing multiple fields, it's just the primary case is one field
<cr1901> Yea .field is fine
<jfng[m]> unless someone has further comments, let's initiate a vote
<whitequark[cis]> merge
<tpw_rules> does anybody have any further input on https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1521761494 ?
<jfng[m]> merge, with changes (rename `.fields` to `.field`)
<galibert[m]> merge
<zyp[m]> merge
<cr1901> merge
<jfng[m]> tpw_rules: i'd be against such a change, for the same reason as above (it would add unwarranted complexity vs doing it explicitly)
<tpw_rules> okay
<whitequark[cis]> yeah I don't think we should be adding *any* shortcuts to the CSR functionality until we see a lot more real world usage
<tpw_rules> (is that not what this RFC does?)
<Chips4MakersakaS> merge
<jfng[m]> the final decision is merge
<whitequark[cis]> tpw_rules: no, this RFC enables eliminating an extraneous name from paths
<whitequark[cis]> (which is actually pretty annoying in real-world code, and will lead to backward compat concerns if not addressed)
<tpw_rules> jfng[m]: okay, great to hear it. thanks all
<whitequark[cis]> the other things are just convenience
<galibert[m]> Convenience ain't a bad thing in general
<jfng[m]> that's it for today's agenda! thanks for attending
<whitequark[cis]> no, but it must be balanced against complexity, and the CSR functionality is very complex
<galibert[m]> Yeah, it is
<tpw_rules> okay, i will submit an implementation soon
<whitequark[cis]> without (yet) real world use to inform decisions we shouldn't pile more on
<whitequark[cis]> and we might deprecate some of the existing one eventually, as always
<galibert[m]> are you going to use it in glasgow or it doesn't make sense there?
<whitequark[cis]> probably
<whitequark[cis]> just need an I2C bridge
<_whitenotifier-6> [rfcs] jfng commented on pull request #57: RFC 57: Single-Field Register Definition and Usage Shortcut - https://github.com/amaranth-lang/rfcs/pull/57#issuecomment-2000135710
Lunaphied[m] has joined #amaranth-lang
<Lunaphied[m]> Hi, just a quick question, is there a native stream abstraction in Amaranth yet or is it still RFC?
<_whitenotifier-5> [rfcs] whitequark commented on pull request #57: RFC 57: Single-Field Register Definition and Usage Shortcut - https://github.com/amaranth-lang/rfcs/pull/57#issuecomment-2000139247
<whitequark[cis]> Lunaphied[m]: I'm working on a mini-streams RFC
<whitequark[cis]> I plan to publish next week
<Lunaphied[m]> Ah okay, thank you!
<tpw_rules> whitequark[cis]: okay, so the next step is to revise the RFC based on feedback?
<whitequark[cis]> tpw_rules: yes
<tpw_rules> then once it gets merged, i create a tracking issue and the implementation PR?
<whitequark[cis]> you can also rename the file, add the date, etc, though if you don't I will
<whitequark[cis]> tpw_rules: yep
<whitequark[cis]> we should write down the procedure
<tpw_rules> what date is there to add?
<whitequark[cis]> Start Date in the header
<whitequark[cis]> (should be today'sl
<tpw_rules> it's already there?
<whitequark[cis]> * (should be today's)
<tpw_rules> okay. i also speculatively filled in the number and name like some other RFCs
<whitequark[cis]> that's the wrong date -- you did not read the instructions
<whitequark[cis]> start date is the date of decision to merge, not the date of when you started writing the RFC or submitted the RFC PR draft
<tpw_rules> okay, where does it say that?
<whitequark[cis]> a lot of people are getting this wrong though
<zyp[m]> «start» being «acceptance» is not very obvious
<tpw_rules> yeah, the only docs i see are "today's date"
<whitequark[cis]> tpw_rules: in the RFC repo README
<whitequark[cis]> (and on the /rfcs/ page)
<tpw_rules> i don't see the word "date" or "start" anywhere on that page. i really don't think it's there
<whitequark[cis]> oh, huh.
<whitequark[cis]> okay that would explain why
<whitequark[cis]> you're right, absolutely nothing says that. I could swear something did!
<whitequark[cis]> sorry
<whitequark[cis]> I should fix that to make it clear, and also write down the process for what to do when the RFC is accepted
<tpw_rules> it would be useful
<Wanda[cis]> yeah I'm pretty sure you only told me that in a DM
<Wanda[cis]> (and I didn't double-check the docs)
<whitequark[cis]> oops.
<jfng[m]> @libera_tpw_rules:catircservices.org just realized RFC 57 should also work with an anonymous field array (e.g. `csr.Register([csr.Field(...) for _ in range (n)])`)
<_whitenotifier-5> [amaranth-soc] tpwrules opened issue #78: Tracking issue for RFC 57: Single-Field Register Definition and Usage Shortcut - https://github.com/amaranth-lang/amaranth-soc/issues/78
<tpw_rules> RFC #57 doesn't have anything to do with that if i understand right?
<tpw_rules> then it will just become a FieldActionMap and be accessible as .field[n]
<tpw_rules> sorry, FieldActionArray*
<jfng[m]> ah, right; this is more a BSP generator concern
<tpw_rules> yeah, the name is, in some sense, just the integer n
<jfng[m]> so, you could mention in the Prior Art section that we already have anonymous fields in the case of a field array
<tpw_rules> in my mind they are not anonymous, they just have the name n
<tpw_rules> that's a concern for the BSP how it wants to render that
<tpw_rules> BSP/docs generator
<jfng[m]> name and indices are different things to me, but yeah they already have an identifier
<tpw_rules> github question: how do i get this to show the nice pr status icon here: https://github.com/amaranth-lang/amaranth-soc/issues/78
<tpw_rules> they can't be said to be the same, but it's still a part of the path
<jfng[m]> click "raw" and copy paste the syntax :p
<tpw_rules> raw where? I didn't see that on another comment
<jfng[m]> or "edit", don't remember, but that's how i do it
<whitequark[cis]> tpw_rules: put it in a list (really)
<tpw_rules> so it did, weird
<whitequark[cis]> unhinged functionality i found by accident
<jfng[m]> `- [ ] amaranth-lang/rfcs#57`
<whitequark[cis]> yeah it doesnt even have to be a task list
<whitequark[cis]> just any old list works
<_whitenotifier-6> [rfcs] tpwrules reviewed pull request #57 commit - https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1526699123
<_whitenotifier-6> [rfcs] tpwrules reviewed pull request #57 commit - https://github.com/amaranth-lang/rfcs/pull/57#discussion_r1526699255
<tpw_rules> whitequark[cis]: okay, it should be ready for merge
<tpw_rules> wait not yet
<tpw_rules> whitequark[cis]: okay now it's ready
<_whitenotifier-5> [rfcs] whitequark closed pull request #57: RFC 57: Single-Field Register Definition and Usage Shortcut - https://github.com/amaranth-lang/rfcs/pull/57
<_whitenotifier-6> [amaranth-lang/rfcs] whitequark pushed 2 commits to main [+2/-0/±0] https://github.com/amaranth-lang/rfcs/compare/2c7ad0a6d740...2f47e702c0db
<_whitenotifier-5> [amaranth-lang/rfcs] tpwrules e5654ba - RFC 57: Single-Field Register Definition and Usage Shortcut
<_whitenotifier-5> [amaranth-lang/rfcs] whitequark 2f47e70 - RFC #57: Single-Field Register Definition and Usage Shortcut.
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+1/-0/±41] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/39f07c96ec62...3ed42ff487c5
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark 3ed42ff - Deploying to main from @ amaranth-lang/rfcs@2f47e702c0dbabab2703c4c71eebb1c79949e3c6 🚀
<_whitenotifier-5> [amaranth-lang/rfcs] whitequark e84cc62 - Formally define existing assignment of responsibilities.
<_whitenotifier-6> [amaranth-lang/rfcs] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/rfcs/compare/2f47e702c0db...e84cc621d3c0
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark d5abeba - Deploying to main from @ amaranth-lang/rfcs@e84cc621d3c073aebe4b7c778e7880b655e8d202 🚀
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±5] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/3ed42ff487c5...d5abebaa64d0
<_whitenotifier-5> [amaranth-lang/rfcs] whitequark pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/rfcs/compare/e84cc621d3c0...885b2766ba55
<_whitenotifier-6> [amaranth-lang/rfcs] whitequark 885b276 - Write down the procedure for merging an RFC.
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark de5f032 - Deploying to main from @ amaranth-lang/rfcs@885b2766ba557c1634236c1198875c9d2486078f 🚀
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±5] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/d5abebaa64d0...de5f0328a8b8
<_whitenotifier-5> [amaranth-lang/rfcs] whitequark 699bf4d - Fix dead links in README.
<_whitenotifier-6> [amaranth-lang/rfcs] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/rfcs/compare/885b2766ba55...699bf4d8f00e
<whitequark[cis]> okay, all written down
<whitequark[cis]> and I've clarified "Start Date" in the template too
<_whitenotifier-5> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±5] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/de5f0328a8b8...603480b03106
<_whitenotifier-6> [amaranth-lang/amaranth-lang.github.io] whitequark 603480b - Deploying to main from @ amaranth-lang/rfcs@699bf4d8f00ec5a4e3f948aa010afc034e9f73ac 🚀
<zyp[m]> Catherine: which exceptions should `testbench_helper` raise? I figure `TypeError` if it can't find the simulation context, but what if the process type is wrong? `AssertionError`? `RuntimeError`? a custom exception?
<whitequark[cis]> I think that can be left unspecified since we don't really expect anyone to catch it
<whitequark[cis]> (unlike e.g. return values of awaitables)
<zyp[m]> true
nates93[m] has quit [Quit: Idle timeout reached: 172800s]
<_whitenotifier-5> [amaranth] wanda-phi opened pull request #1207: hdl._ir: Fix fallout from #1190, add more tests. - https://github.com/amaranth-lang/amaranth/pull/1207
<_whitenotifier-5> [amaranth] codecov[bot] commented on pull request #1207: hdl._ir: Fix fallout from #1190, add more tests. - https://github.com/amaranth-lang/amaranth/pull/1207#issuecomment-2000468193
notgull has joined #amaranth-lang
polysci_00232[m] has joined #amaranth-lang
<polysci_00232[m]> Just got around to bumping my project to the lastest commit, seems like FSMs no longer have a 'state' attribute. Is there any replacement or is that feature no longer supported?
<Wanda[cis]> that feature turned out to be ... problematic
<Wanda[cis]> it conflicted with making AST nodes immutable (because the shape of state cannot be finalized until the FSM is done)
<Wanda[cis]> may I ask what your usecase is?
<Wanda[cis]> (state can still be accessed I think, but only once the FSM is closed)
<polysci_00232[m]> purely for debugging FSMs
<polysci_00232[m]> ok sounds like I just have to change how I was accessing it then
<_whitenotifier-5> [amaranth] wanda-phi edited pull request #1203: Implement RFC 53: Low-level I/O primitives. - https://github.com/amaranth-lang/amaranth/pull/1203
<_whitenotifier-6> [amaranth] wanda-phi opened pull request #1208: lib.memory: Add `Signature.create` implementations. - https://github.com/amaranth-lang/amaranth/pull/1208
<_whitenotifier-6> [amaranth] codecov[bot] commented on pull request #1208: lib.memory: Add `Signature.create` implementations. - https://github.com/amaranth-lang/amaranth/pull/1208#issuecomment-2000663188