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.catirclogs.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
balrog has quit [Quit: Bye]
balrog has joined #amaranth-lang
Degi has quit [Ping timeout: 265 seconds]
Degi has joined #amaranth-lang
ALTracer[m]1 has quit [Quit: Idle timeout reached: 172800s]
<zyp[m]> <whitequark[cis]> "we should have a meeting next..." <- is this happening? I'm ready
<whitequark[cis]> yep, give me two minutes please
<whitequark[cis]> who else is attending?
<whitequark[cis]> anuejn? vup? Wanda? cr1901? galibert? tpw_rules? Chips4Makers (aka Staf Verhaegen)?
Wanda[cis] has joined #amaranth-lang
<Wanda[cis]> ohhh
* anuejn ACTION
<Wanda[cis]> meow I'm here
<zyp[m]> in retrospect it would probably have been a good idea to post a reminder earlier today for better visibility
<Wanda[cis]> except I'm absolutely not up to date on rfcs
<whitequark[cis]> i don't think any of these things require extensive context
<Wanda[cis]> order?
<whitequark[cis]> oldest to newest
* vup is here
<whitequark[cis]> the first one to discuss is going to be RFC #74: Structured VCD Output https://github.com/eigenform/rfcs/blob/main/text/0074-structured-vcd.md
<whitequark[cis]> oh, cc eigenform
<whitequark[cis]> my general thoughts on the topic is that improvements to debuggability are always welcome and i've been thinking about using the vhdl_* types potentially from the beginning
<Wanda[cis]> hmm
<whitequark[cis]> including them by default with an opt-out is probably a breaking change
<Wanda[cis]> why are we not doing it in the first place? did we just forget?
<whitequark[cis]> pyvcd doesn't support them and they're not a part of the VCD spec
<zyp[m]> lack of pyvcd support?
<whitequark[cis]> the latter more important than the former, i think pyvcd would add them without too many questions
<anuejn> I like it
<whitequark[cis]> really the third unresolved question (re pyvcd support) isn't an RFC matter, pyvcd is a non-exposed implementation detail
<zyp[m]> same
<whitequark[cis]> what are your thoughts on opt-out/opt-in?
<whitequark[cis]> i feel that both options are bad, in a sense: opt-in means most people will not know about it, opt-out means we'll break some people's workflows
<zyp[m]> I think opt out is fine, especially if you can do it by setting an env var
<whitequark[cis]> i was gonna mention an environment variable as well
<Wanda[cis]> I'd vote for opt-out; we're not backporting that to old releases, right?
<whitequark[cis]> we're not
<anuejn> yeah opt-out for me as well
<whitequark[cis]> okay, fine by me
<whitequark[cis]> last unresolved question is "do we continue to include the concatenated representation for records, etc"?
<Wanda[cis]> also, how is this implemented?
<Wanda[cis]> hm
<whitequark[cis]> I think the RFC doesn't include an implementation
<Wanda[cis]> I have a vague feeling I may have implemented and/or designed this thing in the first place
<whitequark[cis]> yes
<zyp[m]> as in the underlying value under a lib.data.View?
<whitequark[cis]> ys
<whitequark[cis]> I think the underlying values are quite handy to see if you're e.g. stashing it inside of an untyped memory... but then if you're using lib.memory as you should, and you still have an untyped shape, the memory ports will let you peek at that value anyway
<zyp[m]> I don't see any reason to not have it
<whitequark[cis]> I think the reason it's a part of the RFC is that it would create a signal at a level of hierarchy higher and dump more data
<whitequark[cis]> like, the reason the question is there
<zyp[m]> but that's fine, the interface (e.g. a stream) might have more signals on the same level
<whitequark[cis]> yeah
<whitequark[cis]> yeah I think we should probably just keep it
<whitequark[cis]> there are plenty of cases where you have a composite value but need to operate on the complete thing anyway, like MMIO registers
<zyp[m]> can we have a data.Layout that has bits not covered by any fields? e.g. if it's sparse
<Wanda[cis]> ohhh right the Format-based stuff
<Wanda[cis]> okay I remember now
<whitequark[cis]> we can
<zyp[m]> then we absolutely want to be able to see non-fields too
<whitequark[cis]> yeah that is a clear rationale for having the flattened representation
<Wanda[cis]> okay, I'm reasonably happy regarding this being implementable
<whitequark[cis]> any other discussion?
<vup> For which things would this create this structured representation in the vcd? Only `Signals` that are created with a layout I guess?
<Wanda[cis]> there's a concern on the PR regarding support in Amaranth playground; what's the status with this?
<whitequark[cis]> the playground uses pyvcd as the parser and it's already more or less broken with structured data
<whitequark[cis]> not for pyvcd reasons, because of the library I'm using for rendering, iirc
<zyp[m]> worst case, amaranth playground could opt-out
<Wanda[cis]> vup: signals involving a `ShapeCastable` that has a `Format.Struct` or `Format.Array` based format, ie. usually `lib.data`-based stuff
<vup> Wanda: so not Views created from a "untyped" signal, right? Because to me it seems like that could be handy. But tricky to track implementation / naming wise.
<Wanda[cis]> only signals (and memories) are dumped into the VCD; any random Views constructed as intermediate expressions are not
<vup> makes sense
<vup> What happens for unions with this?
<Wanda[cis]> same as now
<Wanda[cis]> you get several traces with aliased data
<Wanda[cis]> the only difference is that they're grouped together in the new scope thing, instead of being dumped at module level
<vup> So in addition to what is mentioned in the RFC, a union would become a `vhdl_record` scope with aliased data?
<Wanda[cis]> yeah
<vup> sounds nice
<Wanda[cis]> (same for FlexibleLayout)
<whitequark[cis]> any further comments?
<whitequark[cis]> okay. everyone here proposes to merge?
<Wanda[cis]> yeah, merge
<zyp[m]> merge
<vup> yeah merge
<whitequark[cis]> disposition on RFC #74: merge
<whitequark[cis]> we have 20 minutes left, let's go with #76 since that should be a quick one
<whitequark[cis]> I propose using git-describe to derive 0.x.y so that it autoincrements for each commit to main, and then build and upload again on each commit to main
<whitequark[cis]> so you'd only ever tag v0.x.0 and the rest is done automatically
<whitequark[cis]> done naively this would result in having v0.x.y and v0.(x+y).0 be uploaded with the same contents, so we should probably not build commits tagged [breaking-change] or somesuch
<zyp[m]> so y would effectively be the number of commits, and thereby sparse if a PR contains multiple?
<whitequark[cis]> yes
<whitequark[cis]> we could also mandate squash&merge via repository policy
<zyp[m]> sounds reasonable
<whitequark[cis]> however you do it in the end, it's a bunch of somewhat fragile moving parts, but that's just the nature of doing release management with very limited resources
<zyp[m]> do we need to define what a breaking change is? is it a breaking change to e.g. swap two pins that were incorrectly defined for a board?
<Wanda[cis]> I'd say this is good enough for the time being
<_whitenotifier-2> [rfcs] whitequark commented on pull request #74: Add RFC for structured VCD output - https://github.com/amaranth-lang/rfcs/pull/74#issuecomment-2873429565
<whitequark[cis]> a breaking change is something that requires manual intervention for many users of a repo who previously had something that worked fine
<zyp[m]> yeah, so a minor fix for a single platform does not really count as breaking
<whitequark[cis]> fixing something that never worked before doesn't count as "breaking change" i'd say
<whitequark[cis]> ultimately if you need a really high level of assurance you just review the changelog on every update
<zyp[m]> could be something innocuous like changing the order of buttons or leds to be consistent with labelling or whatever
<anuejn> imo it is actually not suuper important to have semantic versions in -boards, its sure nice to have but its not a lot of code and the code thats there is not so tightly integrated that its easy to check if something broke for your usecase
<whitequark[cis]> it is quite nice to have pdm update not randomly break your code
<whitequark[cis]> any other comments?
<cr1901> Oops. I was pinged. Uhhh, the two RFCs discussed look fine
<anuejn> true, im good with the rfc :)
<whitequark[cis]> disposition?
<whitequark[cis]> merge from me
<Wanda[cis]> good enough; merge
<anuejn> merge
<cr1901> merge
<vup> merge
<whitequark[cis]> disposition on #74: merge
<zyp[m]> #76
<whitequark[cis]> er yes thanks
<_whitenotifier-2> [rfcs] whitequark commented on pull request #76: RFC #76: `amaranth-boards` versioning policy. - https://github.com/amaranth-lang/rfcs/pull/76#issuecomment-2873462032
<whitequark[cis]> this concludes the meeting. next one in a week
<anuejn> cool :)
<_whitenotifier-2> [rfcs] whitequark commented on pull request #75: add RFC for property labels - https://github.com/amaranth-lang/rfcs/pull/75#issuecomment-2873469713
<zyp[m]> thanks :)
<whitequark[cis]> and now i get to find out why range highlighting broke in catirclogs
<anuejn> I have to say I really like the time-boxed format
<whitequark[cis]> well, it would be rude towards other people's time if done otherwise
<whitequark[cis]> if we have these meetings at all they should be time-boxed, that's like meetings 101
<_whitenotifier-2> [rfcs] wanda-phi commented on pull request #75: add RFC for property labels - https://github.com/amaranth-lang/rfcs/pull/75#issuecomment-2873493347
<tpw_rules> time-boxed?
<_whitenotifier-2> [rfcs] whitequark commented on pull request #75: add RFC for property labels - https://github.com/amaranth-lang/rfcs/pull/75#issuecomment-2873499031
_whitelogger has joined #amaranth-lang
<Wanda[cis]> tpw_rules: having well-defined (and respected) start and end time
<tpw_rules> i know that's been done for the whole meeting, is that also per-item now?
<whitequark[cis]> no, just the whole meeting
<whitequark[cis]> I skipped an item that I have reasonably foreseen us running out of time over
<whitequark[cis]> to me this is just running a meeting skillfully, not something special
<whitequark[cis]> but I've also been in enough poorly run meetings I guess :)
<tpw_rules> i work on a project with a sort of open-ended meeting and it's a big drag. but i think the root of the problem there is not enough activity gets done off-meeting?
<tpw_rules> and idk how to inspire that
eigenform[m] has joined #amaranth-lang
<eigenform[m]> oop, sorry for missing this one! re #74, i only vaguely started sketching the implementation back when i sent the PR and didn't get particularly far. should be able to take a look today and tomorrow, but i'll be out of town the rest of the week~
<whitequark[cis]> sounds good, thanks for your effort! it's definitely a somewhat overlooked aspect
<zyp[m]> Catherine: do we make tracking issue for #76?
<whitequark[cis]> amaranth-boards? sure why not (let's just put it in the main repo I guess)
<_whitenotifier-2> [amaranth] zyp opened issue #1595: Tracking issue for RFC 76: `amaranth-boards` versioning policy. - https://github.com/amaranth-lang/amaranth/issues/1595
<zyp[m]> (not sure if the CI config should go through a PR, but eh)
<whitequark[cis]> well someone would have to thoroughly test it in a fork
<_whitenotifier-2> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1580-f3ac270a4db6c99efcce2d737c07119ab2ff0e71 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/f3ac270a4db6...7dcbb9e7c12b
<_whitenotifier-2> [amaranth-lang/amaranth] rroohhh 7dcbb9e - lib.wiring: make FlippedInterface hashable
<_whitenotifier-2> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1580-f3ac270a4db6c99efcce2d737c07119ab2ff0e71 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth] whitequark closed pull request #1580: lib.wiring: make FlippedInterface hashable - https://github.com/amaranth-lang/amaranth/pull/1580
<_whitenotifier-2> [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/8f22b631bead...a6f64459468c
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a6f6445 - Deploying to main from @ amaranth-lang/amaranth@7dcbb9e7c12b9795ed561819af6cf702b3ae5a71 🚀
nimh has quit [Ping timeout: 252 seconds]
nimh has joined #amaranth-lang
d_olex has joined #amaranth-lang
<_whitenotifier-2> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1593-7dcbb9e7c12b9795ed561819af6cf702b3ae5a71 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/7dcbb9e7c12b...d805f9688dee
<_whitenotifier-2> [amaranth-lang/amaranth] rroohhh d805f96 - hdl._ir: chain Fragment.origins with preexisting
<_whitenotifier-2> [amaranth] whitequark closed pull request #1593: hdl._ir: chain Fragment.origins with preexisting - https://github.com/amaranth-lang/amaranth/pull/1593
<_whitenotifier-2> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1593-7dcbb9e7c12b9795ed561819af6cf702b3ae5a71 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [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/a6f64459468c...d0b7e5ce0f09
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] d0b7e5c - Deploying to main from @ amaranth-lang/amaranth@d805f9688deef70f4366d7b8a0dfceaed5053756 🚀
<_whitenotifier-2> [amaranth] whitequark closed pull request #1594: hdl._ir: chain Fragment.origins with preexisting [0.5 backport] - https://github.com/amaranth-lang/amaranth/pull/1594
chrisgorman has joined #amaranth-lang
chrisgorman has quit [Client Quit]
d_olex has quit [Remote host closed the connection]
d_olex has joined #amaranth-lang
<_whitenotifier-2> [amaranth] whitequark created branch v0.5.x-changelog - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth] whitequark opened pull request #1596: Update changelog [v0.5.x] - https://github.com/amaranth-lang/amaranth/pull/1596
<_whitenotifier-2> [amaranth] whitequark closed pull request #1596: Update changelog [v0.5.x] - https://github.com/amaranth-lang/amaranth/pull/1596
<_whitenotifier-2> [amaranth] whitequark deleted branch v0.5.x-changelog - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth] whitequark opened pull request #1597: Update changelog for v0.5.5 [v0.5.x backport] - https://github.com/amaranth-lang/amaranth/pull/1597
<_whitenotifier-2> [amaranth] whitequark opened pull request #1598: Update changelog for v0.5.5 - https://github.com/amaranth-lang/amaranth/pull/1598
<_whitenotifier-2> [amaranth] whitequark edited pull request #1597: Update changelog for v0.5.5 [v0.5.x backport] - https://github.com/amaranth-lang/amaranth/pull/1597
<_whitenotifier-2> [amaranth-lang/rfcs] whitequark pushed 3 commits to main [+2/-0/±1] https://github.com/amaranth-lang/rfcs/compare/98c79d3f1b42...0860eb1e9635
<_whitenotifier-2> [amaranth-lang/rfcs] zyp 28091cd - RFC #76: `amaranth-boards` versioning policy.
<_whitenotifier-2> [amaranth-lang/rfcs] zyp 661e5c2 - RFC #76: Final touches.
<_whitenotifier-2> [amaranth-lang/rfcs] whitequark 0860eb1 - RFC #76: `amaranth-boards` versioning policy.
<_whitenotifier-2> [rfcs] whitequark closed pull request #76: RFC #76: `amaranth-boards` versioning policy. - https://github.com/amaranth-lang/rfcs/pull/76
<_whitenotifier-2> [rfcs] whitequark commented on pull request #76: RFC #76: `amaranth-boards` versioning policy. - https://github.com/amaranth-lang/rfcs/pull/76#issuecomment-2874451767
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+1/-0/±58] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/d0b7e5ce0f09...435e66939296
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] whitequark 435e669 - Deploying to main from @ amaranth-lang/rfcs@0860eb1e963595e748211fe9a7518bdcf7f1c878 🚀
<_whitenotifier-2> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-1598-d805f9688deef70f4366d7b8a0dfceaed5053756 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/d805f9688dee...f4804c04cd05
<_whitenotifier-2> [amaranth-lang/amaranth] whitequark f4804c0 - docs/changes: update for v0.5.5.
<_whitenotifier-2> [amaranth] whitequark closed pull request #1598: Update changelog for v0.5.5 - https://github.com/amaranth-lang/amaranth/pull/1598
<_whitenotifier-2> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-1598-d805f9688deef70f4366d7b8a0dfceaed5053756 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±38] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/435e66939296...1df000d1e19c
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 1df000d - Deploying to main from @ amaranth-lang/amaranth@f4804c04cd052aeedfa208ea70f9e956e30feccb 🚀
lf has joined #amaranth-lang
lf_ has quit [Ping timeout: 272 seconds]
<_whitenotifier-2> [amaranth] whitequark closed pull request #1597: Update changelog for v0.5.5 [v0.5.x backport] - https://github.com/amaranth-lang/amaranth/pull/1597
<_whitenotifier-2> [amaranth] whitequark reopened pull request #1597: Update changelog for v0.5.5 [v0.5.x backport] - https://github.com/amaranth-lang/amaranth/pull/1597
<_whitenotifier-2> [amaranth] whitequark closed pull request #1597: Update changelog for v0.5.5 [v0.5.x backport] - https://github.com/amaranth-lang/amaranth/pull/1597
<_whitenotifier-2> [amaranth] whitequark created tag v0.5.5 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-2> [amaranth-lang/amaranth] whitequark tagged b2cb5dc as v0.5.5 https://github.com/amaranth-lang/amaranth/commit/b2cb5dc10761d331c6b3add885fd6df65b7fcfbf
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+160/-0/±0] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/1df000d1e19c...0ea5787d21cb
<_whitenotifier-2> [amaranth-lang/amaranth-lang.github.io] whitequark 0ea5787 - Deploying to main from @ amaranth-lang/amaranth@b2cb5dc10761d331c6b3add885fd6df65b7fcfbf 🚀
<_whitenotifier-2> [amaranth] github-actions[bot] published v0.5.5 | 0.5.5 - https://github.com/amaranth-lang/amaranth/releases/tag/v0.5.5