<litghost>
Your implementation strategy is very fragile. Why not use std::vector (or absl::InlinedVector) to implement a dynamic bitvector
<HackerFoo>
Thanks. I'm working on a C++ visitor that generates a string of tag/length/hex values right now, which should be about as fast as possible to marshal into Python.
<litghost>
absl::InlinedVector allows for lightweight small vectors below a certain size, and spill into allocation automatically
<HackerFoo>
I think it would still be a lot of allocations.
<HackerFoo>
It's easy enough to bump up the word width and recompile if needed.
<litghost>
By definition, replacing std::array with absl::InlinedVector will result in the same number of allocations, and doesn't explode if the input exceeds your size limits
<HackerFoo>
std::array doesn't have to be heap allocated.
<litghost>
Neither does absl::InlinedVector if the allocation is less than the template parameter?
<litghost>
Do not bake in exploding size limits to modern C++ code. There are light-weight ways to trade compile time static allocation and dynamic allocation
<tpb>
Title: memory - is tcmalloc: large alloc a warning or error in Python - Stack Overflow (at stackoverflow.com)
<HackerFoo>
Also, InlinedVector is 845 lines. My implementation with helper functions and a test is ~40 lines, and I know what to expect from it.
<HackerFoo>
Not saying it's better, just that there are tradeoffs.
<litghost>
So? std::array is 400 lines, std::vector is 2k? We move useful constructs behind interfaces and test them
<litghost>
If you want the advantages of small static arrays without exploding when the size exceeds them, that is what absl::InlineVector (et all) is for
<HackerFoo>
You can't have all the advantages, though. For example, there must be a check to see if the static array size is exceeded.
<HackerFoo>
Maybe this could be disabled with a macro, because you'd need assertions on the fixed width code anyway.
<litghost>
I doubt that it matters that much. Without data, I'd lean to the robust solution before further optimization
<bjorkintosh>
so, is there yet a batteries included kit one can get started with?
<HackerFoo>
Maybe I should do a proper release of nix-symbiflow once we have Litex in symbiflow-examples. I could probably even upsteam it to nixpkgs, then NixOS would have support in the next release.
<HackerFoo>
I wonder if that might put too much load on hydra.nixos.org. Probably not, though.
<HackerFoo>
hydra.vtr.tools might be bigger that their cluster.
<HackerFoo>
*than
<umarcor>
@mithro: I had a look at conda-docker, and I didn't find much special about it. It seems to be a Python library for using docker images as tarballs. So, it can add and remove layers/content, but I'd say it cannot do anything which requires actually executing something.
<umarcor>
It doesn't seem to have features for squashing specific layers or for merging layers from different images, which would be useful.
az0re has quit [Remote host closed the connection]
<umarcor>
Therefore, I only find it useful for users that want to package Python only projects and which cannot use docker/podman.
az0re has joined #symbiflow
<_whitenotifier-f>
[sv-tests] caryr opened issue #1186: Many tests from ivtest can now be removed from the blacklist. - https://git.io/JITj4
kgugala_ has joined #symbiflow
kgugala has quit [Ping timeout: 246 seconds]
kgugala has joined #symbiflow
kgugala_ has quit [Read error: Connection reset by peer]
awordnot has quit [Ping timeout: 265 seconds]
awordnot has joined #symbiflow
join_subline has quit [Ping timeout: 240 seconds]
join_subline has joined #symbiflow
mkru has joined #symbiflow
<_whitenotifier-f>
[symbiflow-arch-defs] acomodi opened issue #1829: CI on master does not run properly - https://git.io/JIkng
xtro has quit [Ping timeout: 256 seconds]
<_whitenotifier-f>
[yosys-symbiflow-plugins] tmichalak opened issue #59: Remove workaround with skipping clocks on dangling wires - https://git.io/JIk9C
kgugala has quit [Quit: -a- Connection Timed Out]
kgugala has joined #symbiflow
mkru has quit [Quit: Leaving]
mkru has joined #symbiflow
join_subline has quit [Ping timeout: 246 seconds]
join_subline has joined #symbiflow
mkru has quit [Quit: Leaving]
maartenBE has quit [Ping timeout: 256 seconds]
maartenBE has joined #symbiflow
mkru has joined #symbiflow
mkru has quit [Quit: Leaving]
<mithro>
@umarcor I only read the description and didn't actually look at the code
citypw has quit [Ping timeout: 240 seconds]
xtro has joined #symbiflow
titanbiscuit has joined #symbiflow
<mithro>
@umarcor Do you know anything about maintaining github actions externally from the using repo. I just figured out we should probably be doing that for our Python packages.