Tree:
14711a3fee
master
v0.1a
${ noResults }
3 Commits (14711a3feec556b3f9fba80286dd29f8853ed028)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
14711a3fee |
size mechanisms as overridable Console methods (subclass dispatch from punk::console)
opunk::console (0.3.0): - base size method resolution order: -winsize fast path -> capability gate (settled or heuristic can_respond; unresponsive consoles get default_size with no query emission) -> pluggable ::opunk::console::size_query_provider -> default_size. The provider hook follows the waiting-store pattern: the class carries no punk::console dependency, and non-channel subclasses (tk widget / channel-environment terminals) simply override size. punk::console (0.1.7): - get_size dispatches object-governed calls through the virtual ::opunk::Console::size method after first-use settling - subclass size overrides are honoured from every punk::console call site - ANSI/tput mechanisms + per-pair timing cache factored into size_via_query_mechanisms, shared by the legacy channel-pair path and the registered provider (console_size_provider) - integration wiring consolidated into once-latched ensure_object_integration (probe-byte store redirect + provider registration, respecting customised providers), invoked from default_console, console_spec_resolve lazy-require sites and the get_size object path - legacy path returns the documented 80x24 fallback instead of erroring when undetermined tests: WidgetishConsole subclass override returned through punk::console::get_size for both anchored-name and object-value specs; class-level provider consultation/capability-gating with a counting fake provider; provider registration assert. Console suites 27/27 + 10/10; punkexe 6/6, goals 8/8; full suite green except pre-existing exec-14.3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
4 weeks ago |
|
|
e0a62be8ae |
probe-byte store unification + first-use settling for all query paths
opunk::console (0.2.0): - probe-byte waiting store changed from dict to array (::opunk::console::waiting_chunks) and made pluggable via waiting_chunks_arrayvar: integrating layers redirect it to their established cooperative store so bytes consumed by opunk::Console probe reads stay visible to active readers. The class remains free of punk::console dependencies - redirection is the integrator's act. punk::console (0.1.6): - default_console redirects the opunk::console store to punk::console::input_chunks_waiting (closing the split-store hazard that previously made opunk-level probes invisible to the punk repl reader) - get_ansi_response_payload performs first-use active settling for persistable console specs, guarded by a recursion latch around settle_can_respond's own probe: every query path (get_cursor_pos, get_device_status, ...) now pays at most one settling probe instead of a fresh timeout per call on unsettled ambiguous consoles punk::repl (0.1.6): - repl::init routes default console construction through punk::console::default_console (deduplicates creation logic and gains the store unification) tests: store-unification and get_cursor_pos first-use settling cases in consolespec.test (zero-emission and persistence asserts); consoleclass.test store assertions converted to array form. Console suites 25/25 + 9/9; punkexe 6/6, goals 8/8; full suite green except pre-existing exec-14.3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
4 weeks ago |
|
|
55c426be68 |
repl shutdown/eof fixes, PUNK_PIPE_EOF policy, console query guards, opunk::console voo class, test framework fixes
punk::repl (0.1.4):
- cancel the deferred (after idle) stdin reader registration when the repl finishes - a stale
registration could re-attach a reader to a completed repl (piped stdin racing shutdown produced
'error2 in repl_process_data: invalid thread handle ""')
- repl_process_data drops input arriving after codethread teardown instead of erroring
- repl::init constructs the process-default console object (anchored opunk::console instance
'default') and settles can_respond 1 for interactive stdin
app-punkshell:
- eof on the input channel now follows env(PUNK_PIPE_EOF): exit | interactive | unset=heuristic
(reopen console if available, else terminate) - replaces the unconditional CONIN$/dev-tty repl
restart that hung automated callers forever; documented in punk::config punk_env_vars_config
('help env')
punk::console (0.1.4):
- input_at_eof (certainty, with non-blocking probe read for deferred pipe eof) and
is_input_console_or_tty (heuristic incl. mintty-without-winpty env hints)
- get_size skips ANSI cursor-report mechanisms for non-terminal input (tput then 80x24 default)
- removed erroneous repl-restart attempts from get_ansi_response_payload eof handling (re-entrancy,
bypassed eof policy; one call was a typo repl::reopen)
- console_spec_resolve: -console (and legacy positional inoutchannels) accepts a channel pair, an
anchored opunk::console instance name, or an ::opunk::Console object value; settled can_respond 0
refuses query emission and supplies the object's default size; default_console proc + auto-attach
of the anchored 'default' instance for matching channel pairs
opunk::console (new, 0.1.0):
- voo-based -virtual class ::opunk::Console: console as an in/out channel pair with settled
capability facts; canonical instances anchored at ::opunk::console::instances::<name> with
value semantics as snapshots; subclass dispatch via slot-0 tag for future channel-environment
consoles (ssh, tk-widget terminals); added to bootsupport (with voo) for boot-level use
tests:
- src/tests/shell/testsuites/punkexe: hang-proof punk_run/punk_run_expect_alive harness; termination
guards, exitcode propagation, help-env render with piped stdin, default-console smoke test,
PUNK_TEST_GOALS-gated interactive drop-in goal tests
- src/tests/modules/punk/console: probe helper and console-spec/integration suites
- src/tests/modules/opunk/console: Console class suite incl. virtual dispatch
- runtests.tcl testinterp: 'package prefer latest' (dev 999999 alpha modules no longer shadowed by
stable bootsupport copies) and src/vendormodules on the module path (voo etc resolvable)
AGENTS: punk::args usage policy, -console migration contract, bootsupport update workflow
correction, opunk voo conventions, testinterp contracts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
4 weeks ago |