PR #69 - Fix make_slave_controlling_terminal() on Solaris/HP-UX to use _open_tty() instead of IO::Tty->open(), ensuring STREAMS modules (ptem, ldterm, ttcompat) are pushed via I_PUSH when the slave is opened for controlling terminal setup. Parallel fix to the slave() method fix in 1.24.
PR #74 - Fix Perl 5.40+ "Possible memory corruption: ioctl overflowed 3rd argument" warning in clone_winsize_from() and get_winsize(). Use pack_winsize(0,0,0,0) to pre-allocate the ioctl buffer with SvCUR matching sizeof(struct winsize) instead of an empty string.
PR #76, PR #79 - Fix diagnostic warnings being silently suppressed when callers use lexical "use warnings" (the modern standard since Perl 5.6). $^W and PL_dowarn only fire under perl -w; replaced with warnings::enabled() in IO::Tty and IO::Pty (PR #76) and ckWARN(WARN_IO) in Tty.xs (PR #79).
PR #77 - Fix file descriptor leak in IO::Pty when new_from_fd() fails after pty_allocate() or _open_tty() returns raw C-level fds. Added POSIX::close() calls on the raw fds before croaking at three sites in new() and slave().
PR #78 - Fix openpty() detection on Alpine Linux and other musl-based systems where openpty() has moved from libutil into libc (glibc 2.34+). Probe libc first before falling back to -lutil.
PR #80 - Fix -Wsign-compare compiler warnings: change namebuflen parameter type from int to size_t in open_slave() and allocate_pty() to match the return type of strlcpy() and the size argument of snprintf().
PR #81 - Fix spurious "_FORTIFY_SOURCE requires compiling with optimization" warnings during configure probes when $Config{optimize} (e.g. -Os) is separate from $Config{ccflags}. Include optimize flags in all configure probe compilations.
PR #84 - Fix header probes in Makefile.PL missing platform extension defines (_GNU_SOURCE, _BSD_VISIBLE, etc.) that function probes already included. Bare #includes could cause HAVE_PTY_H and similar to be unset on strict POSIX systems even when the header exists.
Improvements:
PR #86 - Use L<> instead of C<> for cross-module POD references in Tty.pm and Pty.pm so MetaCPAN renders IO::Pty, IO::Handle, and IO::Stty as clickable links.
Maintenance:
PR #70 - Modernize POD in Tty.pm and Pty.pm: remove stale platform version references (FreeBSD 4.4, OpenBSD 2.8, HPUX 10.20, Solaris 2.6), replace defunct SourceForge/mailing list URLs with GitHub issue tracker.
PR #73 - Modernize the try example script: add strict/warnings, my declarations, 3-arg open, and lexical filehandles. The script is shipped to CPAN and referenced in POD as the canonical usage example.
PR #75 - Strengthen test coverage for set_raw() and winsize: verify all termios flags set by cfmakeraw (iflag, oflag, PARENB, CSIZE, CS8, VMIN, VTIME) and add a test for the unpack_winsize() length-validation croak.
PR #85 - Update GitHub Actions to Node.js 24 versions: actions/checkout v6, cross-platform-actions/action v1, perl-actions/install-with-cpm v2. Required before GitHub forces Node.js 24 in June 2026.