Jul 22 Tcl Meetup notes

Tcl Meetup 2022-07-12


  • TIP 430 / zipfs - spec/design issues, implementation vs spec, impl. issues, ...
    • zipfs use cases
      • Tcl and Tk initialisation
      • applications code and data in a single file (i.e. starkits)
      • stand-alone application executables (i.e. starkit + tcl = starpack)
      • extensions / packages (e.g. a tcllib starkit)
      • starlib (tcl/tk in a library for use by other languages and apps)
    • discussion on role of zipfs in Tcl library initialisation vs application initialisation?
      • should we be considering xvfs for Tcl library initialisation and zipkits for applications?
    • problems with implementation
      • "zipfs tcl_library" doesn't appear to be implemented
      • adding a main.tcl seems leads to a message "application-specific initialization failed: Can't find a usable init.tcl in the following directories: ..."
    • problems with documentation
      • where is it documented that "configure --disable-shared" creates a single file executable?
      • need better instructions and examples for creating zipkits
    • zipfs commands for supporting zipkit generation e.g. Jan's suggested "zipfs mkimg" adaption such that if the exe already has a zip-file attached, it will just add the new entries with the existing ones.
  • tcllib - how can we make it more visible?
    • reference range command discussion vs tcllib generator
    • lots of good stuff, often invisible
    • distribute with core or via core download page - zipkit?
    • all or curated modules? not everything is generally useful but much is - e.g. math, set, etc
  • tcc4tcl upgrade [L1 ]

current status of 430

  • mostly works (except for running a zipfile)
  • Brian's makeapp.tcl shows how it can be used
  • documentation could be improved
    • user docs vs TIP .. need to reconcile
    • need more "howto" and examples
  • at least command not implement - tcl_library
  • clarify
    • is zipfs command available when tclsh built with --enable-zipfs disabled
    • can non-zipfs tclsh run application zip
    • state of Tk support

follow up TIP(s) to address application support

  • commands to build "starpack"
  • running a zipfile containing an application vfs
  • add library folder to auto_path (and tm support)
  • source a zipfile adds a /library folder as well
  • look for main.tcl and source
  • what can we do about virus scanners and binary extensions?
  • if and how we can sign these (Authenticode / Apple)
  • build test command into tclsh to facilitate testing

Scott G how does a newbie get started?

  • single file Batteries Included distribution
  • need a way to identify commonly useful extensions? Arjen's wiki page ... can we add voting?
  • the general parts of tcllib + tk + tklib + other stuff from existing distributions
  • what about ttk themes?
  • all available via a single-file executable via the single downloads page
  • equivalent of "pip install" built in to the BI executable?
  • built-in command to expand into folder?
  • is there a way to profile application code to find out the extensions being used? (perhaps via "tclsh -test" mechanism)

Friction points

  • single point of responsibility for many areas
  • knowledge is silod
  • how to share load?
  • e.g. how to get TDBC into nightly build status (Kevin)
  • testing
    • how to test tcl/tk? (e.g. built in test command)
    • how to test my code with latest release?
    • automate error reporting?
    • how is the error submitted - via a fossil ticket or better still via a fossil forum?
    • error workflow - submit, review, generate ticket, triggers / confirmation ?
    • route notifications to appropriate people - e.g. how could e.g. Kevin register for TDBC error reportsvia slack or ?
    • ticket yes/no ... feedback/reason?
    • dashboard built on top (to avoid the noise)? revisit Steve's Kanban for Fossil ?