← board

Thin Tcl/Tk binding (import tk)

Approach

The whole GUI is Tcl/Tk command strings through TkEval — the CPython-tkinter model minus tkinter's weight. lib/pcl/tk.pas binds the system libtcl8.6/libtk8.6 sonames with hand external clauses (no -dev headers, no C-import-registry change). Thin by construction: Tk does all widget/layout/event work.

v1 — LANDED (commits f2dd8206, tk.pas StrPas fix)

Remaining

  1. tkinter-shaped convenience surface — thin helpers so common Python tk snippets run (e.g. Text, Button, pack, bind, mainloop mapping to one TkEval each). Stays thin: name→command mapping, not a widget reimplementation. Where NilPy's v1 subset limits compat (kwargs, str+str, callbacks), that is a NilPy limit, not the wrapper.
  2. ttk themed widgets — one TkEval("ttk::style ...") away; closes most of the dated-look gap for free.
  3. Gate smoke — an xvfb-wrapped hello smoke wired into test-nilpy/lib-test (testmgr already models the xvfb resource). Auto-close via after so it terminates.

Acceptance

Non-goals

Log