Rendered at 16:48:22 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
CJefferson 11 hours ago [-]
Wow, that might be the worst name for a project I’ve ever seen. I think every programmer who sees this is going to assume it’s a Python thing.
With regards the library itself —- I think it’s generally known the c++ standard library is a poorly designed mess in places but if you make an entirely new one you lose all the software already written, at which point why use C++ nowadays?
smokel 10 hours ago [-]
It is a Python thing, in the sense that it is Python-inspired:
> design-wise copy the Python standard library's APIs whenever possible [1]
This is giving the same vibe as Windows Subsystem for Linux[0] - it kinda makes sense once somebody explains it, but is confusing as hell when you first see it
Although Microsoft then spoiled that explanation a couple of years later by switching to a virtual machine system instead of the NT kernel emulating the not-present Linux kernel.
IshKebab 9 hours ago [-]
That is a bizarre principle. The Python standard library APIs are mediocre at best.
Surely copy the Rust APIs? Or maybe Go?
integricho 11 hours ago [-]
Agreed, I thought this is a wrapper for STL under Python, what does the py prefix stand for here actually?
As for the why c++ at all, as long as one falls into the "don't care" category, it works fine.. lately I found myself I rather build my apps in C with NODEFAULTLIB (under Windows at least), and creating my own size-optimized standard library which on Windows wraps the Win32 API wherever possible. The size savings are incredible, my executable is in the ~500KB range, ultra small and ultra fast. This is unattainable with normal modern C++.
pjmlp 10 hours ago [-]
I instead, use VC++ latest with C++23 import std.
As for the size requirements, and having Windows experience all the way back to Windows 3.0, you can do exactly the same tricks with C++.
integricho 9 hours ago [-]
Have you checked what dll dependencies you get if you build such an app? And have you actually tried running such an executable on win9x?
pjmlp 9 hours ago [-]
If you use only Win32 APIs from C++ just like since Petzold books, the dlls are already there, there is also static linking for other stuff.
Win 9x is a dead OS, why would I bother with that outside retro computing?
integricho 9 hours ago [-]
Understood, yes, but I described my reasons in my reply to another comment already.
Your proposed solution is not equivalent to what I am doing, it cannot work on all the systems I support, and would never be as dependency free.
pjmlp 9 hours ago [-]
I fail to see why, as I have been doing C++ on Windows since Windows 3.0.
I only don't consider legacy Windows platforms something to care about, and put the required effort into making something like that happen.
integricho 8 hours ago [-]
Even trivial stuff causes the linking to vcruntime, this is an extra dll dependency that I don't tolerate, no msvcrt, no vcruntime, nothing except core Win32 dlls are allowed on the platform. Static linking can relieve some of this pain, but that bloats the binary. C++ simply does not allow the same level of minimalism that can be achieved by C, and for many these are unimportant details, for me they are deal breakers and this is a core pillar of my architecture.
pjmlp 7 hours ago [-]
First of all VC++ isn't the only C++ compiler on Windows, as it isn't like UNIX with the one true compiler original approach, secondly there are ways with the compiler and linker flags.
I have been avoiding C as much as possible since 1992, starting with Turbo C++ for MS-DOS.
Anyway, to each its own, all the best.
integricho 6 hours ago [-]
Sure, just to clarify, I am not arguing that c++ doesn't work, only that c++ produced binaries are either having more dll dependencies, or are more bloated (in size).
I also tried clang-cl and MingW, and while both work, the binaries produced by them are even larger then any MSVC produced (regardless of how I try to optimize it). C is a winner when it comes to binary size.
dsab 11 hours ago [-]
Out of curiosity what are your projects written in C for Windows? GUI apps?
integricho 11 hours ago [-]
Yes, I am building GUI apps. This "standard library" of mine is built from the ground up in a cross platform manner, such that it compiles on Windows wrapping Win32, with Windows 95 being the CI machine, making sure it works on the whole Windows family upwards, and it wraps POSIX under Linux/MacOS/any POSIX system. The goal being to reuse the available shared library dependencies that are always present on these platforms anyway, giving me these ultra small binaries.
nok22kon 10 hours ago [-]
why support Win9x? actual users? as a fun thing to do?
integricho 9 hours ago [-]
For the last couple of years I got into retro computing, realized how much more I enjoyed the 9x era Windows systems compared to anything that came later, and made it a personal goal that if I build anything, it will have to work on Windows 95 as well. I realize the actual number of 9x users would be really small, but they still exist, e.g. seeing the vogons community, they are still using lots of such apps and would value support.
npongratz 3 hours ago [-]
Not only that, but given how I would phonetically pronounce it... ew.
pjmlp 10 hours ago [-]
> C++ is actually very fast to compile, the slowdowns come mostly from the way the standard library is implemented.
Only if using classical headers, std as module is already a reality on VC++.
nok22kon 9 hours ago [-]
wasn't there a lot of talk that modules are still not really working, in practice I mean?
pjmlp 9 hours ago [-]
Depends on where you are.
VC++ and clang latest with MSBuild or CMake/ninja are there, minus some bugs or code completion misbehaving (but bearable).
GCC 16 is mostly ok now, also with CMake/ninja.
All my hobby coding in C++ makes use of modules, at work it is a different matter, where libraries to be consumed by Java/.NET/nodejs, are still using C++17 as baseline.
Note the CMake version was tested initially with clang 17, and we're already on clang 22, so some of those comments are irrelevant nowadays, I haven't bothered to update the project.
Naturally if you cannot be on latest compiler releases, or suffer from CMake phobia, the support isn't there.
nok22kon 6 hours ago [-]
> at work it is a different matter
that's what I was asking, of modules are being introduced at scale or if they are a hobbist thing
Microsoft Office uses modules, so definitely not only hobbyist.
JdeBP 9 hours ago [-]
Given what is discussed in the commentary to the post, I wonder whether the author would be amenable to some Doxygen.
squirrellous 9 hours ago [-]
Love to see someone implementing pathlib in c++. It is what stdfs could have been.
Asooka 8 hours ago [-]
Would be helpful to show how this compares to other C++ std replacements, e.g. Abseil and Folly.
olq_plo 7 hours ago [-]
Dumb. This is what modules are for. Also, the stdlib is extremely well designed. It considers edge cases most people never think about. Source: I am a Boost Developer.
ncruces 7 hours ago [-]
The first word in your comment spoils the rest of it.
With regards the library itself —- I think it’s generally known the c++ standard library is a poorly designed mess in places but if you make an entirely new one you lose all the software already written, at which point why use C++ nowadays?
> design-wise copy the Python standard library's APIs whenever possible [1]
[1] https://github.com/jpakkane/pystd
0. https://www.reddit.com/r/bashonubuntuonwindows/comments/t952...
* https://jdebp.uk/FGA/boot-and-system-volumes.html
'Windows subsystem for' actually has a similar sort of logic behind it.
* https://news.ycombinator.com/item?id=11417059
Although Microsoft then spoiled that explanation a couple of years later by switching to a virtual machine system instead of the NT kernel emulating the not-present Linux kernel.
Surely copy the Rust APIs? Or maybe Go?
As for the why c++ at all, as long as one falls into the "don't care" category, it works fine.. lately I found myself I rather build my apps in C with NODEFAULTLIB (under Windows at least), and creating my own size-optimized standard library which on Windows wraps the Win32 API wherever possible. The size savings are incredible, my executable is in the ~500KB range, ultra small and ultra fast. This is unattainable with normal modern C++.
As for the size requirements, and having Windows experience all the way back to Windows 3.0, you can do exactly the same tricks with C++.
Win 9x is a dead OS, why would I bother with that outside retro computing?
I only don't consider legacy Windows platforms something to care about, and put the required effort into making something like that happen.
I have been avoiding C as much as possible since 1992, starting with Turbo C++ for MS-DOS.
Anyway, to each its own, all the best.
Only if using classical headers, std as module is already a reality on VC++.
VC++ and clang latest with MSBuild or CMake/ninja are there, minus some bugs or code completion misbehaving (but bearable).
GCC 16 is mostly ok now, also with CMake/ninja.
All my hobby coding in C++ makes use of modules, at work it is a different matter, where libraries to be consumed by Java/.NET/nodejs, are still using C++17 as baseline.
You can easily check, https://github.com/pjmlp/RaytracingWeekend-CPP
Note the CMake version was tested initially with clang 17, and we're already on clang 22, so some of those comments are irrelevant nowadays, I haven't bothered to update the project.
Naturally if you cannot be on latest compiler releases, or suffer from CMake phobia, the support isn't there.
that's what I was asking, of modules are being introduced at scale or if they are a hobbist thing
https://nibblestew.blogspot.com/2025/08/we-need-to-seriously...