Revision history for Notcurses::Native
0.1.2 2026-04-09T18:06:28+01:00
- Move terminal-dependent tests to xt/ to avoid prove6 TAP harness
bug during zef install (t/ has pure-Raku tests only)
- CI runs prove6 on t/ and Perl 5 prove on xt/
- Fix NcBlitter enum values (NCBLIT_PIXEL was 6, should be 7)
- Fix visual functions: use $nc-lib (full) not $core-lib for FFmpeg
- Add 130 NCKEY_* key code constants, NcPixelImpl enum, NCBOX_*,
NCMICE_*, NCALPHA_*, NC_BG_* channel bitmasks
- Add NcvisualOptions.set-plane for correct plane compositing
- Add 8 example programs (hello, colors, boxes, input, clock,
image viewer with kitty pixel support, direct mode, progress bars)
- Build.rakumod: search /opt/homebrew/bin for cmake when PATH
is stripped by mi6/zef subprocess
- Windows CI disabled pending upstream notcurses termios fix
0.1.1 2026-04-09T17:23:50+01:00
- Fix TAP harness corruption: redirect stdout/stderr to /dev/null
before notcurses init, reroute $*OUT via /dev/fd/N for TAP output
- Fix Build.rakumod: search /opt/homebrew/bin for cmake when PATH
is stripped by mi6/zef subprocess
- Fix NcBlitter enum values (NCBLIT_PIXEL was 6, should be 7)
- Fix visual functions: use $nc-lib (full) not $core-lib for FFmpeg
- Skip Unicode cell tests on non-UTF-8 environments
- Set LANG/LC_ALL=en_US.UTF-8 in CI for proper UTF-8 detection
- CI uses prove (Perl 5) instead of prove6 to avoid TAP parser bug
- Windows CI disabled pending upstream notcurses termios fix
- Add installation troubleshooting to README
0.1.0 2026-04-09T16:41:32+01:00
- Complete NativeCall wrapper for notcurses 3.0.16 TUI library
- 606 functions bound across 9 modules (100% of bindable symbols)
- Vendored notcurses 3.0.16 built with FFmpeg multimedia + FFI lib
- Build.rakumod: CMake build for macOS, Linux, Windows (MSYS2)
- Modules: Native (core), Types, Plane, Cell, Channel, Context,
Direct, Input, Visual, Widgets
- 25 CStruct types: all notcurses options structs, nccell, ncinput,
ncstats, nccapabilities, ncvgeom, ncvisual_options, timespec,
widget options (selector, menu, tree, tabbed, plot, reader, etc.)
- 19 opaque CPointer handle types for type-safe FFI
- 226 constants: NCKEY_* (130 key codes), NCSTYLE_*, NCOPTION_*,
NCALPHA_*, NCVISUAL_OPTION_*, NCMICE_*, NCBOX_*, NC_BG_* bitmasks
- 7 enums: NcLogLevel, NcAlign, NcBlitter, NcScale, NcInputType,
NcPixelImpl, NcBlitter (with corrected values matching C header)
- CStruct Str field workaround: set-cstruct-str helper + multi
method new constructors for all structs with string fields
- NcvisualOptions.set-plane method for correct plane compositing
- Visual functions use libnotcurses (full) for FFmpeg backend
- Variadic printf bindings (Rakudo 2026.03+)
- 16 test files, 161 subtests, 748+ assertions
- Tests cover: channel math, cell operations, plane lifecycle,
widget lifecycle, input handling, context/capabilities, direct
mode, visual/image loading, rendered output verification
- Render verification tests: exact text, color, style, z-order,
box drawing, erase, merge, and gradient checks via notcurses_at_yx
- 4x4 PNG test fixture for visual pipeline testing
- 8 example programs: hello, colors, boxes, input, clock,
image viewer (with kitty pixel protocol), direct mode, progress bars
- GitHub Actions CI for Linux, macOS, Windows
- Only unbound: 4 vprintf variants (va_list is not FFI-bridgeable)