(Omniverse Physics)
Author of "Sane C++ Libraries"
https://github.com/Pagghiu/SaneCppLibraries
Videos: https://youtube.com/@Pagghiu
Site: https://pagghiu.github.io
Opinions are my own.
✅ Further reduction of internal dependencies
✅ Bring Your Own Containers example (InteropSTL)
✅ New bootstrap for SC::Tools written in C++
✅ Increased test coverage
✅ Improved CI
✅ Fixes
github.com/Pagghiu/Sane...
#cpp #cplusplus
✅ Further reduction of internal dependencies
✅ Bring Your Own Containers example (InteropSTL)
✅ New bootstrap for SC::Tools written in C++
✅ Increased test coverage
✅ Improved CI
✅ Fixes
github.com/Pagghiu/Sane...
#cpp #cplusplus
✅ Further reduction of internal dependencies
✅ Bring Your Own Containers example (InteropSTL)
✅ New bootstrap for SC::Tools written in C++
✅ Increased test coverage
✅ Improved CI
✅ Fixes
github.com/Pagghiu/Sane...
#cpp #cplusplus
We have SC::Strings and SC::Vector<T>, using relative pointers and a "scoped" allocator logic that not everyone may like, but you can now write adapters to use something else
We have SC::Strings and SC::Vector<T>, using relative pointers and a "scoped" allocator logic that not everyone may like, but you can now write adapters to use something else
✅Get rid of many inter-library dependencies
✅Stop accidental dependencies additions in CI
✅Free most libraries from dynamic allocation
✅Transform Build from lib to app
✅Add GDB Pretty Printer
✅Many smaller fixes
github.com/Pagghiu/Sane...
#cpp #cplusplus
✅Get rid of many inter-library dependencies
✅Stop accidental dependencies additions in CI
✅Free most libraries from dynamic allocation
✅Transform Build from lib to app
✅Add GDB Pretty Printer
✅Many smaller fixes
github.com/Pagghiu/Sane...
#cpp #cplusplus
In addition to the already existing ones for LLDB and MSVC Debugger (.natvis) I think we should be good now!
#cpp #cplusplus
In addition to the already existing ones for LLDB and MSVC Debugger (.natvis) I think we should be good now!
#cpp #cplusplus
✅ Available as Single File Libs
✅ Threading: Semaphore / Barrier / RWLock (→ Stable)
✅ AsyncStreams: IPC Pipe Streams (→ MVP)
✅ Process: Improve reliability
✅ More fixes (see blog post details)
pagghiu.github.io/site/blog/2025-08-31-SaneCppLibrariesUpdate.html
#cpp
✅ Available as Single File Libs
✅ Threading: Semaphore / Barrier / RWLock (→ Stable)
✅ AsyncStreams: IPC Pipe Streams (→ MVP)
✅ Process: Improve reliability
✅ More fixes (see blog post details)
pagghiu.github.io/site/blog/2025-08-31-SaneCppLibrariesUpdate.html
#cpp
They can be amalgamated offline or directly in-browser at: pagghiu.github.io/SaneCppLibra...
Each amalgamation lists dependencies on other amalgamated libs and the LOC of its header vs. implementation sections.
Have fun!
#cpp
They can be amalgamated offline or directly in-browser at: pagghiu.github.io/SaneCppLibra...
Each amalgamation lists dependencies on other amalgamated libs and the LOC of its header vs. implementation sections.
Have fun!
#cpp
Major cleanup month!🧹
✅ Massive reduction in inter-library dependencies
✅ 7 libraries now allocation-free:
- Async
- File
- FileSystem
- FileSystemIterator
- FileSystemWatcher
- Process
- Socket
pagghiu.github.io/site/blog/2025-07-31-SaneCppLibrariesUpdate.html
#cpp
Major cleanup month!🧹
✅ Massive reduction in inter-library dependencies
✅ 7 libraries now allocation-free:
- Async
- File
- FileSystem
- FileSystemIterator
- FileSystemWatcher
- Process
- Socket
pagghiu.github.io/site/blog/2025-07-31-SaneCppLibrariesUpdate.html
#cpp
There's a new mini-lib now called FileSystemWatcherAsync wiring them together explicitly when event loops are needed.
It feels so much cleaner now!
github.com/Pagghiu/Sane...
There's a new mini-lib now called FileSystemWatcherAsync wiring them together explicitly when event loops are needed.
It feels so much cleaner now!
github.com/Pagghiu/Sane...
The following libraries do not allocate anymore! 🎉
✅ Async
✅ File
✅ FileSystem
✅ FileSystemWatcher
✅ FileSystemIterator
✅ Process
✅ Socket
See: pagghiu.github.io/SaneCppLibra...
#cpp
The following libraries do not allocate anymore! 🎉
✅ Async
✅ File
✅ FileSystem
✅ FileSystemWatcher
✅ FileSystemIterator
✅ Process
✅ Socket
See: pagghiu.github.io/SaneCppLibra...
#cpp
✅ Async FS Ops
- {copy|remove|rename}{file|folder}
- {open|close|read|write}file
✅ AsyncUDP {SendTo | ReceiveFrom}
✅ FileSystem {Iterator | Watcher} / Memory dependencies cleanup
Blog
pagghiu.github.io/site/blog/20...
Github
github.com/Pagghiu/Sane...
#cpp #cplusplus
✅ Async FS Ops
- {copy|remove|rename}{file|folder}
- {open|close|read|write}file
✅ AsyncUDP {SendTo | ReceiveFrom}
✅ FileSystem {Iterator | Watcher} / Memory dependencies cleanup
Blog
pagghiu.github.io/site/blog/20...
Github
github.com/Pagghiu/Sane...
#cpp #cplusplus
✅ file/directory rename
✅ file/directory remove
pagghiu.github.io/SaneCppLibra...
#cpp #cplusplus
✅ file/directory rename
✅ file/directory remove
pagghiu.github.io/SaneCppLibra...
#cpp #cplusplus
✅file open/close
✅file read/write
✅file copy
All ops are executed on user supplied thread-pool for IOCP(win)/kqueue(mac)/epoll(linux), with special code path for io_uring(linux)!
pagghiu.github.io/SaneCppLibra...
#cpp #cplusplus
✅file open/close
✅file read/write
✅file copy
All ops are executed on user supplied thread-pool for IOCP(win)/kqueue(mac)/epoll(linux), with special code path for io_uring(linux)!
pagghiu.github.io/SaneCppLibra...
#cpp #cplusplus
As always implemented for IOCP, kqueue / epoll and io_uring!
Documentation:
pagghiu.github.io/SaneCppLibra...
Commit:
github.com/Pagghiu/Sane...
#cpp
As always implemented for IOCP, kqueue / epoll and io_uring!
Documentation:
pagghiu.github.io/SaneCppLibra...
Commit:
github.com/Pagghiu/Sane...
#cpp
✅ AsyncSequence
- Serial execution of async requests
✅ SC::Async
- Smaller memory footprint
- Improved cancellation handling
deepwiki.com/Pagghiu/Sane...
Blog:
pagghiu.github.io/site/blog/20...
Github:
github.com/Pagghiu/Sane...
Have a nice weekend!
#cpp #cplusplus
✅ AsyncSequence
- Serial execution of async requests
✅ SC::Async
- Smaller memory footprint
- Improved cancellation handling
deepwiki.com/Pagghiu/Sane...
Blog:
pagghiu.github.io/site/blog/20...
Github:
github.com/Pagghiu/Sane...
Have a nice weekend!
#cpp #cplusplus
✅ Process fork
✅ Struct dumping
✅ Async vectorized writes
✅ Tools update
✅ Repo restructuring
Blog:
pagghiu.github.io/site/blog/2025-04-30-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F04
Have a nice week!
#cpp
✅ Process fork
✅ Struct dumping
✅ Async vectorized writes
✅ Tools update
✅ Repo restructuring
Blog:
pagghiu.github.io/site/blog/2025-04-30-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F04
Have a nice week!
#cpp
There are a ton of limitations but it's useful to serialize a data structure without blocking for IO or copying it for async IO.
Nice!
#cpp
There are a ton of limitations but it's useful to serialize a data structure without blocking for IO or copying it for async IO.
Nice!
#cpp
Anything SC::Segment based (Vector / String / VectorMap etc.) can be dumped and restored by just casting it (well, start_lifetime_as 🤭).
I guess it's not rocket science but recent additions make creating this simple and easy.
#cpp #cplusplus
Anything SC::Segment based (Vector / String / VectorMap etc.) can be dumped and restored by just casting it (well, start_lifetime_as 🤭).
I guess it's not rocket science but recent additions make creating this simple and easy.
#cpp #cplusplus
✅ Custom Allocators (Segment / Containers)
✅ Relative Pointers
Blog:
pagghiu.github.io/site/blog/2025-03-31-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F03
Have a nice week!
#cpp #cplusplus
✅ Custom Allocators (Segment / Containers)
✅ Relative Pointers
Blog:
pagghiu.github.io/site/blog/2025-03-31-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F03
Have a nice week!
#cpp #cplusplus
The test suite by itself is doing 20K allocations and ~50K re-allocations 🫠.
Is it MAYBE time to add support for custom allocators? 😅
The test suite by itself is doing 20K allocations and ~50K re-allocations 🫠.
Is it MAYBE time to add support for custom allocators? 😅
Hopefully this is now better than before 🧹
#cpp #cplusplus
Hopefully this is now better than before 🧹
#cpp #cplusplus
Member ptrs don't seem to be usable as generalized self-relative ptrs, to locate the start of a dynamic array memory inside an arena or something similar...
Time to rollback the relative pointers change?🙄
Relative pointers can be useful to do bulk memcpy-serialization of structures based on such containers.
github.com/Pagghiu/Sane...
#cpp
Member ptrs don't seem to be usable as generalized self-relative ptrs, to locate the start of a dynamic array memory inside an arena or something similar...
Time to rollback the relative pointers change?🙄
(Published code in this branch includes font scaling but not style/general scaling yet. Still working on that)
(Published code in this branch includes font scaling but not style/general scaling yet. Still working on that)
Relative pointers can be useful to do bulk memcpy-serialization of structures based on such containers.
github.com/Pagghiu/Sane...
#cpp
Relative pointers can be useful to do bulk memcpy-serialization of structures based on such containers.
github.com/Pagghiu/Sane...
#cpp
✅ Containers re-write
✅ SC::Build per-file settings
Blog:
pagghiu.github.io/site/blog/2025-02-28-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F02
Have a nice weekend!
#cpp #cplusplus
✅ Containers re-write
✅ SC::Build per-file settings
Blog:
pagghiu.github.io/site/blog/2025-02-28-SaneCppLibrariesUpdate.html
Github:
github.com/Pagghiu/SaneCppLibraries/releases/tag/release%2F2025%2F02
Have a nice weekend!
#cpp #cplusplus
I've added a Buffer class (+SmallBuffer) to Foundation to replace all Vector
It's based on a very compact Segment<> class (<500LOC).
#cpp
I've added a Buffer class (+SmallBuffer) to Foundation to replace all Vector
It's based on a very compact Segment<> class (<500LOC).
#cpp