v0.3.0
μcharm 0.3.0
100% Python stdlib compatibility—now with cross-platform builds and 18 new modules.
✨ What's New
- Add 18 new CPython-compatible stdlib modules:
array,binascii,configparser,contextlib,copy,dataclasses,hmac,secrets,urllib.parse,uuid, and more - Add cross-compilation support with
--targetflag: build for Linux ARM64, x86_64, and macOS from any platform - Add multi-platform runtime builds: pre-built PocketPy binaries for macOS (aarch64, x86_64) and Linux (x86_64, aarch64)
- Add SHA256 verification for downloaded runtime artifacts with automatic fallback to local builds
- Enhance collections module with
Counter,ChainMap,UserDict, andUserList - Enhance functools module with
singledispatch,cmp_to_key, andwrapsdecorator - Enhance json module with
JSONDecoderandJSONEncoderclasses supporting custom hooks - Enhance struct module with
calcsize()and improved format string parsing - Add patchset management for PocketPy vendor patches with CI verification
⚡ Improvements
- Runtime caching in
~/.ucharm/runtimes/with automatic version tracking - Smarter build system: falls back to local PocketPy compilation when in source checkout
- Better error messages and user prompts for missing dependencies
- CI now verifies PocketPy patches aren't accidentally corrupted or removed
🐛 Bug Fixes
- Fix progress() function signature to include
labelparameter - Fix float formatting for small values in PocketPy runtime
- Correct release artifact hashing from repository root
📚 Documentation
- Update compatibility stats: 100% of targeted modules now pass all tests (1,606/1,600 tests)
- Add cross-compilation examples and WIP modules section
- Expand PocketPy patch documentation with management instructions
- Convert FAQ to collapsible sections for easier navigation
Installation
# Install
brew install ucharmdev/tap/ucharm
# Or upgrade
brew upgrade ucharmWhat's next? We're working on TLS support for http.client, full sqlite3 bindings, and streaming compression. Check the roadmap for details.
Full Changelog: v0.2.0...v0.3.0