<Wanda[cis]> have managed to convert versal code to two ColId per interconnect column as well
<Wanda[cis]> since I touched versal code, tradition dictates I should now add one more versal tile or feature to the geometry database, then get incredibly frustrated with versal again and leave it for a few months
<Wanda[cis]> in 30 years this will result in a complete database.
<cr1901_> I misread as "colloid per interconnect"
sdomi has quit [Ping timeout: 268 seconds]
ari has quit [Ping timeout: 272 seconds]
sdomi has joined #prjcombine
ari has joined #prjcombine
azonenberg has joined #prjcombine
jn has quit []
jn has joined #prjcombine
jn has quit [Ping timeout: 244 seconds]
jn has joined #prjcombine
<_whitenotifier-4> [prjcombine] wanda-phi edited issue #1: Be a good little sub~~module~~ for prjunnamed - https://github.com/prjunnamed/prjcombine/issues/1
<Wanda[cis]> bleh.
<Wanda[cis]> I really need a better machine if I want to RE Ultrascale or Versal
<Wanda[cis]> I'm so completely RAM-limitted
<Wanda[cis]> limitting my stuff to 2 threads to not OOM
<Wanda[cis]> considering buying a decomissioned server with ridiculously unbalanced RAM-to-CPU ratio
mei[m] has joined #prjcombine
<mei[m]> how much RAM does your machine have?
<Wanda[cis]> the VM doing RE is 64GB RAM and 20 threads of Ryzen 5900
<Wanda[cis]> (the whole machine has 128GB RAM but it's also doing a bunch of other things)
<Wanda[cis]> actually it's not just vivado; the ISE reversing tool already has code to limit itself to 8 threads for the largest virtex7 devices
<mupuf> ha ha
<Wanda[cis]> oh for fuck's sake.
<Wanda[cis]> why is my serialization format incompatible on-disk between 32-bit and 64-bit builds
<Wanda[cis]> sigh.
<Wanda[cis]> so. bitvec crate.
<Wanda[cis]> BitVec has type parameters: backing store unit (u8/u16/u32/u64) and bit order.
<Wanda[cis]> the type parameters have defaults. the default backing store follows target pointer size.
<Wanda[cis]> further, when you use serde and serialize a bitvec, it gets serialized as an array of the backing store units.
<Wanda[cis]> so, if you have a BitVec in a serializable structure, you get fucked over.
<Wanda[cis]> I also particularly like how, for some reason, serializing a BitVec dumps the bit order into the serialized stream.
<Wanda[cis]> as a string. `any::type_name::<Order>()` specifically.
<Wanda[cis]> then it also includes the "start bit index" within the first word of the slice in the serialized stream.
<Wanda[cis]> and length (obviously)
<Wanda[cis]> end result is that serializing, say, a 5-bit bitvec takes a few dozen bytes
<Wanda[cis]> prjcombine serializes a lot of 5-bit bitvecs because all bitstream enum values are stored as bitvecs, and they're all like single-digit or small-double-digit wide.
<mei[m]> but hey, if you switch to bincode 2.0, you'll sidestep bitvec's serde implementation and get to hammer out something actually efficient
<Wanda[cis]> I guess that answers my question from earlier today about how the fuck the raw bincode-serialized databases are larger than the same thing exported to JSON where it's all written as [false, true, true, false, ...]
<Wanda[cis]> mei: well I could
<Wanda[cis]> though I'm kind of pissed off enough at this bullshit that I'm seriously considering going with `Vec<bool>` out of spite
<Wanda[cis]> gods this binary file has a lot of "bitvec::order::Lsb" in it.
<Wanda[cis]> how do you design serialization this badly
<mupuf> Wanda[cis]: by not caring about efficiency due to having datasets that could fit in your $L1
<Wanda[cis]> it's not about efficiency!
<Wanda[cis]> it's about basic fitness for purpose
<Wanda[cis]> like. I only learned about all this because my tools blew up when compiled for wasm32 and I decided to investigate.
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi pushed 1 commit to main [+0/-0/±12] https://github.com/prjunnamed/prjcombine/compare/6ca5afc3fc0b...673755441c27
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi 6737554 - versal: convert to two `ColId`s per interconnect column.
<mupuf> Wanda[cis]: oh, yeah. A serialization library that serializes differently depending on the cpu architecture is indeed badly broken. I mean, I guess it *can* be ok, but it should be an opt-in, not a default.
<mei[m]> well, you see, it's not a serialization library
<mei[m]> it's a generic data structure library that has an optional integration into a generic serialization library
<_whitenotifier-4> [prjcombine] wanda-phi edited issue #1: Be a good little sub~~module~~ for prjunnamed - https://github.com/prjunnamed/prjcombine/issues/1
<_whitenotifier-4> [prjcombine] wanda-phi edited issue #1: Be a good little sub~~module~~ for prjunnamed - https://github.com/prjunnamed/prjcombine/issues/1
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi pushed 1 commit to main [+0/-0/±69] https://github.com/prjunnamed/prjcombine/compare/673755441c27...1e89b74a4660
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi 1e89b74 - interconnect: remove `WireKind::ClkOut` argument.
<_whitenotifier-4> [prjcombine] wanda-phi closed issue #9: Get rid of the argument to `WireKind::ClkOut` - https://github.com/prjunnamed/prjcombine/issues/9
<Wanda[cis]> ... I wish there was a wasm32be so I could easily test my shit on big-endian platforms too
<Wanda[cis]> (normal things to say)
<Wanda[cis]> oh hey, I know; I'll set up the PowerPC 405 hard core in my Virtex II Pro FPGA and develop prjcombine on it
<Wanda[cis]> (amount of RAM: currently 306kiB, upgradeable to however much you can fit in a single DDR DIMM)
<sdomi> i can support the cause with 3x512MB if i go fetch that from my storage tomorrow
<sdomi> I don't think I have 1GB sticks
<Wanda[cis]> sorry this board only fits one
<sdomi> aw, fuck, right
<sdomi> sorry, i'm a bit tired. you know *exactly* how much I slept tonight
<sdomi> anyways, I can give 512MB
whitequark[cis] has joined #prjcombine
<whitequark[cis]> <Wanda[cis]> "... I wish there was a wasm32be..." <- ... hm.
<Wanda[cis]> yeahh same
<Wanda[cis]> (wrt tired)
<sdomi> go to sleep wanda
<Wanda[cis]> hm
<sdomi> it's not like you need to wait for me to come back home :p
<Wanda[cis]> I suppose I could use that
<Wanda[cis]> but it's going to be ages until I can actually do anything with that powerpc
<Wanda[cis]> (now that we boarded that crazy train, I won't settle for anything less than prjunnamed-synthesized powerpc wrapper)
<sdomi> i have two standalone ppc machines, altho neither of them is fully functional right now
_catircservices has quit [Quit: Bridge terminating on SIGTERM]
Wanda[cis] has quit [Quit: Bridge terminating on SIGTERM]
whitequark[cis] has quit [Quit: Bridge terminating on SIGTERM]
mei[m] has quit [Quit: Bridge terminating on SIGTERM]
_catircservices has joined #prjcombine
<_whitenotifier-4> [prjcombine] wanda-phi opened issue #10: Deduplicate the way too many copies of JED parse/emit code. - https://github.com/prjunnamed/prjcombine/issues/10
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi pushed 2 commits to main [+0/-0/±12] https://github.com/prjunnamed/prjcombine/compare/1e89b74a4660...0636c650d18e
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi 684226c - versal: add is_reg_half helper.
<_whitenotifier-4> [prjunnamed/prjcombine] wanda-phi 0636c65 - Remove `clap_derive` uses in public crates.