We could help out with the other issues. Maybe pointing out were things broke and need fixing could help?
About.jl is a great package, hence I believe having this available for everyone on upcoming versions would be a big plus. I have the feeling more contributors will be willing to step in.
Thanks for the kind words, the main issue is that I still haven’t gone through the headache of backporting some breaking changes in StyledStrings.jl to the compat release, and JuliaSyntaxHighlighting.jl needs to then be updated to account for those, but that may also require JuliaSyntax.jl to make new release now that JuliaSyntaxHighlighting.jl has been updated to support the latest version used in 1.12. All this will happen, it’s just a bit of a headache.
Any help would be lovely, and once it’s sorted I’d be keen to collaborate with people on improving About.jl further
In the mean time About.jl should be fine with Julia 1.9-1.10 and 1.12+, it’s just 1.11 that sits at the intersection of package versions/compatibility that’s a bit of a headache until the above issues are solved.
Thanks for About.jl! The visualization helped me understand Julia’s memory layout for the first time. Super clear and useful for learning how to design data structures.
Thanks a lot, @tecosaur! About.jl became one of the most important packages in my Julia workflow. I can only recommend to every REPL user to put it in startup.jl and append a |> about whenever you want to know something about basically anything there is in Julia.
I am especially thankful for the patience with which you fix bugs whenever I come up with another special case.
I am still struggling a bit to fully understand the memory layout for the non-isbitstype case.
x has 4 bytes, followed by 4 bytes of padding followed by 8 bytes to the “pointer” to either the UnionAll type Vector or Nothing, where the type information is (somehow) taken from the memory address where the pointer points to.