ChanServ changed the topic of #prjunnamed to: FPGA toolchain project · rule #0 of prjunnamed: no one should ever burn out building software · https://github.com/prjunnamed/prjunnamed · logs: https://libera.irclog.whitequark.org/prjunnamed
widlarizerEmilJT has joined #prjunnamed
<widlarizerEmilJT> <mei[m]> "there's also JP2GMD, which is..." <- Sorry to be only contributing to off topic rn. I'm monitoring this chat and plan on playing with the code base soon. Just wanted to add there's (or was?) also six stars, space, three stars for "jebac PiS"
<mei[m]> <widlarizerEmilJT> "Sorry to be only contributing to..." <- not related to the pope in any way though, is it?
<Wanda[cis]> less relevant now that these assholes aren't in power, but yeah
<_whitenotifier-4> [prjunnamed] whitequark commented on commit 074aefd31ec3f0998de68b8e6e2edf2d33a317db - https://github.com/prjunnamed/prjunnamed/commit/074aefd31ec3f0998de68b8e6e2edf2d33a317db#commitcomment-152664200
<whitequark[cis]> <mei[m]> "Catherine: to expand on this, it..." <- the intended invariant is "for every input there is always a case that matches", yes
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte pushed 2 commits to main [+0/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/ba7d68cf3da4...7434c438a341
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 7ef998c - decision: Add more comments, 2
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 7434c43 - decision: Use Rc::ptr_eq (NFC)
<whitequark[cis]> <mei[m]> "oh and this comment doesn't..." <- uh, yes, you're right. i don't recall offhand exactly what was the issue there but it's worth looking at the commit that originally introduced the comment because it was a very specific inefficiency
<whitequark[cis]> i think it was "unreachable in one of the branches of the decision tree" or something like that, but got decontextualized while i was writing it'
<mei[m]> hm, I think we need the invariant to be "there's a row of all X's" for it to stay valid after assume
<mei[m]> wait, no, brain is dumb and stupid today
<whitequark[cis]> i think the row of all X's is only ever removed if the match is provably full
<whitequark[cis]> at which point it should be fine?
<mei[m]> whitequark[cis]: you don't seem to ever even try to detect that
<whitequark[cis]> it does happen to get detected if you have only one column
<whitequark[cis]> and you eventually always have only one column due to how it's recursively examined
<whitequark[cis]> since every decision tree branch eventually has two options it is a big deal to be able to have that since otherwise it blows up the size by a factor of 2 (if you do it naively)
<mei[m]> whitequark[cis]: huh? which part does that?
<whitequark[cis]> does normalize not do it any more?
<whitequark[cis]> oh, you're right actually
<whitequark[cis]> a previous version of the code did it but i removed it in favor of just using normalize since it was duplicating the whole logic
<whitequark[cis]> hm. i wonder if you can construct a testcase for this that blows up in the SMT verifier
<mei[m]> hm, I actually think that "there's a matching pattern for all outputs" is only possible to satisfy with a fallback case at the very end, due to the possibility of having X as input
<whitequark[cis]> yes
<mei[m]> i don't think you're using the incorrect formulation of the invariant anywhere
<whitequark[cis]> iirc the way X-prop works for match cells is basically just whatever lets me kill as many rows and columns as possible, but I'm not sure it's actually optimal
<mei[m]> i did reverse it from the smt code at one point further up in the chat
<mei[m]> ...i should probably write it down somewhere more permanen
<mei[m]> s/permanen/permanent/
<whitequark[cis]> i think the way it was in my head is uh
<whitequark[cis]> "an X in the input never matches either a 0 or 1 in the mask because this way we can kill as many branches of the decision tree as possible, but it inevitably has to match X in the mask"
<whitequark[cis]> and the rest of the SMT rules are just something i wrote because it seemed like it makes sense and wouldn't be incorrect
<whitequark[cis]> (Wanda told me to express it as a combination of logic cell semantics and I did just that, there was not much more thought put into it)
<whitequark[cis]> so I think treating the SMT rules as a source of truth may not be ideal
<whitequark[cis]> <whitequark[cis]> "uh, yes, you're right. i don't..." <- so looking at this part again
<whitequark[cis]> column 1 is being chosen reducing the match matrix to 0/1/X, and then nothing ever actually removes the X
<whitequark[cis]> not sure about the "two rows" part
<whitequark[cis]> yeah this is incredibly confusing to me too
<whitequark[cis]> but there should be a testcase added with the condition i think/
<whitequark[cis]> s///?/
<whitequark[cis]> i think the comment is just wrong
<whitequark[cis]> mei: oh, can you ask you to do something while you're at it? because the decision pass was written across the point in time where we changed the bit order of constants, it has the confusing `h.pat` helper with the wrong bit order
<whitequark[cis]> it should be replaced with Const::lit with the argument being a string in the reverse order
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte pushed 2 commits to main [+0/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/7434c438a341...6ccf01407bfe
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 3814793 - decision: Document an invariant. Make use of it in `merge`
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 6ccf014 - decision: Get rid of the misleading h.pat wrapper
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/6ccf01407bfe...439f758b9b8e
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 439f758 - remove unused import
<mei[m]> oh. ooh. jesus. okay, i'll PR my shit
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/fix-build - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #30: fix build (turns out that was not the import that CI pointed out) - https://github.com/prjunnamed/prjunnamed/pull/30
<_whitenotifier-4> [prjunnamed] meithecatte closed pull request #30: fix build (turns out that was not the import that CI pointed out) - https://github.com/prjunnamed/prjunnamed/pull/30
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/439f758b9b8e...fc373fa7b963
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte fc373fa - turns out that was not the import that CI pointed out
<_whitenotifier-4> [prjunnamed] meithecatte deleted branch mei/fix-build - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> oh right you can't force-push
<mei[m]> yeah..
<mei[m]> wanda already told me off once for breaking main 😅
<whitequark[cis]> honestly the thing that bothers me more is the commit messages for the fixes >.>
<whitequark[cis]> breaking CI is transient, git history is forever
<mei[m]> how would you write a commit message for that
<whitequark[cis]> just scope it to the same component that got broken
<Wanda[cis]> mei: breaking main is a biting offense
<mei[m]> i did successfully run cargo test before it broke this time!
<Wanda[cis]> (but also, we need merge queue)
<mei[m]> i do admit that my fix was rushed...
<whitequark[cis]> i enabled it
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/decision-slicing - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #31: decision: Fix lowering assign cells that slice with offset=0 - https://github.com/prjunnamed/prjunnamed/pull/31
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #31 commit - https://github.com/prjunnamed/prjunnamed/pull/31#discussion_r1959008307
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #31 commit - https://github.com/prjunnamed/prjunnamed/pull/31#discussion_r1959008458
<mei[m]> what's the particular settings of the merge queue? does it do squash or rebase?
<whitequark[cis]> rebase
<_whitenotifier-4> [prjunnamed] meithecatte synchronize pull request #31: decision: Fix lowering assign cells that slice with offset=0 - https://github.com/prjunnamed/prjunnamed/pull/31
<whitequark[cis]> so you need to squash or fixup manually
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-31-fc373fa7b96362ac1e97c93936340f01104d359b - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-31-fc373fa7b96362ac1e97c93936340f01104d359b - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte deleted branch mei/decision-slicing - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte closed pull request #31: decision: Fix lowering assign cells that slice with offset=0 - https://github.com/prjunnamed/prjunnamed/pull/31
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 3 commits to main [+0/-0/±3] https://github.com/prjunnamed/prjunnamed/compare/fc373fa7b963...1cb87e499f54
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 78e43d9 - decision: Fix lowering assign cells that slice with offset=0
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 35d922c - decision: Fix comment positioning
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 1cb87e4 - decision: Add explanation to other tests without assertions
<whitequark[cis]> i would strongly prefer commits like 35d922c to be folded into commits like 78e43d9
<whitequark[cis]> basically, i want the history to be readable and not include too much noise; this greatly helps with investigations of the "why the fuck is it even like this" years later, of which i do lots in all sorts of codebases
<whitequark[cis]> i do not have a strong opinion on whether semi-unrelated changes like 1cb87e4 should or should not be folded into others; i personally often do that but it's not a big deal either way
<mei[m]> whitequark[cis]: (it would've been a drive-by fix on the other instance of that comment but I do agree that that would probably still be a bit better)
<whitequark[cis]> whitequark[cis]: (i do it for the same reasoning as previous; it keeps the history easier to read, in my view. whether this is actually the case is arguable so i just leave it to the committer's taste)
<whitequark[cis]> mei[m]: yeah i'm fine with those
<whitequark[cis]> some of your documentation fixes include a bunch of disparate drive-by changes that are roughly grouped under the same umbrella and i'm happy with that
<whitequark[cis]> as long as it reasonably resembles a single unit someone would want to think about i think it's good (it will not surprise you that i do not adhere to a lot of rigid rules here either)
<whitequark[cis]> currently fighting with github actions to get langref published
<mei[m]> what do you think about starting a benchmark collection? I'd do it but I have no familiarity with how to actually get other tools to emit UIR
<mei[m]> (I have some ideas on how to emit better decision trees that I'd like to try out)
<whitequark[cis]> in amaranth you do it by from amaranth.back import unnamed; unnamed.convert(component)
<whitequark[cis]> (while using our fork)
<whitequark[cis]> i think for benchmarking decision trees specifically it might be useful to construct match matrices directly, perhaps? that seems like it would involve the fewest steps between the testcase and the code that processes it
<whitequark[cis]> there is undeniable utility in starting from the frontend for more complex cases but i think taking out the text parsing and the frontend's decisions (if applicable) is actually a benefit here, not a drawback
<whitequark[cis]> (match matrices or match cells, at your discretion, whichever make more sense for the use case)
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/decision-example - https://github.com/prjunnamed/prjunnamed
<mei[m]> i mean, yeah, but this is not "i know a specific case that would work better", but "i wonder how this heuristic would fare on logic that occurs in the wild"
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #32: decision: Reword example in comment to not be misleading - https://github.com/prjunnamed/prjunnamed/pull/32
<whitequark[cis]> hm. the way i usually do it is i look at logic that occurs in the wild, search for inefficiencies, extract the cases and then improve them one by one, but i can also think of the utility of using a bunch of different cases (let's say different levels of utilization of input space; 30% 50% 70% 90% 100%) with various assign chains to see the dynamics of a heuristic across these points
<whitequark[cis]> it's true that fully synthetic examples fail to exercise the heuristics in interesting ways, but i'm also not sure how useful it is to use aggregate statistics over a bunch of (inevitably biased) examples in a benchmark set
<whitequark[cis]> (it's good for writing papers for sure, but beyond that?)
<whitequark[cis]> or, let me rephrase that
<whitequark[cis]> i think it would be useful to have a repository of real UIR we can test our flow on to see if there are any major improvements or regressions but as a separate (git) repository that would be an aid to the developer rather than integrated into the workflow the way our existing testcases are
<whitequark[cis]> if that is what you're after the answer is yes, we should just have it
<mei[m]> yes, that's what I have in mind
<whitequark[cis]> oh okay, i misunderstood at first then
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/mdbook - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-32-1cb87e499f54da09c31cf03e85d8aabef3a5b45e - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/1cb87e499f54...2456c8b5bf03
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 2456c8b - decision: Reword example in comment to not be misleading
<_whitenotifier-4> [prjunnamed] meithecatte closed pull request #32: decision: Reword example in comment to not be misleading - https://github.com/prjunnamed/prjunnamed/pull/32
<_whitenotifier-4> [prjunnamed] meithecatte deleted branch mei/decision-example - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-32-1cb87e499f54da09c31cf03e85d8aabef3a5b45e - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #33: Publish API and mdbook docs - https://github.com/prjunnamed/prjunnamed/pull/33
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #33: Publish API and mdbook docs - https://github.com/prjunnamed/prjunnamed/pull/33
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-33-2456c8b5bf0314447e545a271f4d5d60190c3d26 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+5/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/2456c8b5bf03...9e8b75a6a221
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark 9e8b75a - Add boilerplate for guide level documentation and a publish workflow.
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-33-2456c8b5bf0314447e545a271f4d5d60190c3d26 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #33: Publish API and mdbook docs - https://github.com/prjunnamed/prjunnamed/pull/33
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/mdbook - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-actions[bot] created branch gh-pages - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> Wanda: should we kill the legacy branches? they could be turned into tags if needed, but the github PRs are going to preserve the diff for a dead branch regardless
<whitequark[cis]> (either way I think the value at this point is very limited)
<whitequark[cis]> anyone up to writing a highlight.js file for unnamed IR? https://rust-lang.github.io/mdBook/format/theme/syntax-highlighting.html
<Wanda[cis]> hm
<Wanda[cis]> I want to make sure I have a local copy first, but yes
<whitequark[cis]> Wanda: opinion on changing `rst>en` and `en>rst` to `rst/en` and `en/rst` (reads out loud as "reset over enable" etc)?
<whitequark[cis]> if this is done then langref can state that symbols < and > are only ever used to denote placeholders
<Wanda[cis]> hmm
<whitequark[cis]> and i think it is cute that if you read it like a fraction it sounds right.
<Wanda[cis]> weird syntax
<whitequark[cis]> `rst>en` is weird too
<Wanda[cis]> true
<Wanda[cis]> could change it
<whitequark[cis]> nod
<mei[m]> running pip install . in prjunnamed/amaranth results in an error involving get_version_from_scm, is this a known issue or something?
<whitequark[cis]> git fetch --tags
<whitequark[cis]> hm
<whitequark[cis]> i think we don't actually ever need to imbue LF with a special meaning (besides in comments)
<whitequark[cis]> actually no nevermind we do
<mei[m]> (i hope this gets handled well by the irc bridge :P)
<whitequark[cis]> it does
<whitequark[cis]> does that work any better or does it crash the same way?
<mei[m]> how do i make use of a pyproject.toml
<whitequark[cis]> pdm install within boneless does it
<whitequark[cis]> (if you're familiar with cargo or npm, pdm is much more like that than pip)
<mei[m]> pdm install... within a venv or does it behave nice?
<whitequark[cis]> (it also entirely frees you from having to manually manage venvs)
<whitequark[cis]> it manages a venv for you (although it will also pick up a venv if you manually activate it)
<whitequark[cis]> i recommend doing rm .venv -rf and then running pdm install
<whitequark[cis]> pdm itself can be installed with pipx install pdm if arch doesn't have it already
<mei[m]> it does
<whitequark[cis]> ok perfect
<mei[m]> [RequirementError]: Invalid version for amaranth @ file:///home/mei/src/amaranth-prjunnamed: Invalid version: 'None'
<mei[m]> hisss
<whitequark[cis]> okay, yeah, that's the same problem
<whitequark[cis]> let's look at that repo
<whitequark[cis]> can you do git tag in it?
<Wanda[cis]> hell yes, finally got a proper power socket
<Wanda[cis]> alright
<Wanda[cis]> let's nuke these branches
<_whitenotifier-4> [prjunnamed] wanda-phi deleted branch initial-ir - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] wanda-phi deleted branch ir-draft - https://github.com/prjunnamed/prjunnamed
<mei[m]> <whitequark[cis]> "can you do git tag in it?" <- nope. I cloned the repo from prjunnamed/amaranth, looks like that fork doesn't have any tags?
<whitequark[cis]> oh. yeah. lemme fix that
<whitequark[cis]> why the hell does github not move tags over on fork...
<whitequark[cis]> anyway, fixed
<mei[m]> whitequark[cis]: I think the default has a checked checkbox of "only copy the main branch"
<whitequark[cis]> yes but tags are not branches...
<mei[m]> oh, there we go. i would've noticed this earlier if i was used to git fetch --tags and knew to expect output
<mei[m]> pdm install worked
<whitequark[cis]> yeah, this thing is a minor footgun
<whitequark[cis]> i think the alternative is worse but this isn't great either
<whitequark[cis]> we could detect this and add an error message to amaranth, actually
<mei[m]> i assume if i want to run "python -m boneless.gateware.core", i should enter a venv somehow?
<mei[m]> whitequark[cis]: probably a good idea
<mei[m]> okay, how do i hack this together? i should probably bypass amaranth cli?
<whitequark[cis]> i actually usually just use the cli (i think i pushed a commit that adds .uir as an output type)
<whitequark[cis]> the CLI is very much deprecated but it's still used in a bunch of places I guess
<whitequark[cis]> anyway, yes, what you wrote is perfectly fine too
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/argparse - https://github.com/prjunnamed/prjunnamed
<mei[m]> so how do I get stats for cell counts and stuff?
<mei[m]> do I need to shove things into nextpnr?
<Wanda[cis]> they're printed as a comment at the end of IR dump
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #34: Basic CLI UX improvements - https://github.com/prjunnamed/prjunnamed/pull/34
<Wanda[cis]> see Design::statistics function
<whitequark[cis]> the output is not in fact required
<whitequark[cis]> i use cargo run whatever.uir quite a lot
<mei[m]> whitequark[cis]: okay, good, that's why we have code review :3
<whitequark[cis]> (this is also how you get cell counts, they're not written to a file)
<whitequark[cis]> but yeah i kind of never noticed required() is a thing
<_whitenotifier-4> [prjunnamed] meithecatte synchronize pull request #34: Basic CLI UX improvements - https://github.com/prjunnamed/prjunnamed/pull/34
<whitequark[cis]> wtf is its problem
<mei[m]> hm, `<https://...>`
<mei[m]> ?
<whitequark[cis]> no idea. maybe?
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-34-9e8b75a6a221c510fd116bacfabca98e58574668 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 2 commits to main [+0/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/9e8b75a6a221...12a1be94c3dc
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 5c81b3e - cli: Mark required arguments as required
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 12a1be9 - cli: List targets when unknown target is provided
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-34-9e8b75a6a221c510fd116bacfabca98e58574668 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte closed pull request #34: Basic CLI UX improvements - https://github.com/prjunnamed/prjunnamed/pull/34
<_whitenotifier-4> [prjunnamed] meithecatte deleted branch mei/argparse - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/disjoint - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #35: decision: Accurately check whether nets are mutually exclusive - https://github.com/prjunnamed/prjunnamed/pull/35
<_whitenotifier-4> [prjunnamed] meithecatte created branch mei/shutup-bitch - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] meithecatte opened pull request #36: decision: Mark URLs as links - https://github.com/prjunnamed/prjunnamed/pull/36
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-36-12a1be94c3dcb5f65287d92f07565832249d6fda - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/12a1be94c3dc...67abc61f2295
<_whitenotifier-4> [prjunnamed/prjunnamed] meithecatte 67abc61 - decision: Mark URLs as links
<_whitenotifier-4> [prjunnamed] meithecatte closed pull request #36: decision: Mark URLs as links - https://github.com/prjunnamed/prjunnamed/pull/36
<_whitenotifier-4> [prjunnamed] meithecatte deleted branch mei/shutup-bitch - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-36-12a1be94c3dcb5f65287d92f07565832249d6fda - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/langref - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> this is every bit as exhausting as i thought it would be
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959154518
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959156695
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959159228
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959162874
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959164442
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959164725
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] whitequark closed issue #20: Set up a document publishing system - https://github.com/prjunnamed/prjunnamed/issues/20
<whitequark[cis]> mei: let me know once you're happy with it as-is
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959167802
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959174786
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959174141
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959170331
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959176627
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959167802
<_whitenotifier-4> [prjunnamed] meithecatte reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959179408
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959183507
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959184258
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959184976
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959192033
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959193644
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/docroot - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959195117
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #38: Remove `book/` from the start of book URLs - https://github.com/prjunnamed/prjunnamed/pull/38
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959197592
<_whitenotifier-4> [prjunnamed] whitequark deleted branch gh-pages - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-38-67abc61f22951b3ab774588dd2b1649fa8b16d46 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±3] https://github.com/prjunnamed/prjunnamed/compare/67abc61f2295...5ecbe6afe807
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark 5ecbe6a - docs: remove `book/` from the start of book URLs.
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/docroot - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-38-67abc61f22951b3ab774588dd2b1649fa8b16d46 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #38: Remove `book/` from the start of book URLs - https://github.com/prjunnamed/prjunnamed/pull/38
<_whitenotifier-4> [prjunnamed] github-actions[bot] created branch gh-pages - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959199354
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959202410
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959214526
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959214898
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959218598
<whitequark[cis]> https://prjunnamed.org/dev/langref.html simplified the URLs
<whitequark[cis]> and i guess now we also have index.html at the root
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959219689
<_whitenotifier-4> [prjunnamed] wanda-phi opened issue #39: Add `&"io"+slice:width` syntax - https://github.com/prjunnamed/prjunnamed/issues/39
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #39: Add `&"io"+slice:width` syntax - https://github.com/prjunnamed/prjunnamed/issues/39#issuecomment-2664856489
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959228844
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] whitequark reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959237472
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] wanda-phi reviewed pull request #37 commit - https://github.com/prjunnamed/prjunnamed/pull/37#discussion_r1959239642
<whitequark[cis]> okay, I think that's good enough to merge this PR (and I'm also exhausted)
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/5ecbe6afe807...a1e2df0f750d
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark a1e2df0 - docs: start writing the language reference.
<Wanda[cis]> r+
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-37-5ecbe6afe80746b67ad8160f7ffbbbe49ca9ff80 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-37-5ecbe6afe80746b67ad8160f7ffbbbe49ca9ff80 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #37: Start writing the language reference - https://github.com/prjunnamed/prjunnamed/pull/37
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/langref - https://github.com/prjunnamed/prjunnamed
<mei[m]> thoughts on generating the API docs with --document-private-items?
<whitequark[cis]> unsure. i think the API docs are already plenty confusing
<Wanda[cis]> not really sure
<Wanda[cis]> we don't really have "public" api in the first place
<Wanda[cis]> will we?
<whitequark[cis]> we kind of do though
<whitequark[cis]> in that e.g. the internals of the netlist crate are actively concealing themselves so that they would not be relied on too much
<whitequark[cis]> i think it's fine to introduce the barrier of "you have to open the source code" to see private items because they're... private
<whitequark[cis]> that or lots of #[doc(hidden)]
<Wanda[cis]> good point
<mei[m]> otoh currently we have top-level comments on files whose contents are only public via reexport, so the docs aren't visible even though they are relevant
<whitequark[cis]> well you made them top-level doc comments
<whitequark[cis]> i was confused why, given the obvious visibility issues
<whitequark[cis]> i think it's perfectly fine to have a long comment that isn't a doc-comment nor it is ever rendered in cargo doc
<whitequark[cis]> generally speaking i do not believe in the "shove all of the docstrings into an html file in a random ass order" school of writing documentation because it sucks
<whitequark[cis]> i think documentation needs to be curated, so that whatever surfaces in the html is something that is intentionally placed there because it has meaning within the surrounding context
<whitequark[cis]> (this is how amaranth docs are written)
<whitequark[cis]> rustdoc doesn't really make that possible but it needs to be approximated at least
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/boxed - https://github.com/prjunnamed/prjunnamed
<Wanda[cis]> .... boxed cat
<whitequark[cis]> yeah
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #40: Eliminate "coarse" from the lexicon - https://github.com/prjunnamed/prjunnamed/pull/40
<Wanda[cis]> okay so. we have a landing page now.
<whitequark[cis]> we do!
<whitequark[cis]> it's not very good but we do
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-40-a1e2df0f750d5f6ada186c9896306f93bdb01f05 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±4] https://github.com/prjunnamed/prjunnamed/compare/a1e2df0f750d...6d207cb3c2eb
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark 6d207cb - netlist: eliminate "coarse" from the lexicon.
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-40-a1e2df0f750d5f6ada186c9896306f93bdb01f05 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #40: Eliminate "coarse" from the lexicon - https://github.com/prjunnamed/prjunnamed/pull/40
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/boxed - https://github.com/prjunnamed/prjunnamed
<Wanda[cis]> should I move combine docs to within the domain somehow?
<whitequark[cis]> ... it might be easier to use another domain
<whitequark[cis]> well i can set it up, it's just a royal pain
<Wanda[cis]> right
<Wanda[cis]> hm
<whitequark[cis]> this is... awful
<Wanda[cis]> .... yeah
<whitequark[cis]> I think we should do s/A synchronous/Synchronous/g
<whitequark[cis]> grammar be damned
<Wanda[cis]> sorry
<Wanda[cis]> mm
<Wanda[cis]> yes
<Wanda[cis]> or pick other terms?
<Wanda[cis]> combinational? registered>
<whitequark[cis]> combinational/registered seem ok to me
<whitequark[cis]> hi Staf!
Chips4MakersakaS has joined #prjunnamed
<Chips4MakersakaS> If I try to add catircservices.org to the list of servers in element it says there is no access to the public room list. Is this on purpose ?
<whitequark[cis]> I have no idea what adding it to the list of servers in Element (is this Element X?) would achieve, or where is that UI element even is
<whitequark[cis]> however I can say that catircservices.org is, well, that: my IRC services. it's not a general purpose Matrix server
<Chips4MakersakaS> FYI
<whitequark[cis]> oh, got it
<whitequark[cis]> yeah, it's not supposed to work I think
whitequark[cis] changed the topic of #prjunnamed to: FPGA toolchain project · rule #0 of prjunnamed: no one should ever burn out building software · https://prjunnamed.org · https://github.com/prjunnamed/prjunnamed · logs: https://libera.irclog.whitequark.org/prjunnamed
<Chips4MakersakaS> <whitequark[cis]> "hi Staf!" <- 👋
<_whitenotifier-4> [prjunnamed] wanda-phi opened issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665123648
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665132933
<_whitenotifier-4> [prjunnamed] wanda-phi commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665138984
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665142729
<_whitenotifier-4> [prjunnamed] wanda-phi commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665145627
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #41: Design a diagnostics system - https://github.com/prjunnamed/prjunnamed/issues/41#issuecomment-2665148841
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/its-so-over - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #42: Breaking UIR change: `rst>en`,`en>rst` → `rst/en`,`en/rst` - https://github.com/prjunnamed/prjunnamed/pull/42
<Wanda[cis]> lovely branch name
<whitequark[cis]> thank you,
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-42-6d207cb3c2eb864366aa2dacb47b05d5008f5dab - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±6] https://github.com/prjunnamed/prjunnamed/compare/6d207cb3c2eb...4413edf60cdd
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark 4413edf - netlist: `rst>en`,`en>rst` → `rst/en`,`en/rst`.
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #42: Breaking UIR change: `rst>en`,`en>rst` → `rst/en`,`en/rst` - https://github.com/prjunnamed/prjunnamed/pull/42
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/its-so-over - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-42-6d207cb3c2eb864366aa2dacb47b05d5008f5dab - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> this does not break amaranth because it never emits `rst>en` or `en>rst` in first place
<Wanda[cis]> yuuup
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/crlf - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #43: Accept CRLF line endings in addition to LF - https://github.com/prjunnamed/prjunnamed/pull/43
<whitequark[cis]> the way we handle strings is funny
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/prjunnamed/prjunnamed/compare/4413edf60cdd...b0f74e90ffa0
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark b0f74e9 - netlist: accept CRLF line endings in addition to LF.
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #43: Accept CRLF line endings in addition to LF - https://github.com/prjunnamed/prjunnamed/pull/43
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-43-4413edf60cdd77cc195c9b3f891ff8c516200592 - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> "\blah" is just... well, \blah`
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/crlf - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-43-4413edf60cdd77cc195c9b3f891ff8c516200592 - https://github.com/prjunnamed/prjunnamed
<whitequark[cis]> * "\blah" is just... well, \blah
<whitequark[cis]> because l is not a hexadecimal number
<galibert[m]> Ow ow ow
<whitequark[cis]> this is completely internally consistent, just... weird
<Wanda[cis]> this sounds like a bug source
<whitequark[cis]> in fact python does something very similar
<whitequark[cis]> c eats the slash:
<whitequark[cis]> this is strictly worse i think
<Wanda[cis]> I think we should just raise an error
<Wanda[cis]> that's... kind of the only reasonable behavior
<whitequark[cis]> hm. do we just never test strings at all
<whitequark[cis]> oh yeah it's completely fucked
<whitequark[cis]> okay, so the particular case i thought about is an error
<whitequark[cis]> * an error alread
<whitequark[cis]> * an error already
<whitequark[cis]> but i found another bug
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/playing-with-yarn - https://github.com/prjunnamed/prjunnamed
<Wanda[cis]> lmao
<jn> branch name :3
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #44: Actually test string parsing - https://github.com/prjunnamed/prjunnamed/pull/44
<whitequark[cis]> look. it is not wrong
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-44-b0f74e90ffa05dbedf798df6c51c941fd795e1c0 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±3] https://github.com/prjunnamed/prjunnamed/compare/b0f74e90ffa0...e1c9105d931a
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark e1c9105 - netlist: actually test string parsing.
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-44-b0f74e90ffa05dbedf798df6c51c941fd795e1c0 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #44: Actually test string parsing - https://github.com/prjunnamed/prjunnamed/pull/44
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/playing-with-yarn - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] wanda-phi opened issue #45: Implement EDIF backend - https://github.com/prjunnamed/prjunnamed/issues/45
<_whitenotifier-4> [prjunnamed] whitequark commented on issue #45: Implement EDIF backend - https://github.com/prjunnamed/prjunnamed/issues/45#issuecomment-2665457656
<_whitenotifier-4> [prjunnamed] whitequark opened issue #46: Implement compaction of metadata - https://github.com/prjunnamed/prjunnamed/issues/46
<whitequark[cis]> one reason to allow non-UTF-8 strings is because OS paths may not be convertible to UTF-8
<Wanda[cis]> I mean, yes, but...
<Wanda[cis]> what year is this
<whitequark[cis]> we may require that but this will probably result in pain later
<Wanda[cis]> ehh.
<Wanda[cis]> okay, sure, paths are osstrings
<Wanda[cis]> which effectively means vec<u8> in net;ist
<Wanda[cis]> what else?
<whitequark[cis]> does verilog specify the source charset?
<Wanda[cis]> do we want all strings to be bytestrings? just this one? some other subset?
<Wanda[cis]> whitequark[cis]: lol, lmao
<whitequark[cis]> here you go
<Wanda[cis]> vhdl does though! it's latin-1.
<Wanda[cis]> which I refuse to accept btw
<povikMartinPovie> slang is hard-coded to utf-8
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/metadata - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #47: Document all metadata declarations - https://github.com/prjunnamed/prjunnamed/pull/47
<whitequark[cis]> r? #47
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #47: Document all metadata declarations - https://github.com/prjunnamed/prjunnamed/pull/47
<whitequark[cis]> it's fascinating to me just how intensely exhausting writing is
<_whitenotifier-4> [prjunnamed] whitequark opened issue #48: Add a lexical analyzer (tokenizer) to the IR parser - https://github.com/prjunnamed/prjunnamed/issues/48
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #47: Document all metadata declarations - https://github.com/prjunnamed/prjunnamed/pull/47
<_whitenotifier-4> [prjunnamed] whitequark synchronize pull request #47: Document all metadata declarations - https://github.com/prjunnamed/prjunnamed/pull/47
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-47-e1c9105d931afbc0422f444edc46f84f6e3d6a01 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 4 commits to main [+0/-0/±7] https://github.com/prjunnamed/prjunnamed/compare/e1c9105d931a...f5fdabd2843c
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark e756f30 - docs: duplicate the info in README on the landing page.
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark a62f658 - docs: move build instructions from README to the book.
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark 9839aa6 - docs: expand language reference to document all metadata declarations.
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark f5fdabd - docs: langref: some compiler developers aren't human and that's okay.
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/metadata - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-47-e1c9105d931afbc0422f444edc46f84f6e3d6a01 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #47: Document all metadata declarations - https://github.com/prjunnamed/prjunnamed/pull/47
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/oops - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #49: Fix a few issues with the book - https://github.com/prjunnamed/prjunnamed/pull/49
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-49-f5fdabd2843c8716c2056129ea172cdc9bf8797c - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-49-f5fdabd2843c8716c2056129ea172cdc9bf8797c - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/oops - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #49: Fix a few issues with the book - https://github.com/prjunnamed/prjunnamed/pull/49
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/this-is-the-last-one-i-swear - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #50: Fix heading formatting in the docs - https://github.com/prjunnamed/prjunnamed/pull/50
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-50-4c667b9b76395bcb61499c03adb846c595e30976 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-50-4c667b9b76395bcb61499c03adb846c595e30976 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/this-is-the-last-one-i-swear - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/4c667b9b7639...f603cb430364
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark f603cb4 - docs: fix heading format.
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #50: Fix heading formatting in the docs - https://github.com/prjunnamed/prjunnamed/pull/50
<Wanda[cis]> good diff
<whitequark[cis]> o:3
<whitequark[cis]> it's the little things
<Wanda[cis]> mmm amazing
<Wanda[cis]> German EDGE makes Element completely shit itself to the point of hanging Android UI for significant amounts of time
<Wanda[cis]> anyway.
<Wanda[cis]> we're missing I/O declarations
<whitequark[cis]> oh. yeah. those
<whitequark[cis]> someone should add them >.>
<_whitenotifier-4> [prjunnamed] whitequark opened issue #51: Add version to the header of the text IR - https://github.com/prjunnamed/prjunnamed/issues/51
<Wanda[cis]> also, source columns
<Wanda[cis]> hm
<Wanda[cis]> should it be codepoints? utf-8 bytes?
<Wanda[cis]> ... utf-16 units?
<whitequark[cis]> very specifically codepoints
<whitequark[cis]> absolutely not bytes
<whitequark[cis]> almost no matter what character set you're using, you can do a (load-bearing mostly) unique and reversible transformation to Unicode
<Wanda[cis]> feels like it needs rationale
<whitequark[cis]> yes, there are cases which are fucked, but given that we aren't going to bundle ICU with prjunnamed you're screwed anyway
<whitequark[cis]> Wanda[cis]: "it's unambiguous, fast in common case of UTF-8, and accommodating unusual cases if needed"
<whitequark[cis]> which is like the default rationale for anything so I didn't put it into the text
<whitequark[cis]> absolutely nobody is interested in counting UTF-16 code units except for JavaScript developers who will then put a single emoji in and it will break everything
<whitequark[cis]> and doing it when all you have is UTF-8 involves an unacceptable amount of useless ceremony
<galibert[m]> UTF-16 is really, really annoying
<whitequark[cis]> UTF-8 bytes is basically as good as UTF-8 code points, except it completely breaks the ability of e.g. VS Code to open a link with a column number in it from the terminal or something (or other similar uses) when non-latin characters are used
<whitequark[cis]> * code points in terms of ambiguity, except
<whitequark[cis]> so it's strictly inferior
<whitequark[cis]> I don
<whitequark[cis]> * I don't actually know how VS Code or other editors count columns when astral plane characters are involved because nobody documents this shit, but nothing I know counts bytes
<jix> I've always assumed that uses utf-16 units as column numbers mostly does so by accident and now it's too late to change it rather than by design
<whitequark[cis]> yeah...
<galibert[m]> CJK tends to be double width, which adds fun to the fun
<galibert[m]> when fixed width that is, of course
<whitequark[cis]> also, nothing I know uses extended grapheme clusters
<whitequark[cis]> I believe that the only reasonable interpretation of column numbers in a world with combining and double-width characters is to let most tools count code points and then let whatever is doing the presentation (diagnostics system or code editor) convert it into terminal columns or editor ranges or whatever
<galibert[m]> agreed
<galibert[m]> I count code points too
<galibert[m]> bytes is too iffy
<whitequark[cis]> the VS Code API docs feature something that is worse than useless:
<whitequark[cis]> galibert[m]: bytes is like *fine* (it's convenient for certain applications and with UTF-8 you can easily find out whether you're in the middle of a code point or not) but it just doesn't work well with the ad-hoc "yeah just add 1 to this and print it to the terminal" use of source locations
<galibert[m]> I'd bet it's a utf-16 character count, forgetting surrogates exist
<whitequark[cis]> I wouldn't be so sure
<jix> https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#positionEncodingKind I guess that's not the worst thing you can do if you already fucked up by having picked utf-16 initially
<jix> (I'm assuming that happend and that this means vscode can work with any of those if you tell it what you're using, I might be wrong with both here)
<galibert[m]> microsoft got unlucky on that one, they did their new, unicode-aware api while unicode was created... and then people realized soon after that 65536 weren't going to cut it
<whitequark[cis]> jix: I think that only applies to language servers, I've no idea what extensions use but it doesn't get negotiated like that
<jix> so the previous version of the LSP spec does use utf-16 units only, so I at least guessed that right
<_whitenotifier-4> [prjunnamed/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/amaranth/compare/68c5949d33a5...6e621df1ec10
<_whitenotifier-4> [prjunnamed/amaranth] whitequark 6e621df - back.unnamed: `dff` accepts `clear=`, not `arst=`.
<_whitenotifier-4> [prjunnamed/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/amaranth/compare/6e621df1ec10...c1c2546926a5
<_whitenotifier-4> [prjunnamed/amaranth] whitequark c1c2546 - back.unnamed: `dff` accepts `clr=`, not `clear=`.
<_whitenotifier-4> [prjunnamed] whitequark created branch cat/cast - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark opened pull request #52: Cast integers to target bit vector params - https://github.com/prjunnamed/prjunnamed/pull/52
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-52-f603cb430364d9e84dbe17295a71a8c43db40fa8 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed/prjunnamed] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/prjunnamed/compare/f603cb430364...fe83b4fca787
<_whitenotifier-4> [prjunnamed/prjunnamed] whitequark fe83b4f - netlist: cast integers to target bit vector params.
<_whitenotifier-4> [prjunnamed] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-52-f603cb430364d9e84dbe17295a71a8c43db40fa8 - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark deleted branch cat/cast - https://github.com/prjunnamed/prjunnamed
<_whitenotifier-4> [prjunnamed] whitequark closed pull request #52: Cast integers to target bit vector params - https://github.com/prjunnamed/prjunnamed/pull/52
<whitequark[cis]> mei: any ideas about improving source location transformation for `match` cells?
<whitequark[cis]> right now they're technically accurate but not very useful
<whitequark[cis]> i think maybe it's worth transferring the source metadata for the decision tree branches that actually influence a specific output bit, or something like that, but no idea how useful this is
<_whitenotifier-4> [prjunnamed/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/prjunnamed/amaranth/compare/c1c2546926a5...a0a5cabbe321
<_whitenotifier-4> [prjunnamed/amaranth] whitequark a0a5cab - back.unnamed: fix syntax of `match` cell with empty value.
<mei[m]> <whitequark[cis]> "it's fascinating to me just..." <- oh! so it's like that for you two! from what i saw from the quality of documentation in your projects I just assumed that you find it much easier than I do
<mei[m]> s/two/too/
<mei[m]> <whitequark[cis]> "mei: any ideas about improving..." <- what's the current granularity of the input? one srcloc per cell?