Some questions about CTL #1241
Replies: 1 comment
-
Hey @vittorioromeo thanks for your patience while I was on vacation. I'm really excited to hear that you're excited about CTL! I'm getting a 404 on your code examples. If you follow the CONTRIBUTING.md guidelines then your improvements would be most welcome! We normally collaborate on Discord too, in addition to GitHub. See the invite link in the README.md file.
We're currently targeting A better question would be, which C++ standard would you like for us to support? For example, I'm happy to go more modern only. For example, I could upgrade superconfigure so that cosmocc uses GCC 14.1. Then we could use
Yes I would very much like that. I'm simply not familiar with all the builtins and how to use them yet. Pull requests doing this are very much welcome.
Sounds like another great idea. Would love to see pull requests adding this! I've already added a few of my own, on an as needed basis, whenever I run into real world annoyances or suboptimal benchmark scores.
This is also something I'd like to see happen. The biggest user of CTL so far is llamafile and llama.cpp does use wide char STL features.
Wonderful! Everything you said sounds perfectly aligned with our vision so far. Your changes are very much welcome! |
Beta Was this translation helpful? Give feedback.
-
Hey @jart, I've stumbled upon
ctl
and I think it's a great idea!I hate how bloated the current Standard Library implementations are, and I have quite a bit of experience re-implementing parts of the STL to avoid compile-time overhead, see these examples from my SFML fork:
sf::Optional<T>
sf::priv::isSame<T, U>
sf::priv::UniquePtr<T>
sf::Variant<Ts...>
I might be interested in contributing to CTL :)
Now, for my questions:
What C++ standard does CTL target?
What platforms/compilers does CTL target?
Have you considered using
__has_builtin
to avoid template instantiations for type traits as I did insf::priv::isSame<T, U>
?Another major issue with current Standard Library implementation is debug performance, as it's destroyed by layers of abstractions. Have you considered using attributes such as
gnu::always_inline
as I did in places such assf::priv::UniquePtr<T>::operator->
Have you considered using
extern template
+ explicit template instantiations for commonly used types such asbasic_string<char>
or evenvector<basic_string<char>>
?I'd be willing to contribute these sort of changes if you think they'd be an improvement over the status quo and if you think they fit the vision for CTL.
Beta Was this translation helpful? Give feedback.
All reactions