diff options
Diffstat (limited to 'tcllib/support')
89 files changed, 18412 insertions, 0 deletions
diff --git a/tcllib/support/devel/all.tcl b/tcllib/support/devel/all.tcl new file mode 100644 index 0000000..22de15a --- /dev/null +++ b/tcllib/support/devel/all.tcl @@ -0,0 +1,234 @@ +# all.tcl -- +# +# This file contains a top-level script to run all of the Tcl +# tests. Execute it by invoking "tclsh all.test" in this directory. +# +# To test a subset of the modules, invoke it by 'tclsh all.test -modules "<module list>"' +# +# Copyright (c) 1998-2000 by Ajuba Solutions. +# All rights reserved. +# +# RCS: @(#) $Id: all.tcl,v 1.7 2009/12/08 21:00:51 andreas_kupries Exp $ + +catch {wm withdraw .} + +set old_auto_path $auto_path + +if {[lsearch [namespace children] ::tcltest] == -1} { + namespace eval ::tcltest {} + proc ::tcltest::processCmdLineArgsAddFlagsHook {} { + return [list -modules] + } + proc ::tcltest::processCmdLineArgsHook {argv} { + array set foo $argv + catch {set ::modules $foo(-modules)} + } + proc ::tcltest::cleanupTestsHook {{c {}}} { + if { [string equal $c ""] } { + # Ignore calls in the master. + return + } + + # When called from a slave copy the information found in the + # slave to here and update our own data. + + # Get total/pass/skip/fail counts + array set foo [$c eval {array get ::tcltest::numTests}] + foreach index {Total Passed Skipped Failed} { + incr ::tcltest::numTests($index) $foo($index) + } + incr ::tcltest::numTestFiles + + # Append the list of failFiles if necessary + set f [$c eval { + set ff $::tcltest::failFiles + if {($::tcltest::currentFailure) && \ + ([lsearch -exact $ff $testFileName] == -1)} { + set res [file join $::tcllibModule $testFileName] + } else { + set res "" + } + set res + }] ; # {} + if { ![string equal $f ""] } { + lappend ::tcltest::failFiles $f + } + + # Get the "skipped because" information + unset foo + array set foo [$c eval {array get ::tcltest::skippedBecause}] + foreach constraint [array names foo] { + if { ![info exists ::tcltest::skippedBecause($constraint)] } { + set ::tcltest::skippedBecause($constraint) $foo($constraint) + } else { + incr ::tcltest::skippedBecause($constraint) $foo($constraint) + } + } + + # Clean out the state in the slave + $c eval { + foreach index {Total Passed Skipped Failed} { + set ::tcltest::numTests($index) 0 + } + set ::tcltest::failFiles {} + foreach constraint [array names ::tcltest::skippedBecause] { + unset ::tcltest::skippedBecause($constraint) + } + } + } + + package require tcltest + namespace import ::tcltest::* +} + +set ::tcltest::testSingleFile false +set ::tcltest::testsDirectory [file dirname \ + [file dirname [file dirname [info script]]]] + +# We need to ensure that the testsDirectory is absolute +if {[catch {::tcltest::normalizePath ::tcltest::testsDirectory}]} { + # The version of tcltest we have here does not support + # 'normalizePath', so we have to do this on our own. + + set oldpwd [pwd] + catch {cd $::tcltest::testsDirectory} + set ::tcltest::testsDirectory [pwd] + cd $oldpwd +} +set root $::tcltest::testsDirectory + +proc Note {k v} { + puts stdout [list @@ $k $v] + flush stdout + return +} +proc Now {} {return [clock seconds]} + +puts stdout "" +Note Host [info hostname] +Note Platform $tcl_platform(os)-$tcl_platform(osVersion)-$tcl_platform(machine) +Note CWD $::tcltest::testsDirectory +Note Shell [info nameofexecutable] +Note Tcl [info patchlevel] + +# Host => Platform | Identity of the Test environment. +# Shell => Tcl | +# CWD | Identity of the Tcllib under test. + +if {[llength $::tcltest::skip]} {Note SkipTests $::tcltest::skip} +if {[llength $::tcltest::match]} {Note MatchTests $::tcltest::match} +if {[llength $::tcltest::skipFiles]} {Note SkipFiles $::tcltest::skipFiles} +if {[llength $::tcltest::matchFiles]} {Note MatchFiles $::tcltest::matchFiles} + +set auto_path $old_auto_path +set auto_path [linsert $auto_path 0 [file join $root modules]] +set old_apath $auto_path + +## +## Take default action if the modules are not specified +## + +if {![info exists modules]} then { + foreach module [glob [file join $root modules]/*/*.test] { + set tmp([lindex [file split $module] end-1]) 1 + } + set modules [lsort -dict [array names tmp]] + unset tmp +} + +Note Start [Now] + +foreach module $modules { + set ::tcltest::testsDirectory [file join $root modules $module] + + if { ![file isdirectory $::tcltest::testsDirectory] } { + puts stdout "unknown module $module" + } + + set auto_path $old_apath + set auto_path [linsert $auto_path 0 $::tcltest::testsDirectory] + + # For each module, make a slave interp and source that module's + # tests into the slave. This isolates the test suites from one + # another. + + Note Module [file tail $module] + + set c [interp create] + interp alias $c pSet {} set + interp alias $c Note {} Note + + $c eval { + # import the auto_path from the parent interp, + # so "package require" works + + set ::auto_path [pSet ::auto_path] + set ::argv0 [pSet ::argv0] + set ::tcllibModule [pSet module] + + # The next command allows the execution of 'tk' constrained + # tests, if Tk is present (for example when this code is run + # run by 'wish'). + + # Under wish 8.2/8.3 we have to explicitly load Tk into the + # slave, the package management is not able to. + + if {![package vsatisfies [package provide Tcl] 8.4]} { + catch { + load {} Tk + wm withdraw . + } + } else { + catch { + package require Tk + wm withdraw . + } + } + + package require tcltest + + # Re-import, the loading of an older tcltest package reset it + # to the standard set of paths. + set ::auto_path [pSet ::auto_path] + + namespace import ::tcltest::* + set ::tcltest::testSingleFile false + set ::tcltest::testsDirectory [pSet ::tcltest::testsDirectory] + + # configure not present in tcltest 1.x + if {[catch {::tcltest::configure -verbose bstep}]} { + set ::tcltest::verbose psb + } + } + + interp alias \ + $c ::tcltest::cleanupTestsHook \ + {} ::tcltest::cleanupTestsHook $c + + # source each of the specified tests + foreach file [lsort [::tcltest::getMatchingFiles]] { + set tail [file tail $file] + Note Testsuite [string map [list "$root/" ""] $file] + Note StartFile [Now] + $c eval { + if {[catch {source [pSet file]} msg]} { + puts stdout "@+" + puts stdout @|[join [split $errorInfo \n] "\n@|"] + puts stdout "@-" + } + } + Note EndFile [Now] + } + interp delete $c + puts stdout "" +} + +# cleanup +Note End [Now] +::tcltest::cleanupTests 1 +# FRINK: nocheck +# Use of 'exit' ensures proper termination of the test system when +# driven by a 'wish' instead of a 'tclsh'. Otherwise 'wish' would +# enter its regular event loop and no tests would complete. +exit + diff --git a/tcllib/support/devel/sak/doc/cmd.tcl b/tcllib/support/devel/sak/doc/cmd.tcl new file mode 100644 index 0000000..564ac94 --- /dev/null +++ b/tcllib/support/devel/sak/doc/cmd.tcl @@ -0,0 +1,44 @@ +# -*- tcl -*- +# Implementation of 'doc'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +if {![llength $argv]} { + set format * +} else { + set format [lindex $argv 0]* + set argv [lrange $argv 1 end] +} + +package require sak::util +if {![sak::util::checkModules argv]} return + +set matches 0 +foreach f { + html nroff tmml text wiki latex dvi ps pdf list validate imake ishow index +} { + if {![string match $format $f]} continue + incr matches +} +if {!$matches} { + puts " No format matching \"$format\"" + return +} + +# ### + +package require sak::doc + +foreach f { + html nroff tmml text wiki latex dvi ps pdf list validate imake ishow index +} { + if {![string match $format $f]} continue + sak::doc::$f $argv +} + +## +# ### diff --git a/tcllib/support/devel/sak/doc/doc.tcl b/tcllib/support/devel/sak/doc/doc.tcl new file mode 100644 index 0000000..59ab9b7 --- /dev/null +++ b/tcllib/support/devel/sak/doc/doc.tcl @@ -0,0 +1,262 @@ +# -*- tcl -*- +# sak::doc - Documentation facilities + +package require sak::util +package require sak::doc::auto + +namespace eval ::sak::doc {} + +# ### +# API commands + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::index {modules} { + # The argument (= set of modules) is irrelevant to this command. + global base + + # First locate all manpages in the CVS workspace. + set manpages [auto::findManpages $base] + auto::saveManpages $manpages + + # Then scan the found pages and extract the information needed for + # keyword index and table of contents. + array set meta [auto::scanManpages $manpages] + + # Sort through the extracted data. + array set kwic {} ; # map: keyword -> list (file...) + array set title {} ; # map: file -> description + array set cat {} ; # map: category -> list (file...) + array set name {} ; # map: file -> label + set apps {} ; # list (file...) + array set mods {} ; # map: module -> list(file...) + + foreach page [array names meta] { + unset -nocomplain m + array set m $meta($page) + + # Collect keywords and file mapping for index. + foreach kw $m(keywords) { + lappend kwic($kw) $page + } + # Get page title, relevant for display order + if {$m(desc) eq ""} { + set m(desc) $m(shortdesc) + } + set title($page) $m(desc) + # Get page name/title, relevant for display order. + set name($page) $m(title) + # Get page category, for sectioning and display order in the + # table of contents + if {$m(category) ne ""} { + set c $m(category) + } else { + set c Unfiled + } + lappend cat($c) $page + + # Type of documented entity + set type [lindex [file split $page] 0] + if {$type eq "apps"} { + lappend apps $page + } else { + lappend mods([lindex [file split $page] 1]) $page + } + } + + #parray meta + #parray kwic + #parray title + #parray name + #parray cat + #puts "apps = $apps" + #parray mods + + auto::saveKeywordIndex kwic name + auto::saveTableOfContents title name cat apps mods + auto::saveSimpleTableOfContents1 title name apps toc_apps.txt + auto::saveSimpleTableOfContents2 title name mods toc_mods.txt + auto::saveSimpleTableOfContents3 title name cat toc_cats.txt + return +} + +proc ::sak::doc::imake {modules} { + global base + # The argument (= set of modules) is irrelevant to this command. + auto::saveManpages [auto::findManpages $base] + return +} + +proc ::sak::doc::ishow {modules} { + if {[catch { + set manpages [auto::loadManpages] + } msg]} { + puts stderr "Unable to use manpage listing '[auto::manpages]'\n$msg" + } else { + puts [join $manpages \n] + } + return +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::validate {modules} {Gen null null $modules} +proc ::sak::doc::html {modules} {Gen html html $modules} +proc ::sak::doc::nroff {modules} {Gen nroff n $modules} +proc ::sak::doc::tmml {modules} {Gen tmml tmml $modules} +proc ::sak::doc::text {modules} {Gen text txt $modules} +proc ::sak::doc::wiki {modules} {Gen wiki wiki $modules} +proc ::sak::doc::latex {modules} {Gen latex tex $modules} + +proc ::sak::doc::dvi {modules} { + latex $modules + file mkdir [file join doc dvi] + cd [file join doc dvi] + + foreach f [lsort -dict [glob -nocomplain ../latex/*.tex]] { + + set target [file rootname [file tail $f]].dvi + if {[file exists $target] + && [file mtime $target] > [file mtime $f]} { + continue + } + + puts "Gen (dvi): $f" + exec latex $f 1>@ stdout 2>@ stderr + } + cd ../.. + return +} + +proc ::sak::doc::ps {modules} { + dvi $modules + file mkdir [file join doc ps] + cd [file join doc ps] + foreach f [lsort -dict [glob -nocomplain ../dvi/*.dvi]] { + + set target [file rootname [file tail $f]].ps + if {[file exists $target] + && [file mtime $target] > [file mtime $f]} { + continue + } + + puts "Gen (ps): $f" + exec dvips -o $target $f >@ stdout 2>@ stderr + } + cd ../.. + return +} + +proc ::sak::doc::pdf {modules} { + dvi $modules + file mkdir [file join doc pdf] + cd [file join doc pdf] + foreach f [lsort -dict [glob -nocomplain ../ps/*.ps]] { + + set target [file rootname [file tail $f]].pdf + if {[file exists $target] + && [file mtime $target] > [file mtime $f]} { + continue + } + + puts "Gen (pdf): $f" + exec ps2pdf $f $target >@ stdout 2>@ stderr + } + cd ../.. + return +} + +proc ::sak::doc::list {modules} { + Gen list l $modules + + set FILES [glob -nocomplain doc/list/*.l] + set LIST [open [file join doc list manpages.tcl] w] + + foreach file $FILES { + set f [open $file r] + puts $LIST [read $f] + close $f + } + close $LIST + + eval file delete -force $FILES + return +} + +# ### ### ### ######### ######### ######### +## Implementation + +proc ::sak::doc::Gen {fmt ext modules} { + global distribution + global tcl_platform + + getpackage doctools doctools/doctools.tcl + + set null 0 ; if {![string compare $fmt null]} {set null 1} + set hidden 0 ; if {![string compare $fmt desc]} {set hidden 1} + + if {!$null} { + file mkdir [file join doc $fmt] + set prefix "Gen ($fmt)" + } else { + set prefix "Validate " + } + + foreach m $modules { + set mpath [sak::util::module2path $m] + + ::doctools::new dt \ + -format $fmt \ + -module $m + + set fl [glob -nocomplain [file join $mpath *.man]] + + if {[llength $fl] == 0} { + dt destroy + continue + } + + foreach f $fl { + if {!$null} { + set target [file join doc $fmt \ + [file rootname [file tail $f]].$ext] + if {[file exists $target] + && [file mtime $target] > [file mtime $f]} { + continue + } + } + if {!$hidden} {puts "$prefix: $f"} + + dt configure -file $f + if {$null} { + dt configure -deprecated 1 + } + + set fail [catch { + set data [dt format [get_input $f]] + } msg] + + set warnings [dt warnings] + if {[llength $warnings] > 0} { + puts stderr [join $warnings \n] + } + + if {$fail} { + puts stderr $msg + continue + } + + if {!$null} { + write_out $target $data + } + } + dt destroy + } +} + +# ### ### ### ######### ######### ######### + +package provide sak::doc 1.0 + +## +# ### diff --git a/tcllib/support/devel/sak/doc/doc_auto.tcl b/tcllib/support/devel/sak/doc/doc_auto.tcl new file mode 100644 index 0000000..f04e9df --- /dev/null +++ b/tcllib/support/devel/sak/doc/doc_auto.tcl @@ -0,0 +1,311 @@ +# -*- tcl -*- +# sak::doc::auto - Documentation facilities, support for automatic +# list of manpages, keyword index, and table of contents. + +package require sak::util + +namespace eval ::sak::doc::auto { + set here [file dirname [file normalize [info script]]] +} + +getpackage fileutil fileutil/fileutil.tcl +getpackage doctools doctools/doctools.tcl +getpackage textutil::repeat textutil/repeat.tcl + +# ### +# API commands + +proc ::sak::doc::auto::manpages {} { + variable here + return [file join $here manpages.txt] +} + +proc ::sak::doc::auto::kwic {} { + variable here + return [file join $here kwic.txt] +} + +proc ::sak::doc::auto::toc {{name toc.txt}} { + variable here + return [file join $here $name] +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::findManpages {base} { + set top [file normalize $base] + set manpages {} + foreach page [concat \ + [glob -nocomplain -directory $top/modules */*.man] \ + [glob -nocomplain -directory $top/apps *.man]] { + lappend manpages [fileutil::stripPath $top $page] + } + return [lsort -dict $manpages] +} + +proc ::sak::doc::auto::saveManpages {manpages} { + fileutil::writeFile [manpages] [join [lsort -dict $manpages] \n]\n + return +} + +proc ::sak::doc::auto::loadManpages {} { + return [lsort -dict [split [fileutil::cat [manpages]] \n]] +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::scanManpages {manpages} { + ::doctools::new dt -format list + set data {} + puts Scanning... + foreach page $manpages { + puts ...$page + if {![file size $page]} { puts "\tEMPTY, IGNORED" ; continue } + dt configure -ibase $page + lappend data $page [lindex [dt format [fileutil::cat $page]] 1] + } + + dt destroy + return $data +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::saveKeywordIndex {kv nv} { + upvar 1 $kv kwic $nv name + # kwic: keyword -> list (files) + # name: file -> label + + TagsBegin + Tag+ index_begin [list {Keyword Index} {}] + + # Handle the keywords in dictionary order for nice display. + foreach kw [lsort -dict [array names kwic]] { + set tmp [Sortable $kwic($kw) name max _] + + Tag+ key [list $kw] + foreach item [lsort -dict -index 0 $tmp] { + foreach {label file} $item break + Tag+ manpage [FmtR max $file] [list $label] + } + } + + Tag+ index_end + + fileutil::writeFile [kwic] [join $lines \n] + return +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::saveTableOfContents {tv nv cv av mv} { + upvar 1 $tv title $nv name $cv cat $av apps $mv mods + # title: file -> description + # name: file -> label + # cat: category -> list (file...) + + TagsBegin + Tag+ toc_begin [list {Table Of Contents} {}] + + # The man pages are sorted in several ways for the toc. + # 1. First section by category. Subsections are categories. + # Sorted by category name, in dictionary order. + # Inside the subsections the files, sorted by label and + # description. + # 2. Second section for types. Subsections are modules and apps. + # Apps first, then modules. For apps items directly, sorted + # by name and description. For modules one sub-subsection + # per module, elements the packages, sorted by label and + # description. + + Tag+ division_start [list {By Categories}] + foreach c [lsort -dict [array names cat]] { + Tag+ division_start [list $c] + foreach item [lsort -dict -index 0 [Sortable $cat($c) name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + } + Tag+ division_end + + Tag+ division_start [list {By Type}] + # Not handled: 'no applications' + Tag+ division_start [list {Applications}] + foreach item [lsort -dict -index 0 [Sortable $apps name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + # Not handled: 'no modules' + Tag+ division_start [list {Modules}] + foreach m [lsort -dict [array names mods]] { + Tag+ division_start [list $m] + foreach item [lsort -dict -index 0 [Sortable $mods($m) name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + } + Tag+ division_end + Tag+ division_end + Tag+ toc_end + + fileutil::writeFile [toc] [join $lines \n] + return +} + +proc ::sak::doc::auto::saveSimpleTableOfContents1 {tv nv dv fname} { + upvar 1 $tv title $nv name $dv data + # title: file -> description + # name: file -> label + # data: list(file...) + + TagsBegin + Tag+ toc_begin [list {Table Of Contents} {}] + + # The man pages are sorted in several ways for the toc. + # Subsections are the modules or apps, whatever is in data. + + # Not handled: 'no applications' + Tag+ division_start [list {Applications}] + foreach item [lsort -dict -index 0 [Sortable $data name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + Tag+ toc_end + + fileutil::writeFile [toc $fname] [join $lines \n] + return +} + +proc ::sak::doc::auto::saveSimpleTableOfContents2 {tv nv dv fname} { + upvar 1 $tv title $nv name $dv data + # title: file -> description + # name: file -> label + # data: module -> list (file...) + + TagsBegin + Tag+ toc_begin [list {Table Of Contents} {}] + + # The man pages are sorted in several ways for the toc. + # Subsections are the modules or apps, whatever is in data. + + # Not handled: 'no modules' + Tag+ division_start [list {Modules}] + foreach m [lsort -dict [array names data]] { + Tag+ division_start [list $m] + foreach item [lsort -dict -index 0 [Sortable $data($m) name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + } + Tag+ division_end + Tag+ toc_end + + fileutil::writeFile [toc $fname] [join $lines \n] + return +} + +proc ::sak::doc::auto::saveSimpleTableOfContents3 {tv nv cv fname} { + upvar 1 $tv title $nv name $cv cat + # title: file -> description + # name: file -> label + # cat: category -> list (file...) + + TagsBegin + Tag+ toc_begin [list {Table Of Contents} {}] + + Tag+ division_start [list {By Categories}] + foreach c [lsort -dict [array names cat]] { + Tag+ division_start [list $c] + foreach item [lsort -dict -index 0 [Sortable $cat($c) name maxf maxl]] { + foreach {label file} $item break + Tag+ item \ + [FmtR maxf $file] \ + [FmtR maxl $label] \ + [list $title($file)] + } + Tag+ division_end + } + Tag+ division_end + Tag+ toc_end + + fileutil::writeFile [toc $fname] [join $lines \n] + return +} + +proc ::sak::doc::auto::Sortable {files nv mfv mnv} { + upvar 1 $nv name $mfv maxf $mnv maxn + # Generate a list of files sortable by name, and also find the + # max length of all relevant names. + set maxf 0 + set maxn 0 + set tmp {} + foreach file $files { + lappend tmp [list $name($file) $file] + Max maxf $file + Max maxn $name($file) + } + return $tmp +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::Max {v str} { + upvar 1 $v max + set x [string length $str] + if {$x <= $max} return + set max $x + return +} + +proc ::sak::doc::auto::FmtR {v str} { + upvar 1 $v max + return [list $str][textutil::repeat::blank \ + [expr {$max - [string length [list $str]]}]] +} + +## ### ### ### ######### ######### ######### + +proc ::sak::doc::auto::Tag {n args} { + if {[llength $args]} { + return "\[$n [join $args]\]" + } else { + return "\[$n\]" + } + #return \[[linsert $args 0 $n]\] +} + +proc ::sak::doc::auto::Tag+ {n args} { + upvar 1 lines lines + lappend lines [eval [linsert $args 0 ::sak::doc::auto::Tag $n]] + return +} + +proc ::sak::doc::auto::TagsBegin {} { + upvar 1 lines lines + set lines {} + return +} + +## ### ### ### ######### ######### ######### + +package provide sak::doc::auto 1.0 diff --git a/tcllib/support/devel/sak/doc/help.txt b/tcllib/support/devel/sak/doc/help.txt new file mode 100644 index 0000000..015d1f0 --- /dev/null +++ b/tcllib/support/devel/sak/doc/help.txt @@ -0,0 +1,42 @@ + + doc -- Generate and/or validate documentation + + sak doc ?format? ?module...? + + Convert the documentation for the specified module into the + given format. Modules can be specified by their plain name, or + as relative path. + + The special format 'validate' causes the tool to syntax check + of the input without generating actual output. When output is + generated it is written into the sub-directory 'doc'/format of + the current working directory. + + The special format 'imake' scans the checkout for manpages and + saves the list of found files into a file in the support + directory. This files will be put into CVS. The special format + 'ishow' will dump the contents of this list to stdout. Both + have been added to make it easy to verify that a checkout has + all manpages it should have. These two formats ignore any + module information they are given. + + The format is actually a glob and output is generated for all + known formats matching it. It is implicitly padded with a * to + allow the use of prefixes. + + The known output formats (beyond 'validate') are + + - dvi See latex, + conversion to dvi (via 'latex' application) + - html HTML pages + - latex LaTeX pages + - list A list of manpages + - nroff Manpages + - ps See dvi, + conversion to PostScript (via 'dvips' application) + - pdf See ps, + conversion to PDF (via 'ps2pdf' application) + - text Plain text + - tmml TMML (Tcl Manpage Markup Language) + - wiki Wiki markup (Tcler's Wiki) + + - validate Validate syntax, no output + - imake Make list of all manpages and save in checkout, no output. + - ishow Print list of manpages saved in checkout to stdout. diff --git a/tcllib/support/devel/sak/doc/kwic.txt b/tcllib/support/devel/sak/doc/kwic.txt new file mode 100644 index 0000000..2dc3f98 --- /dev/null +++ b/tcllib/support/devel/sak/doc/kwic.txt @@ -0,0 +1,3762 @@ +[index_begin {Keyword Index} {}] +[key .ddt] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key .dtx] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage apps/tcldocstrip.man tcldocstrip] +[key /dev/null] +[manpage modules/virtchannel_base/tcllib_null.man tcl::chan::null] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[key /dev/random] +[manpage modules/virtchannel_base/tcllib_random.man tcl::chan::random] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[key /dev/zero] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] +[key 3DES] +[manpage modules/des/des.man des] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key {abstract syntax tree}] +[manpage modules/grammar_me/me_util.man grammar::me::util] +[manpage modules/grammar_me/me_ast.man grammar::me_ast] +[key acceptance] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[key acceptor] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[key active] +[manpage modules/transfer/connect.man transfer::connect] +[key adaptors] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key {adjacency list}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {adjacency matrix}] +[manpage modules/struct/graphops.man struct::graph::op] +[key adjacent] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key adjusting] +[manpage modules/textutil/adjust.man textutil::adjust] +[key adler32] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[key aes] +[manpage modules/aes/aes.man aes] +[key after] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key alias] +[manpage modules/interp/tcllib_interp.man interp] +[key amazon] +[manpage modules/amazon-s3/S3.man S3] +[key ambiguous] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[key {American Express}] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[key AMEX] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[key angle] +[manpage modules/math/math_geometry.man math::geometry] +[manpage modules/units/units.man units] +[key {anonymous procedure}] +[manpage modules/lambda/lambda.man lambda] +[key ansi] +[manpage modules/term/ansi_cattr.man term::ansi::code::attr] +[manpage modules/term/ansi_cctrl.man term::ansi::code::ctrl] +[manpage modules/term/ansi_cmacros.man term::ansi::code::macros] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key appender] +[manpage modules/log/loggerAppender.man logger::appender] +[manpage modules/log/loggerUtils.man logger::utils] +[key application] +[manpage apps/nns.man nns] +[manpage apps/nnsd.man nnsd] +[manpage apps/nnslog.man nnslog] +[key {approximation algorithm}] +[manpage modules/struct/graphops.man struct::graph::op] +[key arc] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key arcfour] +[manpage modules/rc4/rc4.man rc4] +[key archive] +[manpage modules/tar/tar.man tar] +[key {argument integrity}] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_procedure.man tepam::procedure] +[key {argument processing}] +[manpage modules/cmdline/cmdline.man cmdline] +[key {argument validation}] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_procedure.man tepam::procedure] +[key arguments] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_procedure.man tepam::procedure] +[key argv] +[manpage modules/cmdline/cmdline.man cmdline] +[key argv0] +[manpage modules/cmdline/cmdline.man cmdline] +[key array] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key {articulation point}] +[manpage modules/struct/graphops.man struct::graph::op] +[key ascii85] +[manpage modules/base64/ascii85.man ascii85] +[key asn] +[manpage modules/asn/asn.man asn] +[key assembler] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[key assert] +[manpage modules/control/control.man control] +[key assign] +[manpage modules/struct/struct_list.man struct::list] +[key AST] +[manpage modules/grammar_me/me_ast.man grammar::me_ast] +[key asynchronous] +[manpage modules/cache/async.man cache::async] +[key {attribute control}] +[manpage modules/term/ansi_cattr.man term::ansi::code::attr] +[manpage modules/term/ansi_cctrl.man term::ansi::code::ctrl] +[key {augmenting network}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {augmenting path}] +[manpage modules/struct/graphops.man struct::graph::op] +[key authentication] +[manpage modules/http/autoproxy.man autoproxy] +[manpage modules/sasl/sasl.man SASL] +[manpage modules/sasl/ntlm.man SASL::NTLM] +[manpage modules/sasl/scram.man SASL::SCRAM] +[manpage modules/sasl/gtoken.man SASL::XGoogleToken] +[key automatic] +[manpage modules/nns/nns_auto.man nameserv::auto] +[key {automatic documentation}] +[manpage modules/tepam/tepam_doc_gen.man tepam::doc_gen] +[key automaton] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[key aycock] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[key bank] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/iban.man valtype::iban] +[key base32] +[manpage modules/base32/base32.man base32] +[manpage modules/base32/base32core.man base32::core] +[manpage modules/base32/base32hex.man base32::hex] +[key base64] +[manpage modules/base64/base64.man base64] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[key bash] +[manpage modules/string/token_shell.man string::token::shell] +[key bee] +[manpage modules/bee/bee.man bee] +[key {bench language}] +[manpage modules/bench/bench_intro.man bench_intro] +[manpage modules/bench/bench_lang_intro.man bench_lang_intro] +[manpage modules/bench/bench_lang_spec.man bench_lang_spec] +[key benchmark] +[manpage modules/bench/bench.man bench] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wcsv.man bench::out::csv] +[manpage modules/bench/bench_wtext.man bench::out::text] +[manpage modules/bench/bench_intro.man bench_intro] +[manpage modules/bench/bench_lang_intro.man bench_lang_intro] +[manpage modules/bench/bench_lang_spec.man bench_lang_spec] +[key ber] +[manpage modules/asn/asn.man asn] +[key {Bessel functions}] +[manpage modules/math/special.man math::special] +[key bfs] +[manpage modules/struct/graphops.man struct::graph::op] +[key bibliography] +[manpage modules/bibtex/bibtex.man bibtex] +[key bibtex] +[manpage modules/bibtex/bibtex.man bibtex] +[key bignums] +[manpage modules/math/bignum.man math::bignum] +[key bind] +[manpage modules/uev/uevent.man uevent] +[key bipartite] +[manpage modules/struct/graphops.man struct::graph::op] +[key BitTorrent] +[manpage modules/bee/bee.man bee] +[key bittorrent] +[manpage modules/bee/bee.man bee] +[key blanks] +[manpage modules/textutil/repeat.man textutil::repeat] +[key {block cipher}] +[manpage modules/aes/aes.man aes] +[manpage modules/blowfish/blowfish.man blowfish] +[manpage modules/des/des.man des] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key {blocking flow}] +[manpage modules/struct/graphops.man struct::graph::op] +[key blowfish] +[manpage modules/blowfish/blowfish.man blowfish] +[key {Book Number}] +[manpage modules/valtype/isbn.man valtype::isbn] +[key breadth-first] +[manpage modules/struct/struct_tree.man struct::tree] +[key bridge] +[manpage modules/struct/graphops.man struct::graph::op] +[key BWidget] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key C] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[key C++] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[manpage modules/stooop/stooop.man stooop] +[manpage modules/stooop/switched.man switched] +[key cache] +[manpage modules/cache/async.man cache::async] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[key {caesar cipher}] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[key calculus] +[manpage modules/math/calculus.man math::calculus] +[key callback] +[manpage modules/cache/async.man cache::async] +[manpage modules/hook/hook.man hook] +[manpage modules/lambda/lambda.man lambda] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key callbacks] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[key capitalize] +[manpage modules/textutil/textutil_string.man textutil::string] +[key {card for credit}] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[key cardinality] +[manpage modules/struct/struct_set.man struct::set] +[key cat] +[manpage modules/fileutil/fileutil.man fileutil] +[key {catalog package}] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key catalogue] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key cell-phone] +[manpage modules/valtype/imei.man valtype::imei] +[key cer] +[manpage modules/asn/asn.man asn] +[key CFG] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[key CFL] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[key CGI] +[manpage modules/ncgi/ncgi.man ncgi] +[key cgraph] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graph1.man struct::graph_v1] +[key changelog] +[manpage modules/doctools/changelog.man doctools::changelog] +[manpage modules/doctools/cvs.man doctools::cvs] +[key channel] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[manpage modules/transfer/connect.man transfer::connect] +[manpage modules/transfer/copyops.man transfer::copy] +[manpage modules/transfer/tqueue.man transfer::copy::queue] +[manpage modules/transfer/ddest.man transfer::data::destination] +[manpage modules/transfer/dsource.man transfer::data::source] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key {channel transformation}] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key {character input}] +[manpage modules/term/receive.man term::receive] +[manpage modules/term/term_bind.man term::receive::bind] +[key {character output}] +[manpage modules/term/ansi_send.man term::ansi::send] +[manpage modules/term/term_send.man term::send] +[key chat] +[manpage modules/irc/irc.man irc] +[manpage modules/multiplexer/multiplexer.man multiplexer] +[manpage modules/irc/picoirc.man picoirc] +[key checkbox] +[manpage modules/html/html.man html] +[manpage modules/javascript/javascript.man javascript] +[key checkbutton] +[manpage modules/html/html.man html] +[key Checking] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key checksum] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/crc/sum.man sum] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[key chop] +[manpage modules/textutil/textutil_string.man textutil::string] +[key cipher] +[manpage modules/pki/pki.man pki] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[key cksum] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/crc/sum.man sum] +[key class] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[manpage modules/stooop/stooop.man stooop] +[manpage modules/stooop/switched.man switched] +[key {class methods}] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key {class variables}] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key cleanup] +[manpage modules/try/tcllib_try.man try] +[key client] +[manpage modules/nns/nns_client.man nameserv] +[manpage modules/nns/nns_auto.man nameserv::auto] +[manpage modules/nns/nns_common.man nameserv::common] +[manpage apps/nns.man nns] +[manpage modules/nns/nns_intro.man nns_intro] +[manpage apps/nnslog.man nnslog] +[key cloud] +[manpage modules/amazon-s3/S3.man S3] +[key {cmdline processing}] +[manpage modules/cmdline/cmdline.man cmdline] +[key {color control}] +[manpage modules/term/ansi_cattr.man term::ansi::code::attr] +[manpage modules/term/ansi_cctrl.man term::ansi::code::ctrl] +[key columns] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key comm] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[manpage modules/interp/deleg_method.man deleg_method] +[manpage modules/interp/deleg_proc.man deleg_proc] +[manpage modules/nns/nns_protocol.man nameserv::protocol] +[key command] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[key {command line processing}] +[manpage modules/cmdline/cmdline.man cmdline] +[key {command prefix}] +[manpage modules/lambda/lambda.man lambda] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key comment] +[manpage modules/jpeg/jpeg.man jpeg] +[manpage modules/png/png.man png] +[key common] +[manpage modules/struct/struct_list.man struct::list] +[key {common prefix}] +[manpage modules/textutil/textutil_string.man textutil::string] +[key communication] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[key comparison] +[manpage modules/struct/struct_list.man struct::list] +[key {complete graph}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {complex numbers}] +[manpage modules/math/qcomplex.man math::complexnumbers] +[manpage modules/math/fourier.man math::fourier] +[key compression] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[manpage modules/zip/encode.man zipfile::encode] +[key computations] +[manpage modules/math/bigfloat.man math::bigfloat] +[key {concatenation channel}] +[manpage modules/virtchannel_base/cat.man tcl::chan::cat] +[manpage modules/virtchannel_base/facade.man tcl::chan::facade] +[key {connected component}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {connected fifos}] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[key connection] +[manpage modules/transfer/connect.man transfer::connect] +[key constants] +[manpage modules/math/constants.man math::constants] +[manpage modules/units/units.man units] +[key CONTAINER] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[key contents] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[key {context-free grammar}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[key {context-free languages}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key control] +[manpage modules/control/control.man control] +[manpage modules/term/term.man term] +[manpage modules/term/ansi_code.man term::ansi::code] +[manpage modules/term/ansi_cattr.man term::ansi::code::attr] +[manpage modules/term/ansi_cctrl.man term::ansi::code::ctrl] +[manpage modules/term/ansi_cmacros.man term::ansi::code::macros] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[manpage modules/term/ansi_send.man term::ansi::send] +[manpage modules/term/imenu.man term::interact::menu] +[manpage modules/term/ipager.man term::interact::pager] +[manpage modules/term/receive.man term::receive] +[manpage modules/term/term_bind.man term::receive::bind] +[manpage modules/term/term_send.man term::send] +[key {control structure}] +[manpage modules/generator/generator.man generator] +[key conversion] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/math/roman.man math::roman] +[manpage modules/doctools/mpexpand.man mpexpand] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage apps/tcldocstrip.man tcldocstrip] +[manpage modules/units/units.man units] +[key cooked] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key cookie] +[manpage modules/ncgi/ncgi.man ncgi] +[key copy] +[manpage modules/fileutil/multi.man fileutil::multi] +[manpage modules/fileutil/multiop.man fileutil::multi::op] +[manpage modules/transfer/copyops.man transfer::copy] +[manpage modules/transfer/tqueue.man transfer::copy::queue] +[manpage modules/transfer/ddest.man transfer::data::destination] +[manpage modules/transfer/dsource.man transfer::data::source] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key coroutine] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[manpage modules/generator/generator.man generator] +[key Cost] +[manpage modules/treeql/treeql.man treeql] +[key counter] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[key counting] +[manpage modules/counter/counter.man counter] +[key CPARAM] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[key crc] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/crc/sum.man sum] +[key crc16] +[manpage modules/crc/crc16.man crc16] +[key crc32] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/crc/sum.man sum] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[key {credit card}] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[key cron] +[manpage modules/cron/cron.man cron] +[key cryptography] +[manpage modules/blowfish/blowfish.man blowfish] +[key CSS] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[key csv] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wcsv.man bench::out::csv] +[manpage modules/csv/csv.man csv] +[key currying] +[manpage modules/lambda/lambda.man lambda] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key {cut edge}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {cut vertex}] +[manpage modules/struct/graphops.man struct::graph::op] +[key CVS] +[manpage modules/rcs/rcs.man rcs] +[key cvs] +[manpage modules/doctools/cvs.man doctools::cvs] +[key {cvs log}] +[manpage modules/doctools/cvs.man doctools::cvs] +[key {cyclic redundancy check}] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/crc/sum.man sum] +[key {data analysis}] +[manpage modules/math/statistics.man math::statistics] +[key {data destination}] +[manpage modules/transfer/ddest.man transfer::data::destination] +[manpage modules/transfer/receiver.man transfer::receiver] +[key {data entry form}] +[manpage modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox] +[key {data exchange}] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/json/json.man json] +[manpage modules/json/json_write.man json::write] +[manpage modules/yaml/yaml.man yaml] +[key {data integrity}] +[manpage modules/aes/aes.man aes] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/des/des.man des] +[manpage modules/pki/pki.man pki] +[manpage modules/rc4/rc4.man rc4] +[manpage modules/crc/sum.man sum] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key {data source}] +[manpage modules/transfer/dsource.man transfer::data::source] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key {data structures}] +[manpage modules/struct/record.man struct::record] +[key database] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key dataflow] +[manpage modules/page/page_util_flow.man page_util_flow] +[key DE] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[key debug] +[manpage modules/debug/debug.man debug] +[manpage modules/debug/debug_caller.man debug::caller] +[manpage modules/debug/debug_heartbeat.man debug::heartbeat] +[manpage modules/debug/debug_timestamp.man debug::timestamp] +[key decimal] +[manpage modules/math/decimal.man math::decimal] +[key declare] +[manpage modules/term/ansi_code.man term::ansi::code] +[key decompression] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[manpage modules/zip/decode.man zipfile::decode] +[manpage modules/zip/mkzip.man zipfile::mkzip] +[key decryption] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[key deferal] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key define] +[manpage modules/term/ansi_code.man term::ansi::code] +[key degree] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key {degree constrained spanning tree}] +[manpage modules/struct/graphops.man struct::graph::op] +[key degrees] +[manpage modules/math/constants.man math::constants] +[key delegation] +[manpage modules/interp/deleg_method.man deleg_method] +[manpage modules/interp/deleg_proc.man deleg_proc] +[key depth-first] +[manpage modules/struct/struct_tree.man struct::tree] +[key der] +[manpage modules/asn/asn.man asn] +[key DES] +[manpage modules/des/des.man des] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key deserialization] +[manpage modules/doctools2idx/import_docidx.man doctools::idx::import::docidx] +[manpage modules/doctools2idx/idx_import_json.man doctools::idx::import::json] +[manpage modules/doctools2idx/idx_structure.man doctools::idx::structure] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[manpage modules/doctools2toc/toc_structure.man doctools::toc::structure] +[key diameter] +[manpage modules/struct/graphops.man struct::graph::op] +[key dict] +[manpage modules/dicttool/dicttool.man dicttool] +[key diff] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage modules/struct/struct_list.man struct::list] +[key {diff -n format}] +[manpage modules/rcs/rcs.man rcs] +[key difference] +[manpage modules/struct/struct_set.man struct::set] +[key differential] +[manpage modules/struct/struct_list.man struct::list] +[key {differential equations}] +[manpage modules/math/calculus.man math::calculus] +[key dijkstra] +[manpage modules/struct/graphops.man struct::graph::op] +[key {directory access}] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[key {directory traversal}] +[manpage modules/fileutil/traverse.man fileutil_traverse] +[key Discover] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[key {discrete items}] +[manpage modules/struct/pool.man struct::pool] +[key {disjoint set}] +[manpage modules/struct/disjointset.man struct::disjointset] +[key dispatcher] +[manpage modules/term/term_bind.man term::receive::bind] +[key distance] +[manpage modules/math/math_geometry.man math::geometry] +[manpage modules/struct/graphops.man struct::graph::op] +[manpage modules/units/units.man units] +[key DNS] +[manpage modules/dns/tcllib_dns.man dns] +[key do] +[manpage modules/control/control.man control] +[key docidx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/export_docidx.man doctools::idx::export::docidx] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2idx/import_docidx.man doctools::idx::import::docidx] +[manpage modules/doctools2idx/idx_parse.man doctools::idx::parse] +[manpage modules/doctools2idx/idx_structure.man doctools::idx::structure] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[key {docidx commands}] +[manpage modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[key {docidx language}] +[manpage modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[key {docidx markup}] +[manpage modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[key {docidx syntax}] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[key docstrip] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage apps/tcldocstrip.man tcldocstrip] +[key doctoc] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_parse.man doctools::toc::parse] +[manpage modules/doctools2toc/toc_structure.man doctools::toc::structure] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[key {doctoc commands}] +[manpage modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[key {doctoc language}] +[manpage modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[key {doctoc markup}] +[manpage modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[key {doctoc syntax}] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[key doctools] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage modules/doctools/changelog.man doctools::changelog] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[manpage modules/doctools2idx/export_docidx.man doctools::idx::export::docidx] +[manpage modules/doctools2idx/idx_export_html.man doctools::idx::export::html] +[manpage modules/doctools2idx/idx_export_json.man doctools::idx::export::json] +[manpage modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff] +[manpage modules/doctools2idx/idx_export_text.man doctools::idx::export::text] +[manpage modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki] +[manpage modules/doctools2idx/import_docidx.man doctools::idx::import::docidx] +[manpage modules/doctools2idx/idx_import_json.man doctools::idx::import::json] +[manpage modules/doctools2idx/idx_parse.man doctools::idx::parse] +[manpage modules/doctools2idx/idx_structure.man doctools::idx::structure] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[manpage modules/doctools2toc/toc_parse.man doctools::toc::parse] +[manpage modules/doctools2toc/toc_structure.man doctools::toc::structure] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[key {doctools commands}] +[manpage modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[key {doctools language}] +[manpage modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[key {doctools markup}] +[manpage modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[key {doctools syntax}] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[key document] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[key documentation] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage apps/tcldocstrip.man tcldocstrip] +[manpage modules/tepam/tepam_doc_gen.man tepam::doc_gen] +[key DOM] +[manpage modules/treeql/treeql.man treeql] +[key dom] +[manpage modules/amazon-s3/xsxp.man xsxp] +[key {domain name service}] +[manpage modules/dns/tcllib_dns.man dns] +[key e] +[manpage modules/math/constants.man math::constants] +[key EAN] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/isbn.man valtype::isbn] +[key EAN13] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/isbn.man valtype::isbn] +[key earley] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[key EBNF] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key eccentricity] +[manpage modules/struct/graphops.man struct::graph::op] +[key edge] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key emacs] +[manpage modules/doctools/changelog.man doctools::changelog] +[manpage modules/doctools/cvs.man doctools::cvs] +[key email] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/mime/mime.man mime] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/mime/smtp.man smtp] +[key emptiness] +[manpage modules/struct/struct_set.man struct::set] +[key {empty interpreter}] +[manpage modules/interp/tcllib_interp.man interp] +[key EN] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[key encoding] +[manpage modules/base64/ascii85.man ascii85] +[manpage modules/base64/base64.man base64] +[manpage modules/base64/uuencode.man uuencode] +[manpage modules/base64/yencode.man yencode] +[key encryption] +[manpage modules/aes/aes.man aes] +[manpage modules/blowfish/blowfish.man blowfish] +[manpage modules/des/des.man des] +[manpage modules/pki/pki.man pki] +[manpage modules/rc4/rc4.man rc4] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key {entry mask}] +[manpage modules/tepam/tepam_introduction.man tepam] +[key equal] +[manpage modules/struct/struct_list.man struct::list] +[key equality] +[manpage modules/struct/struct_list.man struct::list] +[key {equivalence class}] +[manpage modules/struct/disjointset.man struct::disjointset] +[key error] +[manpage modules/try/tcllib_throw.man try] +[manpage modules/try/tcllib_try.man try] +[key {error function}] +[manpage modules/math/special.man math::special] +[key {European Article Number}] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/isbn.man valtype::isbn] +[key event] +[manpage modules/hook/hook.man hook] +[manpage modules/uev/uevent.man uevent] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key {event management}] +[manpage modules/virtchannel_core/events.man tcl::chan::events] +[key events] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key examples] +[manpage modules/bench/bench_lang_intro.man bench_lang_intro] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[key exception] +[manpage modules/try/tcllib_try.man try] +[key {exchange format}] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/json/json.man json] +[manpage modules/json/json_write.man json::write] +[key exclusion] +[manpage modules/struct/struct_set.man struct::set] +[key execution] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[key exif] +[manpage modules/exif/exif.man exif] +[manpage modules/jpeg/jpeg.man jpeg] +[key exit] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key export] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/export_docidx.man doctools::idx::export::docidx] +[manpage modules/doctools2idx/idx_export_html.man doctools::idx::export::html] +[manpage modules/doctools2idx/idx_export_json.man doctools::idx::export::json] +[manpage modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff] +[manpage modules/doctools2idx/idx_export_text.man doctools::idx::export::text] +[manpage modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[key expression] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {extended namespace}] +[manpage modules/namespacex/namespacex.man namespacex] +[key faq] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[key {fetching information}] +[manpage modules/uri/uri.man uri] +[key FFT] +[manpage modules/math/fourier.man math::fourier] +[key fifo] +[manpage modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[key file] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[manpage modules/uri/uri.man uri] +[key {file recognition}] +[manpage modules/fumagic/cfront.man fileutil::magic::cfront] +[manpage modules/fumagic/cgen.man fileutil::magic::cgen] +[manpage modules/fumagic/filetypes.man fileutil::magic::filetype] +[manpage modules/fumagic/mimetypes.man fileutil::magic::mimetype] +[manpage modules/fumagic/rtcore.man fileutil::magic::rt] +[key {file type}] +[manpage modules/fumagic/cfront.man fileutil::magic::cfront] +[manpage modules/fumagic/cgen.man fileutil::magic::cgen] +[manpage modules/fumagic/filetypes.man fileutil::magic::filetype] +[manpage modules/fumagic/mimetypes.man fileutil::magic::mimetype] +[manpage modules/fumagic/rtcore.man fileutil::magic::rt] +[key {file utilities}] +[manpage modules/fileutil/fileutil.man fileutil] +[manpage modules/fumagic/cfront.man fileutil::magic::cfront] +[manpage modules/fumagic/cgen.man fileutil::magic::cgen] +[manpage modules/fumagic/filetypes.man fileutil::magic::filetype] +[manpage modules/fumagic/mimetypes.man fileutil::magic::mimetype] +[manpage modules/fumagic/rtcore.man fileutil::magic::rt] +[manpage modules/fileutil/multi.man fileutil::multi] +[manpage modules/fileutil/multiop.man fileutil::multi::op] +[key filesystem] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[key filter] +[manpage modules/generator/generator.man generator] +[manpage modules/struct/struct_list.man struct::list] +[key final] +[manpage modules/try/tcllib_try.man try] +[key finance] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/iban.man valtype::iban] +[key find] +[manpage modules/struct/disjointset.man struct::disjointset] +[key finite] +[manpage modules/struct/pool.man struct::pool] +[key {finite automaton}] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[key {FIPS 180-1}] +[manpage modules/sha1/sha1.man sha1] +[manpage modules/sha1/sha256.man sha256] +[key {first permutation}] +[manpage modules/struct/struct_list.man struct::list] +[key Fisher-Yates] +[manpage modules/struct/struct_list.man struct::list] +[key flatten] +[manpage modules/struct/struct_list.man struct::list] +[key floating-point] +[manpage modules/math/bigfloat.man math::bigfloat] +[manpage modules/math/fuzzy.man math::fuzzy] +[key flow] +[manpage modules/control/control.man control] +[key {flow network}] +[manpage modules/struct/graphops.man struct::graph::op] +[key folding] +[manpage modules/struct/struct_list.man struct::list] +[key foldl] +[manpage modules/generator/generator.man generator] +[key foldr] +[manpage modules/generator/generator.man generator] +[key foreach] +[manpage modules/generator/generator.man generator] +[key form] +[manpage modules/html/html.man html] +[manpage modules/ncgi/ncgi.man ncgi] +[key {format conversion}] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[key formatter] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[key formatting] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wcsv.man bench::out::csv] +[manpage modules/bench/bench_wtext.man bench::out::text] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[manpage modules/textutil/textutil_string.man textutil::string] +[manpage modules/textutil/tabify.man textutil::tabify] +[key {formatting engine}] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[key {Fourier transform}] +[manpage modules/math/fourier.man math::fourier] +[key FR] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key frame] +[manpage modules/term/ansi_cmacros.man term::ansi::code::macros] +[key ftp] +[manpage modules/ftp/ftp.man ftp] +[manpage modules/ftp/ftp_geturl.man ftp::geturl] +[manpage modules/ftpd/ftpd.man ftpd] +[manpage modules/uri/uri.man uri] +[key ftpd] +[manpage modules/ftpd/ftpd.man ftpd] +[key ftpserver] +[manpage modules/ftpd/ftpd.man ftpd] +[key {full outer join}] +[manpage modules/struct/struct_list.man struct::list] +[key {generate event}] +[manpage modules/uev/uevent.man uevent] +[key {generate permutations}] +[manpage modules/struct/struct_list.man struct::list] +[key generation] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[key generator] +[manpage modules/generator/generator.man generator] +[key geocoding] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[key geodesy] +[manpage modules/map/map_slippy.man map::slippy] +[manpage modules/mapproj/mapproj.man mapproj] +[key geography] +[manpage modules/map/map_slippy.man map::slippy] +[key {get character}] +[manpage modules/term/receive.man term::receive] +[key gets] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key global] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key gopher] +[manpage modules/uri/uri.man uri] +[key gps] +[manpage modules/gpx/gpx.man gpx] +[manpage modules/nmea/nmea.man nmea] +[key gpx] +[manpage modules/gpx/gpx.man gpx] +[key grammar] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[manpage modules/grammar_me/me_cpu.man grammar::me::cpu] +[manpage modules/grammar_me/me_cpucore.man grammar::me::cpu::core] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[manpage modules/grammar_me/me_tcl.man grammar::me::tcl] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_me/me_vm.man grammar::me_vm] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key graph] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[manpage modules/struct/graph1.man struct::graph_v1] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/stack.man struct::stack] +[key {graph walking}] +[manpage modules/page/page_util_flow.man page_util_flow] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[key {green threads}] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key grep] +[manpage modules/fileutil/fileutil.man fileutil] +[key GUID] +[manpage modules/uuid/uuid.man uuid] +[key hashing] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/md5crypt/md5crypt.man md5crypt] +[manpage modules/otp/otp.man otp] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[manpage modules/sha1/sha1.man sha1] +[manpage modules/sha1/sha256.man sha256] +[key heartbeat] +[manpage modules/debug/debug_heartbeat.man debug::heartbeat] +[key heuristic] +[manpage modules/struct/graphops.man struct::graph::op] +[key hex] +[manpage modules/base32/base32hex.man base32::hex] +[key hexadecimal] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[key histogram] +[manpage modules/counter/counter.man counter] +[key hook] +[manpage modules/hook/hook.man hook] +[manpage modules/uev/uevent.man uevent] +[key horspool] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[key HTML] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_export_html.man doctools::idx::export::html] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/doctools/mpexpand.man mpexpand] +[key html] +[manpage modules/html/html.man html] +[manpage modules/htmlparse/htmlparse.man htmlparse] +[manpage modules/javascript/javascript.man javascript] +[manpage modules/ncgi/ncgi.man ncgi] +[key http] +[manpage modules/http/autoproxy.man autoproxy] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[manpage modules/uri/uri.man uri] +[manpage modules/websocket/websocket.man websocket] +[key huddle] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/yaml/yaml.man yaml] +[key {human readable}] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wtext.man bench::out::text] +[key hyphenation] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[key i18n] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key IBAN] +[manpage modules/valtype/iban.man valtype::iban] +[key ident] +[manpage modules/ident/ident.man ident] +[key identification] +[manpage modules/ident/ident.man ident] +[key identity] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[key idle] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key image] +[manpage modules/jpeg/jpeg.man jpeg] +[manpage modules/png/png.man png] +[manpage modules/tiff/tiff.man tiff] +[key imap] +[manpage modules/imap4/imap4.man imap4] +[key IMEI] +[manpage modules/valtype/imei.man valtype::imei] +[key import] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2idx/import_docidx.man doctools::idx::import::docidx] +[manpage modules/doctools2idx/idx_import_json.man doctools::idx::import::json] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[key {in-memory channel}] +[manpage modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[manpage modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan] +[manpage modules/virtchannel_base/tcllib_string.man tcl::chan::string] +[manpage modules/virtchannel_base/tcllib_variable.man tcl::chan::variable] +[key in-order] +[manpage modules/struct/struct_tree.man struct::tree] +[key inclusion] +[manpage modules/struct/struct_set.man struct::set] +[key {Incr Tcl}] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key indenting] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[key {independent set}] +[manpage modules/struct/graphops.man struct::graph::op] +[key index] +[manpage modules/doctools/docidx_intro.man docidx_intro] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/export_docidx.man doctools::idx::export::docidx] +[manpage modules/doctools2idx/idx_export_html.man doctools::idx::export::html] +[manpage modules/doctools2idx/idx_export_json.man doctools::idx::export::json] +[manpage modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff] +[manpage modules/doctools2idx/idx_export_text.man doctools::idx::export::text] +[manpage modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2idx/import_docidx.man doctools::idx::import::docidx] +[manpage modules/doctools2idx/idx_import_json.man doctools::idx::import::json] +[key {index formatter}] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[key info] +[manpage modules/namespacex/namespacex.man namespacex] +[key {inner join}] +[manpage modules/struct/struct_list.man struct::list] +[key {input mode}] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key integer] +[manpage modules/math/roman.man math::roman] +[key integration] +[manpage modules/math/calculus.man math::calculus] +[key {inter-thread communication}] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[key {International Article Number}] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/isbn.man valtype::isbn] +[key {International Bank Account Number}] +[manpage modules/valtype/iban.man valtype::iban] +[key {International Mobile Equipment Identity}] +[manpage modules/valtype/imei.man valtype::imei] +[key {International Standard Book Number}] +[manpage modules/valtype/isbn.man valtype::isbn] +[key internationalization] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key internet] +[manpage modules/asn/asn.man asn] +[manpage modules/ftp/ftp.man ftp] +[manpage modules/ftp/ftp_geturl.man ftp::geturl] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[manpage modules/mime/mime.man mime] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox] +[manpage modules/pop3d/pop3d_udb.man pop3d::udb] +[manpage modules/mime/smtp.man smtp] +[manpage modules/websocket/websocket.man websocket] +[key {internet address}] +[manpage modules/dns/tcllib_ip.man tcllib_ip] +[key interpolation] +[manpage modules/math/interpolate.man math::interpolate] +[key interpreter] +[manpage modules/interp/deleg_method.man deleg_method] +[manpage modules/interp/deleg_proc.man deleg_proc] +[manpage modules/interp/tcllib_interp.man interp] +[manpage modules/wip/wip.man wip] +[key intersection] +[manpage modules/struct/struct_set.man struct::set] +[key interval] +[manpage modules/math/bigfloat.man math::bigfloat] +[key ip] +[manpage modules/dns/tcllib_ip.man tcllib_ip] +[key ipc] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[key ipv4] +[manpage modules/dns/tcllib_ip.man tcllib_ip] +[key ipv6] +[manpage modules/dns/tcllib_ip.man tcllib_ip] +[key irc] +[manpage modules/irc/irc.man irc] +[manpage modules/irc/picoirc.man picoirc] +[key isA] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key ISBN] +[manpage modules/valtype/isbn.man valtype::isbn] +[key isthmus] +[manpage modules/struct/graphops.man struct::graph::op] +[key iterator] +[manpage modules/generator/generator.man generator] +[key javascript] +[manpage modules/javascript/javascript.man javascript] +[manpage modules/json/json.man json] +[manpage modules/json/json_write.man json::write] +[key jfif] +[manpage modules/jpeg/jpeg.man jpeg] +[key join] +[manpage modules/struct/struct_list.man struct::list] +[key jpeg] +[manpage modules/exif/exif.man exif] +[manpage modules/jpeg/jpeg.man jpeg] +[key JSON] +[manpage modules/doctools2idx/idx_export_json.man doctools::idx::export::json] +[manpage modules/doctools2idx/idx_import_json.man doctools::idx::import::json] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[key json] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/json/json.man json] +[manpage modules/json/json_write.man json::write] +[key justification] +[manpage modules/textutil/adjust.man textutil::adjust] +[key {keyword index}] +[manpage modules/doctools/docidx_intro.man docidx_intro] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[key keywords] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[key knuth] +[manpage modules/soundex/soundex.man soundex] +[key l10n] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key lambda] +[manpage modules/lambda/lambda.man lambda] +[key LaTeX] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage apps/tcldocstrip.man tcldocstrip] +[key latex] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[key latitute] +[manpage modules/map/map_slippy.man map::slippy] +[key ldap] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[manpage modules/uri/uri.man uri] +[key {ldap client}] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[key ldif] +[manpage modules/ldap/ldapx.man ldapx] +[key {least squares}] +[manpage modules/math/linalg.man math::linearalgebra] +[key {left outer join}] +[manpage modules/struct/struct_list.man struct::list] +[key lemon] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[key {level graph}] +[manpage modules/struct/graphops.man struct::graph::op] +[key lexer] +[manpage modules/doctools2idx/idx_parse.man doctools::idx::parse] +[manpage modules/doctools2toc/toc_parse.man doctools::toc::parse] +[key lexing] +[manpage modules/string/token.man string::token] +[manpage modules/string/token_shell.man string::token::shell] +[key limitsize] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[key line] +[manpage modules/math/math_geometry.man math::geometry] +[key {linear algebra}] +[manpage modules/math/linalg.man math::linearalgebra] +[key {linear equations}] +[manpage modules/math/linalg.man math::linearalgebra] +[key {linear program}] +[manpage modules/math/optimize.man math::optimize] +[key lines] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key list] +[manpage modules/struct/struct_list.man struct::list] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/wip/wip.man wip] +[key listener] +[manpage modules/term/receive.man term::receive] +[manpage modules/term/term_bind.man term::receive::bind] +[key {literate programming}] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage apps/tcldocstrip.man tcldocstrip] +[key LL(k)] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {local searching}] +[manpage modules/struct/graphops.man struct::graph::op] +[key localization] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key location] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[manpage modules/map/map_slippy.man map::slippy] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[key log] +[manpage modules/debug/debug.man debug] +[manpage modules/debug/debug_caller.man debug::caller] +[manpage modules/debug/debug_heartbeat.man debug::heartbeat] +[manpage modules/debug/debug_timestamp.man debug::timestamp] +[manpage modules/doctools/cvs.man doctools::cvs] +[manpage modules/log/log.man log] +[manpage modules/log/logger.man logger] +[key {log level}] +[manpage modules/log/log.man log] +[manpage modules/log/logger.man logger] +[key logger] +[manpage modules/log/logger.man logger] +[manpage modules/log/loggerAppender.man logger::appender] +[manpage modules/log/loggerUtils.man logger::utils] +[key {longest common subsequence}] +[manpage modules/struct/struct_list.man struct::list] +[key longitude] +[manpage modules/map/map_slippy.man map::slippy] +[key loop] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key luhn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[key luhn-5] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[key macros] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[key mail] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/mime/mime.man mime] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/mime/smtp.man smtp] +[key mailto] +[manpage modules/uri/uri.man uri] +[key {maker note}] +[manpage modules/exif/exif.man exif] +[key man_macros] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[key manpage] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/doctools/mpexpand.man mpexpand] +[key map] +[manpage modules/generator/generator.man generator] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[manpage modules/map/map_slippy.man map::slippy] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[manpage modules/mapproj/mapproj.man mapproj] +[manpage modules/struct/struct_list.man struct::list] +[key markup] +[manpage modules/doctools/docidx_intro.man docidx_intro] +[manpage modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[manpage modules/doctools/doctoc_intro.man doctoc_intro] +[manpage modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/doctools/doctools_intro.man doctools_intro] +[manpage modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/doctools/mpexpand.man mpexpand] +[manpage apps/tcldocstrip.man tcldocstrip] +[key MasterCard] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[key matching] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[manpage modules/struct/graphops.man struct::graph::op] +[key math] +[manpage modules/math/math.man math] +[manpage modules/math/bigfloat.man math::bigfloat] +[manpage modules/math/bignum.man math::bignum] +[manpage modules/math/calculus.man math::calculus] +[manpage modules/math/qcomplex.man math::complexnumbers] +[manpage modules/math/constants.man math::constants] +[manpage modules/math/decimal.man math::decimal] +[manpage modules/math/fuzzy.man math::fuzzy] +[manpage modules/math/math_geometry.man math::geometry] +[manpage modules/math/interpolate.man math::interpolate] +[manpage modules/math/linalg.man math::linearalgebra] +[manpage modules/math/optimize.man math::optimize] +[manpage modules/math/polynomials.man math::polynomials] +[manpage modules/math/rational_funcs.man math::rationalfunctions] +[manpage modules/math/special.man math::special] +[manpage modules/simulation/annealing.man simulation::annealing] +[manpage modules/simulation/montecarlo.man simulation::montecarlo] +[manpage modules/simulation/simulation_random.man simulation::random] +[key mathematics] +[manpage modules/math/fourier.man math::fourier] +[manpage modules/math/statistics.man math::statistics] +[key matrices] +[manpage modules/math/linalg.man math::linearalgebra] +[key matrix] +[manpage modules/csv/csv.man csv] +[manpage modules/math/linalg.man math::linearalgebra] +[manpage modules/report/report.man report] +[manpage modules/struct/matrix.man struct::matrix] +[manpage modules/struct/matrix1.man struct::matrix_v1] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/stack.man struct::stack] +[key {max cut}] +[manpage modules/struct/graphops.man struct::graph::op] +[key maximum] +[manpage modules/math/optimize.man math::optimize] +[key {maximum flow}] +[manpage modules/struct/graphops.man struct::graph::op] +[key md4] +[manpage modules/md4/md4.man md4] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[key md5] +[manpage modules/md5/md5.man md5] +[manpage modules/md5crypt/md5crypt.man md5crypt] +[key md5crypt] +[manpage modules/md5crypt/md5crypt.man md5crypt] +[key medicare] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[key {mega widget}] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key membership] +[manpage modules/struct/struct_set.man struct::set] +[key menu] +[manpage modules/term/ansi_cmacros.man term::ansi::code::macros] +[manpage modules/term/imenu.man term::interact::menu] +[key merge] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key {merge find}] +[manpage modules/struct/disjointset.man struct::disjointset] +[key merging] +[manpage modules/bench/bench.man bench] +[key message] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[manpage modules/log/log.man log] +[key {message catalog}] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key {message level}] +[manpage modules/log/log.man log] +[key {message package}] +[manpage modules/doctools2base/tcllib_msgcat.man doctools::msgcat] +[manpage modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c] +[manpage modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de] +[manpage modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en] +[manpage modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr] +[manpage modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c] +[manpage modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de] +[manpage modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en] +[manpage modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr] +[key message-digest] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/md5crypt/md5crypt.man md5crypt] +[manpage modules/otp/otp.man otp] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[manpage modules/sha1/sha1.man sha1] +[manpage modules/sha1/sha256.man sha256] +[key metakit] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key method] +[manpage modules/interp/deleg_method.man deleg_method] +[manpage modules/interp/tcllib_interp.man interp] +[key {method reference}] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key mime] +[manpage modules/fumagic/cfront.man fileutil::magic::cfront] +[manpage modules/fumagic/cgen.man fileutil::magic::cgen] +[manpage modules/fumagic/mimetypes.man fileutil::magic::mimetype] +[manpage modules/fumagic/rtcore.man fileutil::magic::rt] +[manpage modules/mime/mime.man mime] +[manpage modules/mime/smtp.man smtp] +[key {minimal spanning tree}] +[manpage modules/struct/graphops.man struct::graph::op] +[key minimum] +[manpage modules/math/optimize.man math::optimize] +[key {minimum cost flow}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {minimum degree spanning tree}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {minimum diameter spanning tree}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {mobile phone}] +[manpage modules/valtype/imei.man valtype::imei] +[key module] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key {montecarlo simulation}] +[manpage modules/simulation/montecarlo.man simulation::montecarlo] +[key move] +[manpage modules/fileutil/multi.man fileutil::multi] +[manpage modules/fileutil/multiop.man fileutil::multi::op] +[key multi-file] +[manpage modules/fileutil/multi.man fileutil::multi] +[manpage modules/fileutil/multiop.man fileutil::multi::op] +[key multiplexer] +[manpage modules/multiplexer/multiplexer.man multiplexer] +[key multiprecision] +[manpage modules/math/bigfloat.man math::bigfloat] +[manpage modules/math/bignum.man math::bignum] +[key {my method}] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key {name service}] +[manpage modules/nns/nns_client.man nameserv] +[manpage modules/nns/nns_auto.man nameserv::auto] +[manpage modules/nns/nns_common.man nameserv::common] +[manpage modules/nns/nns_protocol.man nameserv::protocol] +[manpage modules/nns/nns_server.man nameserv::server] +[manpage apps/nns.man nns] +[manpage modules/nns/nns_intro.man nns_intro] +[manpage apps/nnsd.man nnsd] +[manpage apps/nnslog.man nnslog] +[key {namespace unknown}] +[manpage modules/namespacex/namespacex.man namespacex] +[key {namespace utilities}] +[manpage modules/namespacex/namespacex.man namespacex] +[key narrative] +[manpage modules/debug/debug.man debug] +[manpage modules/debug/debug_caller.man debug::caller] +[manpage modules/debug/debug_heartbeat.man debug::heartbeat] +[manpage modules/debug/debug_timestamp.man debug::timestamp] +[key {National Provider Identifier}] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[key neighbour] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key net] +[manpage modules/ftp/ftp.man ftp] +[manpage modules/ftp/ftp_geturl.man ftp::geturl] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/mime/mime.man mime] +[manpage modules/mime/smtp.man smtp] +[manpage modules/websocket/websocket.man websocket] +[key nettool] +[manpage modules/nettool/nettool.man nettool] +[key network] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox] +[manpage modules/pop3d/pop3d_udb.man pop3d::udb] +[key news] +[manpage modules/nntp/nntp.man nntp] +[manpage modules/uri/uri.man uri] +[key {next permutation}] +[manpage modules/struct/struct_list.man struct::list] +[key nmea] +[manpage modules/nmea/nmea.man nmea] +[key nntp] +[manpage modules/nntp/nntp.man nntp] +[key nntpclient] +[manpage modules/nntp/nntp.man nntp] +[key no-op] +[manpage modules/control/control.man control] +[key node] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[manpage modules/struct/struct_tree.man struct::tree] +[key nominatim] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[key normalization] +[manpage modules/bench/bench.man bench] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[manpage modules/stringprep/unicode.man unicode] +[key NPI] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[key nroff] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/doctools/mpexpand.man mpexpand] +[key NTLM] +[manpage modules/sasl/ntlm.man SASL::NTLM] +[key NTP] +[manpage modules/ntp/ntp_time.man ntp_time] +[key null] +[manpage modules/virtchannel_base/tcllib_null.man tcl::chan::null] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[key {number theory}] +[manpage modules/math/numtheory.man math::numtheory] +[key oauth] +[manpage modules/oauth/oauth.man oauth] +[key object] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[manpage modules/stooop/stooop.man stooop] +[manpage modules/stooop/switched.man switched] +[key {object oriented}] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[manpage modules/stooop/stooop.man stooop] +[manpage modules/stooop/switched.man switched] +[key observer] +[manpage modules/hook/hook.man hook] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[key odie] +[manpage modules/cron/cron.man cron] +[manpage modules/nettool/nettool.man nettool] +[manpage modules/processman/processman.man processman] +[key on-idle] +[manpage modules/uev/uevent_onidle.man uevent::onidle] +[key {one time pad}] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[key optimization] +[manpage modules/math/optimize.man math::optimize] +[manpage modules/simulation/annealing.man simulation::annealing] +[key {ordered list}] +[manpage modules/struct/prioqueue.man struct::prioqueue] +[key otp] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[key {outer join}] +[manpage modules/struct/struct_list.man struct::list] +[key package] +[manpage modules/csv/csv.man csv] +[key {package indexing}] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key page] +[manpage modules/page/page_intro.man page_intro] +[manpage modules/page/page_pluginmgr.man page_pluginmgr] +[manpage modules/page/page_util_flow.man page_util_flow] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage modules/page/page_util_quote.man page_util_quote] +[key pager] +[manpage modules/term/ipager.man term::interact::pager] +[key paragraph] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[key PARAM] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[key {parameter entry form}] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox] +[key parser] +[manpage modules/doctools2idx/idx_parse.man doctools::idx::parse] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[manpage modules/doctools2toc/toc_parse.man doctools::toc::parse] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[manpage modules/amazon-s3/xsxp.man xsxp] +[key {parser generator}] +[manpage apps/page.man page] +[manpage modules/page/page_intro.man page_intro] +[manpage modules/page/page_pluginmgr.man page_pluginmgr] +[manpage modules/page/page_util_flow.man page_util_flow] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage modules/page/page_util_quote.man page_util_quote] +[key parsing] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bibtex/bibtex.man bibtex] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[manpage modules/grammar_me/me_cpu.man grammar::me::cpu] +[manpage modules/grammar_me/me_cpucore.man grammar::me::cpu::core] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[manpage modules/grammar_me/me_tcl.man grammar::me::tcl] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_me/me_vm.man grammar::me_vm] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage modules/htmlparse/htmlparse.man htmlparse] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/string/token_shell.man string::token::shell] +[manpage modules/yaml/yaml.man yaml] +[key {parsing expression}] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {parsing expression grammar}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {partial application}] +[manpage modules/lambda/lambda.man lambda] +[key partition] +[manpage modules/struct/disjointset.man struct::disjointset] +[key {partitioned set}] +[manpage modules/struct/disjointset.man struct::disjointset] +[key passive] +[manpage modules/transfer/connect.man transfer::connect] +[key password] +[manpage modules/otp/otp.man otp] +[key patch] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key patching] +[manpage modules/rcs/rcs.man rcs] +[key PEG] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key performance] +[manpage modules/bench/bench.man bench] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wcsv.man bench::out::csv] +[manpage modules/bench/bench_wtext.man bench::out::text] +[manpage modules/bench/bench_intro.man bench_intro] +[manpage modules/bench/bench_lang_intro.man bench_lang_intro] +[manpage modules/bench/bench_lang_spec.man bench_lang_spec] +[manpage modules/profiler/profiler.man profiler] +[key permutation] +[manpage modules/struct/struct_list.man struct::list] +[key persistence] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key phone] +[manpage modules/valtype/imei.man valtype::imei] +[key pi] +[manpage modules/math/constants.man math::constants] +[key {plain text}] +[manpage modules/doctools2idx/idx_export_text.man doctools::idx::export::text] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[key {plane geometry}] +[manpage modules/math/math_geometry.man math::geometry] +[key plugin] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[key {plugin management}] +[manpage modules/pluginmgr/pluginmgr.man pluginmgr] +[key {plugin search}] +[manpage modules/pluginmgr/pluginmgr.man pluginmgr] +[key png] +[manpage modules/png/png.man png] +[key point] +[manpage modules/math/math_geometry.man math::geometry] +[key {polynomial functions}] +[manpage modules/math/polynomials.man math::polynomials] +[key pool] +[manpage modules/struct/pool.man struct::pool] +[manpage modules/struct/queue.man struct::queue] +[key pop] +[manpage modules/pop3/pop3.man pop3] +[key pop3] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox] +[manpage modules/pop3d/pop3d_udb.man pop3d::udb] +[key post-order] +[manpage modules/struct/struct_tree.man struct::tree] +[key pre-order] +[manpage modules/struct/struct_tree.man struct::tree] +[key prefix] +[manpage modules/textutil/textutil_string.man textutil::string] +[manpage modules/textutil/trim.man textutil::trim] +[key prime] +[manpage modules/math/numtheory.man math::numtheory] +[key prioqueue] +[manpage modules/struct/prioqueue.man struct::prioqueue] +[manpage modules/struct/queue.man struct::queue] +[key {priority queue}] +[manpage modules/struct/prioqueue.man struct::prioqueue] +[key proc] +[manpage modules/lambda/lambda.man lambda] +[key procedure] +[manpage modules/interp/deleg_proc.man deleg_proc] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_procedure.man tepam::procedure] +[key {procedure documentation}] +[manpage modules/tepam/tepam_doc_gen.man tepam::doc_gen] +[key processman] +[manpage modules/processman/processman.man processman] +[key producer] +[manpage modules/hook/hook.man hook] +[key profile] +[manpage modules/profiler/profiler.man profiler] +[key projection] +[manpage modules/mapproj/mapproj.man mapproj] +[key prospero] +[manpage modules/uri/uri.man uri] +[key protocol] +[manpage modules/asn/asn.man asn] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[manpage modules/nns/nns_protocol.man nameserv::protocol] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox] +[manpage modules/pop3d/pop3d_udb.man pop3d::udb] +[key proxy] +[manpage modules/http/autoproxy.man autoproxy] +[key {public key cipher}] +[manpage modules/pki/pki.man pki] +[key publisher] +[manpage modules/hook/hook.man hook] +[key {push down automaton}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key queue] +[manpage modules/csv/csv.man csv] +[manpage modules/htmlparse/htmlparse.man htmlparse] +[manpage modules/struct/stack.man struct::stack] +[manpage modules/transfer/tqueue.man transfer::copy::queue] +[key quoting] +[manpage modules/page/page_util_quote.man page_util_quote] +[key radians] +[manpage modules/math/constants.man math::constants] +[manpage modules/units/units.man units] +[key radiobutton] +[manpage modules/html/html.man html] +[key radius] +[manpage modules/struct/graphops.man struct::graph::op] +[key random] +[manpage modules/virtchannel_base/tcllib_random.man tcl::chan::random] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[key {random numbers}] +[manpage modules/simulation/simulation_random.man simulation::random] +[key {rational functions}] +[manpage modules/math/rational_funcs.man math::rationalfunctions] +[key raw] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key rc4] +[manpage modules/rc4/rc4.man rc4] +[key RCS] +[manpage modules/rcs/rcs.man rcs] +[key {RCS patch}] +[manpage modules/rcs/rcs.man rcs] +[key read] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key reading] +[manpage modules/bench/bench_read.man bench::in] +[key receiver] +[manpage modules/term/receive.man term::receive] +[manpage modules/term/term_bind.man term::receive::bind] +[manpage modules/transfer/receiver.man transfer::receiver] +[key reconnect] +[manpage modules/nns/nns_auto.man nameserv::auto] +[key record] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/record.man struct::record] +[key {recursive descent}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key reduce] +[manpage modules/generator/generator.man generator] +[manpage modules/struct/struct_list.man struct::list] +[key reference] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[key {reflected channel}] +[manpage modules/virtchannel_base/cat.man tcl::chan::cat] +[manpage modules/virtchannel_core/core.man tcl::chan::core] +[manpage modules/virtchannel_core/events.man tcl::chan::events] +[manpage modules/virtchannel_base/facade.man tcl::chan::facade] +[manpage modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[manpage modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan] +[manpage modules/virtchannel_base/tcllib_null.man tcl::chan::null] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[manpage modules/virtchannel_base/tcllib_random.man tcl::chan::random] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[manpage modules/virtchannel_base/tcllib_string.man tcl::chan::string] +[manpage modules/virtchannel_base/textwindow.man tcl::chan::textwindow] +[manpage modules/virtchannel_base/tcllib_variable.man tcl::chan::variable] +[manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[manpage modules/virtchannel_core/transformcore.man tcl::transform::core] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key regex] +[manpage modules/string/token.man string::token] +[key {regular expression}] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/textutil_split.man textutil::split] +[manpage modules/textutil/trim.man textutil::trim] +[key {regular grammar}] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[key {regular languages}] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[key {remote communication}] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[key {remote execution}] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[key remove] +[manpage modules/fileutil/multi.man fileutil::multi] +[manpage modules/fileutil/multiop.man fileutil::multi::op] +[key repeating] +[manpage modules/struct/struct_list.man struct::list] +[key repetition] +[manpage modules/struct/struct_list.man struct::list] +[manpage modules/textutil/repeat.man textutil::repeat] +[key report] +[manpage modules/report/report.man report] +[key reshuffle] +[manpage modules/struct/struct_list.man struct::list] +[key {residual graph}] +[manpage modules/struct/graphops.man struct::graph::op] +[key resolver] +[manpage modules/dns/tcllib_dns.man dns] +[key {resource management}] +[manpage modules/try/tcllib_try.man try] +[key restore] +[manpage modules/nns/nns_auto.man nameserv::auto] +[key return] +[manpage modules/try/tcllib_throw.man try] +[key reverse] +[manpage modules/struct/struct_list.man struct::list] +[key {rfc 821}] +[manpage modules/mime/mime.man mime] +[manpage modules/mime/smtp.man smtp] +[manpage modules/smtpd/smtpd.man smtpd] +[key {rfc 822}] +[manpage modules/mime/mime.man mime] +[manpage modules/pop3d/pop3d_dbox.man pop3d::dbox] +[manpage modules/mime/smtp.man smtp] +[key {rfc 868}] +[manpage modules/ntp/ntp_time.man ntp_time] +[key {rfc 959}] +[manpage modules/ftp/ftp.man ftp] +[manpage modules/ftp/ftp_geturl.man ftp::geturl] +[manpage modules/ftpd/ftpd.man ftpd] +[key {rfc 977}] +[manpage modules/nntp/nntp.man nntp] +[key {rfc 1034}] +[manpage modules/dns/tcllib_dns.man dns] +[key {rfc 1035}] +[manpage modules/dns/tcllib_dns.man dns] +[key {rfc 1036}] +[manpage modules/nntp/nntp.man nntp] +[key {rfc 1320}] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[key {rfc 1321}] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[key {rfc 1413}] +[manpage modules/ident/ident.man ident] +[key {rfc 1886}] +[manpage modules/dns/tcllib_dns.man dns] +[key {rfc 1939}] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/pop3d/pop3d.man pop3d] +[key {rfc 2030}] +[manpage modules/ntp/ntp_time.man ntp_time] +[key {rfc 2045}] +[manpage modules/mime/mime.man mime] +[key {rfc 2046}] +[manpage modules/mime/mime.man mime] +[key {rfc 2049}] +[manpage modules/mime/mime.man mime] +[key {rfc 2104}] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[manpage modules/sha1/sha1.man sha1] +[manpage modules/sha1/sha256.man sha256] +[key {rfc 2141}] +[manpage modules/uri/urn-scheme.man uri_urn] +[key {rfc 2251}] +[manpage modules/ldap/ldap.man ldap] +[manpage modules/ldap/ldapx.man ldapx] +[key {rfc 2255}] +[manpage modules/uri/uri.man uri] +[key {rfc 2289}] +[manpage modules/otp/otp.man otp] +[key {rfc 2396}] +[manpage modules/uri/uri.man uri] +[key {rfc 2554}] +[manpage modules/mime/smtp.man smtp] +[key {RFC 2718}] +[manpage modules/oauth/oauth.man oauth] +[key {rfc 2821}] +[manpage modules/mime/smtp.man smtp] +[manpage modules/smtpd/smtpd.man smtpd] +[key {rfc 2849}] +[manpage modules/ldap/ldapx.man ldapx] +[key {rfc 3207}] +[manpage modules/mime/smtp.man smtp] +[key {rfc 3513}] +[manpage modules/dns/tcllib_ip.man tcllib_ip] +[key {rfc 4511}] +[manpage modules/ldap/ldap.man ldap] +[key {RFC 5849}] +[manpage modules/oauth/oauth.man oauth] +[key {rfc 6455}] +[manpage modules/websocket/websocket.man websocket] +[key rfc3501] +[manpage modules/imap4/imap4.man imap4] +[key rfc3548] +[manpage modules/base32/base32.man base32] +[manpage modules/base32/base32hex.man base32::hex] +[key {right outer join}] +[manpage modules/struct/struct_list.man struct::list] +[key RIPEMD] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[key {roman numeral}] +[manpage modules/math/roman.man math::roman] +[key roots] +[manpage modules/math/calculus.man math::calculus] +[key rot] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[key rot13] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[key rounding] +[manpage modules/math/fuzzy.man math::fuzzy] +[key rows] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[key rpc] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[key rsa] +[manpage modules/pki/pki.man pki] +[key running] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[key s3] +[manpage modules/amazon-s3/S3.man S3] +[key SASL] +[manpage modules/sasl/sasl.man SASL] +[manpage modules/sasl/ntlm.man SASL::NTLM] +[manpage modules/sasl/scram.man SASL::SCRAM] +[manpage modules/sasl/gtoken.man SASL::XGoogleToken] +[key scanl] +[manpage modules/generator/generator.man generator] +[key SCCS] +[manpage modules/rcs/rcs.man rcs] +[key SCRAM] +[manpage modules/sasl/scram.man SASL::SCRAM] +[key secure] +[manpage modules/comm/comm.man comm] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/transfer/connect.man transfer::connect] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key security] +[manpage modules/aes/aes.man aes] +[manpage modules/blowfish/blowfish.man blowfish] +[manpage modules/crc/cksum.man cksum] +[manpage modules/crc/crc16.man crc16] +[manpage modules/crc/crc32.man crc32] +[manpage modules/des/des.man des] +[manpage modules/md4/md4.man md4] +[manpage modules/md5/md5.man md5] +[manpage modules/md5crypt/md5crypt.man md5crypt] +[manpage modules/otp/otp.man otp] +[manpage modules/pki/pki.man pki] +[manpage modules/rc4/rc4.man rc4] +[manpage modules/ripemd/ripemd128.man ripemd128] +[manpage modules/ripemd/ripemd160.man ripemd160] +[manpage modules/sha1/sha1.man sha1] +[manpage modules/sha1/sha256.man sha256] +[manpage modules/crc/sum.man sum] +[manpage modules/des/tcldes.man tcldes] +[manpage modules/des/tcldesjr.man tcldes] +[key seed] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[key selectionbox] +[manpage modules/javascript/javascript.man javascript] +[key {semantic markup}] +[manpage modules/doctools/docidx_intro.man docidx_intro] +[manpage modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref] +[manpage modules/doctools/docidx_lang_faq.man docidx_lang_faq] +[manpage modules/doctools/docidx_lang_intro.man docidx_lang_intro] +[manpage modules/doctools/docidx_lang_syntax.man docidx_lang_syntax] +[manpage modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref] +[manpage modules/doctools/doctoc_intro.man doctoc_intro] +[manpage modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref] +[manpage modules/doctools/doctoc_lang_faq.man doctoc_lang_faq] +[manpage modules/doctools/doctoc_lang_intro.man doctoc_lang_intro] +[manpage modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools2idx/idx_introduction.man doctools2idx_introduction] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools/doctools_intro.man doctools_intro] +[manpage modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref] +[manpage modules/doctools/doctools_lang_faq.man doctools_lang_faq] +[manpage modules/doctools/doctools_lang_intro.man doctools_lang_intro] +[manpage modules/doctools/doctools_lang_syntax.man doctools_lang_syntax] +[manpage modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref] +[key send] +[manpage modules/comm/comm.man comm] +[key serialization] +[manpage modules/bee/bee.man bee] +[manpage modules/doctools2idx/export_docidx.man doctools::idx::export::docidx] +[manpage modules/doctools2idx/idx_export_html.man doctools::idx::export::html] +[manpage modules/doctools2idx/idx_export_json.man doctools::idx::export::json] +[manpage modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff] +[manpage modules/doctools2idx/idx_export_text.man doctools::idx::export::text] +[manpage modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki] +[manpage modules/doctools2idx/idx_structure.man doctools::idx::structure] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[manpage modules/doctools2toc/toc_structure.man doctools::toc::structure] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/struct_tree.man struct::tree] +[key server] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[manpage modules/nns/nns_common.man nameserv::common] +[manpage modules/nns/nns_server.man nameserv::server] +[manpage modules/nns/nns_intro.man nns_intro] +[manpage apps/nnsd.man nnsd] +[key service] +[manpage modules/log/logger.man logger] +[key services] +[manpage modules/ftpd/ftpd.man ftpd] +[manpage modules/smtpd/smtpd.man smtpd] +[key set] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/struct_set.man struct::set] +[key sha1] +[manpage modules/sha1/sha1.man sha1] +[key sha256] +[manpage modules/sha1/sha256.man sha256] +[key shell] +[manpage modules/string/token_shell.man string::token::shell] +[key {shortest path}] +[manpage modules/struct/graphops.man struct::graph::op] +[key shuffle] +[manpage modules/struct/struct_list.man struct::list] +[key {simulated annealing}] +[manpage modules/simulation/annealing.man simulation::annealing] +[key simulation] +[manpage modules/simulation/simulation_random.man simulation::random] +[key singleton] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[key {size limit}] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[key skiplist] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/skiplist.man struct::skiplist] +[key slippy] +[manpage modules/map/map_slippy.man map::slippy] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[key smtp] +[manpage modules/mime/mime.man mime] +[manpage modules/mime/smtp.man smtp] +[manpage modules/smtpd/smtpd.man smtpd] +[key smtpd] +[manpage modules/smtpd/smtpd.man smtpd] +[key Snit] +[manpage modules/snit/snit.man snit] +[key snit] +[manpage modules/interp/deleg_method.man deleg_method] +[manpage modules/interp/tcllib_interp.man interp] +[key SNTP] +[manpage modules/ntp/ntp_time.man ntp_time] +[key socket] +[manpage modules/comm/comm.man comm] +[manpage modules/comm/comm_wire.man comm_wire] +[manpage modules/smtpd/smtpd.man smtpd] +[key soundex] +[manpage modules/soundex/soundex.man soundex] +[key source] +[manpage modules/docstrip/docstrip.man docstrip] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[manpage apps/tcldocstrip.man tcldocstrip] +[key spacing] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[key {spatial interpolation}] +[manpage modules/math/interpolate.man math::interpolate] +[key {special functions}] +[manpage modules/math/special.man math::special] +[key specification] +[manpage modules/bench/bench_lang_spec.man bench_lang_spec] +[key speed] +[manpage modules/profiler/profiler.man profiler] +[key split] +[manpage modules/textutil/textutil_split.man textutil::split] +[key {squared graph}] +[manpage modules/struct/graphops.man struct::graph::op] +[key ssl] +[manpage modules/comm/comm.man comm] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/transfer/connect.man transfer::connect] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key stack] +[manpage modules/struct/queue.man struct::queue] +[key {standard io}] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[key state] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {state (de)serialization}] +[manpage modules/namespacex/namespacex.man namespacex] +[key {statistical distribution}] +[manpage modules/simulation/simulation_random.man simulation::random] +[key statistics] +[manpage modules/counter/counter.man counter] +[manpage modules/math/math.man math] +[manpage modules/math/statistics.man math::statistics] +[key stdin] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[key stdout] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[key {stochastic modelling}] +[manpage modules/simulation/montecarlo.man simulation::montecarlo] +[key {stream cipher}] +[manpage modules/rc4/rc4.man rc4] +[key {stream copy}] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[key string] +[manpage modules/string/token.man string::token] +[manpage modules/string/token_shell.man string::token::shell] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[manpage modules/textutil/expander.man textutil::expander] +[manpage modules/textutil/repeat.man textutil::repeat] +[manpage modules/textutil/textutil_split.man textutil::split] +[manpage modules/textutil/textutil_string.man textutil::string] +[manpage modules/textutil/tabify.man textutil::tabify] +[manpage modules/textutil/trim.man textutil::trim] +[key stringprep] +[manpage modules/stringprep/stringprep.man stringprep] +[manpage modules/stringprep/stringprep_data.man stringprep::data] +[manpage modules/stringprep/unicode_data.man unicode::data] +[key {strongly connected component}] +[manpage modules/struct/graphops.man struct::graph::op] +[key struct] +[manpage modules/struct/pool.man struct::pool] +[manpage modules/struct/record.man struct::record] +[key structure] +[manpage modules/control/control.man control] +[key {structured queries}] +[manpage modules/treeql/treeql.man treeql] +[key style] +[manpage modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults] +[key subcommand] +[manpage modules/tepam/tepam_introduction.man tepam] +[manpage modules/tepam/tepam_procedure.man tepam::procedure] +[key subgraph] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key subject] +[manpage modules/hook/hook.man hook] +[key submitbutton] +[manpage modules/javascript/javascript.man javascript] +[key subscriber] +[manpage modules/hook/hook.man hook] +[key subsequence] +[manpage modules/struct/struct_list.man struct::list] +[key subst] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[key sum] +[manpage modules/crc/sum.man sum] +[key swapping] +[manpage modules/struct/struct_list.man struct::list] +[key {symmetric difference}] +[manpage modules/struct/struct_set.man struct::set] +[key synchronous] +[manpage modules/cache/async.man cache::async] +[key {syntax tree}] +[manpage modules/grammar_me/me_util.man grammar::me::util] +[key table] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/html/html.man html] +[manpage modules/report/report.man report] +[key {table of contents}] +[manpage modules/doctools/doctoc_intro.man doctoc_intro] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools2toc/toc_introduction.man doctools2toc_introduction] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[key tabstops] +[manpage modules/textutil/tabify.man textutil::tabify] +[key tallying] +[manpage modules/counter/counter.man counter] +[key {tape archive}] +[manpage modules/tar/tar.man tar] +[key tar] +[manpage modules/tar/tar.man tar] +[key tcl] +[manpage modules/math/bigfloat.man math::bigfloat] +[manpage modules/math/bignum.man math::bignum] +[manpage modules/math/decimal.man math::decimal] +[key {Tcl module}] +[manpage modules/docstrip/docstrip_util.man docstrip_util] +[key {Tcl syntax}] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[key {tcler's wiki}] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[key tcllib] +[manpage modules/csv/csv.man csv] +[key TclOO] +[manpage modules/ooutil/ooutil.man oo::util] +[manpage modules/tool/meta.man oo::util] +[manpage modules/tool/tool.man tool] +[manpage modules/tool/tool_dict_ensemble.man tool::dict_ensemble] +[key TCLPARAM] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[key TDPL] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key {temp file}] +[manpage modules/fileutil/fileutil.man fileutil] +[key {template processing}] +[manpage modules/textutil/expander.man textutil::expander] +[key terminal] +[manpage modules/term/term.man term] +[manpage modules/term/ansi_code.man term::ansi::code] +[manpage modules/term/ansi_cattr.man term::ansi::code::attr] +[manpage modules/term/ansi_cctrl.man term::ansi::code::ctrl] +[manpage modules/term/ansi_cmacros.man term::ansi::code::macros] +[manpage modules/term/ansi_ctrlu.man term::ansi::ctrl::unix] +[manpage modules/term/ansi_send.man term::ansi::send] +[manpage modules/term/imenu.man term::interact::menu] +[manpage modules/term/ipager.man term::interact::pager] +[manpage modules/term/receive.man term::receive] +[manpage modules/term/term_bind.man term::receive::bind] +[manpage modules/term/term_send.man term::send] +[key test] +[manpage modules/fileutil/fileutil.man fileutil] +[key Testing] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key testing] +[manpage modules/bench/bench.man bench] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wcsv.man bench::out::csv] +[manpage modules/bench/bench_wtext.man bench::out::text] +[manpage modules/bench/bench_intro.man bench_intro] +[manpage modules/bench/bench_lang_intro.man bench_lang_intro] +[manpage modules/bench/bench_lang_spec.man bench_lang_spec] +[key TeX] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/adjust.man textutil::adjust] +[key text] +[manpage modules/bench/bench_read.man bench::in] +[manpage modules/bench/bench_wtext.man bench::out::text] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[key {text comparison}] +[manpage modules/soundex/soundex.man soundex] +[key {text conversion}] +[manpage modules/rcs/rcs.man rcs] +[key {text differences}] +[manpage modules/rcs/rcs.man rcs] +[key {text display}] +[manpage modules/term/imenu.man term::interact::menu] +[manpage modules/term/ipager.man term::interact::pager] +[key {text expansion}] +[manpage modules/textutil/expander.man textutil::expander] +[key {text likeness}] +[manpage modules/soundex/soundex.man soundex] +[key {text processing}] +[manpage modules/bibtex/bibtex.man bibtex] +[manpage modules/yaml/huddle.man huddle] +[manpage apps/page.man page] +[manpage modules/page/page_intro.man page_intro] +[manpage modules/page/page_pluginmgr.man page_pluginmgr] +[manpage modules/page/page_util_flow.man page_util_flow] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage modules/page/page_util_quote.man page_util_quote] +[manpage modules/yaml/yaml.man yaml] +[key {text widget}] +[manpage modules/virtchannel_base/textwindow.man tcl::chan::textwindow] +[key threads] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key throw] +[manpage modules/try/tcllib_throw.man try] +[key thumbnail] +[manpage modules/jpeg/jpeg.man jpeg] +[key tie] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key tif] +[manpage modules/tiff/tiff.man tiff] +[key tiff] +[manpage modules/exif/exif.man exif] +[manpage modules/tiff/tiff.man tiff] +[key tile] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[key time] +[manpage modules/ntp/ntp_time.man ntp_time] +[key timestamp] +[manpage modules/png/png.man png] +[key timestamps] +[manpage modules/debug/debug_timestamp.man debug::timestamp] +[key {tip 219}] +[manpage modules/virtchannel_base/cat.man tcl::chan::cat] +[manpage modules/virtchannel_core/core.man tcl::chan::core] +[manpage modules/virtchannel_core/events.man tcl::chan::events] +[manpage modules/virtchannel_base/facade.man tcl::chan::facade] +[manpage modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[manpage modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan] +[manpage modules/virtchannel_base/tcllib_null.man tcl::chan::null] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[manpage modules/virtchannel_base/tcllib_random.man tcl::chan::random] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[manpage modules/virtchannel_base/tcllib_string.man tcl::chan::string] +[manpage modules/virtchannel_base/textwindow.man tcl::chan::textwindow] +[manpage modules/virtchannel_base/tcllib_variable.man tcl::chan::variable] +[manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[manpage modules/virtchannel_core/transformcore.man tcl::transform::core] +[key {tip 230}] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key {tip 234}] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key {tip 317}] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[key Tk] +[manpage modules/virtchannel_base/textwindow.man tcl::chan::textwindow] +[key tls] +[manpage modules/comm/comm.man comm] +[manpage modules/imap4/imap4.man imap4] +[manpage modules/pop3/pop3.man pop3] +[manpage modules/pop3d/pop3d.man pop3d] +[manpage modules/mime/smtp.man smtp] +[manpage modules/transfer/connect.man transfer::connect] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key TMML] +[manpage modules/doctools/doctools.man doctools] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/dtplite/pkg_dtplite.man dtplite] +[manpage apps/dtplite.man dtplite] +[manpage modules/doctools/mpexpand.man mpexpand] +[key toc] +[manpage modules/doctools/doctoc_intro.man doctoc_intro] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc] +[manpage modules/doctools2toc/toc_export_html.man doctools::toc::export::html] +[manpage modules/doctools2toc/toc_export_json.man doctools::toc::export::json] +[manpage modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff] +[manpage modules/doctools2toc/toc_export_text.man doctools::toc::export::text] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[manpage modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc] +[manpage modules/doctools2toc/toc_import_json.man doctools::toc::import::json] +[key {toc formatter}] +[manpage modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref] +[key tokenization] +[manpage modules/string/token.man string::token] +[manpage modules/string/token_shell.man string::token::shell] +[key TOOL] +[manpage modules/tool/tool.man tool] +[manpage modules/tool/tool_dict_ensemble.man tool::dict_ensemble] +[key {top-down parsing languages}] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key torrent] +[manpage modules/bee/bee.man bee] +[key touch] +[manpage modules/fileutil/fileutil.man fileutil] +[key TPDL] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[key trace] +[manpage modules/debug/debug.man debug] +[manpage modules/debug/debug_caller.man debug::caller] +[manpage modules/debug/debug_heartbeat.man debug::heartbeat] +[manpage modules/debug/debug_timestamp.man debug::timestamp] +[key transducer] +[manpage modules/grammar_aycock/aycock.man grammar::aycock] +[manpage modules/grammar_fa/fa.man grammar::fa] +[manpage modules/grammar_fa/dacceptor.man grammar::fa::dacceptor] +[manpage modules/grammar_fa/dexec.man grammar::fa::dexec] +[manpage modules/grammar_fa/faop.man grammar::fa::op] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_peg/peg.man grammar::peg] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage apps/pt.man pt] +[manpage modules/pt/pt_astree.man pt::ast] +[manpage modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl] +[manpage modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea] +[manpage modules/pt/pt_json_language.man pt::json_language] +[manpage modules/pt/pt_param.man pt::param] +[manpage modules/pt/pt_pexpression.man pt::pe] +[manpage modules/pt/pt_pexpr_op.man pt::pe::op] +[manpage modules/pt/pt_pegrammar.man pt::peg] +[manpage modules/pt/pt_peg_container.man pt::peg::container] +[manpage modules/pt/pt_peg_container_peg.man pt::peg::container::peg] +[manpage modules/pt/pt_peg_export.man pt::peg::export] +[manpage modules/pt/pt_peg_export_container.man pt::peg::export::container] +[manpage modules/pt/pt_peg_export_json.man pt::peg::export::json] +[manpage modules/pt/pt_peg_export_peg.man pt::peg::export::peg] +[manpage modules/pt/pt_peg_from_container.man pt::peg::from::container] +[manpage modules/pt/pt_peg_from_json.man pt::peg::from::json] +[manpage modules/pt/pt_peg_from_peg.man pt::peg::from::peg] +[manpage modules/pt/pt_peg_import.man pt::peg::import] +[manpage modules/pt/pt_peg_import_container.man pt::peg::import::container] +[manpage modules/pt/pt_peg_import_json.man pt::peg::import::json] +[manpage modules/pt/pt_peg_import_peg.man pt::peg::import::peg] +[manpage modules/pt/pt_peg_interp.man pt::peg::interp] +[manpage modules/pt/pt_peg_to_container.man pt::peg::to::container] +[manpage modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam] +[manpage modules/pt/pt_peg_to_json.man pt::peg::to::json] +[manpage modules/pt/pt_peg_to_param.man pt::peg::to::param] +[manpage modules/pt/pt_peg_to_peg.man pt::peg::to::peg] +[manpage modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam] +[manpage modules/pt/pt_peg_language.man pt::peg_language] +[manpage modules/pt/pt_peg_introduction.man pt::pegrammar] +[manpage modules/pt/pt_pgen.man pt::pgen] +[manpage modules/pt/pt_rdengine.man pt::rde] +[manpage modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit] +[manpage modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo] +[manpage modules/pt/pt_util.man pt::util] +[manpage modules/pt/pt_to_api.man pt_export_api] +[manpage modules/pt/pt_from_api.man pt_import_api] +[manpage modules/pt/pt_introduction.man pt_introduction] +[manpage modules/pt/pt_parse_peg.man pt_parse_peg] +[manpage modules/pt/pt_parser_api.man pt_parser_api] +[manpage modules/pt/pt_peg_op.man pt_peg_op] +[key transfer] +[manpage modules/transfer/connect.man transfer::connect] +[manpage modules/transfer/copyops.man transfer::copy] +[manpage modules/transfer/tqueue.man transfer::copy::queue] +[manpage modules/transfer/ddest.man transfer::data::destination] +[manpage modules/transfer/dsource.man transfer::data::source] +[manpage modules/transfer/receiver.man transfer::receiver] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key transformation] +[manpage modules/page/page_util_peg.man page_util_peg] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key transmitter] +[manpage modules/transfer/transmitter.man transfer::transmitter] +[key {travelling salesman}] +[manpage modules/struct/graphops.man struct::graph::op] +[key traversal] +[manpage modules/fileutil/traverse.man fileutil_traverse] +[key tree] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[manpage modules/grammar_me/me_util.man grammar::me::util] +[manpage modules/htmlparse/htmlparse.man htmlparse] +[manpage modules/struct/queue.man struct::queue] +[manpage modules/struct/stack.man struct::stack] +[manpage modules/struct/struct_tree.man struct::tree] +[manpage modules/struct/struct_tree1.man struct::tree_v1] +[manpage modules/treeql/treeql.man treeql] +[key {tree query language}] +[manpage modules/treeql/treeql.man treeql] +[key {tree walking}] +[manpage modules/page/page_util_flow.man page_util_flow] +[manpage modules/page/page_util_norm_lemon.man page_util_norm_lemon] +[manpage modules/page/page_util_norm_peg.man page_util_norm_peg] +[key TreeQL] +[manpage modules/treeql/treeql.man treeql] +[key trimming] +[manpage modules/textutil/textutil.man textutil] +[manpage modules/textutil/trim.man textutil::trim] +[key twitter] +[manpage modules/oauth/oauth.man oauth] +[key type] +[manpage modules/fileutil/fileutil.man fileutil] +[manpage modules/fumagic/cfront.man fileutil::magic::cfront] +[manpage modules/fumagic/cgen.man fileutil::magic::cgen] +[manpage modules/fumagic/filetypes.man fileutil::magic::filetype] +[manpage modules/fumagic/mimetypes.man fileutil::magic::mimetype] +[manpage modules/fumagic/rtcore.man fileutil::magic::rt] +[manpage modules/snit/snit.man snit] +[key {Type checking}] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key uevent] +[manpage modules/hook/hook.man hook] +[key unbind] +[manpage modules/uev/uevent.man uevent] +[key uncapitalize] +[manpage modules/textutil/textutil_string.man textutil::string] +[key undenting] +[manpage modules/textutil/adjust.man textutil::adjust] +[key unicode] +[manpage modules/stringprep/stringprep.man stringprep] +[manpage modules/stringprep/stringprep_data.man stringprep::data] +[manpage modules/stringprep/unicode.man unicode] +[manpage modules/stringprep/unicode_data.man unicode::data] +[key union] +[manpage modules/struct/disjointset.man struct::disjointset] +[manpage modules/struct/struct_set.man struct::set] +[key unit] +[manpage modules/units/units.man units] +[key {unknown hooking}] +[manpage modules/namespacex/namespacex.man namespacex] +[key untie] +[manpage modules/tie/tie.man tie] +[manpage modules/tie/tie_std.man tie] +[key update] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[key uri] +[manpage modules/uri/uri.man uri] +[manpage modules/uri/urn-scheme.man uri_urn] +[key url] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_import.man doctools::idx::import] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_import.man doctools::toc::import] +[manpage modules/map/map_geocode_nominatim.man map::geocode::nominatim] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[manpage modules/uri/uri.man uri] +[manpage modules/uri/urn-scheme.man uri_urn] +[key urn] +[manpage modules/uri/urn-scheme.man uri_urn] +[key US-NPI] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[key utilities] +[manpage modules/namespacex/namespacex.man namespacex] +[key uuencode] +[manpage modules/base64/uuencode.man uuencode] +[key UUID] +[manpage modules/uuid/uuid.man uuid] +[key Validation] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key {Value checking}] +[manpage modules/valtype/valtype_common.man valtype::common] +[manpage modules/valtype/cc_amex.man valtype::creditcard::amex] +[manpage modules/valtype/cc_discover.man valtype::creditcard::discover] +[manpage modules/valtype/cc_mastercard.man valtype::creditcard::mastercard] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[manpage modules/valtype/ean13.man valtype::gs1::ean13] +[manpage modules/valtype/iban.man valtype::iban] +[manpage modules/valtype/imei.man valtype::imei] +[manpage modules/valtype/isbn.man valtype::isbn] +[manpage modules/valtype/luhn.man valtype::luhn] +[manpage modules/valtype/luhn5.man valtype::luhn5] +[manpage modules/valtype/usnpi.man valtype::usnpi] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key vectors] +[manpage modules/math/linalg.man math::linearalgebra] +[key verhoeff] +[manpage modules/valtype/verhoeff.man valtype::verhoeff] +[key vertex] +[manpage modules/struct/graph.man struct::graph] +[manpage modules/struct/graphops.man struct::graph::op] +[key {vertex cover}] +[manpage modules/struct/graphops.man struct::graph::op] +[key {virtual channel}] +[manpage modules/virtchannel_base/cat.man tcl::chan::cat] +[manpage modules/virtchannel_core/core.man tcl::chan::core] +[manpage modules/virtchannel_core/events.man tcl::chan::events] +[manpage modules/virtchannel_base/facade.man tcl::chan::facade] +[manpage modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo] +[manpage modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2] +[manpage modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe] +[manpage modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan] +[manpage modules/virtchannel_base/tcllib_null.man tcl::chan::null] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[manpage modules/virtchannel_base/tcllib_random.man tcl::chan::random] +[manpage modules/virtchannel_base/std.man tcl::chan::std] +[manpage modules/virtchannel_base/tcllib_string.man tcl::chan::string] +[manpage modules/virtchannel_base/textwindow.man tcl::chan::textwindow] +[manpage modules/virtchannel_base/tcllib_variable.man tcl::chan::variable] +[manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] +[manpage modules/virtchannel_base/randseed.man tcl::randomseed] +[manpage modules/virtchannel_transform/adler32.man tcl::transform::adler32] +[manpage modules/virtchannel_transform/vt_base64.man tcl::transform::base64] +[manpage modules/virtchannel_core/transformcore.man tcl::transform::core] +[manpage modules/virtchannel_transform/vt_counter.man tcl::transform::counter] +[manpage modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32] +[manpage modules/virtchannel_transform/hex.man tcl::transform::hex] +[manpage modules/virtchannel_transform/identity.man tcl::transform::identity] +[manpage modules/virtchannel_transform/limitsize.man tcl::transform::limitsize] +[manpage modules/virtchannel_transform/observe.man tcl::transform::observe] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[manpage modules/virtchannel_transform/rot.man tcl::transform::rot] +[manpage modules/virtchannel_transform/spacer.man tcl::transform::spacer] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key {virtual machine}] +[manpage modules/grammar_me/me_cpu.man grammar::me::cpu] +[manpage modules/grammar_me/me_cpucore.man grammar::me::cpu::core] +[manpage modules/grammar_me/gasm.man grammar::me::cpu::gasm] +[manpage modules/grammar_me/me_tcl.man grammar::me::tcl] +[manpage modules/grammar_me/me_intro.man grammar::me_intro] +[manpage modules/grammar_me/me_vm.man grammar::me_vm] +[manpage modules/grammar_peg/peg_interp.man grammar::peg::interp] +[manpage modules/pt/pt_param.man pt::param] +[key VISA] +[manpage modules/valtype/cc_visa.man valtype::creditcard::visa] +[key vwait] +[manpage modules/coroutine/tcllib_coroutine.man coroutine] +[manpage modules/coroutine/coro_auto.man coroutine::auto] +[manpage modules/smtpd/smtpd.man smtpd] +[key wais] +[manpage modules/uri/uri.man uri] +[key widget] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key {widget adaptors}] +[manpage modules/snit/snit.man snit] +[manpage modules/snit/snitfaq.man snitfaq] +[key wiki] +[manpage modules/doctools2idx/idx_container.man doctools::idx] +[manpage modules/doctools/docidx.man doctools::idx] +[manpage modules/doctools2idx/idx_export.man doctools::idx::export] +[manpage modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki] +[manpage modules/doctools2toc/toc_container.man doctools::toc] +[manpage modules/doctools/doctoc.man doctools::toc] +[manpage modules/doctools2toc/toc_export.man doctools::toc::export] +[manpage modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki] +[key word] +[manpage modules/doctools2base/tcl_parse.man doctools::tcl::parse] +[manpage modules/wip/wip.man wip] +[key www] +[manpage modules/uri/uri.man uri] +[key x.208] +[manpage modules/asn/asn.man asn] +[key x.209] +[manpage modules/asn/asn.man asn] +[key x.500] +[manpage modules/ldap/ldap.man ldap] +[key XGoogleToken] +[manpage modules/sasl/gtoken.man SASL::XGoogleToken] +[key xml] +[manpage modules/amazon-s3/xsxp.man xsxp] +[key xor] +[manpage modules/virtchannel_transform/vt_otp.man tcl::transform::otp] +[key XPath] +[manpage modules/treeql/treeql.man treeql] +[key XSLT] +[manpage modules/treeql/treeql.man treeql] +[key yaml] +[manpage modules/yaml/huddle.man huddle] +[manpage modules/yaml/yaml.man yaml] +[key ydecode] +[manpage modules/base64/yencode.man yencode] +[key yEnc] +[manpage modules/base64/yencode.man yencode] +[key yencode] +[manpage modules/base64/yencode.man yencode] +[key zero] +[manpage modules/virtchannel_base/nullzero.man tcl::chan::nullzero] +[manpage modules/virtchannel_base/tcllib_zero.man tcl::chan::zero] +[key zip] +[manpage modules/zip/decode.man zipfile::decode] +[manpage modules/zip/encode.man zipfile::encode] +[manpage modules/zip/mkzip.man zipfile::mkzip] +[key zlib] +[manpage modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib] +[key zoom] +[manpage modules/map/map_slippy.man map::slippy] +[manpage modules/map/map_slippy_cache.man map::slippy::cache] +[manpage modules/map/map_slippy_fetcher.man map::slippy::fetcher] +[index_end]
\ No newline at end of file diff --git a/tcllib/support/devel/sak/doc/manpages.txt b/tcllib/support/devel/sak/doc/manpages.txt new file mode 100644 index 0000000..6390ed6 --- /dev/null +++ b/tcllib/support/devel/sak/doc/manpages.txt @@ -0,0 +1,421 @@ +apps/dtplite.man +apps/nns.man +apps/nnsd.man +apps/nnslog.man +apps/page.man +apps/pt.man +apps/tcldocstrip.man +modules/aes/aes.man +modules/amazon-s3/S3.man +modules/amazon-s3/xsxp.man +modules/asn/asn.man +modules/base32/base32.man +modules/base32/base32core.man +modules/base32/base32hex.man +modules/base64/ascii85.man +modules/base64/base64.man +modules/base64/uuencode.man +modules/base64/yencode.man +modules/bee/bee.man +modules/bench/bench.man +modules/bench/bench_intro.man +modules/bench/bench_lang_intro.man +modules/bench/bench_lang_spec.man +modules/bench/bench_read.man +modules/bench/bench_wcsv.man +modules/bench/bench_wtext.man +modules/bibtex/bibtex.man +modules/blowfish/blowfish.man +modules/cache/async.man +modules/clock/iso8601.man +modules/clock/rfc2822.man +modules/cmdline/cmdline.man +modules/comm/comm.man +modules/comm/comm_wire.man +modules/control/control.man +modules/coroutine/coro_auto.man +modules/coroutine/tcllib_coroutine.man +modules/counter/counter.man +modules/crc/cksum.man +modules/crc/crc16.man +modules/crc/crc32.man +modules/crc/sum.man +modules/cron/cron.man +modules/csv/csv.man +modules/debug/debug.man +modules/debug/debug_caller.man +modules/debug/debug_heartbeat.man +modules/debug/debug_timestamp.man +modules/des/des.man +modules/des/tcldes.man +modules/des/tcldesjr.man +modules/dicttool/dicttool.man +modules/dns/tcllib_dns.man +modules/dns/tcllib_ip.man +modules/docstrip/docstrip.man +modules/docstrip/docstrip_util.man +modules/doctools/changelog.man +modules/doctools/cvs.man +modules/doctools/docidx.man +modules/doctools/docidx_intro.man +modules/doctools/docidx_lang_cmdref.man +modules/doctools/docidx_lang_faq.man +modules/doctools/docidx_lang_intro.man +modules/doctools/docidx_lang_syntax.man +modules/doctools/docidx_plugin_apiref.man +modules/doctools/doctoc.man +modules/doctools/doctoc_intro.man +modules/doctools/doctoc_lang_cmdref.man +modules/doctools/doctoc_lang_faq.man +modules/doctools/doctoc_lang_intro.man +modules/doctools/doctoc_lang_syntax.man +modules/doctools/doctoc_plugin_apiref.man +modules/doctools/doctools.man +modules/doctools/doctools_intro.man +modules/doctools/doctools_lang_cmdref.man +modules/doctools/doctools_lang_faq.man +modules/doctools/doctools_lang_intro.man +modules/doctools/doctools_lang_syntax.man +modules/doctools/doctools_plugin_apiref.man +modules/doctools/mpexpand.man +modules/doctools2base/html_cssdefaults.man +modules/doctools2base/nroff_manmacros.man +modules/doctools2base/tcl_parse.man +modules/doctools2base/tcllib_msgcat.man +modules/doctools2idx/export_docidx.man +modules/doctools2idx/idx_container.man +modules/doctools2idx/idx_export.man +modules/doctools2idx/idx_export_html.man +modules/doctools2idx/idx_export_json.man +modules/doctools2idx/idx_export_nroff.man +modules/doctools2idx/idx_export_text.man +modules/doctools2idx/idx_export_wiki.man +modules/doctools2idx/idx_import.man +modules/doctools2idx/idx_import_json.man +modules/doctools2idx/idx_introduction.man +modules/doctools2idx/idx_msgcat_c.man +modules/doctools2idx/idx_msgcat_de.man +modules/doctools2idx/idx_msgcat_en.man +modules/doctools2idx/idx_msgcat_fr.man +modules/doctools2idx/idx_parse.man +modules/doctools2idx/idx_structure.man +modules/doctools2idx/import_docidx.man +modules/doctools2toc/export_doctoc.man +modules/doctools2toc/import_doctoc.man +modules/doctools2toc/toc_container.man +modules/doctools2toc/toc_export.man +modules/doctools2toc/toc_export_html.man +modules/doctools2toc/toc_export_json.man +modules/doctools2toc/toc_export_nroff.man +modules/doctools2toc/toc_export_text.man +modules/doctools2toc/toc_export_wiki.man +modules/doctools2toc/toc_import.man +modules/doctools2toc/toc_import_json.man +modules/doctools2toc/toc_introduction.man +modules/doctools2toc/toc_msgcat_c.man +modules/doctools2toc/toc_msgcat_de.man +modules/doctools2toc/toc_msgcat_en.man +modules/doctools2toc/toc_msgcat_fr.man +modules/doctools2toc/toc_parse.man +modules/doctools2toc/toc_structure.man +modules/dtplite/pkg_dtplite.man +modules/exif/exif.man +modules/fileutil/fileutil.man +modules/fileutil/multi.man +modules/fileutil/multiop.man +modules/fileutil/traverse.man +modules/ftp/ftp.man +modules/ftp/ftp_geturl.man +modules/ftpd/ftpd.man +modules/fumagic/cfront.man +modules/fumagic/cgen.man +modules/fumagic/filetypes.man +modules/fumagic/mimetypes.man +modules/fumagic/rtcore.man +modules/generator/generator.man +modules/gpx/gpx.man +modules/grammar_aycock/aycock.man +modules/grammar_fa/dacceptor.man +modules/grammar_fa/dexec.man +modules/grammar_fa/fa.man +modules/grammar_fa/faop.man +modules/grammar_me/gasm.man +modules/grammar_me/me_ast.man +modules/grammar_me/me_cpu.man +modules/grammar_me/me_cpucore.man +modules/grammar_me/me_intro.man +modules/grammar_me/me_tcl.man +modules/grammar_me/me_util.man +modules/grammar_me/me_vm.man +modules/grammar_peg/peg.man +modules/grammar_peg/peg_interp.man +modules/hook/hook.man +modules/html/html.man +modules/htmlparse/htmlparse.man +modules/http/autoproxy.man +modules/ident/ident.man +modules/imap4/imap4.man +modules/inifile/ini.man +modules/interp/deleg_method.man +modules/interp/deleg_proc.man +modules/interp/tcllib_interp.man +modules/irc/irc.man +modules/irc/picoirc.man +modules/javascript/javascript.man +modules/jpeg/jpeg.man +modules/json/json.man +modules/json/json_write.man +modules/lambda/lambda.man +modules/ldap/ldap.man +modules/ldap/ldapx.man +modules/log/log.man +modules/log/logger.man +modules/log/loggerAppender.man +modules/log/loggerUtils.man +modules/map/map_geocode_nominatim.man +modules/map/map_slippy.man +modules/map/map_slippy_cache.man +modules/map/map_slippy_fetcher.man +modules/mapproj/mapproj.man +modules/math/bigfloat.man +modules/math/bignum.man +modules/math/calculus.man +modules/math/combinatorics.man +modules/math/constants.man +modules/math/decimal.man +modules/math/exact.man +modules/math/fourier.man +modules/math/fuzzy.man +modules/math/interpolate.man +modules/math/linalg.man +modules/math/machineparameters.man +modules/math/math.man +modules/math/math_geometry.man +modules/math/numtheory.man +modules/math/optimize.man +modules/math/polynomials.man +modules/math/qcomplex.man +modules/math/rational_funcs.man +modules/math/roman.man +modules/math/romberg.man +modules/math/special.man +modules/math/statistics.man +modules/math/symdiff.man +modules/md4/md4.man +modules/md5/md5.man +modules/md5crypt/md5crypt.man +modules/mime/mime.man +modules/mime/smtp.man +modules/multiplexer/multiplexer.man +modules/namespacex/namespacex.man +modules/ncgi/ncgi.man +modules/nettool/nettool.man +modules/nmea/nmea.man +modules/nns/nns_auto.man +modules/nns/nns_client.man +modules/nns/nns_common.man +modules/nns/nns_intro.man +modules/nns/nns_protocol.man +modules/nns/nns_server.man +modules/nntp/nntp.man +modules/ntp/ntp_time.man +modules/oauth/oauth.man +modules/ooutil/ooutil.man +modules/otp/otp.man +modules/page/page_intro.man +modules/page/page_pluginmgr.man +modules/page/page_util_flow.man +modules/page/page_util_norm_lemon.man +modules/page/page_util_norm_peg.man +modules/page/page_util_peg.man +modules/page/page_util_quote.man +modules/pki/pki.man +modules/pluginmgr/pluginmgr.man +modules/png/png.man +modules/pop3/pop3.man +modules/pop3d/pop3d.man +modules/pop3d/pop3d_dbox.man +modules/pop3d/pop3d_udb.man +modules/processman/processman.man +modules/profiler/profiler.man +modules/pt/pt_astree.man +modules/pt/pt_cparam_config_critcl.man +modules/pt/pt_cparam_config_tea.man +modules/pt/pt_from_api.man +modules/pt/pt_introduction.man +modules/pt/pt_json_language.man +modules/pt/pt_param.man +modules/pt/pt_parse_peg.man +modules/pt/pt_parser_api.man +modules/pt/pt_peg_container.man +modules/pt/pt_peg_container_peg.man +modules/pt/pt_peg_export.man +modules/pt/pt_peg_export_container.man +modules/pt/pt_peg_export_json.man +modules/pt/pt_peg_export_peg.man +modules/pt/pt_peg_from_container.man +modules/pt/pt_peg_from_json.man +modules/pt/pt_peg_from_peg.man +modules/pt/pt_peg_import.man +modules/pt/pt_peg_import_container.man +modules/pt/pt_peg_import_json.man +modules/pt/pt_peg_import_peg.man +modules/pt/pt_peg_interp.man +modules/pt/pt_peg_introduction.man +modules/pt/pt_peg_language.man +modules/pt/pt_peg_op.man +modules/pt/pt_peg_to_container.man +modules/pt/pt_peg_to_cparam.man +modules/pt/pt_peg_to_json.man +modules/pt/pt_peg_to_param.man +modules/pt/pt_peg_to_peg.man +modules/pt/pt_peg_to_tclparam.man +modules/pt/pt_pegrammar.man +modules/pt/pt_pexpr_op.man +modules/pt/pt_pexpression.man +modules/pt/pt_pgen.man +modules/pt/pt_rdengine.man +modules/pt/pt_tclparam_config_snit.man +modules/pt/pt_tclparam_config_tcloo.man +modules/pt/pt_to_api.man +modules/pt/pt_util.man +modules/rc4/rc4.man +modules/rcs/rcs.man +modules/report/report.man +modules/rest/rest.man +modules/ripemd/ripemd128.man +modules/ripemd/ripemd160.man +modules/sasl/gtoken.man +modules/sasl/ntlm.man +modules/sasl/sasl.man +modules/sasl/scram.man +modules/sha1/sha1.man +modules/sha1/sha256.man +modules/simulation/annealing.man +modules/simulation/montecarlo.man +modules/simulation/simulation_random.man +modules/smtpd/smtpd.man +modules/snit/snit.man +modules/snit/snitfaq.man +modules/soundex/soundex.man +modules/stooop/stooop.man +modules/stooop/switched.man +modules/string/token.man +modules/string/token_shell.man +modules/stringprep/stringprep.man +modules/stringprep/stringprep_data.man +modules/stringprep/unicode.man +modules/stringprep/unicode_data.man +modules/struct/disjointset.man +modules/struct/graph.man +modules/struct/graph1.man +modules/struct/graphops.man +modules/struct/matrix.man +modules/struct/matrix1.man +modules/struct/pool.man +modules/struct/prioqueue.man +modules/struct/queue.man +modules/struct/record.man +modules/struct/skiplist.man +modules/struct/stack.man +modules/struct/struct_list.man +modules/struct/struct_set.man +modules/struct/struct_tree.man +modules/struct/struct_tree1.man +modules/tar/tar.man +modules/tepam/tepam_argument_dialogbox.man +modules/tepam/tepam_doc_gen.man +modules/tepam/tepam_introduction.man +modules/tepam/tepam_procedure.man +modules/term/ansi_cattr.man +modules/term/ansi_cctrl.man +modules/term/ansi_cmacros.man +modules/term/ansi_code.man +modules/term/ansi_ctrlu.man +modules/term/ansi_send.man +modules/term/imenu.man +modules/term/ipager.man +modules/term/receive.man +modules/term/term.man +modules/term/term_bind.man +modules/term/term_send.man +modules/textutil/adjust.man +modules/textutil/expander.man +modules/textutil/repeat.man +modules/textutil/tabify.man +modules/textutil/textutil.man +modules/textutil/textutil_split.man +modules/textutil/textutil_string.man +modules/textutil/trim.man +modules/tie/tie.man +modules/tie/tie_std.man +modules/tiff/tiff.man +modules/tool/meta.man +modules/tool/tool.man +modules/tool/tool_dict_ensemble.man +modules/transfer/connect.man +modules/transfer/copyops.man +modules/transfer/ddest.man +modules/transfer/dsource.man +modules/transfer/receiver.man +modules/transfer/tqueue.man +modules/transfer/transmitter.man +modules/treeql/treeql.man +modules/try/tcllib_throw.man +modules/try/tcllib_try.man +modules/uev/uevent.man +modules/uev/uevent_onidle.man +modules/units/units.man +modules/uri/uri.man +modules/uri/urn-scheme.man +modules/uuid/uuid.man +modules/valtype/cc_amex.man +modules/valtype/cc_discover.man +modules/valtype/cc_mastercard.man +modules/valtype/cc_visa.man +modules/valtype/ean13.man +modules/valtype/iban.man +modules/valtype/imei.man +modules/valtype/isbn.man +modules/valtype/luhn.man +modules/valtype/luhn5.man +modules/valtype/usnpi.man +modules/valtype/valtype_common.man +modules/valtype/verhoeff.man +modules/virtchannel_base/cat.man +modules/virtchannel_base/facade.man +modules/virtchannel_base/halfpipe.man +modules/virtchannel_base/nullzero.man +modules/virtchannel_base/randseed.man +modules/virtchannel_base/std.man +modules/virtchannel_base/tcllib_fifo.man +modules/virtchannel_base/tcllib_fifo2.man +modules/virtchannel_base/tcllib_memchan.man +modules/virtchannel_base/tcllib_null.man +modules/virtchannel_base/tcllib_random.man +modules/virtchannel_base/tcllib_string.man +modules/virtchannel_base/tcllib_variable.man +modules/virtchannel_base/tcllib_zero.man +modules/virtchannel_base/textwindow.man +modules/virtchannel_core/core.man +modules/virtchannel_core/events.man +modules/virtchannel_core/transformcore.man +modules/virtchannel_transform/adler32.man +modules/virtchannel_transform/hex.man +modules/virtchannel_transform/identity.man +modules/virtchannel_transform/limitsize.man +modules/virtchannel_transform/observe.man +modules/virtchannel_transform/rot.man +modules/virtchannel_transform/spacer.man +modules/virtchannel_transform/tcllib_zlib.man +modules/virtchannel_transform/vt_base64.man +modules/virtchannel_transform/vt_counter.man +modules/virtchannel_transform/vt_crc32.man +modules/virtchannel_transform/vt_otp.man +modules/websocket/websocket.man +modules/wip/wip.man +modules/yaml/huddle.man +modules/yaml/yaml.man +modules/zip/decode.man +modules/zip/encode.man +modules/zip/mkzip.man diff --git a/tcllib/support/devel/sak/doc/pkgIndex.tcl b/tcllib/support/devel/sak/doc/pkgIndex.tcl new file mode 100644 index 0000000..4187efe --- /dev/null +++ b/tcllib/support/devel/sak/doc/pkgIndex.tcl @@ -0,0 +1,4 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::doc 1.0 [list source [file join $dir doc.tcl]] +package ifneeded sak::doc::auto 1.0 [list source [file join $dir doc_auto.tcl]] + diff --git a/tcllib/support/devel/sak/doc/toc.txt b/tcllib/support/devel/sak/doc/toc.txt new file mode 100644 index 0000000..d15a9d5 --- /dev/null +++ b/tcllib/support/devel/sak/doc/toc.txt @@ -0,0 +1,1144 @@ +[toc_begin {Table Of Contents} {}] +[division_start {By Categories}] +[division_start {Argument entry form, mega widget}] +[item modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox {TEPAM argument_dialogbox, reference manual}] +[division_end] +[division_start {Benchmark tools}] +[item modules/bench/bench.man bench {bench - Processing benchmark suites}] +[item modules/bench/bench_read.man bench::in {bench::in - Reading benchmark results}] +[item modules/bench/bench_wcsv.man bench::out::csv {bench::out::csv - Formatting benchmark results as CSV}] +[item modules/bench/bench_wtext.man bench::out::text {bench::out::text - Formatting benchmark results as human readable text}] +[item modules/bench/bench_intro.man bench_intro {bench introduction}] +[item modules/bench/bench_lang_intro.man bench_lang_intro {bench language introduction}] +[item modules/bench/bench_lang_spec.man bench_lang_spec {bench language specification}] +[division_end] +[division_start {CGI programming}] +[item modules/html/html.man html {Procedures to generate HTML structures}] +[item modules/javascript/javascript.man javascript {Procedures to generate HTML and Java Script structures.}] +[item modules/json/json.man json {JSON parser}] +[item modules/json/json_write.man json::write {JSON generation}] +[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}] +[division_end] +[division_start Channels] +[item modules/virtchannel_base/cat.man tcl::chan::cat {Concatenation channel}] +[item modules/virtchannel_core/core.man tcl::chan::core {Basic reflected/virtual channel support}] +[item modules/virtchannel_core/events.man tcl::chan::events {Event support for reflected/virtual channels}] +[item modules/virtchannel_base/facade.man tcl::chan::facade {Facade channel}] +[item modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo {In-memory fifo channel}] +[item modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2 {In-memory interconnected fifo channels}] +[item modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe {In-memory channel, half of a fifo2}] +[item modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan {In-memory channel}] +[item modules/virtchannel_base/tcllib_null.man tcl::chan::null {Null channel}] +[item modules/virtchannel_base/nullzero.man tcl::chan::nullzero {Null/Zero channel combination}] +[item modules/virtchannel_base/tcllib_random.man tcl::chan::random {Random channel}] +[item modules/virtchannel_base/std.man tcl::chan::std {Standard I/O, unification of stdin and stdout}] +[item modules/virtchannel_base/tcllib_string.man tcl::chan::string {Read-only in-memory channel}] +[item modules/virtchannel_base/textwindow.man tcl::chan::textwindow {Textwindow channel}] +[item modules/virtchannel_base/tcllib_variable.man tcl::chan::variable {In-memory channel using variable for storage}] +[item modules/virtchannel_base/tcllib_zero.man tcl::chan::zero {Zero channel}] +[item modules/virtchannel_base/randseed.man tcl::randomseed {Utilities for random channels}] +[item modules/virtchannel_transform/adler32.man tcl::transform::adler32 {Adler32 transformation}] +[item modules/virtchannel_transform/vt_base64.man tcl::transform::base64 {Base64 encoding transformation}] +[item modules/virtchannel_core/transformcore.man tcl::transform::core {Basic reflected/virtual channel transform support}] +[item modules/virtchannel_transform/vt_counter.man tcl::transform::counter {Counter transformation}] +[item modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32 {Crc32 transformation}] +[item modules/virtchannel_transform/hex.man tcl::transform::hex {Hexadecimal encoding transformation}] +[item modules/virtchannel_transform/identity.man tcl::transform::identity {Identity transformation}] +[item modules/virtchannel_transform/limitsize.man tcl::transform::limitsize {limiting input}] +[item modules/virtchannel_transform/observe.man tcl::transform::observe {Observer transformation, stream copy}] +[item modules/virtchannel_transform/vt_otp.man tcl::transform::otp {Encryption via one-time pad}] +[item modules/virtchannel_transform/rot.man tcl::transform::rot rot-encryption] +[item modules/virtchannel_transform/spacer.man tcl::transform::spacer {Space insertation and removal}] +[item modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib {zlib (de)compression}] +[division_end] +[division_start Coroutine] +[item modules/coroutine/tcllib_coroutine.man coroutine {Coroutine based event and IO handling}] +[item modules/coroutine/coro_auto.man coroutine::auto {Automatic event and IO coroutine awareness}] +[division_end] +[division_start {Data structures}] +[item modules/counter/counter.man counter {Procedures for counters and histograms}] +[item modules/report/report.man report {Create and manipulate report objects}] +[item modules/struct/disjointset.man struct::disjointset {Disjoint set data structure}] +[item modules/struct/graph.man struct::graph {Create and manipulate directed graph objects}] +[item modules/struct/graphops.man struct::graph::op {Operation for (un)directed graph objects}] +[item modules/struct/graph1.man struct::graph_v1 {Create and manipulate directed graph objects}] +[item modules/struct/struct_list.man struct::list {Procedures for manipulating lists}] +[item modules/struct/matrix.man struct::matrix {Create and manipulate matrix objects}] +[item modules/struct/matrix1.man struct::matrix_v1 {Create and manipulate matrix objects}] +[item modules/struct/pool.man struct::pool {Create and manipulate pool objects (of discrete items)}] +[item modules/struct/prioqueue.man struct::prioqueue {Create and manipulate prioqueue objects}] +[item modules/struct/queue.man struct::queue {Create and manipulate queue objects}] +[item modules/struct/record.man struct::record {Define and create records (similar to 'C' structures)}] +[item modules/struct/struct_set.man struct::set {Procedures for manipulating sets}] +[item modules/struct/skiplist.man struct::skiplist {Create and manipulate skiplists}] +[item modules/struct/stack.man struct::stack {Create and manipulate stack objects}] +[item modules/struct/struct_tree.man struct::tree {Create and manipulate tree objects}] +[item modules/struct/struct_tree1.man struct::tree_v1 {Create and manipulate tree objects}] +[item modules/treeql/treeql.man treeql {Query tree objects}] +[division_end] +[division_start {debugging, tracing, and logging}] +[item modules/debug/debug.man debug {debug narrative - core}] +[item modules/debug/debug_caller.man debug::caller {debug narrative - caller}] +[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}] +[item modules/debug/debug_timestamp.man debug::timestamp {debug narrative - timestamping}] +[division_end] +[division_start {Documentation tools}] +[item modules/doctools/docidx_intro.man docidx_intro {docidx introduction}] +[item modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref {docidx language command reference}] +[item modules/doctools/docidx_lang_faq.man docidx_lang_faq {docidx language faq}] +[item modules/doctools/docidx_lang_intro.man docidx_lang_intro {docidx language introduction}] +[item modules/doctools/docidx_lang_syntax.man docidx_lang_syntax {docidx language syntax}] +[item modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref {docidx plugin API reference}] +[item modules/docstrip/docstrip.man docstrip {Docstrip style source code extraction}] +[item modules/docstrip/docstrip_util.man docstrip_util {Docstrip-related utilities}] +[item modules/doctools/doctoc_intro.man doctoc_intro {doctoc introduction}] +[item modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref {doctoc language command reference}] +[item modules/doctools/doctoc_lang_faq.man doctoc_lang_faq {doctoc language faq}] +[item modules/doctools/doctoc_lang_intro.man doctoc_lang_intro {doctoc language introduction}] +[item modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax {doctoc language syntax}] +[item modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref {doctoc plugin API reference}] +[item modules/doctools/doctools.man doctools {doctools - Processing documents}] +[item modules/doctools2idx/idx_introduction.man doctools2idx_introduction {DocTools - Keyword indices}] +[item modules/doctools2toc/toc_introduction.man doctools2toc_introduction {DocTools - Tables of Contents}] +[item modules/doctools/changelog.man doctools::changelog {Processing text in Emacs ChangeLog format}] +[item modules/doctools/cvs.man doctools::cvs {Processing text in 'cvs log' format}] +[item modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults {Default CSS style for HTML export plugins}] +[item modules/doctools2idx/idx_container.man doctools::idx {Holding keyword indices}] +[item modules/doctools/docidx.man doctools::idx {docidx - Processing indices}] +[item modules/doctools2idx/idx_export.man doctools::idx::export {Exporting keyword indices}] +[item modules/doctools2idx/idx_import.man doctools::idx::import {Importing keyword indices}] +[item modules/doctools2idx/idx_parse.man doctools::idx::parse {Parsing text in docidx format}] +[item modules/doctools2idx/idx_structure.man doctools::idx::structure {Docidx serialization utilities}] +[item modules/doctools2base/tcllib_msgcat.man doctools::msgcat {Message catalog management for the various document parsers}] +[item modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c {Message catalog for the docidx parser (C)}] +[item modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de {Message catalog for the docidx parser (DE)}] +[item modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en {Message catalog for the docidx parser (EN)}] +[item modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr {Message catalog for the docidx parser (FR)}] +[item modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c {Message catalog for the doctoc parser (C)}] +[item modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de {Message catalog for the doctoc parser (DE)}] +[item modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en {Message catalog for the doctoc parser (EN)}] +[item modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr {Message catalog for the doctoc parser (FR)}] +[item modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros {Default CSS style for NROFF export plugins}] +[item modules/doctools2base/tcl_parse.man doctools::tcl::parse {Processing text in 'subst -novariables' format}] +[item modules/doctools2toc/toc_container.man doctools::toc {Holding tables of contents}] +[item modules/doctools/doctoc.man doctools::toc {doctoc - Processing tables of contents}] +[item modules/doctools2toc/toc_export.man doctools::toc::export {Exporting tables of contents}] +[item modules/doctools2toc/toc_import.man doctools::toc::import {Importing keyword indices}] +[item modules/doctools2toc/toc_parse.man doctools::toc::parse {Parsing text in doctoc format}] +[item modules/doctools2toc/toc_structure.man doctools::toc::structure {Doctoc serialization utilities}] +[item modules/doctools/doctools_intro.man doctools_intro {doctools introduction}] +[item modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref {doctools language command reference}] +[item modules/doctools/doctools_lang_faq.man doctools_lang_faq {doctools language faq}] +[item modules/doctools/doctools_lang_intro.man doctools_lang_intro {doctools language introduction}] +[item modules/doctools/doctools_lang_syntax.man doctools_lang_syntax {doctools language syntax}] +[item modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref {doctools plugin API reference}] +[item modules/dtplite/pkg_dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item modules/doctools/mpexpand.man mpexpand {Markup processor}] +[item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] +[item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] +[item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] +[division_end] +[division_start File] +[item modules/zip/decode.man zipfile::decode {Access to zip archives}] +[item modules/zip/encode.man zipfile::encode {Generation of zip archives}] +[item modules/zip/mkzip.man zipfile::mkzip {Build a zip archive}] +[division_end] +[division_start {File formats}] +[item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] +[item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] +[item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] +[item modules/png/png.man png {PNG querying and manipulation of meta data}] +[item modules/tar/tar.man tar {Tar file creation, extraction & manipulation}] +[item modules/tiff/tiff.man tiff {TIFF reading, writing, and querying and manipulation of meta data}] +[division_end] +[division_start {Grammars and finite automata}] +[item modules/grammar_aycock/aycock.man grammar::aycock {Aycock-Horspool-Earley parser generator for Tcl}] +[item modules/grammar_fa/fa.man grammar::fa {Create and manipulate finite automatons}] +[item modules/grammar_fa/dacceptor.man grammar::fa::dacceptor {Create and use deterministic acceptors}] +[item modules/grammar_fa/dexec.man grammar::fa::dexec {Execute deterministic finite automatons}] +[item modules/grammar_fa/faop.man grammar::fa::op {Operations on finite automatons}] +[item modules/grammar_me/me_cpu.man grammar::me::cpu {Virtual machine implementation II for parsing token streams}] +[item modules/grammar_me/me_cpucore.man grammar::me::cpu::core {ME virtual machine state manipulation}] +[item modules/grammar_me/gasm.man grammar::me::cpu::gasm {ME assembler}] +[item modules/grammar_me/me_tcl.man grammar::me::tcl {Virtual machine implementation I for parsing token streams}] +[item modules/grammar_me/me_util.man grammar::me::util {AST utilities}] +[item modules/grammar_me/me_ast.man grammar::me_ast {Various representations of ASTs}] +[item modules/grammar_me/me_intro.man grammar::me_intro {Introduction to virtual machines for parsing token streams}] +[item modules/grammar_me/me_vm.man grammar::me_vm {Virtual machine for parsing token streams}] +[item modules/grammar_peg/peg.man grammar::peg {Create and manipulate parsing expression grammars}] +[item modules/grammar_peg/peg_interp.man grammar::peg::interp {Interpreter for parsing expression grammars}] +[division_end] +[division_start {Hashes, checksums, and encryption}] +[item modules/aes/aes.man aes {Implementation of the AES block cipher}] +[item modules/blowfish/blowfish.man blowfish {Implementation of the Blowfish block cipher}] +[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}] +[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}] +[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}] +[item modules/des/des.man des {Implementation of the DES and triple-DES ciphers}] +[item modules/md4/md4.man md4 {MD4 Message-Digest Algorithm}] +[item modules/md5/md5.man md5 {MD5 Message-Digest Algorithm}] +[item modules/md5crypt/md5crypt.man md5crypt {MD5-based password encryption}] +[item modules/otp/otp.man otp {One-Time Passwords}] +[item modules/pki/pki.man pki {Implementation of the public key cipher}] +[item modules/rc4/rc4.man rc4 {Implementation of the RC4 stream cipher}] +[item modules/ripemd/ripemd128.man ripemd128 {RIPEMD-128 Message-Digest Algorithm}] +[item modules/ripemd/ripemd160.man ripemd160 {RIPEMD-160 Message-Digest Algorithm}] +[item modules/sha1/sha1.man sha1 {SHA1 Message-Digest Algorithm}] +[item modules/sha1/sha256.man sha256 {SHA256 Message-Digest Algorithm}] +[item modules/soundex/soundex.man soundex Soundex] +[item modules/crc/sum.man sum {Calculate a sum(1) compatible checksum}] +[item modules/des/tcldes.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldesjr.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/uuid/uuid.man uuid {UUID generation and comparison}] +[division_end] +[division_start Mathematics] +[item modules/math/math.man math {Tcl Math Library}] +[item modules/math/bigfloat.man math::bigfloat {Arbitrary precision floating-point numbers}] +[item modules/math/bignum.man math::bignum {Arbitrary precision integer numbers}] +[item modules/math/calculus.man math::calculus {Integration and ordinary differential equations}] +[item modules/math/romberg.man math::calculus::romberg {Romberg integration}] +[item modules/math/combinatorics.man math::combinatorics {Combinatorial functions in the Tcl Math Library}] +[item modules/math/qcomplex.man math::complexnumbers {Straightforward complex number package}] +[item modules/math/constants.man math::constants {Mathematical and numerical constants}] +[item modules/math/decimal.man math::decimal {General decimal arithmetic}] +[item modules/math/exact.man math::exact {Exact Real Arithmetic}] +[item modules/math/fourier.man math::fourier {Discrete and fast fourier transforms}] +[item modules/math/fuzzy.man math::fuzzy {Fuzzy comparison of floating-point numbers}] +[item modules/math/math_geometry.man math::geometry {Geometrical computations}] +[item modules/math/interpolate.man math::interpolate {Interpolation routines}] +[item modules/math/linalg.man math::linearalgebra {Linear Algebra}] +[item modules/math/numtheory.man math::numtheory {Number Theory}] +[item modules/math/optimize.man math::optimize {Optimisation routines}] +[item modules/math/polynomials.man math::polynomials {Polynomial functions}] +[item modules/math/rational_funcs.man math::rationalfunctions {Polynomial functions}] +[item modules/math/roman.man math::roman {Tools for creating and manipulating roman numerals}] +[item modules/math/special.man math::special {Special mathematical functions}] +[item modules/math/statistics.man math::statistics {Basic statistical functions and procedures}] +[item modules/simulation/annealing.man simulation::annealing {Simulated annealing}] +[item modules/simulation/montecarlo.man simulation::montecarlo {Monte Carlo simulations}] +[item modules/simulation/simulation_random.man simulation::random {Pseudo-random number generators}] +[division_end] +[division_start Networking] +[item modules/asn/asn.man asn {ASN.1 BER encoder/decoder}] +[item modules/http/autoproxy.man autoproxy {Automatic HTTP proxy usage and authentication}] +[item modules/bee/bee.man bee {BitTorrent Serialization Format Encoder/Decoder}] +[item modules/dns/tcllib_dns.man dns {Tcl Domain Name Service Client}] +[item modules/ftp/ftp.man ftp {Client-side tcl implementation of the ftp protocol}] +[item modules/ftp/ftp_geturl.man ftp::geturl {Uri handler for ftp urls}] +[item modules/ftpd/ftpd.man ftpd {Tcl FTP server implementation}] +[item modules/ident/ident.man ident {Ident protocol client}] +[item modules/irc/irc.man irc {Create IRC connection and interface.}] +[item modules/ldap/ldap.man ldap {LDAP client}] +[item modules/ldap/ldapx.man ldapx {LDAP extended object interface}] +[item modules/nns/nns_client.man nameserv {Name service facility, Client}] +[item modules/nns/nns_auto.man nameserv::auto {Name service facility, Client Extension}] +[item modules/nns/nns_common.man nameserv::common {Name service facility, shared definitions}] +[item modules/nns/nns_protocol.man nameserv::protocol {Name service facility, client/server protocol}] +[item modules/nns/nns_server.man nameserv::server {Name service facility, Server}] +[item modules/nmea/nmea.man nmea {Process NMEA data}] +[item apps/nns.man nns {Name service facility, Commandline Client Application}] +[item modules/nns/nns_intro.man nns_intro {Name service facility, introduction}] +[item apps/nnsd.man nnsd {Name service facility, Commandline Server Application}] +[item apps/nnslog.man nnslog {Name service facility, Commandline Logging Client Application}] +[item modules/nntp/nntp.man nntp {Tcl client for the NNTP protocol}] +[item modules/ntp/ntp_time.man ntp_time {Tcl Time Service Client}] +[item modules/oauth/oauth.man oauth {oauth API base signature}] +[item modules/irc/picoirc.man picoirc {Small and simple embeddable IRC client.}] +[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}] +[item modules/pop3d/pop3d.man pop3d {Tcl POP3 server implementation}] +[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}] +[item modules/pop3d/pop3d_udb.man pop3d::udb {Simple user database for pop3d}] +[item modules/amazon-s3/S3.man S3 {Amazon S3 Web Service Interface}] +[item modules/sasl/sasl.man SASL {Implementation of SASL mechanisms for Tcl}] +[item modules/sasl/ntlm.man SASL::NTLM {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/sasl/scram.man SASL::SCRAM {Implementation of SASL SCRAM mechanism for Tcl}] +[item modules/sasl/gtoken.man SASL::XGoogleToken {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/mime/smtp.man smtp {Client-side tcl implementation of the smtp protocol}] +[item modules/smtpd/smtpd.man smtpd {Tcl SMTP server implementation}] +[item modules/dns/tcllib_ip.man tcllib_ip {IPv4 and IPv6 address manipulation}] +[item modules/uri/uri.man uri {URI utilities}] +[item modules/uri/urn-scheme.man uri_urn {URI utilities, URN scheme}] +[item modules/websocket/websocket.man websocket {Tcl implementation of the websocket protocol}] +[division_end] +[division_start {Page Parser Generator}] +[item apps/page.man page {Parser Generator}] +[item modules/page/page_intro.man page_intro {page introduction}] +[item modules/page/page_pluginmgr.man page_pluginmgr {page plugin manager}] +[item modules/page/page_util_flow.man page_util_flow {page dataflow/treewalker utility}] +[item modules/page/page_util_norm_lemon.man page_util_norm_lemon {page AST normalization, LEMON}] +[item modules/page/page_util_norm_peg.man page_util_norm_peg {page AST normalization, PEG}] +[item modules/page/page_util_peg.man page_util_peg {page PEG transformation utilities}] +[item modules/page/page_util_quote.man page_util_quote {page character quoting utilities}] +[division_end] +[division_start {Parsing and Grammars}] +[item apps/pt.man pt {Parser Tools Application}] +[item modules/pt/pt_astree.man pt::ast {Abstract Syntax Tree Serialization}] +[item modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl {C/PARAM, Canned configuration, Critcl}] +[item modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea {C/PARAM, Canned configuration, TEA}] +[item modules/pt/pt_json_language.man pt::json_language {The JSON Grammar Exchange Format}] +[item modules/pt/pt_param.man pt::param {PackRat Machine Specification}] +[item modules/pt/pt_pexpression.man pt::pe {Parsing Expression Serialization}] +[item modules/pt/pt_pexpr_op.man pt::pe::op {Parsing Expression Utilities}] +[item modules/pt/pt_pegrammar.man pt::peg {Parsing Expression Grammar Serialization}] +[item modules/pt/pt_peg_container.man pt::peg::container {PEG Storage}] +[item modules/pt/pt_peg_container_peg.man pt::peg::container::peg {PEG Storage. Canned PEG grammar specification}] +[item modules/pt/pt_peg_export.man pt::peg::export {PEG Export}] +[item modules/pt/pt_peg_export_container.man pt::peg::export::container {PEG Export Plugin. Write CONTAINER format}] +[item modules/pt/pt_peg_export_json.man pt::peg::export::json {PEG Export Plugin. Write JSON format}] +[item modules/pt/pt_peg_export_peg.man pt::peg::export::peg {PEG Export Plugin. Write PEG format}] +[item modules/pt/pt_peg_from_container.man pt::peg::from::container {PEG Conversion. From CONTAINER format}] +[item modules/pt/pt_peg_from_json.man pt::peg::from::json {PEG Conversion. Read JSON format}] +[item modules/pt/pt_peg_from_peg.man pt::peg::from::peg {PEG Conversion. Read PEG format}] +[item modules/pt/pt_peg_import.man pt::peg::import {PEG Import}] +[item modules/pt/pt_peg_import_container.man pt::peg::import::container {PEG Import Plugin. From CONTAINER format}] +[item modules/pt/pt_peg_import_json.man pt::peg::import::json {PEG Import Plugin. Read JSON format}] +[item modules/pt/pt_peg_import_peg.man pt::peg::import::peg {PEG Import Plugin. Read PEG format}] +[item modules/pt/pt_peg_interp.man pt::peg::interp {Interpreter for parsing expression grammars}] +[item modules/pt/pt_peg_to_container.man pt::peg::to::container {PEG Conversion. Write CONTAINER format}] +[item modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam {PEG Conversion. Write CPARAM format}] +[item modules/pt/pt_peg_to_json.man pt::peg::to::json {PEG Conversion. Write JSON format}] +[item modules/pt/pt_peg_to_param.man pt::peg::to::param {PEG Conversion. Write PARAM format}] +[item modules/pt/pt_peg_to_peg.man pt::peg::to::peg {PEG Conversion. Write PEG format}] +[item modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam {PEG Conversion. Write TCLPARAM format}] +[item modules/pt/pt_peg_language.man pt::peg_language {PEG Language Tutorial}] +[item modules/pt/pt_peg_introduction.man pt::pegrammar {Introduction to Parsing Expression Grammars}] +[item modules/pt/pt_pgen.man pt::pgen {Parser Generator}] +[item modules/pt/pt_rdengine.man pt::rde {Parsing Runtime Support, PARAM based}] +[item modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit {Tcl/PARAM, Canned configuration, Snit}] +[item modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo {Tcl/PARAM, Canned configuration, Tcloo}] +[item modules/pt/pt_util.man pt::util {General utilities}] +[item modules/pt/pt_to_api.man pt_export_api {Parser Tools Export API}] +[item modules/pt/pt_from_api.man pt_import_api {Parser Tools Import API}] +[item modules/pt/pt_introduction.man pt_introduction {Introduction to Parser Tools}] +[item modules/pt/pt_parse_peg.man pt_parse_peg {Parser Tools PEG Parser}] +[item modules/pt/pt_parser_api.man pt_parser_api {Parser API}] +[item modules/pt/pt_peg_op.man pt_peg_op {Parser Tools PE Grammar Utility Operations}] +[division_end] +[division_start {Procedures, arguments, parameters, options}] +[item modules/tepam/tepam_introduction.man tepam {An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager}] +[item modules/tepam/tepam_procedure.man tepam::procedure {TEPAM procedure, reference manual}] +[division_end] +[division_start {Programming tools}] +[item modules/cmdline/cmdline.man cmdline {Procedures to process command lines and options.}] +[item modules/comm/comm.man comm {A remote communication facility for Tcl (8.3 and later)}] +[item modules/comm/comm_wire.man comm_wire {The comm wire protocol}] +[item modules/control/control.man control {Procedures for control flow structures.}] +[item modules/interp/deleg_method.man deleg_method {Creation of comm delegates (snit methods)}] +[item modules/interp/deleg_proc.man deleg_proc {Creation of comm delegates (procedures)}] +[item modules/fileutil/fileutil.man fileutil {Procedures implementing some file utilities}] +[item modules/fumagic/cfront.man fileutil::magic::cfront {Generator core for compiler of magic(5) files}] +[item modules/fumagic/cgen.man fileutil::magic::cgen {Generator core for compiler of magic(5) files}] +[item modules/fumagic/filetypes.man fileutil::magic::filetype {Procedures implementing file-type recognition}] +[item modules/fumagic/mimetypes.man fileutil::magic::mimetype {Procedures implementing mime-type recognition}] +[item modules/fumagic/rtcore.man fileutil::magic::rt {Runtime core for file type recognition engines written in pure Tcl}] +[item modules/fileutil/multi.man fileutil::multi {Multi-file operation, scatter/gather, standard object}] +[item modules/fileutil/multiop.man fileutil::multi::op {Multi-file operation, scatter/gather}] +[item modules/fileutil/traverse.man fileutil_traverse {Iterative directory traversal}] +[item modules/hook/hook.man hook Hooks] +[item modules/interp/tcllib_interp.man interp {Interp creation and aliasing}] +[item modules/log/log.man log {Procedures to log messages of libraries and applications.}] +[item modules/log/logger.man logger {System to control logging of events.}] +[item modules/log/loggerAppender.man logger::appender {Collection of predefined appenders for logger}] +[item modules/log/loggerUtils.man logger::utils {Utilities for logger}] +[item modules/multiplexer/multiplexer.man multiplexer {One-to-many communication with sockets.}] +[item modules/pluginmgr/pluginmgr.man pluginmgr {Manage a plugin}] +[item modules/profiler/profiler.man profiler {Tcl source code profiler}] +[item modules/snit/snit.man snit {Snit's Not Incr Tcl}] +[item modules/snit/snitfaq.man snitfaq {Snit Frequently Asked Questions}] +[item modules/stooop/stooop.man stooop {Object oriented extension.}] +[item modules/stooop/switched.man switched {switch/option management.}] +[item modules/tie/tie.man tie {Array persistence}] +[item modules/tie/tie_std.man tie {Array persistence, standard data sources}] +[item modules/uev/uevent.man uevent {User events}] +[item modules/wip/wip.man wip {Word Interpreter}] +[division_end] +[division_start System] +[item modules/cron/cron.man cron {Tool for automating the period callback of commands}] +[item modules/nettool/nettool.man nettool {Tools for networked applications}] +[item modules/processman/processman.man processman {Tool for automating the period callback of commands}] +[division_end] +[division_start {Terminal control}] +[item modules/term/term.man term {General terminal control}] +[item modules/term/ansi_code.man term::ansi::code {Helper for control sequences}] +[item modules/term/ansi_cattr.man term::ansi::code::attr {ANSI attribute sequences}] +[item modules/term/ansi_cctrl.man term::ansi::code::ctrl {ANSI control sequences}] +[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}] +[item modules/term/ansi_ctrlu.man term::ansi::ctrl::unix {Control operations and queries}] +[item modules/term/ansi_send.man term::ansi::send {Output of ANSI control sequences to terminals}] +[item modules/term/imenu.man term::interact::menu {Terminal widget, menu}] +[item modules/term/ipager.man term::interact::pager {Terminal widget, paging}] +[item modules/term/receive.man term::receive {General input from terminals}] +[item modules/term/term_bind.man term::receive::bind {Keyboard dispatch from terminals}] +[item modules/term/term_send.man term::send {General output to terminals}] +[division_end] +[division_start {Text formatter plugin}] +[item modules/doctools2idx/export_docidx.man doctools::idx::export::docidx {docidx export plugin}] +[item modules/doctools2idx/idx_export_html.man doctools::idx::export::html {HTML export plugin}] +[item modules/doctools2idx/idx_export_json.man doctools::idx::export::json {JSON export plugin}] +[item modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff {nroff export plugin}] +[item modules/doctools2idx/idx_export_text.man doctools::idx::export::text {plain text export plugin}] +[item modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki {wiki export plugin}] +[item modules/doctools2idx/import_docidx.man doctools::idx::import::docidx {docidx import plugin}] +[item modules/doctools2idx/idx_import_json.man doctools::idx::import::json {JSON import plugin}] +[item modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc {doctoc export plugin}] +[item modules/doctools2toc/toc_export_html.man doctools::toc::export::html {HTML export plugin}] +[item modules/doctools2toc/toc_export_json.man doctools::toc::export::json {JSON export plugin}] +[item modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff {nroff export plugin}] +[item modules/doctools2toc/toc_export_text.man doctools::toc::export::text {plain text export plugin}] +[item modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki {wiki export plugin}] +[item modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc {doctoc import plugin}] +[item modules/doctools2toc/toc_import_json.man doctools::toc::import::json {JSON import plugin}] +[division_end] +[division_start {Text processing}] +[item modules/base64/ascii85.man ascii85 {ascii85-encode/decode binary data}] +[item modules/base32/base32.man base32 {base32 standard encoding}] +[item modules/base32/base32core.man base32::core {Expanding basic base32 maps}] +[item modules/base32/base32hex.man base32::hex {base32 extended hex encoding}] +[item modules/base64/base64.man base64 {base64-encode/decode binary data}] +[item modules/bibtex/bibtex.man bibtex {Parse bibtex files}] +[item modules/clock/iso8601.man clock_iso8601 {Parsing ISO 8601 dates/times}] +[item modules/clock/rfc2822.man clock_rfc2822 {Parsing ISO 8601 dates/times}] +[item modules/csv/csv.man csv {Procedures to handle CSV data.}] +[item modules/htmlparse/htmlparse.man htmlparse {Procedures to parse HTML strings}] +[item modules/inifile/ini.man inifile {Parsing of Windows INI files}] +[item modules/mime/mime.man mime {Manipulation of MIME body parts}] +[item modules/rcs/rcs.man rcs {RCS low level utilities}] +[item modules/string/token.man string::token {Regex based iterative lexing}] +[item modules/string/token_shell.man string::token::shell {Parsing of shell command line}] +[item modules/textutil/textutil.man textutil {Procedures to manipulate texts and strings.}] +[item modules/textutil/adjust.man textutil::adjust {Procedures to adjust, indent, and undent paragraphs}] +[item modules/textutil/repeat.man textutil::repeat {Procedures to repeat strings.}] +[item modules/textutil/textutil_split.man textutil::split {Procedures to split texts}] +[item modules/textutil/textutil_string.man textutil::string {Procedures to manipulate texts and strings.}] +[item modules/textutil/tabify.man textutil::tabify {Procedures to (un)tabify strings}] +[item modules/textutil/trim.man textutil::trim {Procedures to trim strings}] +[item modules/base64/uuencode.man uuencode {UU-encode/decode binary data}] +[item modules/amazon-s3/xsxp.man xsxp {eXtremely Simple Xml Parser}] +[item modules/base64/yencode.man yencode {Y-encode/decode binary data}] +[division_end] +[division_start {Transfer module}] +[item modules/transfer/connect.man transfer::connect {Connection setup}] +[item modules/transfer/copyops.man transfer::copy {Data transfer foundation}] +[item modules/transfer/tqueue.man transfer::copy::queue {Queued transfers}] +[item modules/transfer/ddest.man transfer::data::destination {Data destination}] +[item modules/transfer/dsource.man transfer::data::source {Data source}] +[item modules/transfer/receiver.man transfer::receiver {Data source}] +[item modules/transfer/transmitter.man transfer::transmitter {Data source}] +[division_end] +[division_start Unfiled] +[item modules/cache/async.man cache::async {Asynchronous in-memory cache}] +[item modules/generator/generator.man generator {Procedures for creating and using generators.}] +[item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] +[item modules/imap4/imap4.man imap4 {imap client-side tcl implementation of imap protocol}] +[item modules/map/map_geocode_nominatim.man map::geocode::nominatim {Resolving geographical names with a Nominatim service}] +[item modules/map/map_slippy.man map::slippy {Common code for slippy based map packages}] +[item modules/map/map_slippy_cache.man map::slippy::cache {Management of a tile cache in the local filesystem}] +[item modules/map/map_slippy_fetcher.man map::slippy::fetcher {Accessing a server providing tiles for slippy-based maps}] +[item modules/mapproj/mapproj.man mapproj {Map projection routines}] +[item modules/math/symdiff.man math::calculus::symdiff {Symbolic differentiation for Tcl}] +[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}] +[item modules/rest/rest.man rest {define REST web APIs and call them inline or asychronously}] +[item modules/stringprep/stringprep.man stringprep {Implementation of stringprep}] +[item modules/stringprep/stringprep_data.man stringprep::data {stringprep data tables, generated, internal}] +[item modules/math/machineparameters.man tclrep/machineparameters {Compute double precision machine parameters.}] +[item modules/uev/uevent_onidle.man uevent::onidle {Request merging and deferal to idle time}] +[item modules/stringprep/unicode.man unicode {Implementation of Unicode normalization}] +[item modules/stringprep/unicode_data.man unicode::data {unicode data tables, generated, internal}] +[item modules/units/units.man units {unit conversion}] +[item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] +[division_end] +[division_start Utilites] +[item modules/dicttool/dicttool.man dicttool {Dictionary Tools}] +[division_end] +[division_start Utility] +[item modules/lambda/lambda.man lambda {Utility commands for anonymous procedures}] +[item modules/ooutil/ooutil.man oo::util {Utility commands for TclOO}] +[item modules/tool/meta.man oo::util {Utility commands for TclOO}] +[item modules/tool/tool.man tool {Dictionary Tools}] +[item modules/tool/tool_dict_ensemble.man tool::dict_ensemble {Dictionary Tools}] +[item modules/try/tcllib_throw.man try {throw - Throw an error exception with a message}] +[item modules/try/tcllib_try.man try {try - Trap and process errors and exceptions}] +[division_end] +[division_start {Validation, Type checking}] +[item modules/valtype/valtype_common.man valtype::common {Validation, common code}] +[item modules/valtype/cc_amex.man valtype::creditcard::amex {Validation for AMEX creditcard number}] +[item modules/valtype/cc_discover.man valtype::creditcard::discover {Validation for Discover creditcard number}] +[item modules/valtype/cc_mastercard.man valtype::creditcard::mastercard {Validation for Mastercard creditcard number}] +[item modules/valtype/cc_visa.man valtype::creditcard::visa {Validation for VISA creditcard number}] +[item modules/valtype/ean13.man valtype::gs1::ean13 {Validation for EAN13}] +[item modules/valtype/iban.man valtype::iban {Validation for IBAN}] +[item modules/valtype/imei.man valtype::imei {Validation for IMEI}] +[item modules/valtype/isbn.man valtype::isbn {Validation for ISBN}] +[item modules/valtype/luhn.man valtype::luhn {Validation for plain number with a LUHN checkdigit}] +[item modules/valtype/luhn5.man valtype::luhn5 {Validation for plain number with a LUHN5 checkdigit}] +[item modules/valtype/usnpi.man valtype::usnpi {Validation for USNPI}] +[item modules/valtype/verhoeff.man valtype::verhoeff {Validation for plain number with a VERHOEFF checkdigit}] +[division_end] +[division_end] +[division_start {By Type}] +[division_start Applications] +[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item apps/nns.man nns {Name service facility, Commandline Client Application}] +[item apps/nnsd.man nnsd {Name service facility, Commandline Server Application}] +[item apps/nnslog.man nnslog {Name service facility, Commandline Logging Client Application}] +[item apps/page.man page {Parser Generator}] +[item apps/pt.man pt {Parser Tools Application}] +[item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] +[division_end] +[division_start Modules] +[division_start aes] +[item modules/aes/aes.man aes {Implementation of the AES block cipher}] +[division_end] +[division_start amazon-s3] +[item modules/amazon-s3/S3.man S3 {Amazon S3 Web Service Interface}] +[item modules/amazon-s3/xsxp.man xsxp {eXtremely Simple Xml Parser}] +[division_end] +[division_start asn] +[item modules/asn/asn.man asn {ASN.1 BER encoder/decoder}] +[division_end] +[division_start base32] +[item modules/base32/base32.man base32 {base32 standard encoding}] +[item modules/base32/base32core.man base32::core {Expanding basic base32 maps}] +[item modules/base32/base32hex.man base32::hex {base32 extended hex encoding}] +[division_end] +[division_start base64] +[item modules/base64/ascii85.man ascii85 {ascii85-encode/decode binary data}] +[item modules/base64/base64.man base64 {base64-encode/decode binary data}] +[item modules/base64/uuencode.man uuencode {UU-encode/decode binary data}] +[item modules/base64/yencode.man yencode {Y-encode/decode binary data}] +[division_end] +[division_start bee] +[item modules/bee/bee.man bee {BitTorrent Serialization Format Encoder/Decoder}] +[division_end] +[division_start bench] +[item modules/bench/bench.man bench {bench - Processing benchmark suites}] +[item modules/bench/bench_read.man bench::in {bench::in - Reading benchmark results}] +[item modules/bench/bench_wcsv.man bench::out::csv {bench::out::csv - Formatting benchmark results as CSV}] +[item modules/bench/bench_wtext.man bench::out::text {bench::out::text - Formatting benchmark results as human readable text}] +[item modules/bench/bench_intro.man bench_intro {bench introduction}] +[item modules/bench/bench_lang_intro.man bench_lang_intro {bench language introduction}] +[item modules/bench/bench_lang_spec.man bench_lang_spec {bench language specification}] +[division_end] +[division_start bibtex] +[item modules/bibtex/bibtex.man bibtex {Parse bibtex files}] +[division_end] +[division_start blowfish] +[item modules/blowfish/blowfish.man blowfish {Implementation of the Blowfish block cipher}] +[division_end] +[division_start cache] +[item modules/cache/async.man cache::async {Asynchronous in-memory cache}] +[division_end] +[division_start clock] +[item modules/clock/iso8601.man clock_iso8601 {Parsing ISO 8601 dates/times}] +[item modules/clock/rfc2822.man clock_rfc2822 {Parsing ISO 8601 dates/times}] +[division_end] +[division_start cmdline] +[item modules/cmdline/cmdline.man cmdline {Procedures to process command lines and options.}] +[division_end] +[division_start comm] +[item modules/comm/comm.man comm {A remote communication facility for Tcl (8.3 and later)}] +[item modules/comm/comm_wire.man comm_wire {The comm wire protocol}] +[division_end] +[division_start control] +[item modules/control/control.man control {Procedures for control flow structures.}] +[division_end] +[division_start coroutine] +[item modules/coroutine/tcllib_coroutine.man coroutine {Coroutine based event and IO handling}] +[item modules/coroutine/coro_auto.man coroutine::auto {Automatic event and IO coroutine awareness}] +[division_end] +[division_start counter] +[item modules/counter/counter.man counter {Procedures for counters and histograms}] +[division_end] +[division_start crc] +[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}] +[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}] +[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}] +[item modules/crc/sum.man sum {Calculate a sum(1) compatible checksum}] +[division_end] +[division_start cron] +[item modules/cron/cron.man cron {Tool for automating the period callback of commands}] +[division_end] +[division_start csv] +[item modules/csv/csv.man csv {Procedures to handle CSV data.}] +[division_end] +[division_start debug] +[item modules/debug/debug.man debug {debug narrative - core}] +[item modules/debug/debug_caller.man debug::caller {debug narrative - caller}] +[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}] +[item modules/debug/debug_timestamp.man debug::timestamp {debug narrative - timestamping}] +[division_end] +[division_start des] +[item modules/des/des.man des {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldes.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldesjr.man tcldes {Implementation of the DES and triple-DES ciphers}] +[division_end] +[division_start dicttool] +[item modules/dicttool/dicttool.man dicttool {Dictionary Tools}] +[division_end] +[division_start dns] +[item modules/dns/tcllib_dns.man dns {Tcl Domain Name Service Client}] +[item modules/dns/tcllib_ip.man tcllib_ip {IPv4 and IPv6 address manipulation}] +[division_end] +[division_start docstrip] +[item modules/docstrip/docstrip.man docstrip {Docstrip style source code extraction}] +[item modules/docstrip/docstrip_util.man docstrip_util {Docstrip-related utilities}] +[division_end] +[division_start doctools] +[item modules/doctools/docidx_intro.man docidx_intro {docidx introduction}] +[item modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref {docidx language command reference}] +[item modules/doctools/docidx_lang_faq.man docidx_lang_faq {docidx language faq}] +[item modules/doctools/docidx_lang_intro.man docidx_lang_intro {docidx language introduction}] +[item modules/doctools/docidx_lang_syntax.man docidx_lang_syntax {docidx language syntax}] +[item modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref {docidx plugin API reference}] +[item modules/doctools/doctoc_intro.man doctoc_intro {doctoc introduction}] +[item modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref {doctoc language command reference}] +[item modules/doctools/doctoc_lang_faq.man doctoc_lang_faq {doctoc language faq}] +[item modules/doctools/doctoc_lang_intro.man doctoc_lang_intro {doctoc language introduction}] +[item modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax {doctoc language syntax}] +[item modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref {doctoc plugin API reference}] +[item modules/doctools/doctools.man doctools {doctools - Processing documents}] +[item modules/doctools/changelog.man doctools::changelog {Processing text in Emacs ChangeLog format}] +[item modules/doctools/cvs.man doctools::cvs {Processing text in 'cvs log' format}] +[item modules/doctools/docidx.man doctools::idx {docidx - Processing indices}] +[item modules/doctools/doctoc.man doctools::toc {doctoc - Processing tables of contents}] +[item modules/doctools/doctools_intro.man doctools_intro {doctools introduction}] +[item modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref {doctools language command reference}] +[item modules/doctools/doctools_lang_faq.man doctools_lang_faq {doctools language faq}] +[item modules/doctools/doctools_lang_intro.man doctools_lang_intro {doctools language introduction}] +[item modules/doctools/doctools_lang_syntax.man doctools_lang_syntax {doctools language syntax}] +[item modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref {doctools plugin API reference}] +[item modules/doctools/mpexpand.man mpexpand {Markup processor}] +[division_end] +[division_start doctools2base] +[item modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults {Default CSS style for HTML export plugins}] +[item modules/doctools2base/tcllib_msgcat.man doctools::msgcat {Message catalog management for the various document parsers}] +[item modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros {Default CSS style for NROFF export plugins}] +[item modules/doctools2base/tcl_parse.man doctools::tcl::parse {Processing text in 'subst -novariables' format}] +[division_end] +[division_start doctools2idx] +[item modules/doctools2idx/idx_introduction.man doctools2idx_introduction {DocTools - Keyword indices}] +[item modules/doctools2idx/idx_container.man doctools::idx {Holding keyword indices}] +[item modules/doctools2idx/idx_export.man doctools::idx::export {Exporting keyword indices}] +[item modules/doctools2idx/export_docidx.man doctools::idx::export::docidx {docidx export plugin}] +[item modules/doctools2idx/idx_export_html.man doctools::idx::export::html {HTML export plugin}] +[item modules/doctools2idx/idx_export_json.man doctools::idx::export::json {JSON export plugin}] +[item modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff {nroff export plugin}] +[item modules/doctools2idx/idx_export_text.man doctools::idx::export::text {plain text export plugin}] +[item modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki {wiki export plugin}] +[item modules/doctools2idx/idx_import.man doctools::idx::import {Importing keyword indices}] +[item modules/doctools2idx/import_docidx.man doctools::idx::import::docidx {docidx import plugin}] +[item modules/doctools2idx/idx_import_json.man doctools::idx::import::json {JSON import plugin}] +[item modules/doctools2idx/idx_parse.man doctools::idx::parse {Parsing text in docidx format}] +[item modules/doctools2idx/idx_structure.man doctools::idx::structure {Docidx serialization utilities}] +[item modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c {Message catalog for the docidx parser (C)}] +[item modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de {Message catalog for the docidx parser (DE)}] +[item modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en {Message catalog for the docidx parser (EN)}] +[item modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr {Message catalog for the docidx parser (FR)}] +[division_end] +[division_start doctools2toc] +[item modules/doctools2toc/toc_introduction.man doctools2toc_introduction {DocTools - Tables of Contents}] +[item modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c {Message catalog for the doctoc parser (C)}] +[item modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de {Message catalog for the doctoc parser (DE)}] +[item modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en {Message catalog for the doctoc parser (EN)}] +[item modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr {Message catalog for the doctoc parser (FR)}] +[item modules/doctools2toc/toc_container.man doctools::toc {Holding tables of contents}] +[item modules/doctools2toc/toc_export.man doctools::toc::export {Exporting tables of contents}] +[item modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc {doctoc export plugin}] +[item modules/doctools2toc/toc_export_html.man doctools::toc::export::html {HTML export plugin}] +[item modules/doctools2toc/toc_export_json.man doctools::toc::export::json {JSON export plugin}] +[item modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff {nroff export plugin}] +[item modules/doctools2toc/toc_export_text.man doctools::toc::export::text {plain text export plugin}] +[item modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki {wiki export plugin}] +[item modules/doctools2toc/toc_import.man doctools::toc::import {Importing keyword indices}] +[item modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc {doctoc import plugin}] +[item modules/doctools2toc/toc_import_json.man doctools::toc::import::json {JSON import plugin}] +[item modules/doctools2toc/toc_parse.man doctools::toc::parse {Parsing text in doctoc format}] +[item modules/doctools2toc/toc_structure.man doctools::toc::structure {Doctoc serialization utilities}] +[division_end] +[division_start dtplite] +[item modules/dtplite/pkg_dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[division_end] +[division_start exif] +[item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] +[division_end] +[division_start fileutil] +[item modules/fileutil/fileutil.man fileutil {Procedures implementing some file utilities}] +[item modules/fileutil/multi.man fileutil::multi {Multi-file operation, scatter/gather, standard object}] +[item modules/fileutil/multiop.man fileutil::multi::op {Multi-file operation, scatter/gather}] +[item modules/fileutil/traverse.man fileutil_traverse {Iterative directory traversal}] +[division_end] +[division_start ftp] +[item modules/ftp/ftp.man ftp {Client-side tcl implementation of the ftp protocol}] +[item modules/ftp/ftp_geturl.man ftp::geturl {Uri handler for ftp urls}] +[division_end] +[division_start ftpd] +[item modules/ftpd/ftpd.man ftpd {Tcl FTP server implementation}] +[division_end] +[division_start fumagic] +[item modules/fumagic/cfront.man fileutil::magic::cfront {Generator core for compiler of magic(5) files}] +[item modules/fumagic/cgen.man fileutil::magic::cgen {Generator core for compiler of magic(5) files}] +[item modules/fumagic/filetypes.man fileutil::magic::filetype {Procedures implementing file-type recognition}] +[item modules/fumagic/mimetypes.man fileutil::magic::mimetype {Procedures implementing mime-type recognition}] +[item modules/fumagic/rtcore.man fileutil::magic::rt {Runtime core for file type recognition engines written in pure Tcl}] +[division_end] +[division_start generator] +[item modules/generator/generator.man generator {Procedures for creating and using generators.}] +[division_end] +[division_start gpx] +[item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] +[division_end] +[division_start grammar_aycock] +[item modules/grammar_aycock/aycock.man grammar::aycock {Aycock-Horspool-Earley parser generator for Tcl}] +[division_end] +[division_start grammar_fa] +[item modules/grammar_fa/fa.man grammar::fa {Create and manipulate finite automatons}] +[item modules/grammar_fa/dacceptor.man grammar::fa::dacceptor {Create and use deterministic acceptors}] +[item modules/grammar_fa/dexec.man grammar::fa::dexec {Execute deterministic finite automatons}] +[item modules/grammar_fa/faop.man grammar::fa::op {Operations on finite automatons}] +[division_end] +[division_start grammar_me] +[item modules/grammar_me/me_cpu.man grammar::me::cpu {Virtual machine implementation II for parsing token streams}] +[item modules/grammar_me/me_cpucore.man grammar::me::cpu::core {ME virtual machine state manipulation}] +[item modules/grammar_me/gasm.man grammar::me::cpu::gasm {ME assembler}] +[item modules/grammar_me/me_tcl.man grammar::me::tcl {Virtual machine implementation I for parsing token streams}] +[item modules/grammar_me/me_util.man grammar::me::util {AST utilities}] +[item modules/grammar_me/me_ast.man grammar::me_ast {Various representations of ASTs}] +[item modules/grammar_me/me_intro.man grammar::me_intro {Introduction to virtual machines for parsing token streams}] +[item modules/grammar_me/me_vm.man grammar::me_vm {Virtual machine for parsing token streams}] +[division_end] +[division_start grammar_peg] +[item modules/grammar_peg/peg.man grammar::peg {Create and manipulate parsing expression grammars}] +[item modules/grammar_peg/peg_interp.man grammar::peg::interp {Interpreter for parsing expression grammars}] +[division_end] +[division_start hook] +[item modules/hook/hook.man hook Hooks] +[division_end] +[division_start html] +[item modules/html/html.man html {Procedures to generate HTML structures}] +[division_end] +[division_start htmlparse] +[item modules/htmlparse/htmlparse.man htmlparse {Procedures to parse HTML strings}] +[division_end] +[division_start http] +[item modules/http/autoproxy.man autoproxy {Automatic HTTP proxy usage and authentication}] +[division_end] +[division_start ident] +[item modules/ident/ident.man ident {Ident protocol client}] +[division_end] +[division_start imap4] +[item modules/imap4/imap4.man imap4 {imap client-side tcl implementation of imap protocol}] +[division_end] +[division_start inifile] +[item modules/inifile/ini.man inifile {Parsing of Windows INI files}] +[division_end] +[division_start interp] +[item modules/interp/deleg_method.man deleg_method {Creation of comm delegates (snit methods)}] +[item modules/interp/deleg_proc.man deleg_proc {Creation of comm delegates (procedures)}] +[item modules/interp/tcllib_interp.man interp {Interp creation and aliasing}] +[division_end] +[division_start irc] +[item modules/irc/irc.man irc {Create IRC connection and interface.}] +[item modules/irc/picoirc.man picoirc {Small and simple embeddable IRC client.}] +[division_end] +[division_start javascript] +[item modules/javascript/javascript.man javascript {Procedures to generate HTML and Java Script structures.}] +[division_end] +[division_start jpeg] +[item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] +[division_end] +[division_start json] +[item modules/json/json.man json {JSON parser}] +[item modules/json/json_write.man json::write {JSON generation}] +[division_end] +[division_start lambda] +[item modules/lambda/lambda.man lambda {Utility commands for anonymous procedures}] +[division_end] +[division_start ldap] +[item modules/ldap/ldap.man ldap {LDAP client}] +[item modules/ldap/ldapx.man ldapx {LDAP extended object interface}] +[division_end] +[division_start log] +[item modules/log/log.man log {Procedures to log messages of libraries and applications.}] +[item modules/log/logger.man logger {System to control logging of events.}] +[item modules/log/loggerAppender.man logger::appender {Collection of predefined appenders for logger}] +[item modules/log/loggerUtils.man logger::utils {Utilities for logger}] +[division_end] +[division_start map] +[item modules/map/map_geocode_nominatim.man map::geocode::nominatim {Resolving geographical names with a Nominatim service}] +[item modules/map/map_slippy.man map::slippy {Common code for slippy based map packages}] +[item modules/map/map_slippy_cache.man map::slippy::cache {Management of a tile cache in the local filesystem}] +[item modules/map/map_slippy_fetcher.man map::slippy::fetcher {Accessing a server providing tiles for slippy-based maps}] +[division_end] +[division_start mapproj] +[item modules/mapproj/mapproj.man mapproj {Map projection routines}] +[division_end] +[division_start math] +[item modules/math/math.man math {Tcl Math Library}] +[item modules/math/bigfloat.man math::bigfloat {Arbitrary precision floating-point numbers}] +[item modules/math/bignum.man math::bignum {Arbitrary precision integer numbers}] +[item modules/math/calculus.man math::calculus {Integration and ordinary differential equations}] +[item modules/math/romberg.man math::calculus::romberg {Romberg integration}] +[item modules/math/symdiff.man math::calculus::symdiff {Symbolic differentiation for Tcl}] +[item modules/math/combinatorics.man math::combinatorics {Combinatorial functions in the Tcl Math Library}] +[item modules/math/qcomplex.man math::complexnumbers {Straightforward complex number package}] +[item modules/math/constants.man math::constants {Mathematical and numerical constants}] +[item modules/math/decimal.man math::decimal {General decimal arithmetic}] +[item modules/math/exact.man math::exact {Exact Real Arithmetic}] +[item modules/math/fourier.man math::fourier {Discrete and fast fourier transforms}] +[item modules/math/fuzzy.man math::fuzzy {Fuzzy comparison of floating-point numbers}] +[item modules/math/math_geometry.man math::geometry {Geometrical computations}] +[item modules/math/interpolate.man math::interpolate {Interpolation routines}] +[item modules/math/linalg.man math::linearalgebra {Linear Algebra}] +[item modules/math/numtheory.man math::numtheory {Number Theory}] +[item modules/math/optimize.man math::optimize {Optimisation routines}] +[item modules/math/polynomials.man math::polynomials {Polynomial functions}] +[item modules/math/rational_funcs.man math::rationalfunctions {Polynomial functions}] +[item modules/math/roman.man math::roman {Tools for creating and manipulating roman numerals}] +[item modules/math/special.man math::special {Special mathematical functions}] +[item modules/math/statistics.man math::statistics {Basic statistical functions and procedures}] +[item modules/math/machineparameters.man tclrep/machineparameters {Compute double precision machine parameters.}] +[division_end] +[division_start md4] +[item modules/md4/md4.man md4 {MD4 Message-Digest Algorithm}] +[division_end] +[division_start md5] +[item modules/md5/md5.man md5 {MD5 Message-Digest Algorithm}] +[division_end] +[division_start md5crypt] +[item modules/md5crypt/md5crypt.man md5crypt {MD5-based password encryption}] +[division_end] +[division_start mime] +[item modules/mime/mime.man mime {Manipulation of MIME body parts}] +[item modules/mime/smtp.man smtp {Client-side tcl implementation of the smtp protocol}] +[division_end] +[division_start multiplexer] +[item modules/multiplexer/multiplexer.man multiplexer {One-to-many communication with sockets.}] +[division_end] +[division_start namespacex] +[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}] +[division_end] +[division_start ncgi] +[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}] +[division_end] +[division_start nettool] +[item modules/nettool/nettool.man nettool {Tools for networked applications}] +[division_end] +[division_start nmea] +[item modules/nmea/nmea.man nmea {Process NMEA data}] +[division_end] +[division_start nns] +[item modules/nns/nns_client.man nameserv {Name service facility, Client}] +[item modules/nns/nns_auto.man nameserv::auto {Name service facility, Client Extension}] +[item modules/nns/nns_common.man nameserv::common {Name service facility, shared definitions}] +[item modules/nns/nns_protocol.man nameserv::protocol {Name service facility, client/server protocol}] +[item modules/nns/nns_server.man nameserv::server {Name service facility, Server}] +[item modules/nns/nns_intro.man nns_intro {Name service facility, introduction}] +[division_end] +[division_start nntp] +[item modules/nntp/nntp.man nntp {Tcl client for the NNTP protocol}] +[division_end] +[division_start ntp] +[item modules/ntp/ntp_time.man ntp_time {Tcl Time Service Client}] +[division_end] +[division_start oauth] +[item modules/oauth/oauth.man oauth {oauth API base signature}] +[division_end] +[division_start ooutil] +[item modules/ooutil/ooutil.man oo::util {Utility commands for TclOO}] +[division_end] +[division_start otp] +[item modules/otp/otp.man otp {One-Time Passwords}] +[division_end] +[division_start page] +[item modules/page/page_intro.man page_intro {page introduction}] +[item modules/page/page_pluginmgr.man page_pluginmgr {page plugin manager}] +[item modules/page/page_util_flow.man page_util_flow {page dataflow/treewalker utility}] +[item modules/page/page_util_norm_lemon.man page_util_norm_lemon {page AST normalization, LEMON}] +[item modules/page/page_util_norm_peg.man page_util_norm_peg {page AST normalization, PEG}] +[item modules/page/page_util_peg.man page_util_peg {page PEG transformation utilities}] +[item modules/page/page_util_quote.man page_util_quote {page character quoting utilities}] +[division_end] +[division_start pki] +[item modules/pki/pki.man pki {Implementation of the public key cipher}] +[division_end] +[division_start pluginmgr] +[item modules/pluginmgr/pluginmgr.man pluginmgr {Manage a plugin}] +[division_end] +[division_start png] +[item modules/png/png.man png {PNG querying and manipulation of meta data}] +[division_end] +[division_start pop3] +[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}] +[division_end] +[division_start pop3d] +[item modules/pop3d/pop3d.man pop3d {Tcl POP3 server implementation}] +[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}] +[item modules/pop3d/pop3d_udb.man pop3d::udb {Simple user database for pop3d}] +[division_end] +[division_start processman] +[item modules/processman/processman.man processman {Tool for automating the period callback of commands}] +[division_end] +[division_start profiler] +[item modules/profiler/profiler.man profiler {Tcl source code profiler}] +[division_end] +[division_start pt] +[item modules/pt/pt_astree.man pt::ast {Abstract Syntax Tree Serialization}] +[item modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl {C/PARAM, Canned configuration, Critcl}] +[item modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea {C/PARAM, Canned configuration, TEA}] +[item modules/pt/pt_json_language.man pt::json_language {The JSON Grammar Exchange Format}] +[item modules/pt/pt_param.man pt::param {PackRat Machine Specification}] +[item modules/pt/pt_pexpression.man pt::pe {Parsing Expression Serialization}] +[item modules/pt/pt_pexpr_op.man pt::pe::op {Parsing Expression Utilities}] +[item modules/pt/pt_pegrammar.man pt::peg {Parsing Expression Grammar Serialization}] +[item modules/pt/pt_peg_container.man pt::peg::container {PEG Storage}] +[item modules/pt/pt_peg_container_peg.man pt::peg::container::peg {PEG Storage. Canned PEG grammar specification}] +[item modules/pt/pt_peg_export.man pt::peg::export {PEG Export}] +[item modules/pt/pt_peg_export_container.man pt::peg::export::container {PEG Export Plugin. Write CONTAINER format}] +[item modules/pt/pt_peg_export_json.man pt::peg::export::json {PEG Export Plugin. Write JSON format}] +[item modules/pt/pt_peg_export_peg.man pt::peg::export::peg {PEG Export Plugin. Write PEG format}] +[item modules/pt/pt_peg_from_container.man pt::peg::from::container {PEG Conversion. From CONTAINER format}] +[item modules/pt/pt_peg_from_json.man pt::peg::from::json {PEG Conversion. Read JSON format}] +[item modules/pt/pt_peg_from_peg.man pt::peg::from::peg {PEG Conversion. Read PEG format}] +[item modules/pt/pt_peg_import.man pt::peg::import {PEG Import}] +[item modules/pt/pt_peg_import_container.man pt::peg::import::container {PEG Import Plugin. From CONTAINER format}] +[item modules/pt/pt_peg_import_json.man pt::peg::import::json {PEG Import Plugin. Read JSON format}] +[item modules/pt/pt_peg_import_peg.man pt::peg::import::peg {PEG Import Plugin. Read PEG format}] +[item modules/pt/pt_peg_interp.man pt::peg::interp {Interpreter for parsing expression grammars}] +[item modules/pt/pt_peg_to_container.man pt::peg::to::container {PEG Conversion. Write CONTAINER format}] +[item modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam {PEG Conversion. Write CPARAM format}] +[item modules/pt/pt_peg_to_json.man pt::peg::to::json {PEG Conversion. Write JSON format}] +[item modules/pt/pt_peg_to_param.man pt::peg::to::param {PEG Conversion. Write PARAM format}] +[item modules/pt/pt_peg_to_peg.man pt::peg::to::peg {PEG Conversion. Write PEG format}] +[item modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam {PEG Conversion. Write TCLPARAM format}] +[item modules/pt/pt_peg_language.man pt::peg_language {PEG Language Tutorial}] +[item modules/pt/pt_peg_introduction.man pt::pegrammar {Introduction to Parsing Expression Grammars}] +[item modules/pt/pt_pgen.man pt::pgen {Parser Generator}] +[item modules/pt/pt_rdengine.man pt::rde {Parsing Runtime Support, PARAM based}] +[item modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit {Tcl/PARAM, Canned configuration, Snit}] +[item modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo {Tcl/PARAM, Canned configuration, Tcloo}] +[item modules/pt/pt_util.man pt::util {General utilities}] +[item modules/pt/pt_to_api.man pt_export_api {Parser Tools Export API}] +[item modules/pt/pt_from_api.man pt_import_api {Parser Tools Import API}] +[item modules/pt/pt_introduction.man pt_introduction {Introduction to Parser Tools}] +[item modules/pt/pt_parse_peg.man pt_parse_peg {Parser Tools PEG Parser}] +[item modules/pt/pt_parser_api.man pt_parser_api {Parser API}] +[item modules/pt/pt_peg_op.man pt_peg_op {Parser Tools PE Grammar Utility Operations}] +[division_end] +[division_start rc4] +[item modules/rc4/rc4.man rc4 {Implementation of the RC4 stream cipher}] +[division_end] +[division_start rcs] +[item modules/rcs/rcs.man rcs {RCS low level utilities}] +[division_end] +[division_start report] +[item modules/report/report.man report {Create and manipulate report objects}] +[division_end] +[division_start rest] +[item modules/rest/rest.man rest {define REST web APIs and call them inline or asychronously}] +[division_end] +[division_start ripemd] +[item modules/ripemd/ripemd128.man ripemd128 {RIPEMD-128 Message-Digest Algorithm}] +[item modules/ripemd/ripemd160.man ripemd160 {RIPEMD-160 Message-Digest Algorithm}] +[division_end] +[division_start sasl] +[item modules/sasl/sasl.man SASL {Implementation of SASL mechanisms for Tcl}] +[item modules/sasl/ntlm.man SASL::NTLM {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/sasl/scram.man SASL::SCRAM {Implementation of SASL SCRAM mechanism for Tcl}] +[item modules/sasl/gtoken.man SASL::XGoogleToken {Implementation of SASL NTLM mechanism for Tcl}] +[division_end] +[division_start sha1] +[item modules/sha1/sha1.man sha1 {SHA1 Message-Digest Algorithm}] +[item modules/sha1/sha256.man sha256 {SHA256 Message-Digest Algorithm}] +[division_end] +[division_start simulation] +[item modules/simulation/annealing.man simulation::annealing {Simulated annealing}] +[item modules/simulation/montecarlo.man simulation::montecarlo {Monte Carlo simulations}] +[item modules/simulation/simulation_random.man simulation::random {Pseudo-random number generators}] +[division_end] +[division_start smtpd] +[item modules/smtpd/smtpd.man smtpd {Tcl SMTP server implementation}] +[division_end] +[division_start snit] +[item modules/snit/snit.man snit {Snit's Not Incr Tcl}] +[item modules/snit/snitfaq.man snitfaq {Snit Frequently Asked Questions}] +[division_end] +[division_start soundex] +[item modules/soundex/soundex.man soundex Soundex] +[division_end] +[division_start stooop] +[item modules/stooop/stooop.man stooop {Object oriented extension.}] +[item modules/stooop/switched.man switched {switch/option management.}] +[division_end] +[division_start string] +[item modules/string/token.man string::token {Regex based iterative lexing}] +[item modules/string/token_shell.man string::token::shell {Parsing of shell command line}] +[division_end] +[division_start stringprep] +[item modules/stringprep/stringprep.man stringprep {Implementation of stringprep}] +[item modules/stringprep/stringprep_data.man stringprep::data {stringprep data tables, generated, internal}] +[item modules/stringprep/unicode.man unicode {Implementation of Unicode normalization}] +[item modules/stringprep/unicode_data.man unicode::data {unicode data tables, generated, internal}] +[division_end] +[division_start struct] +[item modules/struct/disjointset.man struct::disjointset {Disjoint set data structure}] +[item modules/struct/graph.man struct::graph {Create and manipulate directed graph objects}] +[item modules/struct/graphops.man struct::graph::op {Operation for (un)directed graph objects}] +[item modules/struct/graph1.man struct::graph_v1 {Create and manipulate directed graph objects}] +[item modules/struct/struct_list.man struct::list {Procedures for manipulating lists}] +[item modules/struct/matrix.man struct::matrix {Create and manipulate matrix objects}] +[item modules/struct/matrix1.man struct::matrix_v1 {Create and manipulate matrix objects}] +[item modules/struct/pool.man struct::pool {Create and manipulate pool objects (of discrete items)}] +[item modules/struct/prioqueue.man struct::prioqueue {Create and manipulate prioqueue objects}] +[item modules/struct/queue.man struct::queue {Create and manipulate queue objects}] +[item modules/struct/record.man struct::record {Define and create records (similar to 'C' structures)}] +[item modules/struct/struct_set.man struct::set {Procedures for manipulating sets}] +[item modules/struct/skiplist.man struct::skiplist {Create and manipulate skiplists}] +[item modules/struct/stack.man struct::stack {Create and manipulate stack objects}] +[item modules/struct/struct_tree.man struct::tree {Create and manipulate tree objects}] +[item modules/struct/struct_tree1.man struct::tree_v1 {Create and manipulate tree objects}] +[division_end] +[division_start tar] +[item modules/tar/tar.man tar {Tar file creation, extraction & manipulation}] +[division_end] +[division_start tepam] +[item modules/tepam/tepam_introduction.man tepam {An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager}] +[item modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox {TEPAM argument_dialogbox, reference manual}] +[item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] +[item modules/tepam/tepam_procedure.man tepam::procedure {TEPAM procedure, reference manual}] +[division_end] +[division_start term] +[item modules/term/term.man term {General terminal control}] +[item modules/term/ansi_code.man term::ansi::code {Helper for control sequences}] +[item modules/term/ansi_cattr.man term::ansi::code::attr {ANSI attribute sequences}] +[item modules/term/ansi_cctrl.man term::ansi::code::ctrl {ANSI control sequences}] +[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}] +[item modules/term/ansi_ctrlu.man term::ansi::ctrl::unix {Control operations and queries}] +[item modules/term/ansi_send.man term::ansi::send {Output of ANSI control sequences to terminals}] +[item modules/term/imenu.man term::interact::menu {Terminal widget, menu}] +[item modules/term/ipager.man term::interact::pager {Terminal widget, paging}] +[item modules/term/receive.man term::receive {General input from terminals}] +[item modules/term/term_bind.man term::receive::bind {Keyboard dispatch from terminals}] +[item modules/term/term_send.man term::send {General output to terminals}] +[division_end] +[division_start textutil] +[item modules/textutil/textutil.man textutil {Procedures to manipulate texts and strings.}] +[item modules/textutil/adjust.man textutil::adjust {Procedures to adjust, indent, and undent paragraphs}] +[item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] +[item modules/textutil/repeat.man textutil::repeat {Procedures to repeat strings.}] +[item modules/textutil/textutil_split.man textutil::split {Procedures to split texts}] +[item modules/textutil/textutil_string.man textutil::string {Procedures to manipulate texts and strings.}] +[item modules/textutil/tabify.man textutil::tabify {Procedures to (un)tabify strings}] +[item modules/textutil/trim.man textutil::trim {Procedures to trim strings}] +[division_end] +[division_start tie] +[item modules/tie/tie.man tie {Array persistence}] +[item modules/tie/tie_std.man tie {Array persistence, standard data sources}] +[division_end] +[division_start tiff] +[item modules/tiff/tiff.man tiff {TIFF reading, writing, and querying and manipulation of meta data}] +[division_end] +[division_start tool] +[item modules/tool/meta.man oo::util {Utility commands for TclOO}] +[item modules/tool/tool.man tool {Dictionary Tools}] +[item modules/tool/tool_dict_ensemble.man tool::dict_ensemble {Dictionary Tools}] +[division_end] +[division_start transfer] +[item modules/transfer/connect.man transfer::connect {Connection setup}] +[item modules/transfer/copyops.man transfer::copy {Data transfer foundation}] +[item modules/transfer/tqueue.man transfer::copy::queue {Queued transfers}] +[item modules/transfer/ddest.man transfer::data::destination {Data destination}] +[item modules/transfer/dsource.man transfer::data::source {Data source}] +[item modules/transfer/receiver.man transfer::receiver {Data source}] +[item modules/transfer/transmitter.man transfer::transmitter {Data source}] +[division_end] +[division_start treeql] +[item modules/treeql/treeql.man treeql {Query tree objects}] +[division_end] +[division_start try] +[item modules/try/tcllib_throw.man try {throw - Throw an error exception with a message}] +[item modules/try/tcllib_try.man try {try - Trap and process errors and exceptions}] +[division_end] +[division_start uev] +[item modules/uev/uevent.man uevent {User events}] +[item modules/uev/uevent_onidle.man uevent::onidle {Request merging and deferal to idle time}] +[division_end] +[division_start units] +[item modules/units/units.man units {unit conversion}] +[division_end] +[division_start uri] +[item modules/uri/uri.man uri {URI utilities}] +[item modules/uri/urn-scheme.man uri_urn {URI utilities, URN scheme}] +[division_end] +[division_start uuid] +[item modules/uuid/uuid.man uuid {UUID generation and comparison}] +[division_end] +[division_start valtype] +[item modules/valtype/valtype_common.man valtype::common {Validation, common code}] +[item modules/valtype/cc_amex.man valtype::creditcard::amex {Validation for AMEX creditcard number}] +[item modules/valtype/cc_discover.man valtype::creditcard::discover {Validation for Discover creditcard number}] +[item modules/valtype/cc_mastercard.man valtype::creditcard::mastercard {Validation for Mastercard creditcard number}] +[item modules/valtype/cc_visa.man valtype::creditcard::visa {Validation for VISA creditcard number}] +[item modules/valtype/ean13.man valtype::gs1::ean13 {Validation for EAN13}] +[item modules/valtype/iban.man valtype::iban {Validation for IBAN}] +[item modules/valtype/imei.man valtype::imei {Validation for IMEI}] +[item modules/valtype/isbn.man valtype::isbn {Validation for ISBN}] +[item modules/valtype/luhn.man valtype::luhn {Validation for plain number with a LUHN checkdigit}] +[item modules/valtype/luhn5.man valtype::luhn5 {Validation for plain number with a LUHN5 checkdigit}] +[item modules/valtype/usnpi.man valtype::usnpi {Validation for USNPI}] +[item modules/valtype/verhoeff.man valtype::verhoeff {Validation for plain number with a VERHOEFF checkdigit}] +[division_end] +[division_start virtchannel_base] +[item modules/virtchannel_base/cat.man tcl::chan::cat {Concatenation channel}] +[item modules/virtchannel_base/facade.man tcl::chan::facade {Facade channel}] +[item modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo {In-memory fifo channel}] +[item modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2 {In-memory interconnected fifo channels}] +[item modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe {In-memory channel, half of a fifo2}] +[item modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan {In-memory channel}] +[item modules/virtchannel_base/tcllib_null.man tcl::chan::null {Null channel}] +[item modules/virtchannel_base/nullzero.man tcl::chan::nullzero {Null/Zero channel combination}] +[item modules/virtchannel_base/tcllib_random.man tcl::chan::random {Random channel}] +[item modules/virtchannel_base/std.man tcl::chan::std {Standard I/O, unification of stdin and stdout}] +[item modules/virtchannel_base/tcllib_string.man tcl::chan::string {Read-only in-memory channel}] +[item modules/virtchannel_base/textwindow.man tcl::chan::textwindow {Textwindow channel}] +[item modules/virtchannel_base/tcllib_variable.man tcl::chan::variable {In-memory channel using variable for storage}] +[item modules/virtchannel_base/tcllib_zero.man tcl::chan::zero {Zero channel}] +[item modules/virtchannel_base/randseed.man tcl::randomseed {Utilities for random channels}] +[division_end] +[division_start virtchannel_core] +[item modules/virtchannel_core/core.man tcl::chan::core {Basic reflected/virtual channel support}] +[item modules/virtchannel_core/events.man tcl::chan::events {Event support for reflected/virtual channels}] +[item modules/virtchannel_core/transformcore.man tcl::transform::core {Basic reflected/virtual channel transform support}] +[division_end] +[division_start virtchannel_transform] +[item modules/virtchannel_transform/adler32.man tcl::transform::adler32 {Adler32 transformation}] +[item modules/virtchannel_transform/vt_base64.man tcl::transform::base64 {Base64 encoding transformation}] +[item modules/virtchannel_transform/vt_counter.man tcl::transform::counter {Counter transformation}] +[item modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32 {Crc32 transformation}] +[item modules/virtchannel_transform/hex.man tcl::transform::hex {Hexadecimal encoding transformation}] +[item modules/virtchannel_transform/identity.man tcl::transform::identity {Identity transformation}] +[item modules/virtchannel_transform/limitsize.man tcl::transform::limitsize {limiting input}] +[item modules/virtchannel_transform/observe.man tcl::transform::observe {Observer transformation, stream copy}] +[item modules/virtchannel_transform/vt_otp.man tcl::transform::otp {Encryption via one-time pad}] +[item modules/virtchannel_transform/rot.man tcl::transform::rot rot-encryption] +[item modules/virtchannel_transform/spacer.man tcl::transform::spacer {Space insertation and removal}] +[item modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib {zlib (de)compression}] +[division_end] +[division_start websocket] +[item modules/websocket/websocket.man websocket {Tcl implementation of the websocket protocol}] +[division_end] +[division_start wip] +[item modules/wip/wip.man wip {Word Interpreter}] +[division_end] +[division_start yaml] +[item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] +[item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] +[division_end] +[division_start zip] +[item modules/zip/decode.man zipfile::decode {Access to zip archives}] +[item modules/zip/encode.man zipfile::encode {Generation of zip archives}] +[item modules/zip/mkzip.man zipfile::mkzip {Build a zip archive}] +[division_end] +[division_end] +[division_end] +[toc_end]
\ No newline at end of file diff --git a/tcllib/support/devel/sak/doc/toc_apps.txt b/tcllib/support/devel/sak/doc/toc_apps.txt new file mode 100644 index 0000000..cb85b0f --- /dev/null +++ b/tcllib/support/devel/sak/doc/toc_apps.txt @@ -0,0 +1,11 @@ +[toc_begin {Table Of Contents} {}] +[division_start Applications] +[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item apps/nns.man nns {Name service facility, Commandline Client Application}] +[item apps/nnsd.man nnsd {Name service facility, Commandline Server Application}] +[item apps/nnslog.man nnslog {Name service facility, Commandline Logging Client Application}] +[item apps/page.man page {Parser Generator}] +[item apps/pt.man pt {Parser Tools Application}] +[item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] +[division_end] +[toc_end]
\ No newline at end of file diff --git a/tcllib/support/devel/sak/doc/toc_cats.txt b/tcllib/support/devel/sak/doc/toc_cats.txt new file mode 100644 index 0000000..d40c4de --- /dev/null +++ b/tcllib/support/devel/sak/doc/toc_cats.txt @@ -0,0 +1,479 @@ +[toc_begin {Table Of Contents} {}] +[division_start {By Categories}] +[division_start {Argument entry form, mega widget}] +[item modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox {TEPAM argument_dialogbox, reference manual}] +[division_end] +[division_start {Benchmark tools}] +[item modules/bench/bench.man bench {bench - Processing benchmark suites}] +[item modules/bench/bench_read.man bench::in {bench::in - Reading benchmark results}] +[item modules/bench/bench_wcsv.man bench::out::csv {bench::out::csv - Formatting benchmark results as CSV}] +[item modules/bench/bench_wtext.man bench::out::text {bench::out::text - Formatting benchmark results as human readable text}] +[item modules/bench/bench_intro.man bench_intro {bench introduction}] +[item modules/bench/bench_lang_intro.man bench_lang_intro {bench language introduction}] +[item modules/bench/bench_lang_spec.man bench_lang_spec {bench language specification}] +[division_end] +[division_start {CGI programming}] +[item modules/html/html.man html {Procedures to generate HTML structures}] +[item modules/javascript/javascript.man javascript {Procedures to generate HTML and Java Script structures.}] +[item modules/json/json.man json {JSON parser}] +[item modules/json/json_write.man json::write {JSON generation}] +[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}] +[division_end] +[division_start Channels] +[item modules/virtchannel_base/cat.man tcl::chan::cat {Concatenation channel}] +[item modules/virtchannel_core/core.man tcl::chan::core {Basic reflected/virtual channel support}] +[item modules/virtchannel_core/events.man tcl::chan::events {Event support for reflected/virtual channels}] +[item modules/virtchannel_base/facade.man tcl::chan::facade {Facade channel}] +[item modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo {In-memory fifo channel}] +[item modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2 {In-memory interconnected fifo channels}] +[item modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe {In-memory channel, half of a fifo2}] +[item modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan {In-memory channel}] +[item modules/virtchannel_base/tcllib_null.man tcl::chan::null {Null channel}] +[item modules/virtchannel_base/nullzero.man tcl::chan::nullzero {Null/Zero channel combination}] +[item modules/virtchannel_base/tcllib_random.man tcl::chan::random {Random channel}] +[item modules/virtchannel_base/std.man tcl::chan::std {Standard I/O, unification of stdin and stdout}] +[item modules/virtchannel_base/tcllib_string.man tcl::chan::string {Read-only in-memory channel}] +[item modules/virtchannel_base/textwindow.man tcl::chan::textwindow {Textwindow channel}] +[item modules/virtchannel_base/tcllib_variable.man tcl::chan::variable {In-memory channel using variable for storage}] +[item modules/virtchannel_base/tcllib_zero.man tcl::chan::zero {Zero channel}] +[item modules/virtchannel_base/randseed.man tcl::randomseed {Utilities for random channels}] +[item modules/virtchannel_transform/adler32.man tcl::transform::adler32 {Adler32 transformation}] +[item modules/virtchannel_transform/vt_base64.man tcl::transform::base64 {Base64 encoding transformation}] +[item modules/virtchannel_core/transformcore.man tcl::transform::core {Basic reflected/virtual channel transform support}] +[item modules/virtchannel_transform/vt_counter.man tcl::transform::counter {Counter transformation}] +[item modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32 {Crc32 transformation}] +[item modules/virtchannel_transform/hex.man tcl::transform::hex {Hexadecimal encoding transformation}] +[item modules/virtchannel_transform/identity.man tcl::transform::identity {Identity transformation}] +[item modules/virtchannel_transform/limitsize.man tcl::transform::limitsize {limiting input}] +[item modules/virtchannel_transform/observe.man tcl::transform::observe {Observer transformation, stream copy}] +[item modules/virtchannel_transform/vt_otp.man tcl::transform::otp {Encryption via one-time pad}] +[item modules/virtchannel_transform/rot.man tcl::transform::rot rot-encryption] +[item modules/virtchannel_transform/spacer.man tcl::transform::spacer {Space insertation and removal}] +[item modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib {zlib (de)compression}] +[division_end] +[division_start Coroutine] +[item modules/coroutine/tcllib_coroutine.man coroutine {Coroutine based event and IO handling}] +[item modules/coroutine/coro_auto.man coroutine::auto {Automatic event and IO coroutine awareness}] +[division_end] +[division_start {Data structures}] +[item modules/counter/counter.man counter {Procedures for counters and histograms}] +[item modules/report/report.man report {Create and manipulate report objects}] +[item modules/struct/disjointset.man struct::disjointset {Disjoint set data structure}] +[item modules/struct/graph.man struct::graph {Create and manipulate directed graph objects}] +[item modules/struct/graphops.man struct::graph::op {Operation for (un)directed graph objects}] +[item modules/struct/graph1.man struct::graph_v1 {Create and manipulate directed graph objects}] +[item modules/struct/struct_list.man struct::list {Procedures for manipulating lists}] +[item modules/struct/matrix.man struct::matrix {Create and manipulate matrix objects}] +[item modules/struct/matrix1.man struct::matrix_v1 {Create and manipulate matrix objects}] +[item modules/struct/pool.man struct::pool {Create and manipulate pool objects (of discrete items)}] +[item modules/struct/prioqueue.man struct::prioqueue {Create and manipulate prioqueue objects}] +[item modules/struct/queue.man struct::queue {Create and manipulate queue objects}] +[item modules/struct/record.man struct::record {Define and create records (similar to 'C' structures)}] +[item modules/struct/struct_set.man struct::set {Procedures for manipulating sets}] +[item modules/struct/skiplist.man struct::skiplist {Create and manipulate skiplists}] +[item modules/struct/stack.man struct::stack {Create and manipulate stack objects}] +[item modules/struct/struct_tree.man struct::tree {Create and manipulate tree objects}] +[item modules/struct/struct_tree1.man struct::tree_v1 {Create and manipulate tree objects}] +[item modules/treeql/treeql.man treeql {Query tree objects}] +[division_end] +[division_start {debugging, tracing, and logging}] +[item modules/debug/debug.man debug {debug narrative - core}] +[item modules/debug/debug_caller.man debug::caller {debug narrative - caller}] +[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}] +[item modules/debug/debug_timestamp.man debug::timestamp {debug narrative - timestamping}] +[division_end] +[division_start {Documentation tools}] +[item modules/doctools/docidx_intro.man docidx_intro {docidx introduction}] +[item modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref {docidx language command reference}] +[item modules/doctools/docidx_lang_faq.man docidx_lang_faq {docidx language faq}] +[item modules/doctools/docidx_lang_intro.man docidx_lang_intro {docidx language introduction}] +[item modules/doctools/docidx_lang_syntax.man docidx_lang_syntax {docidx language syntax}] +[item modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref {docidx plugin API reference}] +[item modules/docstrip/docstrip.man docstrip {Docstrip style source code extraction}] +[item modules/docstrip/docstrip_util.man docstrip_util {Docstrip-related utilities}] +[item modules/doctools/doctoc_intro.man doctoc_intro {doctoc introduction}] +[item modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref {doctoc language command reference}] +[item modules/doctools/doctoc_lang_faq.man doctoc_lang_faq {doctoc language faq}] +[item modules/doctools/doctoc_lang_intro.man doctoc_lang_intro {doctoc language introduction}] +[item modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax {doctoc language syntax}] +[item modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref {doctoc plugin API reference}] +[item modules/doctools/doctools.man doctools {doctools - Processing documents}] +[item modules/doctools2idx/idx_introduction.man doctools2idx_introduction {DocTools - Keyword indices}] +[item modules/doctools2toc/toc_introduction.man doctools2toc_introduction {DocTools - Tables of Contents}] +[item modules/doctools/changelog.man doctools::changelog {Processing text in Emacs ChangeLog format}] +[item modules/doctools/cvs.man doctools::cvs {Processing text in 'cvs log' format}] +[item modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults {Default CSS style for HTML export plugins}] +[item modules/doctools2idx/idx_container.man doctools::idx {Holding keyword indices}] +[item modules/doctools/docidx.man doctools::idx {docidx - Processing indices}] +[item modules/doctools2idx/idx_export.man doctools::idx::export {Exporting keyword indices}] +[item modules/doctools2idx/idx_import.man doctools::idx::import {Importing keyword indices}] +[item modules/doctools2idx/idx_parse.man doctools::idx::parse {Parsing text in docidx format}] +[item modules/doctools2idx/idx_structure.man doctools::idx::structure {Docidx serialization utilities}] +[item modules/doctools2base/tcllib_msgcat.man doctools::msgcat {Message catalog management for the various document parsers}] +[item modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c {Message catalog for the docidx parser (C)}] +[item modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de {Message catalog for the docidx parser (DE)}] +[item modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en {Message catalog for the docidx parser (EN)}] +[item modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr {Message catalog for the docidx parser (FR)}] +[item modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c {Message catalog for the doctoc parser (C)}] +[item modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de {Message catalog for the doctoc parser (DE)}] +[item modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en {Message catalog for the doctoc parser (EN)}] +[item modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr {Message catalog for the doctoc parser (FR)}] +[item modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros {Default CSS style for NROFF export plugins}] +[item modules/doctools2base/tcl_parse.man doctools::tcl::parse {Processing text in 'subst -novariables' format}] +[item modules/doctools2toc/toc_container.man doctools::toc {Holding tables of contents}] +[item modules/doctools/doctoc.man doctools::toc {doctoc - Processing tables of contents}] +[item modules/doctools2toc/toc_export.man doctools::toc::export {Exporting tables of contents}] +[item modules/doctools2toc/toc_import.man doctools::toc::import {Importing keyword indices}] +[item modules/doctools2toc/toc_parse.man doctools::toc::parse {Parsing text in doctoc format}] +[item modules/doctools2toc/toc_structure.man doctools::toc::structure {Doctoc serialization utilities}] +[item modules/doctools/doctools_intro.man doctools_intro {doctools introduction}] +[item modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref {doctools language command reference}] +[item modules/doctools/doctools_lang_faq.man doctools_lang_faq {doctools language faq}] +[item modules/doctools/doctools_lang_intro.man doctools_lang_intro {doctools language introduction}] +[item modules/doctools/doctools_lang_syntax.man doctools_lang_syntax {doctools language syntax}] +[item modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref {doctools plugin API reference}] +[item modules/dtplite/pkg_dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[item modules/doctools/mpexpand.man mpexpand {Markup processor}] +[item apps/tcldocstrip.man tcldocstrip {Tcl-based Docstrip Processor}] +[item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] +[item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] +[division_end] +[division_start File] +[item modules/zip/decode.man zipfile::decode {Access to zip archives}] +[item modules/zip/encode.man zipfile::encode {Generation of zip archives}] +[item modules/zip/mkzip.man zipfile::mkzip {Build a zip archive}] +[division_end] +[division_start {File formats}] +[item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] +[item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] +[item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] +[item modules/png/png.man png {PNG querying and manipulation of meta data}] +[item modules/tar/tar.man tar {Tar file creation, extraction & manipulation}] +[item modules/tiff/tiff.man tiff {TIFF reading, writing, and querying and manipulation of meta data}] +[division_end] +[division_start {Grammars and finite automata}] +[item modules/grammar_aycock/aycock.man grammar::aycock {Aycock-Horspool-Earley parser generator for Tcl}] +[item modules/grammar_fa/fa.man grammar::fa {Create and manipulate finite automatons}] +[item modules/grammar_fa/dacceptor.man grammar::fa::dacceptor {Create and use deterministic acceptors}] +[item modules/grammar_fa/dexec.man grammar::fa::dexec {Execute deterministic finite automatons}] +[item modules/grammar_fa/faop.man grammar::fa::op {Operations on finite automatons}] +[item modules/grammar_me/me_cpu.man grammar::me::cpu {Virtual machine implementation II for parsing token streams}] +[item modules/grammar_me/me_cpucore.man grammar::me::cpu::core {ME virtual machine state manipulation}] +[item modules/grammar_me/gasm.man grammar::me::cpu::gasm {ME assembler}] +[item modules/grammar_me/me_tcl.man grammar::me::tcl {Virtual machine implementation I for parsing token streams}] +[item modules/grammar_me/me_util.man grammar::me::util {AST utilities}] +[item modules/grammar_me/me_ast.man grammar::me_ast {Various representations of ASTs}] +[item modules/grammar_me/me_intro.man grammar::me_intro {Introduction to virtual machines for parsing token streams}] +[item modules/grammar_me/me_vm.man grammar::me_vm {Virtual machine for parsing token streams}] +[item modules/grammar_peg/peg.man grammar::peg {Create and manipulate parsing expression grammars}] +[item modules/grammar_peg/peg_interp.man grammar::peg::interp {Interpreter for parsing expression grammars}] +[division_end] +[division_start {Hashes, checksums, and encryption}] +[item modules/aes/aes.man aes {Implementation of the AES block cipher}] +[item modules/blowfish/blowfish.man blowfish {Implementation of the Blowfish block cipher}] +[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}] +[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}] +[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}] +[item modules/des/des.man des {Implementation of the DES and triple-DES ciphers}] +[item modules/md4/md4.man md4 {MD4 Message-Digest Algorithm}] +[item modules/md5/md5.man md5 {MD5 Message-Digest Algorithm}] +[item modules/md5crypt/md5crypt.man md5crypt {MD5-based password encryption}] +[item modules/otp/otp.man otp {One-Time Passwords}] +[item modules/pki/pki.man pki {Implementation of the public key cipher}] +[item modules/rc4/rc4.man rc4 {Implementation of the RC4 stream cipher}] +[item modules/ripemd/ripemd128.man ripemd128 {RIPEMD-128 Message-Digest Algorithm}] +[item modules/ripemd/ripemd160.man ripemd160 {RIPEMD-160 Message-Digest Algorithm}] +[item modules/sha1/sha1.man sha1 {SHA1 Message-Digest Algorithm}] +[item modules/sha1/sha256.man sha256 {SHA256 Message-Digest Algorithm}] +[item modules/soundex/soundex.man soundex Soundex] +[item modules/crc/sum.man sum {Calculate a sum(1) compatible checksum}] +[item modules/des/tcldes.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldesjr.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/uuid/uuid.man uuid {UUID generation and comparison}] +[division_end] +[division_start Mathematics] +[item modules/math/math.man math {Tcl Math Library}] +[item modules/math/bigfloat.man math::bigfloat {Arbitrary precision floating-point numbers}] +[item modules/math/bignum.man math::bignum {Arbitrary precision integer numbers}] +[item modules/math/calculus.man math::calculus {Integration and ordinary differential equations}] +[item modules/math/romberg.man math::calculus::romberg {Romberg integration}] +[item modules/math/combinatorics.man math::combinatorics {Combinatorial functions in the Tcl Math Library}] +[item modules/math/qcomplex.man math::complexnumbers {Straightforward complex number package}] +[item modules/math/constants.man math::constants {Mathematical and numerical constants}] +[item modules/math/decimal.man math::decimal {General decimal arithmetic}] +[item modules/math/exact.man math::exact {Exact Real Arithmetic}] +[item modules/math/fourier.man math::fourier {Discrete and fast fourier transforms}] +[item modules/math/fuzzy.man math::fuzzy {Fuzzy comparison of floating-point numbers}] +[item modules/math/math_geometry.man math::geometry {Geometrical computations}] +[item modules/math/interpolate.man math::interpolate {Interpolation routines}] +[item modules/math/linalg.man math::linearalgebra {Linear Algebra}] +[item modules/math/numtheory.man math::numtheory {Number Theory}] +[item modules/math/optimize.man math::optimize {Optimisation routines}] +[item modules/math/polynomials.man math::polynomials {Polynomial functions}] +[item modules/math/rational_funcs.man math::rationalfunctions {Polynomial functions}] +[item modules/math/roman.man math::roman {Tools for creating and manipulating roman numerals}] +[item modules/math/special.man math::special {Special mathematical functions}] +[item modules/math/statistics.man math::statistics {Basic statistical functions and procedures}] +[item modules/simulation/annealing.man simulation::annealing {Simulated annealing}] +[item modules/simulation/montecarlo.man simulation::montecarlo {Monte Carlo simulations}] +[item modules/simulation/simulation_random.man simulation::random {Pseudo-random number generators}] +[division_end] +[division_start Networking] +[item modules/asn/asn.man asn {ASN.1 BER encoder/decoder}] +[item modules/http/autoproxy.man autoproxy {Automatic HTTP proxy usage and authentication}] +[item modules/bee/bee.man bee {BitTorrent Serialization Format Encoder/Decoder}] +[item modules/dns/tcllib_dns.man dns {Tcl Domain Name Service Client}] +[item modules/ftp/ftp.man ftp {Client-side tcl implementation of the ftp protocol}] +[item modules/ftp/ftp_geturl.man ftp::geturl {Uri handler for ftp urls}] +[item modules/ftpd/ftpd.man ftpd {Tcl FTP server implementation}] +[item modules/ident/ident.man ident {Ident protocol client}] +[item modules/irc/irc.man irc {Create IRC connection and interface.}] +[item modules/ldap/ldap.man ldap {LDAP client}] +[item modules/ldap/ldapx.man ldapx {LDAP extended object interface}] +[item modules/nns/nns_client.man nameserv {Name service facility, Client}] +[item modules/nns/nns_auto.man nameserv::auto {Name service facility, Client Extension}] +[item modules/nns/nns_common.man nameserv::common {Name service facility, shared definitions}] +[item modules/nns/nns_protocol.man nameserv::protocol {Name service facility, client/server protocol}] +[item modules/nns/nns_server.man nameserv::server {Name service facility, Server}] +[item modules/nmea/nmea.man nmea {Process NMEA data}] +[item apps/nns.man nns {Name service facility, Commandline Client Application}] +[item modules/nns/nns_intro.man nns_intro {Name service facility, introduction}] +[item apps/nnsd.man nnsd {Name service facility, Commandline Server Application}] +[item apps/nnslog.man nnslog {Name service facility, Commandline Logging Client Application}] +[item modules/nntp/nntp.man nntp {Tcl client for the NNTP protocol}] +[item modules/ntp/ntp_time.man ntp_time {Tcl Time Service Client}] +[item modules/oauth/oauth.man oauth {oauth API base signature}] +[item modules/irc/picoirc.man picoirc {Small and simple embeddable IRC client.}] +[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}] +[item modules/pop3d/pop3d.man pop3d {Tcl POP3 server implementation}] +[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}] +[item modules/pop3d/pop3d_udb.man pop3d::udb {Simple user database for pop3d}] +[item modules/amazon-s3/S3.man S3 {Amazon S3 Web Service Interface}] +[item modules/sasl/sasl.man SASL {Implementation of SASL mechanisms for Tcl}] +[item modules/sasl/ntlm.man SASL::NTLM {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/sasl/scram.man SASL::SCRAM {Implementation of SASL SCRAM mechanism for Tcl}] +[item modules/sasl/gtoken.man SASL::XGoogleToken {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/mime/smtp.man smtp {Client-side tcl implementation of the smtp protocol}] +[item modules/smtpd/smtpd.man smtpd {Tcl SMTP server implementation}] +[item modules/dns/tcllib_ip.man tcllib_ip {IPv4 and IPv6 address manipulation}] +[item modules/uri/uri.man uri {URI utilities}] +[item modules/uri/urn-scheme.man uri_urn {URI utilities, URN scheme}] +[item modules/websocket/websocket.man websocket {Tcl implementation of the websocket protocol}] +[division_end] +[division_start {Page Parser Generator}] +[item apps/page.man page {Parser Generator}] +[item modules/page/page_intro.man page_intro {page introduction}] +[item modules/page/page_pluginmgr.man page_pluginmgr {page plugin manager}] +[item modules/page/page_util_flow.man page_util_flow {page dataflow/treewalker utility}] +[item modules/page/page_util_norm_lemon.man page_util_norm_lemon {page AST normalization, LEMON}] +[item modules/page/page_util_norm_peg.man page_util_norm_peg {page AST normalization, PEG}] +[item modules/page/page_util_peg.man page_util_peg {page PEG transformation utilities}] +[item modules/page/page_util_quote.man page_util_quote {page character quoting utilities}] +[division_end] +[division_start {Parsing and Grammars}] +[item apps/pt.man pt {Parser Tools Application}] +[item modules/pt/pt_astree.man pt::ast {Abstract Syntax Tree Serialization}] +[item modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl {C/PARAM, Canned configuration, Critcl}] +[item modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea {C/PARAM, Canned configuration, TEA}] +[item modules/pt/pt_json_language.man pt::json_language {The JSON Grammar Exchange Format}] +[item modules/pt/pt_param.man pt::param {PackRat Machine Specification}] +[item modules/pt/pt_pexpression.man pt::pe {Parsing Expression Serialization}] +[item modules/pt/pt_pexpr_op.man pt::pe::op {Parsing Expression Utilities}] +[item modules/pt/pt_pegrammar.man pt::peg {Parsing Expression Grammar Serialization}] +[item modules/pt/pt_peg_container.man pt::peg::container {PEG Storage}] +[item modules/pt/pt_peg_container_peg.man pt::peg::container::peg {PEG Storage. Canned PEG grammar specification}] +[item modules/pt/pt_peg_export.man pt::peg::export {PEG Export}] +[item modules/pt/pt_peg_export_container.man pt::peg::export::container {PEG Export Plugin. Write CONTAINER format}] +[item modules/pt/pt_peg_export_json.man pt::peg::export::json {PEG Export Plugin. Write JSON format}] +[item modules/pt/pt_peg_export_peg.man pt::peg::export::peg {PEG Export Plugin. Write PEG format}] +[item modules/pt/pt_peg_from_container.man pt::peg::from::container {PEG Conversion. From CONTAINER format}] +[item modules/pt/pt_peg_from_json.man pt::peg::from::json {PEG Conversion. Read JSON format}] +[item modules/pt/pt_peg_from_peg.man pt::peg::from::peg {PEG Conversion. Read PEG format}] +[item modules/pt/pt_peg_import.man pt::peg::import {PEG Import}] +[item modules/pt/pt_peg_import_container.man pt::peg::import::container {PEG Import Plugin. From CONTAINER format}] +[item modules/pt/pt_peg_import_json.man pt::peg::import::json {PEG Import Plugin. Read JSON format}] +[item modules/pt/pt_peg_import_peg.man pt::peg::import::peg {PEG Import Plugin. Read PEG format}] +[item modules/pt/pt_peg_interp.man pt::peg::interp {Interpreter for parsing expression grammars}] +[item modules/pt/pt_peg_to_container.man pt::peg::to::container {PEG Conversion. Write CONTAINER format}] +[item modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam {PEG Conversion. Write CPARAM format}] +[item modules/pt/pt_peg_to_json.man pt::peg::to::json {PEG Conversion. Write JSON format}] +[item modules/pt/pt_peg_to_param.man pt::peg::to::param {PEG Conversion. Write PARAM format}] +[item modules/pt/pt_peg_to_peg.man pt::peg::to::peg {PEG Conversion. Write PEG format}] +[item modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam {PEG Conversion. Write TCLPARAM format}] +[item modules/pt/pt_peg_language.man pt::peg_language {PEG Language Tutorial}] +[item modules/pt/pt_peg_introduction.man pt::pegrammar {Introduction to Parsing Expression Grammars}] +[item modules/pt/pt_pgen.man pt::pgen {Parser Generator}] +[item modules/pt/pt_rdengine.man pt::rde {Parsing Runtime Support, PARAM based}] +[item modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit {Tcl/PARAM, Canned configuration, Snit}] +[item modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo {Tcl/PARAM, Canned configuration, Tcloo}] +[item modules/pt/pt_util.man pt::util {General utilities}] +[item modules/pt/pt_to_api.man pt_export_api {Parser Tools Export API}] +[item modules/pt/pt_from_api.man pt_import_api {Parser Tools Import API}] +[item modules/pt/pt_introduction.man pt_introduction {Introduction to Parser Tools}] +[item modules/pt/pt_parse_peg.man pt_parse_peg {Parser Tools PEG Parser}] +[item modules/pt/pt_parser_api.man pt_parser_api {Parser API}] +[item modules/pt/pt_peg_op.man pt_peg_op {Parser Tools PE Grammar Utility Operations}] +[division_end] +[division_start {Procedures, arguments, parameters, options}] +[item modules/tepam/tepam_introduction.man tepam {An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager}] +[item modules/tepam/tepam_procedure.man tepam::procedure {TEPAM procedure, reference manual}] +[division_end] +[division_start {Programming tools}] +[item modules/cmdline/cmdline.man cmdline {Procedures to process command lines and options.}] +[item modules/comm/comm.man comm {A remote communication facility for Tcl (8.3 and later)}] +[item modules/comm/comm_wire.man comm_wire {The comm wire protocol}] +[item modules/control/control.man control {Procedures for control flow structures.}] +[item modules/interp/deleg_method.man deleg_method {Creation of comm delegates (snit methods)}] +[item modules/interp/deleg_proc.man deleg_proc {Creation of comm delegates (procedures)}] +[item modules/fileutil/fileutil.man fileutil {Procedures implementing some file utilities}] +[item modules/fumagic/cfront.man fileutil::magic::cfront {Generator core for compiler of magic(5) files}] +[item modules/fumagic/cgen.man fileutil::magic::cgen {Generator core for compiler of magic(5) files}] +[item modules/fumagic/filetypes.man fileutil::magic::filetype {Procedures implementing file-type recognition}] +[item modules/fumagic/mimetypes.man fileutil::magic::mimetype {Procedures implementing mime-type recognition}] +[item modules/fumagic/rtcore.man fileutil::magic::rt {Runtime core for file type recognition engines written in pure Tcl}] +[item modules/fileutil/multi.man fileutil::multi {Multi-file operation, scatter/gather, standard object}] +[item modules/fileutil/multiop.man fileutil::multi::op {Multi-file operation, scatter/gather}] +[item modules/fileutil/traverse.man fileutil_traverse {Iterative directory traversal}] +[item modules/hook/hook.man hook Hooks] +[item modules/interp/tcllib_interp.man interp {Interp creation and aliasing}] +[item modules/log/log.man log {Procedures to log messages of libraries and applications.}] +[item modules/log/logger.man logger {System to control logging of events.}] +[item modules/log/loggerAppender.man logger::appender {Collection of predefined appenders for logger}] +[item modules/log/loggerUtils.man logger::utils {Utilities for logger}] +[item modules/multiplexer/multiplexer.man multiplexer {One-to-many communication with sockets.}] +[item modules/pluginmgr/pluginmgr.man pluginmgr {Manage a plugin}] +[item modules/profiler/profiler.man profiler {Tcl source code profiler}] +[item modules/snit/snit.man snit {Snit's Not Incr Tcl}] +[item modules/snit/snitfaq.man snitfaq {Snit Frequently Asked Questions}] +[item modules/stooop/stooop.man stooop {Object oriented extension.}] +[item modules/stooop/switched.man switched {switch/option management.}] +[item modules/tie/tie.man tie {Array persistence}] +[item modules/tie/tie_std.man tie {Array persistence, standard data sources}] +[item modules/uev/uevent.man uevent {User events}] +[item modules/wip/wip.man wip {Word Interpreter}] +[division_end] +[division_start System] +[item modules/cron/cron.man cron {Tool for automating the period callback of commands}] +[item modules/nettool/nettool.man nettool {Tools for networked applications}] +[item modules/processman/processman.man processman {Tool for automating the period callback of commands}] +[division_end] +[division_start {Terminal control}] +[item modules/term/term.man term {General terminal control}] +[item modules/term/ansi_code.man term::ansi::code {Helper for control sequences}] +[item modules/term/ansi_cattr.man term::ansi::code::attr {ANSI attribute sequences}] +[item modules/term/ansi_cctrl.man term::ansi::code::ctrl {ANSI control sequences}] +[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}] +[item modules/term/ansi_ctrlu.man term::ansi::ctrl::unix {Control operations and queries}] +[item modules/term/ansi_send.man term::ansi::send {Output of ANSI control sequences to terminals}] +[item modules/term/imenu.man term::interact::menu {Terminal widget, menu}] +[item modules/term/ipager.man term::interact::pager {Terminal widget, paging}] +[item modules/term/receive.man term::receive {General input from terminals}] +[item modules/term/term_bind.man term::receive::bind {Keyboard dispatch from terminals}] +[item modules/term/term_send.man term::send {General output to terminals}] +[division_end] +[division_start {Text formatter plugin}] +[item modules/doctools2idx/export_docidx.man doctools::idx::export::docidx {docidx export plugin}] +[item modules/doctools2idx/idx_export_html.man doctools::idx::export::html {HTML export plugin}] +[item modules/doctools2idx/idx_export_json.man doctools::idx::export::json {JSON export plugin}] +[item modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff {nroff export plugin}] +[item modules/doctools2idx/idx_export_text.man doctools::idx::export::text {plain text export plugin}] +[item modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki {wiki export plugin}] +[item modules/doctools2idx/import_docidx.man doctools::idx::import::docidx {docidx import plugin}] +[item modules/doctools2idx/idx_import_json.man doctools::idx::import::json {JSON import plugin}] +[item modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc {doctoc export plugin}] +[item modules/doctools2toc/toc_export_html.man doctools::toc::export::html {HTML export plugin}] +[item modules/doctools2toc/toc_export_json.man doctools::toc::export::json {JSON export plugin}] +[item modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff {nroff export plugin}] +[item modules/doctools2toc/toc_export_text.man doctools::toc::export::text {plain text export plugin}] +[item modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki {wiki export plugin}] +[item modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc {doctoc import plugin}] +[item modules/doctools2toc/toc_import_json.man doctools::toc::import::json {JSON import plugin}] +[division_end] +[division_start {Text processing}] +[item modules/base64/ascii85.man ascii85 {ascii85-encode/decode binary data}] +[item modules/base32/base32.man base32 {base32 standard encoding}] +[item modules/base32/base32core.man base32::core {Expanding basic base32 maps}] +[item modules/base32/base32hex.man base32::hex {base32 extended hex encoding}] +[item modules/base64/base64.man base64 {base64-encode/decode binary data}] +[item modules/bibtex/bibtex.man bibtex {Parse bibtex files}] +[item modules/clock/iso8601.man clock_iso8601 {Parsing ISO 8601 dates/times}] +[item modules/clock/rfc2822.man clock_rfc2822 {Parsing ISO 8601 dates/times}] +[item modules/csv/csv.man csv {Procedures to handle CSV data.}] +[item modules/htmlparse/htmlparse.man htmlparse {Procedures to parse HTML strings}] +[item modules/inifile/ini.man inifile {Parsing of Windows INI files}] +[item modules/mime/mime.man mime {Manipulation of MIME body parts}] +[item modules/rcs/rcs.man rcs {RCS low level utilities}] +[item modules/string/token.man string::token {Regex based iterative lexing}] +[item modules/string/token_shell.man string::token::shell {Parsing of shell command line}] +[item modules/textutil/textutil.man textutil {Procedures to manipulate texts and strings.}] +[item modules/textutil/adjust.man textutil::adjust {Procedures to adjust, indent, and undent paragraphs}] +[item modules/textutil/repeat.man textutil::repeat {Procedures to repeat strings.}] +[item modules/textutil/textutil_split.man textutil::split {Procedures to split texts}] +[item modules/textutil/textutil_string.man textutil::string {Procedures to manipulate texts and strings.}] +[item modules/textutil/tabify.man textutil::tabify {Procedures to (un)tabify strings}] +[item modules/textutil/trim.man textutil::trim {Procedures to trim strings}] +[item modules/base64/uuencode.man uuencode {UU-encode/decode binary data}] +[item modules/amazon-s3/xsxp.man xsxp {eXtremely Simple Xml Parser}] +[item modules/base64/yencode.man yencode {Y-encode/decode binary data}] +[division_end] +[division_start {Transfer module}] +[item modules/transfer/connect.man transfer::connect {Connection setup}] +[item modules/transfer/copyops.man transfer::copy {Data transfer foundation}] +[item modules/transfer/tqueue.man transfer::copy::queue {Queued transfers}] +[item modules/transfer/ddest.man transfer::data::destination {Data destination}] +[item modules/transfer/dsource.man transfer::data::source {Data source}] +[item modules/transfer/receiver.man transfer::receiver {Data source}] +[item modules/transfer/transmitter.man transfer::transmitter {Data source}] +[division_end] +[division_start Unfiled] +[item modules/cache/async.man cache::async {Asynchronous in-memory cache}] +[item modules/generator/generator.man generator {Procedures for creating and using generators.}] +[item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] +[item modules/imap4/imap4.man imap4 {imap client-side tcl implementation of imap protocol}] +[item modules/map/map_geocode_nominatim.man map::geocode::nominatim {Resolving geographical names with a Nominatim service}] +[item modules/map/map_slippy.man map::slippy {Common code for slippy based map packages}] +[item modules/map/map_slippy_cache.man map::slippy::cache {Management of a tile cache in the local filesystem}] +[item modules/map/map_slippy_fetcher.man map::slippy::fetcher {Accessing a server providing tiles for slippy-based maps}] +[item modules/mapproj/mapproj.man mapproj {Map projection routines}] +[item modules/math/symdiff.man math::calculus::symdiff {Symbolic differentiation for Tcl}] +[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}] +[item modules/rest/rest.man rest {define REST web APIs and call them inline or asychronously}] +[item modules/stringprep/stringprep.man stringprep {Implementation of stringprep}] +[item modules/stringprep/stringprep_data.man stringprep::data {stringprep data tables, generated, internal}] +[item modules/math/machineparameters.man tclrep/machineparameters {Compute double precision machine parameters.}] +[item modules/uev/uevent_onidle.man uevent::onidle {Request merging and deferal to idle time}] +[item modules/stringprep/unicode.man unicode {Implementation of Unicode normalization}] +[item modules/stringprep/unicode_data.man unicode::data {unicode data tables, generated, internal}] +[item modules/units/units.man units {unit conversion}] +[item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] +[division_end] +[division_start Utilites] +[item modules/dicttool/dicttool.man dicttool {Dictionary Tools}] +[division_end] +[division_start Utility] +[item modules/lambda/lambda.man lambda {Utility commands for anonymous procedures}] +[item modules/ooutil/ooutil.man oo::util {Utility commands for TclOO}] +[item modules/tool/meta.man oo::util {Utility commands for TclOO}] +[item modules/tool/tool.man tool {Dictionary Tools}] +[item modules/tool/tool_dict_ensemble.man tool::dict_ensemble {Dictionary Tools}] +[item modules/try/tcllib_throw.man try {throw - Throw an error exception with a message}] +[item modules/try/tcllib_try.man try {try - Trap and process errors and exceptions}] +[division_end] +[division_start {Validation, Type checking}] +[item modules/valtype/valtype_common.man valtype::common {Validation, common code}] +[item modules/valtype/cc_amex.man valtype::creditcard::amex {Validation for AMEX creditcard number}] +[item modules/valtype/cc_discover.man valtype::creditcard::discover {Validation for Discover creditcard number}] +[item modules/valtype/cc_mastercard.man valtype::creditcard::mastercard {Validation for Mastercard creditcard number}] +[item modules/valtype/cc_visa.man valtype::creditcard::visa {Validation for VISA creditcard number}] +[item modules/valtype/ean13.man valtype::gs1::ean13 {Validation for EAN13}] +[item modules/valtype/iban.man valtype::iban {Validation for IBAN}] +[item modules/valtype/imei.man valtype::imei {Validation for IMEI}] +[item modules/valtype/isbn.man valtype::isbn {Validation for ISBN}] +[item modules/valtype/luhn.man valtype::luhn {Validation for plain number with a LUHN checkdigit}] +[item modules/valtype/luhn5.man valtype::luhn5 {Validation for plain number with a LUHN5 checkdigit}] +[item modules/valtype/usnpi.man valtype::usnpi {Validation for USNPI}] +[item modules/valtype/verhoeff.man valtype::verhoeff {Validation for plain number with a VERHOEFF checkdigit}] +[division_end] +[division_end] +[toc_end]
\ No newline at end of file diff --git a/tcllib/support/devel/sak/doc/toc_mods.txt b/tcllib/support/devel/sak/doc/toc_mods.txt new file mode 100644 index 0000000..5d36873 --- /dev/null +++ b/tcllib/support/devel/sak/doc/toc_mods.txt @@ -0,0 +1,656 @@ +[toc_begin {Table Of Contents} {}] +[division_start Modules] +[division_start aes] +[item modules/aes/aes.man aes {Implementation of the AES block cipher}] +[division_end] +[division_start amazon-s3] +[item modules/amazon-s3/S3.man S3 {Amazon S3 Web Service Interface}] +[item modules/amazon-s3/xsxp.man xsxp {eXtremely Simple Xml Parser}] +[division_end] +[division_start asn] +[item modules/asn/asn.man asn {ASN.1 BER encoder/decoder}] +[division_end] +[division_start base32] +[item modules/base32/base32.man base32 {base32 standard encoding}] +[item modules/base32/base32core.man base32::core {Expanding basic base32 maps}] +[item modules/base32/base32hex.man base32::hex {base32 extended hex encoding}] +[division_end] +[division_start base64] +[item modules/base64/ascii85.man ascii85 {ascii85-encode/decode binary data}] +[item modules/base64/base64.man base64 {base64-encode/decode binary data}] +[item modules/base64/uuencode.man uuencode {UU-encode/decode binary data}] +[item modules/base64/yencode.man yencode {Y-encode/decode binary data}] +[division_end] +[division_start bee] +[item modules/bee/bee.man bee {BitTorrent Serialization Format Encoder/Decoder}] +[division_end] +[division_start bench] +[item modules/bench/bench.man bench {bench - Processing benchmark suites}] +[item modules/bench/bench_read.man bench::in {bench::in - Reading benchmark results}] +[item modules/bench/bench_wcsv.man bench::out::csv {bench::out::csv - Formatting benchmark results as CSV}] +[item modules/bench/bench_wtext.man bench::out::text {bench::out::text - Formatting benchmark results as human readable text}] +[item modules/bench/bench_intro.man bench_intro {bench introduction}] +[item modules/bench/bench_lang_intro.man bench_lang_intro {bench language introduction}] +[item modules/bench/bench_lang_spec.man bench_lang_spec {bench language specification}] +[division_end] +[division_start bibtex] +[item modules/bibtex/bibtex.man bibtex {Parse bibtex files}] +[division_end] +[division_start blowfish] +[item modules/blowfish/blowfish.man blowfish {Implementation of the Blowfish block cipher}] +[division_end] +[division_start cache] +[item modules/cache/async.man cache::async {Asynchronous in-memory cache}] +[division_end] +[division_start clock] +[item modules/clock/iso8601.man clock_iso8601 {Parsing ISO 8601 dates/times}] +[item modules/clock/rfc2822.man clock_rfc2822 {Parsing ISO 8601 dates/times}] +[division_end] +[division_start cmdline] +[item modules/cmdline/cmdline.man cmdline {Procedures to process command lines and options.}] +[division_end] +[division_start comm] +[item modules/comm/comm.man comm {A remote communication facility for Tcl (8.3 and later)}] +[item modules/comm/comm_wire.man comm_wire {The comm wire protocol}] +[division_end] +[division_start control] +[item modules/control/control.man control {Procedures for control flow structures.}] +[division_end] +[division_start coroutine] +[item modules/coroutine/tcllib_coroutine.man coroutine {Coroutine based event and IO handling}] +[item modules/coroutine/coro_auto.man coroutine::auto {Automatic event and IO coroutine awareness}] +[division_end] +[division_start counter] +[item modules/counter/counter.man counter {Procedures for counters and histograms}] +[division_end] +[division_start crc] +[item modules/crc/cksum.man cksum {Calculate a cksum(1) compatible checksum}] +[item modules/crc/crc16.man crc16 {Perform a 16bit Cyclic Redundancy Check}] +[item modules/crc/crc32.man crc32 {Perform a 32bit Cyclic Redundancy Check}] +[item modules/crc/sum.man sum {Calculate a sum(1) compatible checksum}] +[division_end] +[division_start cron] +[item modules/cron/cron.man cron {Tool for automating the period callback of commands}] +[division_end] +[division_start csv] +[item modules/csv/csv.man csv {Procedures to handle CSV data.}] +[division_end] +[division_start debug] +[item modules/debug/debug.man debug {debug narrative - core}] +[item modules/debug/debug_caller.man debug::caller {debug narrative - caller}] +[item modules/debug/debug_heartbeat.man debug::heartbeat {debug narrative - heartbeat}] +[item modules/debug/debug_timestamp.man debug::timestamp {debug narrative - timestamping}] +[division_end] +[division_start des] +[item modules/des/des.man des {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldes.man tcldes {Implementation of the DES and triple-DES ciphers}] +[item modules/des/tcldesjr.man tcldes {Implementation of the DES and triple-DES ciphers}] +[division_end] +[division_start dicttool] +[item modules/dicttool/dicttool.man dicttool {Dictionary Tools}] +[division_end] +[division_start dns] +[item modules/dns/tcllib_dns.man dns {Tcl Domain Name Service Client}] +[item modules/dns/tcllib_ip.man tcllib_ip {IPv4 and IPv6 address manipulation}] +[division_end] +[division_start docstrip] +[item modules/docstrip/docstrip.man docstrip {Docstrip style source code extraction}] +[item modules/docstrip/docstrip_util.man docstrip_util {Docstrip-related utilities}] +[division_end] +[division_start doctools] +[item modules/doctools/docidx_intro.man docidx_intro {docidx introduction}] +[item modules/doctools/docidx_lang_cmdref.man docidx_lang_cmdref {docidx language command reference}] +[item modules/doctools/docidx_lang_faq.man docidx_lang_faq {docidx language faq}] +[item modules/doctools/docidx_lang_intro.man docidx_lang_intro {docidx language introduction}] +[item modules/doctools/docidx_lang_syntax.man docidx_lang_syntax {docidx language syntax}] +[item modules/doctools/docidx_plugin_apiref.man docidx_plugin_apiref {docidx plugin API reference}] +[item modules/doctools/doctoc_intro.man doctoc_intro {doctoc introduction}] +[item modules/doctools/doctoc_lang_cmdref.man doctoc_lang_cmdref {doctoc language command reference}] +[item modules/doctools/doctoc_lang_faq.man doctoc_lang_faq {doctoc language faq}] +[item modules/doctools/doctoc_lang_intro.man doctoc_lang_intro {doctoc language introduction}] +[item modules/doctools/doctoc_lang_syntax.man doctoc_lang_syntax {doctoc language syntax}] +[item modules/doctools/doctoc_plugin_apiref.man doctoc_plugin_apiref {doctoc plugin API reference}] +[item modules/doctools/doctools.man doctools {doctools - Processing documents}] +[item modules/doctools/changelog.man doctools::changelog {Processing text in Emacs ChangeLog format}] +[item modules/doctools/cvs.man doctools::cvs {Processing text in 'cvs log' format}] +[item modules/doctools/docidx.man doctools::idx {docidx - Processing indices}] +[item modules/doctools/doctoc.man doctools::toc {doctoc - Processing tables of contents}] +[item modules/doctools/doctools_intro.man doctools_intro {doctools introduction}] +[item modules/doctools/doctools_lang_cmdref.man doctools_lang_cmdref {doctools language command reference}] +[item modules/doctools/doctools_lang_faq.man doctools_lang_faq {doctools language faq}] +[item modules/doctools/doctools_lang_intro.man doctools_lang_intro {doctools language introduction}] +[item modules/doctools/doctools_lang_syntax.man doctools_lang_syntax {doctools language syntax}] +[item modules/doctools/doctools_plugin_apiref.man doctools_plugin_apiref {doctools plugin API reference}] +[item modules/doctools/mpexpand.man mpexpand {Markup processor}] +[division_end] +[division_start doctools2base] +[item modules/doctools2base/html_cssdefaults.man doctools::html::cssdefaults {Default CSS style for HTML export plugins}] +[item modules/doctools2base/tcllib_msgcat.man doctools::msgcat {Message catalog management for the various document parsers}] +[item modules/doctools2base/nroff_manmacros.man doctools::nroff::man_macros {Default CSS style for NROFF export plugins}] +[item modules/doctools2base/tcl_parse.man doctools::tcl::parse {Processing text in 'subst -novariables' format}] +[division_end] +[division_start doctools2idx] +[item modules/doctools2idx/idx_introduction.man doctools2idx_introduction {DocTools - Keyword indices}] +[item modules/doctools2idx/idx_container.man doctools::idx {Holding keyword indices}] +[item modules/doctools2idx/idx_export.man doctools::idx::export {Exporting keyword indices}] +[item modules/doctools2idx/export_docidx.man doctools::idx::export::docidx {docidx export plugin}] +[item modules/doctools2idx/idx_export_html.man doctools::idx::export::html {HTML export plugin}] +[item modules/doctools2idx/idx_export_json.man doctools::idx::export::json {JSON export plugin}] +[item modules/doctools2idx/idx_export_nroff.man doctools::idx::export::nroff {nroff export plugin}] +[item modules/doctools2idx/idx_export_text.man doctools::idx::export::text {plain text export plugin}] +[item modules/doctools2idx/idx_export_wiki.man doctools::idx::export::wiki {wiki export plugin}] +[item modules/doctools2idx/idx_import.man doctools::idx::import {Importing keyword indices}] +[item modules/doctools2idx/import_docidx.man doctools::idx::import::docidx {docidx import plugin}] +[item modules/doctools2idx/idx_import_json.man doctools::idx::import::json {JSON import plugin}] +[item modules/doctools2idx/idx_parse.man doctools::idx::parse {Parsing text in docidx format}] +[item modules/doctools2idx/idx_structure.man doctools::idx::structure {Docidx serialization utilities}] +[item modules/doctools2idx/idx_msgcat_c.man doctools::msgcat::idx::c {Message catalog for the docidx parser (C)}] +[item modules/doctools2idx/idx_msgcat_de.man doctools::msgcat::idx::de {Message catalog for the docidx parser (DE)}] +[item modules/doctools2idx/idx_msgcat_en.man doctools::msgcat::idx::en {Message catalog for the docidx parser (EN)}] +[item modules/doctools2idx/idx_msgcat_fr.man doctools::msgcat::idx::fr {Message catalog for the docidx parser (FR)}] +[division_end] +[division_start doctools2toc] +[item modules/doctools2toc/toc_introduction.man doctools2toc_introduction {DocTools - Tables of Contents}] +[item modules/doctools2toc/toc_msgcat_c.man doctools::msgcat::toc::c {Message catalog for the doctoc parser (C)}] +[item modules/doctools2toc/toc_msgcat_de.man doctools::msgcat::toc::de {Message catalog for the doctoc parser (DE)}] +[item modules/doctools2toc/toc_msgcat_en.man doctools::msgcat::toc::en {Message catalog for the doctoc parser (EN)}] +[item modules/doctools2toc/toc_msgcat_fr.man doctools::msgcat::toc::fr {Message catalog for the doctoc parser (FR)}] +[item modules/doctools2toc/toc_container.man doctools::toc {Holding tables of contents}] +[item modules/doctools2toc/toc_export.man doctools::toc::export {Exporting tables of contents}] +[item modules/doctools2toc/export_doctoc.man doctools::toc::export::doctoc {doctoc export plugin}] +[item modules/doctools2toc/toc_export_html.man doctools::toc::export::html {HTML export plugin}] +[item modules/doctools2toc/toc_export_json.man doctools::toc::export::json {JSON export plugin}] +[item modules/doctools2toc/toc_export_nroff.man doctools::toc::export::nroff {nroff export plugin}] +[item modules/doctools2toc/toc_export_text.man doctools::toc::export::text {plain text export plugin}] +[item modules/doctools2toc/toc_export_wiki.man doctools::toc::export::wiki {wiki export plugin}] +[item modules/doctools2toc/toc_import.man doctools::toc::import {Importing keyword indices}] +[item modules/doctools2toc/import_doctoc.man doctools::toc::import::doctoc {doctoc import plugin}] +[item modules/doctools2toc/toc_import_json.man doctools::toc::import::json {JSON import plugin}] +[item modules/doctools2toc/toc_parse.man doctools::toc::parse {Parsing text in doctoc format}] +[item modules/doctools2toc/toc_structure.man doctools::toc::structure {Doctoc serialization utilities}] +[division_end] +[division_start dtplite] +[item modules/dtplite/pkg_dtplite.man dtplite {Lightweight DocTools Markup Processor}] +[division_end] +[division_start exif] +[item modules/exif/exif.man exif {Tcl EXIF extracts and parses EXIF fields from digital images}] +[division_end] +[division_start fileutil] +[item modules/fileutil/fileutil.man fileutil {Procedures implementing some file utilities}] +[item modules/fileutil/multi.man fileutil::multi {Multi-file operation, scatter/gather, standard object}] +[item modules/fileutil/multiop.man fileutil::multi::op {Multi-file operation, scatter/gather}] +[item modules/fileutil/traverse.man fileutil_traverse {Iterative directory traversal}] +[division_end] +[division_start ftp] +[item modules/ftp/ftp.man ftp {Client-side tcl implementation of the ftp protocol}] +[item modules/ftp/ftp_geturl.man ftp::geturl {Uri handler for ftp urls}] +[division_end] +[division_start ftpd] +[item modules/ftpd/ftpd.man ftpd {Tcl FTP server implementation}] +[division_end] +[division_start fumagic] +[item modules/fumagic/cfront.man fileutil::magic::cfront {Generator core for compiler of magic(5) files}] +[item modules/fumagic/cgen.man fileutil::magic::cgen {Generator core for compiler of magic(5) files}] +[item modules/fumagic/filetypes.man fileutil::magic::filetype {Procedures implementing file-type recognition}] +[item modules/fumagic/mimetypes.man fileutil::magic::mimetype {Procedures implementing mime-type recognition}] +[item modules/fumagic/rtcore.man fileutil::magic::rt {Runtime core for file type recognition engines written in pure Tcl}] +[division_end] +[division_start generator] +[item modules/generator/generator.man generator {Procedures for creating and using generators.}] +[division_end] +[division_start gpx] +[item modules/gpx/gpx.man gpx {Extracts waypoints, tracks and routes from GPX files}] +[division_end] +[division_start grammar_aycock] +[item modules/grammar_aycock/aycock.man grammar::aycock {Aycock-Horspool-Earley parser generator for Tcl}] +[division_end] +[division_start grammar_fa] +[item modules/grammar_fa/fa.man grammar::fa {Create and manipulate finite automatons}] +[item modules/grammar_fa/dacceptor.man grammar::fa::dacceptor {Create and use deterministic acceptors}] +[item modules/grammar_fa/dexec.man grammar::fa::dexec {Execute deterministic finite automatons}] +[item modules/grammar_fa/faop.man grammar::fa::op {Operations on finite automatons}] +[division_end] +[division_start grammar_me] +[item modules/grammar_me/me_cpu.man grammar::me::cpu {Virtual machine implementation II for parsing token streams}] +[item modules/grammar_me/me_cpucore.man grammar::me::cpu::core {ME virtual machine state manipulation}] +[item modules/grammar_me/gasm.man grammar::me::cpu::gasm {ME assembler}] +[item modules/grammar_me/me_tcl.man grammar::me::tcl {Virtual machine implementation I for parsing token streams}] +[item modules/grammar_me/me_util.man grammar::me::util {AST utilities}] +[item modules/grammar_me/me_ast.man grammar::me_ast {Various representations of ASTs}] +[item modules/grammar_me/me_intro.man grammar::me_intro {Introduction to virtual machines for parsing token streams}] +[item modules/grammar_me/me_vm.man grammar::me_vm {Virtual machine for parsing token streams}] +[division_end] +[division_start grammar_peg] +[item modules/grammar_peg/peg.man grammar::peg {Create and manipulate parsing expression grammars}] +[item modules/grammar_peg/peg_interp.man grammar::peg::interp {Interpreter for parsing expression grammars}] +[division_end] +[division_start hook] +[item modules/hook/hook.man hook Hooks] +[division_end] +[division_start html] +[item modules/html/html.man html {Procedures to generate HTML structures}] +[division_end] +[division_start htmlparse] +[item modules/htmlparse/htmlparse.man htmlparse {Procedures to parse HTML strings}] +[division_end] +[division_start http] +[item modules/http/autoproxy.man autoproxy {Automatic HTTP proxy usage and authentication}] +[division_end] +[division_start ident] +[item modules/ident/ident.man ident {Ident protocol client}] +[division_end] +[division_start imap4] +[item modules/imap4/imap4.man imap4 {imap client-side tcl implementation of imap protocol}] +[division_end] +[division_start inifile] +[item modules/inifile/ini.man inifile {Parsing of Windows INI files}] +[division_end] +[division_start interp] +[item modules/interp/deleg_method.man deleg_method {Creation of comm delegates (snit methods)}] +[item modules/interp/deleg_proc.man deleg_proc {Creation of comm delegates (procedures)}] +[item modules/interp/tcllib_interp.man interp {Interp creation and aliasing}] +[division_end] +[division_start irc] +[item modules/irc/irc.man irc {Create IRC connection and interface.}] +[item modules/irc/picoirc.man picoirc {Small and simple embeddable IRC client.}] +[division_end] +[division_start javascript] +[item modules/javascript/javascript.man javascript {Procedures to generate HTML and Java Script structures.}] +[division_end] +[division_start jpeg] +[item modules/jpeg/jpeg.man jpeg {JPEG querying and manipulation of meta data}] +[division_end] +[division_start json] +[item modules/json/json.man json {JSON parser}] +[item modules/json/json_write.man json::write {JSON generation}] +[division_end] +[division_start lambda] +[item modules/lambda/lambda.man lambda {Utility commands for anonymous procedures}] +[division_end] +[division_start ldap] +[item modules/ldap/ldap.man ldap {LDAP client}] +[item modules/ldap/ldapx.man ldapx {LDAP extended object interface}] +[division_end] +[division_start log] +[item modules/log/log.man log {Procedures to log messages of libraries and applications.}] +[item modules/log/logger.man logger {System to control logging of events.}] +[item modules/log/loggerAppender.man logger::appender {Collection of predefined appenders for logger}] +[item modules/log/loggerUtils.man logger::utils {Utilities for logger}] +[division_end] +[division_start map] +[item modules/map/map_geocode_nominatim.man map::geocode::nominatim {Resolving geographical names with a Nominatim service}] +[item modules/map/map_slippy.man map::slippy {Common code for slippy based map packages}] +[item modules/map/map_slippy_cache.man map::slippy::cache {Management of a tile cache in the local filesystem}] +[item modules/map/map_slippy_fetcher.man map::slippy::fetcher {Accessing a server providing tiles for slippy-based maps}] +[division_end] +[division_start mapproj] +[item modules/mapproj/mapproj.man mapproj {Map projection routines}] +[division_end] +[division_start math] +[item modules/math/math.man math {Tcl Math Library}] +[item modules/math/bigfloat.man math::bigfloat {Arbitrary precision floating-point numbers}] +[item modules/math/bignum.man math::bignum {Arbitrary precision integer numbers}] +[item modules/math/calculus.man math::calculus {Integration and ordinary differential equations}] +[item modules/math/romberg.man math::calculus::romberg {Romberg integration}] +[item modules/math/symdiff.man math::calculus::symdiff {Symbolic differentiation for Tcl}] +[item modules/math/combinatorics.man math::combinatorics {Combinatorial functions in the Tcl Math Library}] +[item modules/math/qcomplex.man math::complexnumbers {Straightforward complex number package}] +[item modules/math/constants.man math::constants {Mathematical and numerical constants}] +[item modules/math/decimal.man math::decimal {General decimal arithmetic}] +[item modules/math/exact.man math::exact {Exact Real Arithmetic}] +[item modules/math/fourier.man math::fourier {Discrete and fast fourier transforms}] +[item modules/math/fuzzy.man math::fuzzy {Fuzzy comparison of floating-point numbers}] +[item modules/math/math_geometry.man math::geometry {Geometrical computations}] +[item modules/math/interpolate.man math::interpolate {Interpolation routines}] +[item modules/math/linalg.man math::linearalgebra {Linear Algebra}] +[item modules/math/numtheory.man math::numtheory {Number Theory}] +[item modules/math/optimize.man math::optimize {Optimisation routines}] +[item modules/math/polynomials.man math::polynomials {Polynomial functions}] +[item modules/math/rational_funcs.man math::rationalfunctions {Polynomial functions}] +[item modules/math/roman.man math::roman {Tools for creating and manipulating roman numerals}] +[item modules/math/special.man math::special {Special mathematical functions}] +[item modules/math/statistics.man math::statistics {Basic statistical functions and procedures}] +[item modules/math/machineparameters.man tclrep/machineparameters {Compute double precision machine parameters.}] +[division_end] +[division_start md4] +[item modules/md4/md4.man md4 {MD4 Message-Digest Algorithm}] +[division_end] +[division_start md5] +[item modules/md5/md5.man md5 {MD5 Message-Digest Algorithm}] +[division_end] +[division_start md5crypt] +[item modules/md5crypt/md5crypt.man md5crypt {MD5-based password encryption}] +[division_end] +[division_start mime] +[item modules/mime/mime.man mime {Manipulation of MIME body parts}] +[item modules/mime/smtp.man smtp {Client-side tcl implementation of the smtp protocol}] +[division_end] +[division_start multiplexer] +[item modules/multiplexer/multiplexer.man multiplexer {One-to-many communication with sockets.}] +[division_end] +[division_start namespacex] +[item modules/namespacex/namespacex.man namespacex {Namespace utility commands}] +[division_end] +[division_start ncgi] +[item modules/ncgi/ncgi.man ncgi {Procedures to manipulate CGI values.}] +[division_end] +[division_start nettool] +[item modules/nettool/nettool.man nettool {Tools for networked applications}] +[division_end] +[division_start nmea] +[item modules/nmea/nmea.man nmea {Process NMEA data}] +[division_end] +[division_start nns] +[item modules/nns/nns_client.man nameserv {Name service facility, Client}] +[item modules/nns/nns_auto.man nameserv::auto {Name service facility, Client Extension}] +[item modules/nns/nns_common.man nameserv::common {Name service facility, shared definitions}] +[item modules/nns/nns_protocol.man nameserv::protocol {Name service facility, client/server protocol}] +[item modules/nns/nns_server.man nameserv::server {Name service facility, Server}] +[item modules/nns/nns_intro.man nns_intro {Name service facility, introduction}] +[division_end] +[division_start nntp] +[item modules/nntp/nntp.man nntp {Tcl client for the NNTP protocol}] +[division_end] +[division_start ntp] +[item modules/ntp/ntp_time.man ntp_time {Tcl Time Service Client}] +[division_end] +[division_start oauth] +[item modules/oauth/oauth.man oauth {oauth API base signature}] +[division_end] +[division_start ooutil] +[item modules/ooutil/ooutil.man oo::util {Utility commands for TclOO}] +[division_end] +[division_start otp] +[item modules/otp/otp.man otp {One-Time Passwords}] +[division_end] +[division_start page] +[item modules/page/page_intro.man page_intro {page introduction}] +[item modules/page/page_pluginmgr.man page_pluginmgr {page plugin manager}] +[item modules/page/page_util_flow.man page_util_flow {page dataflow/treewalker utility}] +[item modules/page/page_util_norm_lemon.man page_util_norm_lemon {page AST normalization, LEMON}] +[item modules/page/page_util_norm_peg.man page_util_norm_peg {page AST normalization, PEG}] +[item modules/page/page_util_peg.man page_util_peg {page PEG transformation utilities}] +[item modules/page/page_util_quote.man page_util_quote {page character quoting utilities}] +[division_end] +[division_start pki] +[item modules/pki/pki.man pki {Implementation of the public key cipher}] +[division_end] +[division_start pluginmgr] +[item modules/pluginmgr/pluginmgr.man pluginmgr {Manage a plugin}] +[division_end] +[division_start png] +[item modules/png/png.man png {PNG querying and manipulation of meta data}] +[division_end] +[division_start pop3] +[item modules/pop3/pop3.man pop3 {Tcl client for POP3 email protocol}] +[division_end] +[division_start pop3d] +[item modules/pop3d/pop3d.man pop3d {Tcl POP3 server implementation}] +[item modules/pop3d/pop3d_dbox.man pop3d::dbox {Simple mailbox database for pop3d}] +[item modules/pop3d/pop3d_udb.man pop3d::udb {Simple user database for pop3d}] +[division_end] +[division_start processman] +[item modules/processman/processman.man processman {Tool for automating the period callback of commands}] +[division_end] +[division_start profiler] +[item modules/profiler/profiler.man profiler {Tcl source code profiler}] +[division_end] +[division_start pt] +[item modules/pt/pt_astree.man pt::ast {Abstract Syntax Tree Serialization}] +[item modules/pt/pt_cparam_config_critcl.man pt::cparam::configuration::critcl {C/PARAM, Canned configuration, Critcl}] +[item modules/pt/pt_cparam_config_tea.man pt::cparam::configuration::tea {C/PARAM, Canned configuration, TEA}] +[item modules/pt/pt_json_language.man pt::json_language {The JSON Grammar Exchange Format}] +[item modules/pt/pt_param.man pt::param {PackRat Machine Specification}] +[item modules/pt/pt_pexpression.man pt::pe {Parsing Expression Serialization}] +[item modules/pt/pt_pexpr_op.man pt::pe::op {Parsing Expression Utilities}] +[item modules/pt/pt_pegrammar.man pt::peg {Parsing Expression Grammar Serialization}] +[item modules/pt/pt_peg_container.man pt::peg::container {PEG Storage}] +[item modules/pt/pt_peg_container_peg.man pt::peg::container::peg {PEG Storage. Canned PEG grammar specification}] +[item modules/pt/pt_peg_export.man pt::peg::export {PEG Export}] +[item modules/pt/pt_peg_export_container.man pt::peg::export::container {PEG Export Plugin. Write CONTAINER format}] +[item modules/pt/pt_peg_export_json.man pt::peg::export::json {PEG Export Plugin. Write JSON format}] +[item modules/pt/pt_peg_export_peg.man pt::peg::export::peg {PEG Export Plugin. Write PEG format}] +[item modules/pt/pt_peg_from_container.man pt::peg::from::container {PEG Conversion. From CONTAINER format}] +[item modules/pt/pt_peg_from_json.man pt::peg::from::json {PEG Conversion. Read JSON format}] +[item modules/pt/pt_peg_from_peg.man pt::peg::from::peg {PEG Conversion. Read PEG format}] +[item modules/pt/pt_peg_import.man pt::peg::import {PEG Import}] +[item modules/pt/pt_peg_import_container.man pt::peg::import::container {PEG Import Plugin. From CONTAINER format}] +[item modules/pt/pt_peg_import_json.man pt::peg::import::json {PEG Import Plugin. Read JSON format}] +[item modules/pt/pt_peg_import_peg.man pt::peg::import::peg {PEG Import Plugin. Read PEG format}] +[item modules/pt/pt_peg_interp.man pt::peg::interp {Interpreter for parsing expression grammars}] +[item modules/pt/pt_peg_to_container.man pt::peg::to::container {PEG Conversion. Write CONTAINER format}] +[item modules/pt/pt_peg_to_cparam.man pt::peg::to::cparam {PEG Conversion. Write CPARAM format}] +[item modules/pt/pt_peg_to_json.man pt::peg::to::json {PEG Conversion. Write JSON format}] +[item modules/pt/pt_peg_to_param.man pt::peg::to::param {PEG Conversion. Write PARAM format}] +[item modules/pt/pt_peg_to_peg.man pt::peg::to::peg {PEG Conversion. Write PEG format}] +[item modules/pt/pt_peg_to_tclparam.man pt::peg::to::tclparam {PEG Conversion. Write TCLPARAM format}] +[item modules/pt/pt_peg_language.man pt::peg_language {PEG Language Tutorial}] +[item modules/pt/pt_peg_introduction.man pt::pegrammar {Introduction to Parsing Expression Grammars}] +[item modules/pt/pt_pgen.man pt::pgen {Parser Generator}] +[item modules/pt/pt_rdengine.man pt::rde {Parsing Runtime Support, PARAM based}] +[item modules/pt/pt_tclparam_config_snit.man pt::tclparam::configuration::snit {Tcl/PARAM, Canned configuration, Snit}] +[item modules/pt/pt_tclparam_config_tcloo.man pt::tclparam::configuration::tcloo {Tcl/PARAM, Canned configuration, Tcloo}] +[item modules/pt/pt_util.man pt::util {General utilities}] +[item modules/pt/pt_to_api.man pt_export_api {Parser Tools Export API}] +[item modules/pt/pt_from_api.man pt_import_api {Parser Tools Import API}] +[item modules/pt/pt_introduction.man pt_introduction {Introduction to Parser Tools}] +[item modules/pt/pt_parse_peg.man pt_parse_peg {Parser Tools PEG Parser}] +[item modules/pt/pt_parser_api.man pt_parser_api {Parser API}] +[item modules/pt/pt_peg_op.man pt_peg_op {Parser Tools PE Grammar Utility Operations}] +[division_end] +[division_start rc4] +[item modules/rc4/rc4.man rc4 {Implementation of the RC4 stream cipher}] +[division_end] +[division_start rcs] +[item modules/rcs/rcs.man rcs {RCS low level utilities}] +[division_end] +[division_start report] +[item modules/report/report.man report {Create and manipulate report objects}] +[division_end] +[division_start rest] +[item modules/rest/rest.man rest {define REST web APIs and call them inline or asychronously}] +[division_end] +[division_start ripemd] +[item modules/ripemd/ripemd128.man ripemd128 {RIPEMD-128 Message-Digest Algorithm}] +[item modules/ripemd/ripemd160.man ripemd160 {RIPEMD-160 Message-Digest Algorithm}] +[division_end] +[division_start sasl] +[item modules/sasl/sasl.man SASL {Implementation of SASL mechanisms for Tcl}] +[item modules/sasl/ntlm.man SASL::NTLM {Implementation of SASL NTLM mechanism for Tcl}] +[item modules/sasl/scram.man SASL::SCRAM {Implementation of SASL SCRAM mechanism for Tcl}] +[item modules/sasl/gtoken.man SASL::XGoogleToken {Implementation of SASL NTLM mechanism for Tcl}] +[division_end] +[division_start sha1] +[item modules/sha1/sha1.man sha1 {SHA1 Message-Digest Algorithm}] +[item modules/sha1/sha256.man sha256 {SHA256 Message-Digest Algorithm}] +[division_end] +[division_start simulation] +[item modules/simulation/annealing.man simulation::annealing {Simulated annealing}] +[item modules/simulation/montecarlo.man simulation::montecarlo {Monte Carlo simulations}] +[item modules/simulation/simulation_random.man simulation::random {Pseudo-random number generators}] +[division_end] +[division_start smtpd] +[item modules/smtpd/smtpd.man smtpd {Tcl SMTP server implementation}] +[division_end] +[division_start snit] +[item modules/snit/snit.man snit {Snit's Not Incr Tcl}] +[item modules/snit/snitfaq.man snitfaq {Snit Frequently Asked Questions}] +[division_end] +[division_start soundex] +[item modules/soundex/soundex.man soundex Soundex] +[division_end] +[division_start stooop] +[item modules/stooop/stooop.man stooop {Object oriented extension.}] +[item modules/stooop/switched.man switched {switch/option management.}] +[division_end] +[division_start string] +[item modules/string/token.man string::token {Regex based iterative lexing}] +[item modules/string/token_shell.man string::token::shell {Parsing of shell command line}] +[division_end] +[division_start stringprep] +[item modules/stringprep/stringprep.man stringprep {Implementation of stringprep}] +[item modules/stringprep/stringprep_data.man stringprep::data {stringprep data tables, generated, internal}] +[item modules/stringprep/unicode.man unicode {Implementation of Unicode normalization}] +[item modules/stringprep/unicode_data.man unicode::data {unicode data tables, generated, internal}] +[division_end] +[division_start struct] +[item modules/struct/disjointset.man struct::disjointset {Disjoint set data structure}] +[item modules/struct/graph.man struct::graph {Create and manipulate directed graph objects}] +[item modules/struct/graphops.man struct::graph::op {Operation for (un)directed graph objects}] +[item modules/struct/graph1.man struct::graph_v1 {Create and manipulate directed graph objects}] +[item modules/struct/struct_list.man struct::list {Procedures for manipulating lists}] +[item modules/struct/matrix.man struct::matrix {Create and manipulate matrix objects}] +[item modules/struct/matrix1.man struct::matrix_v1 {Create and manipulate matrix objects}] +[item modules/struct/pool.man struct::pool {Create and manipulate pool objects (of discrete items)}] +[item modules/struct/prioqueue.man struct::prioqueue {Create and manipulate prioqueue objects}] +[item modules/struct/queue.man struct::queue {Create and manipulate queue objects}] +[item modules/struct/record.man struct::record {Define and create records (similar to 'C' structures)}] +[item modules/struct/struct_set.man struct::set {Procedures for manipulating sets}] +[item modules/struct/skiplist.man struct::skiplist {Create and manipulate skiplists}] +[item modules/struct/stack.man struct::stack {Create and manipulate stack objects}] +[item modules/struct/struct_tree.man struct::tree {Create and manipulate tree objects}] +[item modules/struct/struct_tree1.man struct::tree_v1 {Create and manipulate tree objects}] +[division_end] +[division_start tar] +[item modules/tar/tar.man tar {Tar file creation, extraction & manipulation}] +[division_end] +[division_start tepam] +[item modules/tepam/tepam_introduction.man tepam {An introduction into TEPAM, Tcl's Enhanced Procedure and Argument Manager}] +[item modules/tepam/tepam_argument_dialogbox.man tepam::argument_dialogbox {TEPAM argument_dialogbox, reference manual}] +[item modules/tepam/tepam_doc_gen.man tepam::doc_gen {TEPAM DOC Generation, reference manual}] +[item modules/tepam/tepam_procedure.man tepam::procedure {TEPAM procedure, reference manual}] +[division_end] +[division_start term] +[item modules/term/term.man term {General terminal control}] +[item modules/term/ansi_code.man term::ansi::code {Helper for control sequences}] +[item modules/term/ansi_cattr.man term::ansi::code::attr {ANSI attribute sequences}] +[item modules/term/ansi_cctrl.man term::ansi::code::ctrl {ANSI control sequences}] +[item modules/term/ansi_cmacros.man term::ansi::code::macros {Macro sequences}] +[item modules/term/ansi_ctrlu.man term::ansi::ctrl::unix {Control operations and queries}] +[item modules/term/ansi_send.man term::ansi::send {Output of ANSI control sequences to terminals}] +[item modules/term/imenu.man term::interact::menu {Terminal widget, menu}] +[item modules/term/ipager.man term::interact::pager {Terminal widget, paging}] +[item modules/term/receive.man term::receive {General input from terminals}] +[item modules/term/term_bind.man term::receive::bind {Keyboard dispatch from terminals}] +[item modules/term/term_send.man term::send {General output to terminals}] +[division_end] +[division_start textutil] +[item modules/textutil/textutil.man textutil {Procedures to manipulate texts and strings.}] +[item modules/textutil/adjust.man textutil::adjust {Procedures to adjust, indent, and undent paragraphs}] +[item modules/textutil/expander.man textutil::expander {Procedures to process templates and expand text.}] +[item modules/textutil/repeat.man textutil::repeat {Procedures to repeat strings.}] +[item modules/textutil/textutil_split.man textutil::split {Procedures to split texts}] +[item modules/textutil/textutil_string.man textutil::string {Procedures to manipulate texts and strings.}] +[item modules/textutil/tabify.man textutil::tabify {Procedures to (un)tabify strings}] +[item modules/textutil/trim.man textutil::trim {Procedures to trim strings}] +[division_end] +[division_start tie] +[item modules/tie/tie.man tie {Array persistence}] +[item modules/tie/tie_std.man tie {Array persistence, standard data sources}] +[division_end] +[division_start tiff] +[item modules/tiff/tiff.man tiff {TIFF reading, writing, and querying and manipulation of meta data}] +[division_end] +[division_start tool] +[item modules/tool/meta.man oo::util {Utility commands for TclOO}] +[item modules/tool/tool.man tool {Dictionary Tools}] +[item modules/tool/tool_dict_ensemble.man tool::dict_ensemble {Dictionary Tools}] +[division_end] +[division_start transfer] +[item modules/transfer/connect.man transfer::connect {Connection setup}] +[item modules/transfer/copyops.man transfer::copy {Data transfer foundation}] +[item modules/transfer/tqueue.man transfer::copy::queue {Queued transfers}] +[item modules/transfer/ddest.man transfer::data::destination {Data destination}] +[item modules/transfer/dsource.man transfer::data::source {Data source}] +[item modules/transfer/receiver.man transfer::receiver {Data source}] +[item modules/transfer/transmitter.man transfer::transmitter {Data source}] +[division_end] +[division_start treeql] +[item modules/treeql/treeql.man treeql {Query tree objects}] +[division_end] +[division_start try] +[item modules/try/tcllib_throw.man try {throw - Throw an error exception with a message}] +[item modules/try/tcllib_try.man try {try - Trap and process errors and exceptions}] +[division_end] +[division_start uev] +[item modules/uev/uevent.man uevent {User events}] +[item modules/uev/uevent_onidle.man uevent::onidle {Request merging and deferal to idle time}] +[division_end] +[division_start units] +[item modules/units/units.man units {unit conversion}] +[division_end] +[division_start uri] +[item modules/uri/uri.man uri {URI utilities}] +[item modules/uri/urn-scheme.man uri_urn {URI utilities, URN scheme}] +[division_end] +[division_start uuid] +[item modules/uuid/uuid.man uuid {UUID generation and comparison}] +[division_end] +[division_start valtype] +[item modules/valtype/valtype_common.man valtype::common {Validation, common code}] +[item modules/valtype/cc_amex.man valtype::creditcard::amex {Validation for AMEX creditcard number}] +[item modules/valtype/cc_discover.man valtype::creditcard::discover {Validation for Discover creditcard number}] +[item modules/valtype/cc_mastercard.man valtype::creditcard::mastercard {Validation for Mastercard creditcard number}] +[item modules/valtype/cc_visa.man valtype::creditcard::visa {Validation for VISA creditcard number}] +[item modules/valtype/ean13.man valtype::gs1::ean13 {Validation for EAN13}] +[item modules/valtype/iban.man valtype::iban {Validation for IBAN}] +[item modules/valtype/imei.man valtype::imei {Validation for IMEI}] +[item modules/valtype/isbn.man valtype::isbn {Validation for ISBN}] +[item modules/valtype/luhn.man valtype::luhn {Validation for plain number with a LUHN checkdigit}] +[item modules/valtype/luhn5.man valtype::luhn5 {Validation for plain number with a LUHN5 checkdigit}] +[item modules/valtype/usnpi.man valtype::usnpi {Validation for USNPI}] +[item modules/valtype/verhoeff.man valtype::verhoeff {Validation for plain number with a VERHOEFF checkdigit}] +[division_end] +[division_start virtchannel_base] +[item modules/virtchannel_base/cat.man tcl::chan::cat {Concatenation channel}] +[item modules/virtchannel_base/facade.man tcl::chan::facade {Facade channel}] +[item modules/virtchannel_base/tcllib_fifo.man tcl::chan::fifo {In-memory fifo channel}] +[item modules/virtchannel_base/tcllib_fifo2.man tcl::chan::fifo2 {In-memory interconnected fifo channels}] +[item modules/virtchannel_base/halfpipe.man tcl::chan::halfpipe {In-memory channel, half of a fifo2}] +[item modules/virtchannel_base/tcllib_memchan.man tcl::chan::memchan {In-memory channel}] +[item modules/virtchannel_base/tcllib_null.man tcl::chan::null {Null channel}] +[item modules/virtchannel_base/nullzero.man tcl::chan::nullzero {Null/Zero channel combination}] +[item modules/virtchannel_base/tcllib_random.man tcl::chan::random {Random channel}] +[item modules/virtchannel_base/std.man tcl::chan::std {Standard I/O, unification of stdin and stdout}] +[item modules/virtchannel_base/tcllib_string.man tcl::chan::string {Read-only in-memory channel}] +[item modules/virtchannel_base/textwindow.man tcl::chan::textwindow {Textwindow channel}] +[item modules/virtchannel_base/tcllib_variable.man tcl::chan::variable {In-memory channel using variable for storage}] +[item modules/virtchannel_base/tcllib_zero.man tcl::chan::zero {Zero channel}] +[item modules/virtchannel_base/randseed.man tcl::randomseed {Utilities for random channels}] +[division_end] +[division_start virtchannel_core] +[item modules/virtchannel_core/core.man tcl::chan::core {Basic reflected/virtual channel support}] +[item modules/virtchannel_core/events.man tcl::chan::events {Event support for reflected/virtual channels}] +[item modules/virtchannel_core/transformcore.man tcl::transform::core {Basic reflected/virtual channel transform support}] +[division_end] +[division_start virtchannel_transform] +[item modules/virtchannel_transform/adler32.man tcl::transform::adler32 {Adler32 transformation}] +[item modules/virtchannel_transform/vt_base64.man tcl::transform::base64 {Base64 encoding transformation}] +[item modules/virtchannel_transform/vt_counter.man tcl::transform::counter {Counter transformation}] +[item modules/virtchannel_transform/vt_crc32.man tcl::transform::crc32 {Crc32 transformation}] +[item modules/virtchannel_transform/hex.man tcl::transform::hex {Hexadecimal encoding transformation}] +[item modules/virtchannel_transform/identity.man tcl::transform::identity {Identity transformation}] +[item modules/virtchannel_transform/limitsize.man tcl::transform::limitsize {limiting input}] +[item modules/virtchannel_transform/observe.man tcl::transform::observe {Observer transformation, stream copy}] +[item modules/virtchannel_transform/vt_otp.man tcl::transform::otp {Encryption via one-time pad}] +[item modules/virtchannel_transform/rot.man tcl::transform::rot rot-encryption] +[item modules/virtchannel_transform/spacer.man tcl::transform::spacer {Space insertation and removal}] +[item modules/virtchannel_transform/tcllib_zlib.man tcl::transform::zlib {zlib (de)compression}] +[division_end] +[division_start websocket] +[item modules/websocket/websocket.man websocket {Tcl implementation of the websocket protocol}] +[division_end] +[division_start wip] +[item modules/wip/wip.man wip {Word Interpreter}] +[division_end] +[division_start yaml] +[item modules/yaml/huddle.man huddle {Create and manipulate huddle object}] +[item modules/yaml/yaml.man yaml {YAML Format Encoder/Decoder}] +[division_end] +[division_start zip] +[item modules/zip/decode.man zipfile::decode {Access to zip archives}] +[item modules/zip/encode.man zipfile::encode {Generation of zip archives}] +[item modules/zip/mkzip.man zipfile::mkzip {Build a zip archive}] +[division_end] +[division_end] +[toc_end]
\ No newline at end of file diff --git a/tcllib/support/devel/sak/doc/topic.txt b/tcllib/support/devel/sak/doc/topic.txt new file mode 100644 index 0000000..294c097 --- /dev/null +++ b/tcllib/support/devel/sak/doc/topic.txt @@ -0,0 +1 @@ +doc Generate documentation in various formats, and/or validate it. diff --git a/tcllib/support/devel/sak/help/cmd.tcl b/tcllib/support/devel/sak/help/cmd.tcl new file mode 100644 index 0000000..8fe5f8e --- /dev/null +++ b/tcllib/support/devel/sak/help/cmd.tcl @@ -0,0 +1,25 @@ +# -*- tcl -*- +# Implementation of 'help'. + +# Available variables +# * argv - Cmdline arguments + +if {[llength $argv] > 2} { + puts stderr "Usage: $argv0 help ?topic?" + exit 1 +} + +package require sak::help + +if {[llength $argv] == 1} { + # Argument is a topic. + # Locate text for the topic. + + sak::help::print [sak::help::on [lindex $argv 0]] + return +} + +sak::help::print [sak::help::alltopics] + +## +# ### diff --git a/tcllib/support/devel/sak/help/help.tcl b/tcllib/support/devel/sak/help/help.tcl new file mode 100644 index 0000000..7e00f1e --- /dev/null +++ b/tcllib/support/devel/sak/help/help.tcl @@ -0,0 +1,75 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::help {} + +# ### + +proc ::sak::help::print {text} { + global critcldefault + puts stdout [string map \ + [list @@ $critcldefault] $text] + return +} + +proc ::sak::help::on {topic} { + variable base + + # Look for static text and dynamic, i.e. generated help. + # Static is prefered. + + set ht [file join $base $topic help.txt] + if {[file exists $ht]} { + return [get_input $ht] + } + + set ht [file join $base $topic help.tcl] + if {[file exists $ht]} { + source $ht + return [sak::help::on::$topic] + } + + set help "" + append help \n + append help " The topic \"$topic\" is not known." \n + append help " The known topics are:" \n\n + + append help [topics] + + return $help +} + +proc ::sak::help::alltopics {} { + # Locate the quick-help for all topics and combine it with a + # general header. + + set help "\n" + append help " SAK - Swiss Army Knife\n\n" + append help " sak is a tool to ease the work" + append help " of developers and release managers. Try:\n\n" + append help [topics] + + return $help +} + +proc ::sak::help::topics {} { + variable base + set help "" + foreach f [lsort [glob -nocomplain -directory $base */topic.txt]] { + append help \tsak\ help\ [get_input $f] + } + return $help +} + +# ### + +namespace eval ::sak::help { + variable base [file join $::distribution support devel sak] +} + +## +# ### + +package provide sak::help 1.0 diff --git a/tcllib/support/devel/sak/help/help.txt b/tcllib/support/devel/sak/help/help.txt new file mode 100644 index 0000000..bca8f35 --- /dev/null +++ b/tcllib/support/devel/sak/help/help.txt @@ -0,0 +1,8 @@ + + help -- Print help message + + sak help ?topic? + + Print a help message about the specified topic. If no topic + was given then print a general help message about SAK itself, + and provide a list of the available topics. diff --git a/tcllib/support/devel/sak/help/pkgIndex.tcl b/tcllib/support/devel/sak/help/pkgIndex.tcl new file mode 100644 index 0000000..609a59a --- /dev/null +++ b/tcllib/support/devel/sak/help/pkgIndex.tcl @@ -0,0 +1,4 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::help 1.0 [list source [file join $dir help.tcl]] + + diff --git a/tcllib/support/devel/sak/help/topic.txt b/tcllib/support/devel/sak/help/topic.txt new file mode 100644 index 0000000..9d1eaca --- /dev/null +++ b/tcllib/support/devel/sak/help/topic.txt @@ -0,0 +1 @@ +help How to use help. diff --git a/tcllib/support/devel/sak/localdoc/cmd.tcl b/tcllib/support/devel/sak/localdoc/cmd.tcl new file mode 100644 index 0000000..e32fce7 --- /dev/null +++ b/tcllib/support/devel/sak/localdoc/cmd.tcl @@ -0,0 +1,21 @@ +# -*- tcl -*- +# Implementation of 'localdoc'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +# ### + +package require sak::localdoc + +if {[llength $argv]} { + sak::localdoc::usage +} + +sak::localdoc::run + +## +# ### diff --git a/tcllib/support/devel/sak/localdoc/help.txt b/tcllib/support/devel/sak/localdoc/help.txt new file mode 100644 index 0000000..256c8ec --- /dev/null +++ b/tcllib/support/devel/sak/localdoc/help.txt @@ -0,0 +1,8 @@ + + localdoc -- Generate documentation for website and installer. + + sak localdoc + + Convert all documentation into html and nroff, for use by the + installer, and the website. For the latter the results of the + conversion are stored in the repository itself. diff --git a/tcllib/support/devel/sak/localdoc/localdoc.tcl b/tcllib/support/devel/sak/localdoc/localdoc.tcl new file mode 100644 index 0000000..36447a8 --- /dev/null +++ b/tcllib/support/devel/sak/localdoc/localdoc.tcl @@ -0,0 +1,129 @@ +# -*- tcl -*- +# sak::doc - Documentation facilities + +package require sak::util +package require sak::doc + +namespace eval ::sak::localdoc {} + +# ### +# API commands + +## ### ### ### ######### ######### ######### + +proc ::sak::localdoc::usage {} { + package require sak::help + puts stdout \n[sak::help::on localdoc] + exit 1 +} + +proc ::sak::localdoc::run {} { + getpackage cmdline cmdline/cmdline.tcl + getpackage fileutil fileutil/fileutil.tcl + getpackage textutil::repeat textutil/repeat.tcl + getpackage doctools doctools/doctools.tcl + getpackage doctools::toc doctools/doctoc.tcl + getpackage doctools::idx doctools/docidx.tcl + getpackage dtplite dtplite/dtplite.tcl + + # Read installation information. Need the list of excluded + # modules to suppress them here in the doc generation as well. + global excluded modules apps guide + source support/installation/modules.tcl + + lappend baseconfig -module tcllib + foreach e $excluded { + puts "Excluding $e ..." + lappend baseconfig -exclude */modules/$e/* + } + + set nav ../../../../home + + puts "Reindex the documentation..." + sak::doc::imake __dummy__ + sak::doc::index __dummy__ + + puts "Removing old documentation..." + # but keep the main index around, manually created, edited, not to be touched + # TODO: catch errors and restore automatically + file rename embedded/index.html e_index.html + + file delete -force embedded + file mkdir embedded/www + + # Put the saved main page back into place, early. + file rename e_index.html embedded/index.html + + file delete -force idoc + file mkdir idoc/man + file mkdir idoc/www + + puts "Generating manpages (installation)..." + set config $baseconfig + lappend config -exclude {*/doctools/tests/*} + lappend config -exclude {*/support/*} + lappend config -ext n + lappend config -o idoc/man + lappend config nroff . + + dtplite::do $config + + # Note: Might be better to run them separately. + # Note @: Or we shuffle the results a bit more in the post processing stage. + + set map { + .man .html + modules/ tcllib/files/modules/ + apps/ tcllib/files/apps/ + } + + set toc [string map $map [fileutil::cat support/devel/sak/doc/toc.txt]] + set apps [string map $map [fileutil::cat support/devel/sak/doc/toc_apps.txt]] + set mods [string map $map [fileutil::cat support/devel/sak/doc/toc_mods.txt]] + set cats [string map $map [fileutil::cat support/devel/sak/doc/toc_cats.txt]] + + puts "Generating HTML (installation)... Pass 1, draft..." + set config $baseconfig + lappend config -exclude {*/doctools/tests/*} + lappend config -exclude {*/support/*} + lappend config -toc $toc + lappend config -nav {Tcllib Home} $nav + lappend config -post+toc Categories $cats + lappend config -post+toc Modules $mods + lappend config -post+toc Applications $apps + lappend config -merge + lappend config -o idoc/www + lappend config html . + + dtplite::do $config + + puts "Generating HTML (installation)... Pass 2, resolving cross-references..." + dtplite::do $config + + puts "Generating HTML (online)... Pass 1, draft..." + set config $baseconfig + lappend config -exclude {*/doctools/tests/*} + lappend config -exclude {*/support/*} + lappend config -toc $toc + lappend config -post+toc Categories $cats + lappend config -post+toc Modules $mods + lappend config -post+toc Applications $apps + lappend config -merge + lappend config -raw + lappend config -o embedded/www + lappend config -header support/fossil-nav-integration.html + lappend config html . + + dtplite::do $config + + puts "Generating HTML (online)... Pass 2, resolving cross-references..." + dtplite::do $config + return +} + +# ### ### ### ######### ######### ######### + +package provide sak::localdoc 1.0 + +## +# ### diff --git a/tcllib/support/devel/sak/localdoc/pkgIndex.tcl b/tcllib/support/devel/sak/localdoc/pkgIndex.tcl new file mode 100644 index 0000000..560504b --- /dev/null +++ b/tcllib/support/devel/sak/localdoc/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::localdoc 1.0 [list source [file join $dir localdoc.tcl]] diff --git a/tcllib/support/devel/sak/localdoc/topic.txt b/tcllib/support/devel/sak/localdoc/topic.txt new file mode 100644 index 0000000..4c1f934 --- /dev/null +++ b/tcllib/support/devel/sak/localdoc/topic.txt @@ -0,0 +1,2 @@ +localdoc Generate html & nroff documentation for display + from the website, and the installer. diff --git a/tcllib/support/devel/sak/old/help.txt b/tcllib/support/devel/sak/old/help.txt new file mode 100644 index 0000000..bc9ed95 --- /dev/null +++ b/tcllib/support/devel/sak/old/help.txt @@ -0,0 +1,102 @@ + Commands available through the swiss army knife aka SAK: + + help - This help + + /Configuration + /=========================================================== + + version - Return the bundle's version number + major - Return the bundle's major version number + minor - Return the bundle's minor version number + name - Return the bundle's package name + + /Development + /=========================================================== + + modules - Return list of modules. + contributors - Print a list of contributors to the bundle. + lmodules - See above, however one module per line + imodules - Return list of modules known to the installer. + critcl-modules - Return a list of modules with critcl enhancements. + + packages - Return indexed packages in the bundle, plus versions, + one package per line. Extracted from the + package indices found in the modules. + + provided - Return list and versions of provided packages + (in contrast to indexed). + + critcl ?module? - Build a critcl module [default is @@]. + + bench ?opt? ?module..? + - Run benchmark scripts (*.bench). + + Options: -throwerrors 0|1 Propagate errors if set. + -match pattern Exclude benchmarks not matching the + glob pattern. + -rmatch pattern S.a, but a regexp pattern. + -iters integer Max #iterations for all benchmarks. + -threads integer #Threads to use for threaded shells. + -o path File to write the results too. + -format text|csv|raw Format to use for the results. + -norm column Normalize results using the specified + column as reference. + -verbose Informational output during the run. + -debug Internal output during the run. + + bench/show ?-o path? ?-format f? ?-norm col? file... + + Reads the files, merges the data, then + writes the result back in the specified + format, to the specified file, possibly + normalizing to a column. Without a file + the result is written to stdout. + + bench/edit ?-o path? ?-format f? file col newvalue + + Reads the file, changes the interpreter + path in the column to a new value. For + merging of data from the same interpreter, + but possibly different versions of the + benchmarked package, like Tcllib. + + bench/del ?-o path? ?-format f? file col... + + Reads the file and removes the specified + columns. To delete unnecessary data in merged + results. + + oldvalidate ?module..? - Check listed modules for problems. + For all modules if none specified. + + oldvalidate_v ?module..? - Check listed modules for for version + problems. For all modules if none + specified. + + test ?module...? - Run testsuite for listed modules. + For all modules if none specified. + + docstrip/users - List modules using docstrip + docstrip/regen ?module...? - Regenerate the sources of all + or the listed modules from their + docstrip sources. + + /Documentation + /=========================================================== + + desc ?module...? - Module/Package descriptions + desc/2 ?module...? - Module/Package descriptions, alternate format. + + /Release engineering + /=========================================================== + + gendist - Generate distribution from CVS snapshot + + rpmspec - Generate a RPM spec file for the bundle. + gentip55 - Generate a TIP55-style DESCRIPTION.txt file. + yml - Generate a YAML description file. + + release name sf-user-id + - Marks the current state of all files as a new + release. This updates all ChangeLog's, and + regenerates the contents of PACKAGES diff --git a/tcllib/support/devel/sak/old/topic.txt b/tcllib/support/devel/sak/old/topic.txt new file mode 100644 index 0000000..4b94c29 --- /dev/null +++ b/tcllib/support/devel/sak/old/topic.txt @@ -0,0 +1 @@ +old Help for the existing command set. diff --git a/tcllib/support/devel/sak/readme/cmd.tcl b/tcllib/support/devel/sak/readme/cmd.tcl new file mode 100644 index 0000000..378ec46 --- /dev/null +++ b/tcllib/support/devel/sak/readme/cmd.tcl @@ -0,0 +1,25 @@ +# -*- tcl -*- +# Implementation of 'readme'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +package require sak::util +package require sak::readme + +set raw 0 +set log 0 +set stem {} +set tclv {} + +if {[llength $argv]} { + sak::readme::usage +} + +sak::readme::run + +## +# ### diff --git a/tcllib/support/devel/sak/readme/help.txt b/tcllib/support/devel/sak/readme/help.txt new file mode 100644 index 0000000..a7e5a6d --- /dev/null +++ b/tcllib/support/devel/sak/readme/help.txt @@ -0,0 +1,14 @@ + + readme -- Generate a readme listing changes to modules and packages. + + sak readme + + This command compares the current state of the modules and + packages and against information from the last release + (support/releases/PACKAGES) and generates a README.txt listing + the relevant changes (new modules/packages, package version + changes, unchanged packages). + + The generated README is written to stdout. + + This is a support command for the release manager. diff --git a/tcllib/support/devel/sak/readme/pkgIndex.tcl b/tcllib/support/devel/sak/readme/pkgIndex.tcl new file mode 100644 index 0000000..adbce09 --- /dev/null +++ b/tcllib/support/devel/sak/readme/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::readme 1.0 [list source [file join $dir readme.tcl]] diff --git a/tcllib/support/devel/sak/readme/readme.tcl b/tcllib/support/devel/sak/readme/readme.tcl new file mode 100644 index 0000000..165335e --- /dev/null +++ b/tcllib/support/devel/sak/readme/readme.tcl @@ -0,0 +1,448 @@ +# -*- tcl -*- +# (C) 2009 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::color +package require sak::review + +namespace eval ::sak::readme { + namespace import ::sak::color::* +} + +# ### + +proc ::sak::readme::usage {} { + package require sak::help + puts stdout \n[sak::help::on readme] + exit 1 +} + +proc ::sak::readme::run {} { + global package_name package_version + + getpackage struct::set struct/sets.tcl + getpackage struct::matrix struct/matrix.tcl + getpackage textutil::adjust textutil/adjust.tcl + + # Future: Consolidate with ... review ... + # Determine which packages are potentially changed, from the set + # of modules touched since the last release, as per the fossil + # repository's commit log. + + foreach {trunk tuid} [sak::review::Leaf trunk] break ;# rid + uuid + foreach {release ruid} [sak::review::YoungestOfTag release] break ;# datetime+uuid + + sak::review::AllParentsAfter $trunk $tuid $release $ruid -> rid uuid { + sak::review::FileSet $rid -> path action { + lappend modifiedm [lindex [file split $path] 1] + } + } + set modifiedm [lsort -unique $modifiedm] + + set issues {} + + # package -> list(version) + set old_version [loadoldv [location_PACKAGES]] + array set releasep [loadpkglist [location_PACKAGES]] + array set currentp [ipackages] + + array set changed {} + foreach p [array names currentp] { + foreach {vlist module} $currentp($p) break + set currentp($p) $vlist + set changed($p) [struct::set contains $modifiedm $module] + } + + LoadNotes + + # Containers for results + struct::matrix NEW ; NEW add columns 4 ; # module, package, version, notes + struct::matrix CHG ; CHG add columns 5 ; # module, package, old/new version, notes + struct::matrix ICH ; ICH add columns 5 ; # module, package, old/new version, notes + struct::matrix CNT ; CNT add columns 5; + set UCH {} + + NEW add row {Module Package {New Version} Comments} + + CHG add row [list {} {} "$package_name $old_version" "$package_name $package_version" {}] + CHG add row {Module Package {Old Version} {New Version} Comments} + + ICH add row [list {} {} "$package_name $old_version" "$package_name $package_version" {}] + ICH add row {Module Package {Old Version} {New Version} Comments} + + set newp {} ; set chgp {} ; set ichp {} + set newm {} ; set chgm {} ; set ichm {} ; set uchm {} + set nm 0 + set np 0 + + # Process all packages in all modules ... + foreach m [lsort -dict [modules]] { + puts stderr ...$m + incr nm + + foreach name [lsort -dict [Provided $m]] { + #puts stderr ......$p + incr np + + # Define list of versions, if undefined so far. + if {![info exists currentp($name)]} { + set currentp($name) {} + } + + # Detect and process new packages. + + if {![info exists releasep($name)]} { + # New package. + foreach v $currentp($name) { + puts stderr .........NEW + NEW add row [list $m $name $v [Note $m $name]] + lappend newm $m + lappend newp $name + } + continue + } + + # The package is not new, but possibly changed. And even + # if the version has not changed it may have been, this is + # indicated by changed(), which is based on the ChangeLog. + + set vequal [struct::set equal $releasep($name) $currentp($name)] + set note [Note $m $name] + + if {$vequal && ($note ne {})} { + if {$note eq "---"} { + # The note declares the package as unchanged. + puts stderr .........UNCHANGED/1 + lappend uchm $m + lappend UCH $name + } else { + # Note for package without version changes => must be invisible + puts stderr .........INVISIBLE-CHANGE + Enter $m $name $note ICH + lappend ichm $m + lappend ichp $name + } + continue + } + + if {!$changed($name) && $vequal} { + # Versions are unchanged, changelog also indicates no + # change. No particular attention here. + + puts stderr .........UNCHANGED/2 + lappend uchm $m + lappend UCH $name + continue + } + + if {$changed($name) && !$vequal} { + # Both changelog and version number indicate a + # change. Small alert, have to classify the order of + # changes. But not if there is a note, this is assumed + # to be the classification. + + if {$note eq {}} { + set note "\t=== Classify changes." + lappend issues [list $m $name "Classify changes"] + } + Enter $m $name $note + + lappend chgm $m + lappend chgp $name + continue + } + + # Changed according to ChangeLog, Version is not. ALERT. + # or: Versions changed, but according to changelog nothing + # in the code. ALERT. + + # Suppress the alert if we have a note, and dispatch per + # the note's contents (some tags are special, instructions + # to us here). + + if {($note eq {})} { + if {$changed($name)} { + # Changed according to ChangeLog, Version is not. ALERT. + set note "\t<<< MISMATCH. Version ==, ChangeLog ++" + } else { + set note "\t<<< MISMATCH. ChangeLog ==, Version ++" + } + + lappend issues [list $m $name [string range $note 5 end]] + } + + Enter $m $name $note + lappend chgm $m + lappend chgp $name + } + } + + # .... process the matrices and others results, make them presentable ... + + set newp [llength [lsort -uniq $newp]] + set newm [llength [lsort -uniq $newm]] + if {$newp} { + CNT add row [list $newp {new packages} in $newm modules] + } + + set chgp [llength [lsort -uniq $chgp]] + set chgm [llength [lsort -uniq $chgm]] + if {$chgp} { + CNT add row [list $chgp {changed packages} in $chgm modules] + } + + set ichp [llength [lsort -uniq $ichp]] + set ichm [llength [lsort -uniq $ichm]] + if {$ichp} { + CNT add row [list $ichp {internally changed packages} in $ichm modules] + } + + set uchp [llength [lsort -uniq $UCH]] + set uchm [llength [lsort -uniq $uchm]] + if {$uchp} { + CNT add row [list $uchp {unchanged packages} in $uchm modules] + } + + CNT add row [list $np {packages, total} in $nm {modules, total}] + + Header Overview + puts "" + if {[CNT rows] > 0} { + puts [Indent " " [Detrail [CNT format 2string]]] + } + puts "" + + if {[NEW rows] > 1} { + Header "New in $package_name $package_version" + puts "" + Sep NEW - [Clean NEW 1 0] + puts [Indent " " [Detrail [NEW format 2string]]] + puts "" + } + + if {[CHG rows] > 2} { + Header "Changes from $package_name $old_version to $package_version" + puts "" + Sep CHG - [Clean CHG 2 0] + puts [Indent " " [Detrail [CHG format 2string]]] + puts "" + } + + if {[ICH rows] > 2} { + Header "Invisible changes (documentation, testsuites)" + puts "" + Sep ICH - [Clean ICH 2 0] + puts [Indent " " [Detrail [ICH format 2string]]] + puts "" + } + + if {[llength $UCH]} { + Header Unchanged + puts "" + puts [Indent " " [textutil::adjust::adjust \ + [join [lsort -dict $UCH] {, }] -length 64]] + } + + variable legend + puts $legend + + if {![llength $issues]} return + + puts stderr [=red "Issues found ([llength $issues])"] + puts stderr " Please run \"./sak.tcl review\" to resolve," + puts stderr " then run \"./sak.tcl readme\" again." + puts stderr Details: + + struct::matrix ISS ; ISS add columns 3 + foreach issue $issues { + foreach {m p w} $issue break + set m " $m" + ISS add row [list $m $p $w] + } + + puts stderr [ISS format 2string] + + + puts stderr [=red "Issues found ([llength $issues])"] + puts stderr " Please run \"./sak.tcl review\" to resolve," + puts stderr " then run \"./sak.tcl readme\" again." + return +} + +proc ::sak::readme::Header {s {sep =}} { + puts $s + puts [string repeat $sep [string length $s]] + return +} + +proc ::sak::readme::Enter {m name note {mat CHG}} { + upvar 1 currentp currentp releasep releasep + + # To handle multiple versions we match the found versions up by + # major version. We assume that we have only one version per major + # version. This allows us to detect changes within each major + # version, new major versions, etc. + + array set om {} ; foreach v $releasep($name) {set om([lindex [split $v .] 0]) $v} + array set cm {} ; foreach v $currentp($name) {set cm([lindex [split $v .] 0]) $v} + + set all [lsort -dict [struct::set union [array names om] [array names cm]]] + + sakdebug { + puts @@@@@@@@@@@@@@@@ + parray om + parray cm + puts all\ $all + puts @@@@@@@@@@@@@@@@ + } + + foreach v $all { + if {[info exists om($v)]} {set ov $om($v)} else {set ov ""} + if {[info exists cm($v)]} {set cv $cm($v)} else {set cv ""} + $mat add row [list $m $name $ov $cv $note] + } + return +} + +proc ::sak::readme::Clean {m start col} { + set n [$m rows] + set marks [list $start] + set last {} + set lastm -1 + set sq 0 + + for {set i $start} {$i < $n} {incr i} { + set str [$m get cell $col $i] + + if {$str eq $last} { + set sq 1 + $m set cell $col $i {} + if {$lastm >= 0} { + #puts stderr "@ $i / <$last> / <$str> / ++ $lastm" + lappend marks $lastm + set lastm -1 + } else { + #puts stderr "@ $i / <$last> / <$str> /" + } + } else { + set last $str + set lastm $i + if {$sq} { + #puts stderr "@ $i / <$last> / <$str> / ++ $i /saved" + lappend marks $i + set sq 0 + } else { + #puts stderr "@ $i / <$last> / <$str> / saved" + } + } + } + return [lsort -uniq -increasing -integer $marks] +} + +proc ::sak::readme::Sep {m char marks} { + + #puts stderr "$m = $marks" + + set n [$m columns] + set sep {} + for {set i 0} {$i < $n} {incr i} { + lappend sep [string repeat $char [expr {2+[$m columnwidth $i]}]] + } + + foreach k [linsert [lsort -decreasing -integer -uniq $marks] 0 end] { + $m insert row $k $sep + } + return +} + +proc ::sak::readme::Indent {pfx text} { + return ${pfx}[join [split $text \n] \n$pfx] +} + +proc ::sak::readme::Detrail {text} { + set res {} + foreach line [split $text \n] { + lappend res [string trimright $line] + } + return [join $res \n] +} + +proc ::sak::readme::Note {m p} { + # Look for a note, and present to caller, if any. + variable notes + #parray notes + set k [list $m $p] + #puts <$k> + if {[info exists notes($k)]} { + return [join $notes($k) { }] + } + return "" +} + +proc ::sak::readme::Provided {m} { + set result {} + foreach {p ___} [ppackages $m] { + lappend result $p + } + return $result +} + +proc ::sak::readme::LoadNotes {} { + global distribution + variable notes + array set notes {} + + catch { + set f [file join $distribution .NOTE] + set f [open $f r] + while {![eof $f]} { + if {[gets $f line] < 0} continue + set line [string trim $line] + if {$line == {}} continue + foreach {k t} $line break + set notes($k) $t + } + close $f + } msg + return +} + +proc ::sak::readme::loadoldv {fname} { + set f [open $fname r] + foreach line [split [read $f] \n] { + set line [string trim $line] + if {[string match @* $line]} { + foreach {__ __ v} $line break + close $f + return $v + } + } + close $f + return -code error {Version not found} +} + +## +# ### + +namespace eval ::sak::readme { + variable legend { +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + } + + variable review {} +} + +package provide sak::readme 1.0 diff --git a/tcllib/support/devel/sak/readme/topic.txt b/tcllib/support/devel/sak/readme/topic.txt new file mode 100644 index 0000000..938361f --- /dev/null +++ b/tcllib/support/devel/sak/readme/topic.txt @@ -0,0 +1,2 @@ +readme Generate a README listing the changes to modules and packages + since the last release. diff --git a/tcllib/support/devel/sak/registry/pkgIndex.tcl b/tcllib/support/devel/sak/registry/pkgIndex.tcl new file mode 100644 index 0000000..0e6116b --- /dev/null +++ b/tcllib/support/devel/sak/registry/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {![package vsatisfies [package provide Tcl] 8.3]} return +package ifneeded pregistry 0.1 [list source [file join $dir registry.tcl]] diff --git a/tcllib/support/devel/sak/registry/registry.man b/tcllib/support/devel/sak/registry/registry.man new file mode 100644 index 0000000..d895164 --- /dev/null +++ b/tcllib/support/devel/sak/registry/registry.man @@ -0,0 +1,171 @@ +[comment {-*- tcl -*- doctools manpage}] +[manpage_begin pregistry n 0.1] +[copyright {2006 Andreas Kupries <andreas_kupries@users.sourceforge.net>}] +[moddesc {Registry like data store}] +[titledesc {Registry like data store}] +[require Tcl 8.3] +[require pregistry [opt 0.1]] +[description] +[para] + +This package provides a class for the creation of registry-like data +storage objects. The contents of each storage are organized in a tree, +with each node managing a set of children and attributes, each +possibly empty. Stores are not persistent by default, but can be made +so through configuring them with a tie backend to talk to. + + +[section {Class API}] + +The package exports a single command, the class command, enabling the +creation of registry instances. Its API is: + +[list_begin definitions] + +[call [cmd ::pregistry] [arg object] [arg options]...] + +This command creates a new registry object with the name [arg object], +initializes it, and returns the fully qualified name of the object +command as its result. + +[para] + +The recognized options are explained in section [sectref OPTIONS]. + +[list_end] + +[section {Object API}] + +The objects created by the class command provide the methods listed below: + +[list_begin definitions] +[call [arg object] [method delete] [arg key] [opt [arg attr]]] + +If the optional [arg attr] argument is present, the specified +attribute under [arg key] will be deleted from the object. + +If the optional [arg attr] is omitted, the specified [arg key] and any +subkeys or attributes beneath it in the hierarchy will be deleted. If +the key could not be deleted then an error is generated. If the key +did not exist, the command has no effect. + +The command returns the empty string as its result. + + +[call [arg object] [method mtime] [arg key] [opt [arg attr]]] + +If the optional [arg attr] argument is present, the time of the last +modification of the specified attribute under [arg key] will be +returned, in seconds since the epoch. + +If the optional [arg attr] is omitted, the time of the last +modification of the specified [arg key] will be returned. + +If the key did not exist, the command will generate an error. + + +[call [arg object] [method exists] [arg key] [opt [arg attr]]] + +If the optional [arg attr] argument is present, the method checks +whether the specified attribute under [arg key] is present or not. + +If the optional [arg attr] is omitted, the method checks whether the +specified [arg key] is present or not. + +In both cases the result returned is boolean value, [const True] if +the checked entity exists, and [const False] otherwise. + + +[call [arg object] [method get] [arg key] [arg attr]] + +Returns the data associated with the attribute [arg attr] under the +[arg key]. If either the key or the attribute does not exist, then an +error is generated. + + +[call [arg object] [method get||default] [arg key] [arg attr] [arg default]] + +Like method [method get], except that the [arg default] is returned if +either the key or the attribute does not exist, instead of generating +an error. + + +[call [arg object] [method keys] [arg key] [opt [arg pattern]]] + +If [arg pattern] isn't specified, the command returns a list of names +of all the subkeys of [arg key]. If [arg pattern] is specified, only +those names matching the pattern are returned. Matching is determined +using the same rules as for [cmd {string match}]. If the specified +[arg key] does not exist, then an error is generated. + + +[call [arg object] [method set] [arg key] [opt "[arg attr] [arg value]"]] + +If [arg attr] isn't specified, creates the [arg key] if it doesn't +already exist. If [arg attr] is specified, creates the [arg key] +keyName and attribute [arg attr] if necessary. + +The contents of [arg attr] are set to [arg value]. The command returns +the [arg value] as its result. + + +[call [arg object] [method attrs] [arg key] [opt [arg pattern]]] + +If [arg pattern] isn't specified, returns a list of names of all the +attributes of [arg key]. If [arg pattern] is specified, only those +names matching the pattern are returned. Matching is determined using +the same rules as for [cmd {string match}]. + + + +[call [arg object] [method configure]] + +Returns a dictionary mapping the option of the object to their +currently configured values. + +[call [arg object] [method configure] [arg option] [arg newvalue]...] + +This invokation sets the configured value of option [arg option] to +[arg newvalue]. Nothing will be done if current and new value are +identical. Returns the empty string. + +[call [arg object] [method configure] [arg option]] +[call [arg object] [method cget] [arg option]] + +Returns the value configured for the specified option [arg option]. + +[list_end] + + +[section KEYS] + +All elements in the registry are identified by a unique key, which is +a list of strings. This identifies the path from the root of the tree +to the requested element. The root itself is identified by the empty +list. Each child C of an element E have to have unique name, which +will be the last element of the key identifying this child. The head +of the key will be the key of E. + + +[section OPTIONS] + +The registry object recognize a single option, + +[list_begin options] +[opt_def -tie tiedefinition] + +See the documentation of command [cmd ::tie::tie], in the package +[package tie]. The value of the option is a list of words equivalent +to the arguments "[arg dstype] [arg dsname]..." of [cmd ::tie::tie]. +I.e. the identity of the tie backend to use, followed by the +specification of the location to use, per the chosen backend. + +Example: +[example { + set r [pregistry %AUTO% -tie [list file $path]] +}] + +[list_end] + +[keywords registry {data store} tree] +[manpage_end] diff --git a/tcllib/support/devel/sak/registry/registry.tcl b/tcllib/support/devel/sak/registry/registry.tcl new file mode 100644 index 0000000..2fc4639 --- /dev/null +++ b/tcllib/support/devel/sak/registry/registry.tcl @@ -0,0 +1,287 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require Tcl 8.3 +package require snit +package require tie + +# ### + +snit::type pregistry { + + # API + # delete key ?attribute? + # mtime key ?attribute? + # get key attribute + # keys key ?pattern?/* + # set key ?attribute value? + # attrs key ?pattern? + + option -tie -default {} -configuremethod TIE ; # Persistence + + constructor {args} { + $self configurelist $args + $self INIT + return + } + + # ### + + method delete {key args} { + #puts DEL|$key| + + if {[llength $args] > 1} {return -code error "wrong\#args"} + + if {[catch {NODE $key} n]} return + if {[llength $args]} { + # Delete attribute + + set attr [lindex $args 0] + set pattern [list A $n $attr *] + set km [list N $n M] + + array unset data $pattern + set data($km) [clock seconds] + } else { + # Delete key and children. + #puts N|$n| + + if {![llength $key]} { + return -code error "cannot delete root" + } + + # Children first + foreach c [array names data [list C $n *]] { + set c [lindex $c end] + #puts _|$c| + $self delete [linsert $key end $c] + } + + # And now the node itself. Modify the parent as well, + # remove this node as a child. + + set self [lindex $key end] + set pidx [list N $n P] + set npat [list N $n *] + set apat [list A $n * *] + + set pid $data($pidx) + set cidx [list C $pid $self] + set midx [list N $pid M] + + array unset data $apat + array unset data $npat + unset -nocomplain data($cidx) + set data($midx) [clock seconds] + + unset -nocomplain ncache($key) + } + return + } + + method mtime {key args} { + if {[llength $args] > 1} {return -code error "wrong\#args"} + set n [NODE $key] + if {[llength $args]} { + set attr [lindex $args 0] + set idx [list A $n $attr M] + if {![info exists data($idx)]} { + return -code error "Unknown attribute \"$attr\" in key \"$key\"" + } + } else { + set idx [list N $n M] + } + return $data($idx) + } + + method exists {key args} { + if {[llength $args] > 1} { + return -code error "wrong\#args" + } elseif {[catch {NODE $key} n]} { + return 0 + } elseif {![llength $args]} { + return 1 + } + + set attr [lindex $args 0] + set idx [list A $n $attr V] + return [info exist data($idx)] + } + + method get {key attr} { + set n [NODE $key] + set idx [list A $n $attr V] + if {![info exists data($idx)]} { + return -code error "Unknown attribute \"$attr\" in key \"$key\"" + } + return $data($idx) + } + + method get||default {key attr default} { + if {[catch {NODE $key} n]} { + return $default + } + set idx [list A $n $attr V] + if {![info exists data($idx)]} { + return $default + } + return $data($idx) + } + + method keys {key {pattern *}} { + set n [NODE $key] + set pattern [list C $n $pattern] + set res {} + foreach c [array names data $pattern] { + lappend res [linsert $key end $c] + } + return $res + } + + method attrs {key {pattern *}} { + set n [NODE $key] + set pattern [list A $n $pattern V] + set res {} + foreach c [array names data $pattern] { + lappend res [lindex $c end-1] + } + return $res + } + + method lappend {key attr value} { + set list [$self get||default $key $attr {}] + lappend list $value + $self set $key $attr $list + return + } + + method set {key args} { + set n [NODE $key 1] + if {![llength $args]} return + if {[llength $args] != 2} {return -code error "wrong\#args"} + foreach {attr value} $args break + + # Ignore calls which do not change the contents of the + # database. + + set aidx [list A $n $attr V] + if { + [info exists data($aidx)] && + [string equal $data($aidx) $value] + } return ; # {} + + #puts stderr "$n $attr | $key | ($value)" + + set aids [list A $n $attr M] + set data($aidx) $value + set data($aids) [clock seconds] + return + } + + # ### state + + variable data -array {} + + # Tree of keys. Each keys can have multiple attributes. + # Each key, and attribute, have a modification timestamp. + + # Each node in the tree is identified by a numeric id. Children + # refer to their parents. Parent id + name refers to unique child. + + # Array contents + + # (I) -> number id counter + # (C id name) -> id parent id x name => child id + # (N id P) -> id node id => parent id, empty for root + # (N id M) -> timestamp node id => last modification + # (A id name V) -> string node id x attribute name => value + # (A id name M) -> timestamp s.a => last modification + + # This structure is less memory/space intensive than the setup of + # 1registry. It is also more difficult to query as it is less + # tabular, less redundant. + + # Another thing becoming more complex is the deletion of a + # subtree. It is now necessary to walk the the tree, instead of + # just deleting all keys in the array matching a certain + # pattern. That at least can be done at the C level (array unset). + + # The conversion from key list to node is also linear in key + # length, and an operation done often. Better cache it. However + # only internally, or the space savingsare gone too as the space + # is then taken by the conversion cache. Hm. Still less than + # before, as each key is listed at most once. In 1registry it was + # repeated for each of its attributes as well. This would regain + # speed for searches, as the conversion cache now is a tabular + # representation of the tree, and easily globbed. + + # ### configure -tie (persistence) + + method TIE {option value} { + if {[string equal $options(-tie) $value]} return + tie::untie [myvar data] + # 8.5 - tie::tie [myvar data] {expand}$value + eval [linsert $value 0 tie::tie [myvar data]] + set options(-tie) $value + return + } + + method INIT {} { + if {![info exists data(I)]} { + set anchor {C {} {}} + set rootp {N 0 P} + set roots {N 0 M} + + set data(I) 0 + set data($anchor) 0 + set data($rootp) {} + set data($roots) [clock seconds] + } + return + } + + variable ncache -array {} + + proc NODE {key {create 0}} { + upvar 1 ncache ncache data data + if {[info exist ncache($key)]} { + # Cached, shortcut + return $ncache($key) + } + if {![llength $key]} { + # Root, shortcut + set id 0 + } else { + # Recursively convert, possibly create + set parent [lrange $key 0 end-1] + set self [lindex $key end] + set pid [NODE $parent $create] + set idx [list C $pid $self] + + if {[info exists data($idx)]} { + set id $data($idx) + } elseif {!$create} { + return -code error "Unknown key \"$key\"" + } else { + set id [incr data(I)] + set idxp [list N $id P] + set idxm [list N $id M] + + set data($idx) $id + set data($idxp) $pid + set data($idxm) [clock seconds] + } + } + set ncache($key) $id + return $id + } + + # ### +} + +## +# ### + +package provide pregistry 0.1 diff --git a/tcllib/support/devel/sak/registry/registry.test b/tcllib/support/devel/sak/registry/registry.test new file mode 100644 index 0000000..4dead0c --- /dev/null +++ b/tcllib/support/devel/sak/registry/registry.test @@ -0,0 +1,450 @@ +# -*- tcl -*- +# registry.test: tests for the registry structure. +# +# Copyright (c) 2006 by Andreas Kupries <a.kupries@westend.com> +# All rights reserved. +# +# RCS: @(#) $Id: registry.test,v 1.1 2006/09/06 06:07:09 andreas_kupries Exp $ + +# ------------------------------------------------------------------------- + +source [file join \ + [file dirname [file dirname [file join [pwd] [info script]]]] \ + devtools testutilities.tcl] + +testsNeedTcl 8.3 +testsNeedTcltest 2.2 + +support { + use snit/snit.tcl snit + use tie/tie.tcl tie +} +testing { + useLocal registry.tcl pregistry +} + +# ------------------------------------------------------------------------- + +proc dump/ {r {root {}} {rv {}}} { + if {$rv != {}} {upvar 1 $rv res} else {set res {}} + lappend res $root/ + foreach a [$r attrs $root] { + lappend res [list $root/ :$a [$r get $root $a]] + } + foreach c [$r keys $root] { + dump/ $r $c res + } + return $res +} + +proc dump {r root} { + lappend res $root/ + foreach a [$r attrs $root] { + lappend res [list $root/ :$a [$r get $root $a]] + } + return $res +} + +# ------------------------------------------------------------------------- + +test registry-1.0 {base state} { + pregistry myreg + set res [dump/ myreg] + myreg destroy + set res +} / + +# ------------------------------------------------------------------------- +# Attribute manipulation, root, in-tree, and leaf + +set n 0 +foreach {key prekey structure} { + {} {} / + {sub tree leaf} {} {/ sub/ {sub tree/} {sub tree leaf/}} + {sub tree} {sub tree leaf} {/ sub/ {sub tree/} {sub tree leaf/}} +} { + test registry-2.$n {structure} { + pregistry myreg + myreg set $prekey + myreg set $key + set res [dump/ myreg] + myreg destroy + set res + } $structure + + test registry-3.1.$n {no attributes, node creation} { + pregistry myreg + myreg set $prekey + myreg set $key + set res [dump myreg $key] + myreg destroy + set res + } [list $key/] + + test registry-3.2.$n {bad node creation} { + pregistry myreg + catch {myreg set} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodset type selfns win self key args"} + + test registry-3.3.$n {bad node creation} { + pregistry myreg + catch {myreg set a b c d} res + myreg destroy + set res + } {wrong#args} + + test registry-3.4.$n {bad node creation} { + pregistry myreg + catch {myreg set a b} res + myreg destroy + set res + } {wrong#args} + + test registry-4.1.$n {set attribute, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [dump myreg $key] + myreg destroy + set res + } [list $key/ [list $key/ :foo bar]] + + test registry-4.2.$n {set attribute, change} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg get $key foo] + myreg set $key foo bold + lappend res [myreg get $key foo] + myreg destroy + set res + } {bar bold} + + test registry-5.1.$n {get attribute, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg get $key foo] + myreg destroy + set res + } bar + + test registry-5.2.$n {get attribute, missing attribute} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get $key alpha} res + myreg destroy + set res + } "Unknown attribute \"alpha\" in key \"$key\"" + + test registry-5.3.$n {get attribute, missing key} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get TEST x} res + myreg destroy + set res + } {Unknown key "TEST"} + + test registry-5.4.$n {get attribute, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget type selfns win self key attr"} + + test registry-5.5.$n {get attribute, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get x} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget type selfns win self key attr"} + + test registry-5.6.$n {get attribute, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get x y z} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget type selfns win self key attr"} + + test registry-6.1.$n {get||default, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg get||default $key foo DEF] + myreg destroy + set res + } bar + + test registry-6.2.$n {get||default, missing attribute} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg get||default $key alpha DEF] + myreg destroy + set res + } DEF + + test registry-6.3.$n {get||default, missing key} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg get||default TEST x DEF] + myreg destroy + set res + } DEF + + test registry-6.4.$n {get||default, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get||default} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget||default type selfns win self key attr default"} + + test registry-6.5.$n {get||default, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get||default x} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget||default type selfns win self key attr default"} + + test registry-6.6.$n {get||default, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get||default x y} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget||default type selfns win self key attr default"} + + test registry-6.7.$n {get||default, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg get||default x y z a} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodget||default type selfns win self key attr default"} + + test registry-7.1.$n {attribute matching, total} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + myreg set $key alpha omega + set res [lsort [myreg attrs $key]] + myreg destroy + set res + } {alpha foo} + + test registry-7.2.$n {attribute matching, partial} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + myreg set $key alpha omega + set res [lsort [myreg attrs $key a*]] + myreg destroy + set res + } alpha + + test registry-7.3.$n {attribute matching, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg attrs} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodattrs type selfns win self key ?pattern?"} + + test registry-7.4.$n {attribute matching, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg attrs x y z} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodattrs type selfns win self key ?pattern?"} + + test registry-8.1.$n {attribute existence, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg exists $key foo] + myreg destroy + set res + } 1 + + test registry-8.2.$n {attribute existence, missing} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg exists $key alpha] + myreg destroy + set res + } 0 + + test registry-8.3.$n {attribute existence, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg exists} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodexists type selfns win self key args"} + + test registry-8.4.$n {attribute existence, wrong#args} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + catch {myreg exists x y z} res + myreg destroy + set res + } {wrong#args} + + test registry-9.1.$n {key existence, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg exists $key] + myreg destroy + set res + } 1 + + test registry-9.2.$n {key existence, missing} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + set res [myreg exists alpha] + myreg destroy + set res + } 0 + + # key existence, wrong args, see attribute existence + + test registry-10.1.$n {key matching, total} { + pregistry myreg + myreg set $key + myreg set [linsert $key end alpha] + myreg set [linsert $key end omega] + set res [lsort [myreg keys $key]] + myreg destroy + set res + } [list [linsert $key end alpha] [linsert $key end omega]] + + test registry-10.2.$n {key matching, partial} { + pregistry myreg + myreg set $key + myreg set [linsert $key end alpha] + myreg set [linsert $key end omega] + set res [lsort [myreg keys $key a*]] + myreg destroy + set res + } [list [linsert $key end alpha]] + + test registry-10.3.$n {key matching, wrong#args} { + pregistry myreg + myreg set $key + catch {myreg keys} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodkeys type selfns win self key ?pattern?"} + + test registry-10.4.$n {key matching, wrong#args} { + pregistry myreg + myreg set $key + catch {myreg keys x y z} res + myreg destroy + set res + } {wrong # args: should be "::pregistry::Snit_methodkeys type selfns win self key ?pattern?"} + + test registry-11.1.$n {attribute deletion, ok} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + myreg set $key alpha omega + myreg delete $key foo + set res [dump myreg $key] + myreg destroy + set res + } [list $key/ [list $key/ :alpha omega]] + + test registry-11.2.$n {attribute deletion, missing} { + pregistry myreg + myreg set $prekey + myreg set $key foo bar + myreg set $key alpha omega + set code [catch {myreg delete $key fox} res] + myreg destroy + list $code $res + } {0 {}} + + incr n +} + +set n 0 +foreach {par key structure} { + {foo fox fool} {foo fox fool bar soom} + {{/ foo/ {foo fox/} {foo fox fool/} {foo fox fool bar/} {foo fox fool bar soom/} {{foo fox fool bar soom/} :foo bar}} {/ foo/ {foo fox/}}} + + foo foo + {{/ foo/ {foo/ :foo bar}} /} +} { + test registry-12.1.$n {deletion} { + set res {} + pregistry myreg + myreg set $par + myreg set $key foo bar + lappend res [dump/ myreg] + myreg delete $par + lappend res [dump/ myreg] + myreg destroy + set res + } $structure + + test registry-12.2.$n {deletion of non-existing key} { + pregistry myreg + myreg set $par + catch {myreg delete FOO} res + myreg destroy + set res + } {} + + incr n +} + +test registry-13.1 {deletion of root} { + pregistry myreg + catch {myreg delete {}} res + myreg destroy + set res +} {cannot delete root} + +test registry-13.2 {wrong#args} { + pregistry myreg + catch {myreg delete} res + myreg destroy + set res +} {wrong # args: should be "::pregistry::Snit_methoddelete type selfns win self key args"} + +test registry-13.3 {wrong#args} { + pregistry myreg + catch {myreg delete a b c} res + myreg destroy + set res +} {wrong#args} + +# ------------------------------------------------------------------------- + +::tcltest::cleanupTests diff --git a/tcllib/support/devel/sak/review/cmd.tcl b/tcllib/support/devel/sak/review/cmd.tcl new file mode 100644 index 0000000..420b53f --- /dev/null +++ b/tcllib/support/devel/sak/review/cmd.tcl @@ -0,0 +1,25 @@ +# -*- tcl -*- +# Implementation of 'review'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +package require sak::util +package require sak::review + +set raw 0 +set log 0 +set stem {} +set tclv {} + +if {[llength $argv]} { + sak::review::usage +} + +sak::review::run + +## +# ### diff --git a/tcllib/support/devel/sak/review/help.txt b/tcllib/support/devel/sak/review/help.txt new file mode 100644 index 0000000..ff789a5 --- /dev/null +++ b/tcllib/support/devel/sak/review/help.txt @@ -0,0 +1,10 @@ + + review -- Interactively review changed modules and packages + + sak review + + This command scans the system for changes and then enters + a sub-shell where the caller can interactively review and + tag these changes. + + This is a support command for the release manager. diff --git a/tcllib/support/devel/sak/review/pkgIndex.tcl b/tcllib/support/devel/sak/review/pkgIndex.tcl new file mode 100644 index 0000000..4fe595a --- /dev/null +++ b/tcllib/support/devel/sak/review/pkgIndex.tcl @@ -0,0 +1,2 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::review 1.0 [list source [file join $dir review.tcl]] diff --git a/tcllib/support/devel/sak/review/review.tcl b/tcllib/support/devel/sak/review/review.tcl new file mode 100644 index 0000000..6c12ee9 --- /dev/null +++ b/tcllib/support/devel/sak/review/review.tcl @@ -0,0 +1,964 @@ +# -*- tcl -*- +# # ## ### ##### ######## ############# ##################### +# (C) 2013 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require linenoise +package require sak::color + +getpackage fileutil fileutil/fileutil.tcl +getpackage doctools::changelog doctools/changelog.tcl +getpackage struct::set struct/sets.tcl +getpackage term::ansi::send term/ansi/send.tcl + +namespace eval ::sak::review { + namespace import ::sak::color::* +} + +# ### + +proc ::sak::review::usage {} { + package require sak::help + puts stdout \n[sak::help::on review] + exit 1 +} + +proc ::sak::review::run {} { + Scan ; Review + return +} + +# # ## ### ##### ######## ############# ##################### +## Phase I. Determine which modules require a review. +## A derivative of the code in ::sak::readme. + +proc ::sak::review::Scan {} { + global distribution + variable review + variable rm + + Banner "Scan for modules and packages to review..." + + # Future: Consolidate with ... readme ... + # Determine which packages are potentially changed and therefore + # in need of review, from the set of modules touched since the + # last release, as per the fossil repository's commit log. + + # list of modified modules. + set modifiedm {} + + # database of commit messages per changed module. + # cm: module -> list(string) + array set cm {} + + # pt: database of files per changed module. + # module -> list(path) + + # rm: module -> list (revs); rev = uuid+desc+files (string) + array set rm {} + + foreach {trunk tuid} [Leaf trunk] break ;# rid + uuid + foreach {release ruid} [YoungestOfTag release] break ;# datetime + uuid + AllParentsAfter $trunk $tuid $release $ruid -> rid uuid { + Next ; Progress " $rid" + + set d [Description $rid] + Progress " D" + + # Determine file set, split by modules, then generate a package of + # uuid, description and filtered files per modules touched. + + array set fs {} + + FileSet $rid -> path action { + Progress . + + set px [file split $path] + set themodule [lindex $px 1] + lappend modifiedm $themodule + lappend cm($themodule) $d + + # ignore files in modules/ + if {[llength $px] < 3} continue + + #puts $themodule||$rid||$action|$px| + + lappend fs($themodule) [file join {*}[lrange $px 2 end]] + lappend pt($themodule) [file join {*}[lrange $px 2 end]] + } + + foreach {m files} [array get fs] { + set str \[$uuid\]\n$d\n\n[join [lsort -dict $files] \n] + lappend rm($m) $str + } + unset fs + } + + Next + + # cleanup module list, may have duplicates + set modifiedm [lsort -unique $modifiedm] + + array set review {} + + # package -> list(version) + set old_version [loadoldv [location_PACKAGES]] + array set releasep [loadpkglist [location_PACKAGES]] + array set currentp [ipackages] + + array set changed {} + foreach p [array names currentp] { + foreach {vlist module} $currentp($p) break + set currentp($p) $vlist + set changed($p) [struct::set contains $modifiedm $module] + } + + LoadNotes + + set np 0 + # Process all packages in all modules ... + foreach m [lsort -dict [modules]] { + Next ; Progress " $m" + foreach name [lsort -dict [Provided $m]] { + #Next ; Progress "... $m/$name" + # Define list of versions, if undefined so far. + if {![info exists currentp($name)]} { + set currentp($name) {} + } + + # Detect new packages. Ignore them. + + if {![info exists releasep($name)]} { + #Progress " /new" + continue + } + + # The package is not new, but possibly changed. And even + # if the version has not changed it may have been, this is + # indicated by changed(), which is based on the ChangeLog. + + set vequal [struct::set equal $releasep($name) $currentp($name)] + set note [Note $m $name] + + # Detect packages whose versions are unchanged, and whose + # changelog also indicates no change. Ignore these too. + + if {!$changed($name) && $vequal} { + #Progress " /not changed" + continue + } + + # Now look for packages where both changelog and version + # number indicate a change. These we have to review. + + if {$changed($name) && !$vequal} { + lappend review($m) [list $name classify $note] + #Progress " [=cya classify]" + incr np + continue + } + + # What remains are packages which are changed according to + # their changelog, but their version disagrees. Or the + # reverse. These need a big review to see who is right. + # We may have to bump their version information, not just + # classify changes. Of course, in modules with multiple + # packages it is quite possible to be unchanged and the + # changelog refers to the siblings. + + lappend review($m) [list $name mismatch $note] + #Progress " [=cya mismatch]" + incr np + } + } + + Close + + # Postprocessing phase, pull in all relevant commit messages of the module. + + foreach m [array names review] { + # commit messages + if {[info exists cm($m)]} { + set entries [lsort -unique $cm($m)] + } else { + set entries {} + } + # and affected files + if {[info exists pt($m)]} { + lappend entries [join [lsort -dict [lsort -unique $pt($m)]] \n] + } + + set review($m) [list $review($m) [join $entries \n\n]] + } + + # review: module -> list (notes, desc+files) + set review() $np + return +} + +# see also readme +proc ::sak::review::Provided {m} { + set result {} + foreach {p ___} [ppackages $m] { + lappend result $p + } + return $result +} + +# see also readme +proc ::sak::review::loadoldv {fname} { + set f [open $fname r] + foreach line [split [read $f] \n] { + set line [string trim $line] + if {[string match @* $line]} { + foreach {__ __ v} $line break + close $f + return $v + } + } + close $f + return -code error {Version not found} +} + +proc ::sak::review::Progress {text} { + puts -nonewline stdout $text + flush stdout + return +} + +proc ::sak::review::Next {} { + # erase to end of line, then move back to start of line. + term::ansi::send::eeol + puts -nonewline stdout \r + flush stdout + return +} + +proc ::sak::review::Close {} { + puts stdout "" + return +} + +proc ::sak::review::Clear {} { + term::ansi::send::clear + return +} + +proc ::sak::review::Banner {text} { + Clear + puts stdout "\n <<SAK Tcllib: $text>>\n" + return +} + +proc ::sak::review::Note {m p} { + # Look for a note, and present to caller, if any. + variable notes + #parray notes + set k [list $m $p] + #puts <$k> + if {[info exists notes($k)]} { + return $notes($k) + } + return "" +} + +proc ::sak::review::SaveNote {at t} { + global distribution + set f [open [file join $distribution .NOTE] a] + puts $f [list $at $t] + close $f + return +} + +proc ::sak::review::LoadNotes {} { + global distribution + variable notes + array set notes {} + + catch { + set f [file join $distribution .NOTE] + set f [open $f r] + while {![eof $f]} { + if {[gets $f line] < 0} continue + set line [string trim $line] + if {$line == {}} continue + foreach {k t} $line break + set notes($k) $t + } + close $f + } + + return +} + +proc ::sak::review::FileSet {rid _ pv av script} { + upvar 1 $pv thepath $av theaction + + lappend map @rid@ $rid + foreach line [split [string trim [F [string map $map { + SELECT filename.name, + CASE WHEN nullif(mlink.pid,0) is null THEN 'added' + WHEN nullif(mlink.fid,0) is null THEN 'deleted' + ELSE 'edited' + END + FROM mlink, filename + WHERE mlink.mid = @rid@ + AND mlink.fnid = filename.fnid + ORDER BY filename.name; + }]]] \n] { + foreach {thepath theaction} [split $line |] break + # ignore all changes not in modules + if {![string match modules* $thepath]} continue + uplevel 1 $script + } + return +} + +proc ::sak::review::Description {rid} { + lappend map @rid@ $rid + string trim [F [string map $map { + SELECT coalesce(event.ecomment,event.comment) + FROM event + WHERE event.objid = @rid@ + ; + }]] +} + +proc ::sak::review::AllParentsAfter {rid ruid cut cutuid _ rv uv script} { + upvar 1 $rv therev $uv theuid + + array set rev {} + set rev($rid) . + lappend front $rid + + # Initial run, for the starting revision. + set therev $rid + set theuid $ruid + uplevel 1 $script + + # Standard iterative incremental transitive-closure. We have a + # front of revisions whose parents we take, which become the new + # front to follow, until no parents are delivered anymore due to + # the cutoff condition (timestamp, only the revisions coming after + # are accepted). + + while {1} { + set new {} + foreach cid $front { + foreach pid [Parents $cid $cut] { + foreach {pid uuid mtraw mtime} [split [string trim $pid |] |] break + if {$uuid eq $cutuid} continue + + lappend new $pid $mtime $uuid + if {$mtraw <= $cut} { + puts "Overshot: $rid $mtime $uuid" + } + } + } + if {![llength $new]} break + + # record new parents, and make them the new starting points + set front {} + foreach {pid mtime uuid} $new { + if {[info exists rev($pid)]} continue + set rev($pid) . + lappend front $pid + + set therev $pid + set theuid $uuid + uplevel 1 $script + } + } +} + +proc ::sak::review::Parents {rid cut} { + lappend map @rid@ $rid + lappend map @cutoff@ $cut + split [F [string map $map { + SELECT pid, blob.uuid, event.mtime, datetime(event.mtime) + FROM plink, blob, event + WHERE plink.cid = @rid@ + AND plink.pid = blob.rid + AND plink.pid = event.objid + AND event.mtime > @cutoff@ + ; + }]] \n +} + +proc ::sak::review::YoungestOfTag {tag} { + lappend map @tag@ $tag + puts stderr "last $tag = [F [string map $map { + SELECT datetime (event.mtime) + FROM tag, tagxref, event + WHERE tag.tagname = 'sym-' || '@tag@' + AND tagxref.tagid = tag.tagid + AND tagxref.tagtype > 0 + AND tagxref.rid = event.objid + AND event.type = 'ci' + ORDER BY event.mtime DESC + LIMIT 1 + ; + }]]" + split [F [string map $map { + SELECT event.mtime, blob.uuid + FROM tag, tagxref, event, blob + WHERE tag.tagname = 'sym-' || '@tag@' + AND tagxref.tagid = tag.tagid + AND tagxref.tagtype > 0 + AND tagxref.rid = event.objid + AND event.type = 'ci' + AND blob.rid = event.objid + ORDER BY event.mtime DESC + LIMIT 1 + ; + }]] | +} + +proc ::sak::review::Leaf {branch} { + lappend map @branch@ $branch + split [F [string map $map { + SELECT blob.rid, blob.uuid + FROM leaf, blob, tag, tagxref + WHERE blob.rid = leaf.rid + AND tag.tagname = 'sym-' || '@branch@' + AND tagxref.tagid = tag.tagid + AND tagxref.tagtype > 0 + AND tagxref.rid = leaf.rid + ; + }]] | +} + +proc ::sak::review::F {script} { + #puts |$script| + set r [exec fossil sqlite3 << $script] + #puts ($r) + return $r +} + + + +# # ## ### ##### ######## ############# ##################### +## Phase II. Interactively review the changes packages. + +# Namespace variables +# +# review : array, database of all modules, keyed by name +# nm : number of modules +# modules : list of module names, keys to --> review +# current : index in -> modules, current module +# np : number of packages in current module +# packages : list of packages in current module +# currentp : index in --> packages +# im : 1+current | indices for display +# ip : 1+currentp | +# ir : 1+currentr | +# end : array : module (name) --> index of last package +# stop : repl exit flag +# map : array : text -> module/package index +# commands : proper commands +# allcommands : commands + namesof(map) +# + +proc ::sak::review::Review {} { + variable review ;# table of everything to review + variable rm ;# Alt structure, rev (desc, files) by module. + variable nm ;# number of modules + variable modules ;# list of module names, sorted + variable stop 0 ;# repl exit flag + variable end ;# last module/package index. + variable smode rev ;# standard display per revision. + + variable navcommands + variable allcommands ;# list of all commands, sorted + variable commands ;# list of proper commands, sorted + variable map ;# map from package names to module/package indices. + variable prefix + + Banner "Packages to review: $review()" + unset review() + + set nm [array size review] + if {!$nm} return + + set modules [lsort -dict [array names review]] + + # Map package name --> module/package index. + set im 0 + foreach m $modules { + foreach {packages clog} $review($m) break + set ip 0 + foreach p $packages { + set end($im) $ip + set end($m) $ip + set end() [list $im $ip] + foreach {name what tags} $p break + lappend map(@$name) [list $im $ip] + lappend map(@$name/$m) [list $im $ip] + incr ip + } + incr im + } + + # Drop amibigous mappings, and fill the list of commands. + foreach k [array names map] { + # Skip already dropped keys (extended forms). + if {![info exists map($k)]} continue + if {[llength $map($k)] < 2} { + set map($k) [lindex $map($k) 0] + # Drop extended form, not needed. + array unset map $k/* + } else { + unset map($k) + } + } + + # Map module name --> module/package index + # If not preempted by package mapping. + set im -1 + foreach m $modules { + incr im + if {[info exists map(@$m)]} continue + set map(@$m) [list $im 0] + } + + # Map command prefix -> full command. + + array set prefix {} + foreach c [info commands ::sak::review::C_*] { + set c [string range [namespace tail $c] 2 end] + lappend commands $c + lappend allcommands $c + set buf {} + foreach ch [split $c {}] { + append buf $ch + lappend prefix($buf) $c + } + } + + foreach c [array names map] { + lappend allcommands $c + set buf {} + foreach ch [split $c {}] { + append buf $ch + lappend prefix($buf) $c + } + } + + set commands [lsort -dict $commands] + set allcommands [lsort -dict $allcommands] + set navcommands [lsort -dict [array names map]] + + # Enter the REPL + Goto {0 0} 1 + linenoise::cmdloop \ + -history 1 \ + -exit ::sak::review::Exit \ + -continued ::sak::review::Continued \ + -prompt1 ::sak::review::Prompt \ + -complete ::sak::review::Complete \ + -dispatch ::sak::review::Dispatch + return +} + +# # ## ### ##### ######## ############# ##################### + +proc ::sak::review::RefreshDisplay {} { + variable m + variable im + variable ir + variable nm + variable nr + variable clog + variable rlog + variable what + variable smode + + if {$smode eq "rev"} { + set text $rlog + } else { + set text $clog + } + + if {$smode eq "rev"} { + Banner "($ir/$nr) \[$im/$nm\] [=cya [string totitle $what]] [=green $m]" + } else { + Banner "\[$im/$nm\] [=cya [string totitle $what]] [=green $m]" + } + puts "| [join [split $text \n] "\n| "]\n" + return +} + +proc ::sak::review::Exit {} { + variable stop + return $stop +} + +proc ::sak::review::Continued {buffer} { + return 0 +} + +proc ::sak::review::Prompt {} { + variable ip + variable np + variable name + variable tags + variable smode + variable im + variable ir + variable nm + variable nr + variable what + variable m + + if {$smode eq "rev"} { + append p "($ir/$nr) " + } + + append p "\[$im/$nm\] [=green $m] [=cya [string totitle $what]] " + append p "\[$ip/$np\] [=whi $name] ($tags): " + return $p +} + +proc ::sak::review::Complete {line} { + variable allcommands + if {$line eq {}} { + return $allcommands + } elseif {[llength $line] == 1} { + set r {} + foreach c $allcommands { + if {![string match ${line}* $c]} continue + lappend r $c + } + return $r + } else { + return {} + } +} + +proc ::sak::review::Dispatch {line} { + variable prefix + variable map + + if {$line == ""} { set line next } + + set cmd [lindex $line 0] + + if {![info exists prefix($cmd)]} { + return -code error "Unknown command $cmd, use help or ? to list them" + } elseif {[llength $prefix($cmd)] > 1} { + return -code error "Ambigous prefix \"$cmd\", expected [join $prefix($cmd) {, }]" + } + + # Map prefix to actual command + set line [lreplace $line 0 0 $prefix($cmd)] + + # Run command. + if {[info exists map($cmd)]} { + Goto $map($cmd) + return + } + eval C_$line +} + +proc ::sak::review::Goto {loc {skip 0}} { + variable review + variable rm + variable modules + variable packages + variable clog + variable rlog + variable rloga + variable current + variable currentp + variable currentr + variable nm + variable np + variable nr + variable at + variable tags + variable what + variable name + + variable m + variable p + variable ip + variable im + variable ir + + foreach {current currentp} $loc break + set currentr 0 + + puts "Goto ($current/$currentp)" + + set m [lindex $modules $current] + foreach {packages clog} $review($m) break + if {[catch { + set nr [llength $rm($m)] + set rloga $rm($m) + set rlog [lindex $rloga $currentr] + }]} { + set nr 0 + set currentr 0 + set rloga {} + set rlog {} + } + + set np [llength $packages] + set p [lindex $packages $currentp] + + foreach {name what tags} $p break + set at [list $m $name] + + set im [expr {1+$current}] + set ip [expr {1+$currentp}] + set ir [expr {1+$currentr}] + + if {$skip && ([llength $tags] || + ($tags == "---"))} { + C_next + } else { + RefreshDisplay + } + return +} + +proc ::sak::review::C_* {} { + variable smode + variable currentr + if {$smode eq "all"} { + set smode rev + set currentr 0 + } else { + set smode all + } + RefreshDisplay + return +} +proc ::sak::review::C_, {} { + # next revision + variable smode + variable rlog + variable rloga + variable currentr + if {$smode eq "all"} { + set smode rev + set currentr 0 + } else { + variable nr + incr currentr + if {$currentr >= $nr} { set currentr 0 } + } + variable ir [expr {1+$currentr}] + set rlog [lindex $rloga $currentr] + RefreshDisplay + return +} +proc ::sak::review::C_' {} { + # previous revision + variable smode + variable rlog + variable rloga + variable nr + variable currentr + if {$smode eq "all"} { + set smode rev + set currentr $nr + } + incr currentr -1 + if {$currentr <= 0} { + set currentr $nr + incr currentr -1 + } + variable ir [expr {1+$currentr}] + set rlog [lindex $rloga $currentr] + RefreshDisplay + return +} + +proc ::sak::review::C_exit {} { variable stop 1 } +proc ::sak::review::C_quit {} { variable stop 1 } + +proc ::sak::review::C_? {} { C_help } +proc ::sak::review::C_help {} { + variable commands + return [join $commands {, }] +} + +proc ::sak::review::C_@? {} { C_@help } +proc ::sak::review::C_@help {} { + variable navcommands + return [join $navcommands {, }] +} + +proc ::sak::review::C_@start {} { Goto {0 0} } +proc ::sak::review::C_@0 {} { Goto {0 0} } +proc ::sak::review::C_@end {} { variable end ; Goto $end() } + +proc ::sak::review::C_>> {} { C_next 1 } +proc ::sak::review::C_next {{skiprev 0}} { + variable tags + variable current + variable currentp + variable smode + + if {!($skiprev) && ($smode eq "rev")} { + variable ir + variable nr + if {$ir < $nr} { + C_, + return + } + } + + C_step 0 + + set stop @$current/$currentp + while {[llength $tags] || + ($tags == "---")} { + C_step 0 + if {"@$current/$currentp" == "$stop"} break + } + + RefreshDisplay + return +} + +proc ::sak::review::C_step {{refresh 1}} { + variable nm + variable np + variable current + variable currentp + variable packages + + incr currentp + if {$currentp >= $np} { + # skip to next module, first package + incr current + if {$current >= $nm} { + # skip to first module + set current 0 + } + set currentp 0 + + } + Goto [list $current $currentp] + return +} + +proc ::sak::review::C_<< {} { C_prev 1 } +proc ::sak::review::C_prev {{skiprev 0}} { + variable end + variable nm + variable np + variable current + variable currentp + variable packages + variable smode + + if {!$skiprev && ($smode eq "rev")} { + variable ir + if {$ir > 1} { + C_' + return + } + } + + incr currentp -1 + if {$currentp < 0} { + # skip to previous module, last package + incr current -1 + if {$current < 0} { + # skip to back to last module + set current [expr {$nm - 1}] + } + set currentp $end($current) + } + Goto [list $current $currentp] + return +} + +# Commands to add/remove tags, clear set, replace set + +proc ::sak::review::C_feature {} { +T EF } +proc ::sak::review::C_test {} { +T T } +proc ::sak::review::C_doc {} { +T D } +proc ::sak::review::C_bug {} { +T B } +proc ::sak::review::C_perf {} { +T P } +proc ::sak::review::C_example {} { +T EX } +proc ::sak::review::C_api {} { +T API } +proc ::sak::review::C_impl {} { +T I } + +proc ::sak::review::C_-feature {} { -T EF } +proc ::sak::review::C_-test {} { -T T } +proc ::sak::review::C_-doc {} { -T D } +proc ::sak::review::C_-bug {} { -T B } +proc ::sak::review::C_-perf {} { -T P } +proc ::sak::review::C_-example {} { -T EX } +proc ::sak::review::C_-api {} { -T API } +proc ::sak::review::C_-impl {} { -T I } + +proc ::sak::review::C_--- {} { =T --- } +proc ::sak::review::C_clear {} { =T --- } +#proc ::sak::review::C_cn {} { C_clear ; C_next } + +proc ::sak::review::+T {tag} { + variable tags + if {[lsearch -exact $tags $tag] >= 0} { + RefreshDisplay + return + } + =T [linsert $tags end $tag] + return +} + +proc ::sak::review::-T {tag} { + variable tags + set pos [lsearch -exact $tags $tag] + if {$pos < 0} { + RefreshDisplay + return + } + =T [lreplace $tags $pos $pos] + return +} + +proc ::sak::review::=T {newtags} { + variable review + variable clog + variable packages + variable currentp + variable p + variable m + variable at + variable name + variable what + variable tags + + if {([llength $newtags] > 1) && + ([set pos [lsearch -exact $newtags ---]] >= 0)} { + # Drop --- if there are other tags. + set newtags [lreplace $newtags $pos $pos] + } + + set tags [lsort -dict $newtags] + set p [list $name $what $newtags] + set packages [lreplace $packages $currentp $currentp $p] + set review($m) [list $packages $clog] + + SaveNote $at $tags + RefreshDisplay + return +} + +proc ::sak::review::?T {} { + variable tags + return $tags +} + +## +# ### + +namespace eval ::sak::review {} + +package provide sak::review 1.0 diff --git a/tcllib/support/devel/sak/review/topic.txt b/tcllib/support/devel/sak/review/topic.txt new file mode 100644 index 0000000..d2f7446 --- /dev/null +++ b/tcllib/support/devel/sak/review/topic.txt @@ -0,0 +1 @@ +review Interactively review changes since the last release. diff --git a/tcllib/support/devel/sak/test/cmd.tcl b/tcllib/support/devel/sak/test/cmd.tcl new file mode 100644 index 0000000..5622a16 --- /dev/null +++ b/tcllib/support/devel/sak/test/cmd.tcl @@ -0,0 +1,28 @@ +# -*- tcl -*- +# Implementation of 'doc'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +package require sak::util +package require sak::test + +if {![llength $argv]} { + sak::test::usage Command missing +} + +set cmd [lindex $argv 0] +set argv [lrange $argv 1 end] + +if {[catch {package require sak::test::$cmd} msg]} { + sak::test::usage Unknown command \"$cmd\" : \ + \n $::errorInfo +} + +sak::test::$cmd $argv + +## +# ### diff --git a/tcllib/support/devel/sak/test/help.txt b/tcllib/support/devel/sak/test/help.txt new file mode 100644 index 0000000..4d2762c --- /dev/null +++ b/tcllib/support/devel/sak/test/help.txt @@ -0,0 +1,46 @@ + + test -- Execute testsuites + + sak test run ?-s|--shell PATH? ?-l|--log STEM? ?-g|--valgrind? ?-v? ?MODULE ...? + + Run the testsuites of the specified modules, using the shell + running SAK for the testsuites as well. If no modules are + specified the testsuites of all modules are run. + + If --valgrind is specified the testsuites are run under the + valgrind memory checker. NOTE. This feature is not available + on the windows platform. Requests for it will be ignored. + + If one or more --shell's are specified the testsuites are run + against them. If none are specified the shells registered with + 'shell add' (see below) are used instead. If none are + specified the shell executing the sak is used instead. + + By default the output from a run is animated feedback of the + progress made. If -v is specified the actual log is returned + instead. + + If a log STEM is specified the extended log normally activated + via -v is written to STEM.log while the user is provided with + the regular feedback during execution. In addition the + summaries from the feedback are written to STEM.summary as + well, and also sorted into STEM.failures, STEM.skipped, and + STEM.none. The -l switch overides -v. + + sak test shells + + Returns a list of the registered shells, one per line, used to + execute the testsuites. + + sak test shell add PATH... + + Adds the specified paths to the list of shells to use when + executing testsuites. + + sak test shell delete PATH... + + Removes the specified paths from the list of shells to use + when executing testsuites. + + NOTE: The list of registered shells is a per-user configuration + setting and is saved in the file "$HOME/.Tcllib/Registry". diff --git a/tcllib/support/devel/sak/test/pkgIndex.tcl b/tcllib/support/devel/sak/test/pkgIndex.tcl new file mode 100644 index 0000000..9522c76 --- /dev/null +++ b/tcllib/support/devel/sak/test/pkgIndex.tcl @@ -0,0 +1,5 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::test 1.0 [list source [file join $dir test.tcl]] +package ifneeded sak::test::run 1.0 [list source [file join $dir run.tcl]] +package ifneeded sak::test::shells 1.0 [list source [file join $dir shells.tcl]] +package ifneeded sak::test::shell 1.0 [list source [file join $dir shell.tcl]] diff --git a/tcllib/support/devel/sak/test/run.tcl b/tcllib/support/devel/sak/test/run.tcl new file mode 100644 index 0000000..9e0942f --- /dev/null +++ b/tcllib/support/devel/sak/test/run.tcl @@ -0,0 +1,880 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::test::shell +package require sak::registry +package require sak::animate +package require sak::color +# TODO: Rework this package to use the sak::feedback package + +getpackage textutil::repeat textutil/repeat.tcl +getpackage fileutil fileutil/fileutil.tcl +getpackage struct::matrix struct/matrix.tcl + +namespace eval ::sak::test::run { + namespace import ::textutil::repeat::blank + namespace import ::sak::color::* +} + +# ### + +proc ::sak::test::run {argv} { + variable run::valgrind + array set config { + valgrind 0 raw 0 shells {} stem {} log 0 + } + + while {[string match -* [set opt [lindex $argv 0]]]} { + switch -exact -- $opt { + -s - --shell { + set sh [lindex $argv 1] + if {![fileutil::test $sh efrx msg "Shell"]} { + sak::test::usage $msg + } + lappend config(shells) $sh + set argv [lrange $argv 2 end] + } + -g - --valgrind { + if {![llength $valgrind]} { + sak::test::usage valgrind not found in the PATH + } + incr config(valgrind) + set argv [lrange $argv 1 end] + } + -v { + set config(raw) 1 + set argv [lrange $argv 1 end] + } + -l - --log { + set config(log) 1 + set config(stem) [lindex $argv 1] + set argv [lrange $argv 2 end] + } + default { + sak::test::usage Unknown option "\"$opt\"" + } + } + } + + if {$config(log)} {set config(raw) 0} + + if {![sak::util::checkModules argv]} return + + run::Do config $argv + return +} + +# ### + +proc ::sak::test::run::Do {cv modules} { + upvar 1 $cv config + variable valgrind + variable araw $config(raw) + variable alog $config(log) + # alog => !araw + + set shells $config(shells) + if {![llength $shells]} { + catch {set shells [sak::test::shell::list]} + } + if {![llength $shells]} { + set shells [list [info nameofexecutable]] + } + + if {$alog} { + variable logext [open $config(stem).log w] + variable logsum [open $config(stem).summary w] + variable logfai [open $config(stem).failures w] + variable logski [open $config(stem).skipped w] + variable lognon [open $config(stem).none w] + variable logerd [open $config(stem).errdetails w] + variable logfad [open $config(stem).faildetails w] + variable logtim [open $config(stem).timings w] + } else { + variable logext stdout + } + + # Preprocessing of module names and shell versions to allows + # better formatting of the progress output, i.e. vertically + # aligned columns + + if {!$araw} { + variable maxml 0 + variable maxvl 0 + sak::animate::init + foreach m $modules { + = "M $m" + set l [string length $m] + if {$l > $maxml} {set maxml $l} + } + foreach sh $shells { + = "SH $sh" + set v [exec $sh << {puts [info patchlevel]; exit}] + set l [string length $v] + if {$l > $maxvl} {set maxvl $l} + } + =| "Starting ..." + } + + set total 0 + set pass 0 + set fail 0 + set skip 0 + set err 0 + + foreach sh $shells { + foreach m $modules { + set cmd [Command config $m $sh] + sak::animate::init + if {$alog || $araw} { + puts $logext ============================================================ + flush $logext + } + if {[catch {Close [Process [open |$cmd r+]]} msg]} { + incr err + =| "~~ [mag]ERR ${msg}[rst]" + if {$alog || $araw} { + puts $logext [mag]$msg[rst] + flush $logext + } + } + #sak::animate::last Ok + } + } + + puts $logext "Passed [format %6d $pass] of [format %6d $total]" + puts $logext "Skipped [format %6d $skip] of [format %6d $total]" + + if {$fail} { + puts $logext "Failed [red][format %6d $fail][rst] of [format %6d $total]" + } else { + puts $logext "Failed [format %6d $fail] of [format %6d $total]" + } + if {$err} { + puts $logext "#Errors [mag][format %6d $err][rst]" + } else { + puts $logext "#Errors [format %6d $err]" + } + + if {$alog} { + variable xtimes + array set times $xtimes + + struct::matrix M + M add columns 6 + foreach k [lsort -dict [array names times]] { + #foreach {shell module testfile} $k break + foreach {testnum delta score} $times($k) break + M add row [linsert $k end $testnum $delta $score] + } + M sort rows -decreasing 5 + + M insert row 0 {Shell Module Testsuite Tests Seconds uSec/Test} + M insert row 1 {===== ====== ========= ===== ======= =========} + M add row {===== ====== ========= ===== ======= =========} + + puts $logsum \nTimings... + puts $logsum [M format 2string] + } + + exit [expr {($err || $fail) ? 1 : 0}] + return +} + +# ### + +if {$::tcl_platform(platform) == "windows"} { + + proc ::sak::test::run::Command {cv m sh} { + variable valgrind + upvar 1 $cv config + + # Windows. Construction of the pipe to run a specific + # testsuite against a single shell. There is no valgrind to + # accomodate, and neither can we expect to have unix commands + # like 'echo' and 'cat' available. 'echo' we can go without. A + # 'cat' however is needed to merge stdout and stderr of the + # testsuite for processing here. We use an emuluation written + # in Tcl. + + set catfile cat[pid].tcl + fileutil::writeFile $catfile { + catch {wm withdraw .} + while {![eof stdin]} {puts stdout [gets stdin]} + exit + } + + set cmd "" + lappend cmd $sh + lappend cmd [Driver] -modules [list $m] + lappend cmd |& $sh $catfile + #puts <<$cmd>> + + return $cmd + } + + proc ::sak::test::run::Close {pipe} { + close $pipe + file delete cat[pid].tcl + return + } +} else { + proc ::sak::test::run::Command {cv m sh} { + variable valgrind + upvar 1 $cv config + + # Unix. Construction of the pipe to run a specific testsuite + # against a single shell. The command is constructed to work + # when using valgrind, and works when not using it as well. + + set script {} + lappend script [list set argv [list -modules [list $m]]] + lappend script {set argc 2} + lappend script [list source [Driver]] + lappend script exit + + set cmd "" + lappend cmd echo [join $script \n] + lappend cmd | + + if {$config(valgrind)} { + foreach e $valgrind {lappend cmd $e} + if {$config(valgrind) > 1} { + lappend cmd --num-callers=8 + lappend cmd --leak-resolution=high + lappend cmd -v --leak-check=yes + lappend cmd --show-reachable=yes + } + } + lappend cmd $sh + #lappend cmd >@ stdout 2>@ stderr + lappend cmd |& cat + #puts <<$cmd>> + + return $cmd + } + + proc ::sak::test::run::Close {pipe} { + close $pipe + return + } +} + +# ### + +proc ::sak::test::run::Process {pipe} { + variable araw + variable alog + variable logext + while {1} { + if {[eof $pipe]} break + if {[gets $pipe line] < 0} break + if {$alog || $araw} {puts $logext $line ; flush $logext} + set rline $line + set line [string trim $line] + if {[string equal $line ""]} continue + Host; Platform + Cwd; Shell + Tcl + Start; End ; StartFile ; EndFile + Module; Testsuite + NoTestsuite + Support;Testing;Other + Summary + CaptureFailureSync ; # xcollect 1 => 2 + CaptureFailureCollectBody ; # xcollect 2 => 3 => 5 + CaptureFailureCollectActual ; # xcollect 3 => 4 + CaptureFailureCollectExpected ; # xcollect 4 => 0 + CaptureFailureCollectError ; # xcollect 5 => 0 + CaptureStackStart + CaptureStack + + TestStart + TestSkipped + TestPassed + TestFailed ; # xcollect => 1 + + SetupError + Aborted + AbortCause + + Match||Skip||Sourced + # Unknown lines are printed + if {!$araw} {puts !$line} + } + return $pipe +} + +# ### + +proc ::sak::test::run::Driver {} { + variable base + return [file join $base all.tcl] +} + +# ### + +proc ::sak::test::run::Host {} { + upvar 1 line line ; variable xhost + if {![regexp "^@@ Host (.*)$" $line -> xhost]} return + # += $xhost + set xhost [list Tests Results $xhost] + #sak::registry::local set $xhost + return -code continue +} + +proc ::sak::test::run::Platform {} { + upvar 1 line line ; variable xplatform + if {![regexp "^@@ Platform (.*)$" $line -> xplatform]} return + # += ($xplatform) + variable xhost + #sak::registry::local set $xhost Platform $xplatform + return -code continue +} + +proc ::sak::test::run::Cwd {} { + upvar 1 line line ; variable xcwd + if {![regexp "^@@ CWD (.*)$" $line -> xcwd]} return + variable xhost + set xcwd [linsert $xhost end $xcwd] + #sak::registry::local set $xcwd + return -code continue +} + +proc ::sak::test::run::Shell {} { + upvar 1 line line ; variable xshell + if {![regexp "^@@ Shell (.*)$" $line -> xshell]} return + # += [file tail $xshell] + variable xcwd + set xshell [linsert $xcwd end $xshell] + #sak::registry::local set $xshell + return -code continue +} + +proc ::sak::test::run::Tcl {} { + upvar 1 line line ; variable xtcl + if {![regexp "^@@ Tcl (.*)$" $line -> xtcl]} return + variable xshell + variable maxvl + += \[$xtcl\][blank [expr {$maxvl - [string length $xtcl]}]] + #sak::registry::local set $xshell Tcl $xtcl + return -code continue +} + +proc ::sak::test::run::Match||Skip||Sourced {} { + upvar 1 line line + if {[string match "@@ Skip*" $line]} {return -code continue} + if {[string match "@@ Match*" $line]} {return -code continue} + if {[string match "Sourced * Test Files." $line]} {return -code continue} + if {[string match "Files with failing tests*" $line]} {return -code continue} + if {[string match "Number of tests skipped*" $line]} {return -code continue} + if {[string match "\[0-9\]*" $line]} {return -code continue} + return +} + +proc ::sak::test::run::Start {} { + upvar 1 line line + if {![regexp "^@@ Start (.*)$" $line -> start]} return + variable xshell + #sak::registry::local set $xshell Start $start + return -code continue +} + +proc ::sak::test::run::End {} { + upvar 1 line line + if {![regexp "^@@ End (.*)$" $line -> end]} return + variable xshell + #sak::registry::local set $xshell End $end + return -code continue +} + +proc ::sak::test::run::StartFile {} { + upvar 1 line line + if {![regexp "^@@ StartFile (.*)$" $line -> start]} return + variable xstartfile $start + variable xtestnum 0 + #sak::registry::local set $xshell Start $start + return -code continue +} + +proc ::sak::test::run::EndFile {} { + upvar 1 line line + if {![regexp "^@@ EndFile (.*)$" $line -> end]} return + variable xfile + variable xstartfile + variable xtimes + variable xtestnum + + set k [lreplace $xfile 0 3] + set k [lreplace $k 2 2 [file tail [lindex $k 2]]] + set delta [expr {$end - $xstartfile}] + + if {$xtestnum == 0} { + set score $delta + } else { + # average number of microseconds per test. + set score [expr {int(($delta/double($xtestnum))*1000000)}] + #set score [expr {$delta/double($xtestnum)}] + } + + lappend xtimes $k [list $xtestnum $delta $score] + + variable alog + if {$alog} { + variable logtim + puts $logtim [linsert [linsert $k end $xtestnum $delta $score] 0 TIME] + } + + #sak::registry::local set $xshell End $end + return -code continue +} + +proc ::sak::test::run::Module {} { + upvar 1 line line ; variable xmodule + if {![regexp "^@@ Module (.*)$" $line -> xmodule]} return + variable xshell + variable xstatus ok + variable maxml + += ${xmodule}[blank [expr {$maxml - [string length $xmodule]}]] + set xmodule [linsert $xshell end $xmodule] + #sak::registry::local set $xmodule + return -code continue +} + +proc ::sak::test::run::Testsuite {} { + upvar 1 line line ; variable xfile + if {![regexp "^@@ Testsuite (.*)$" $line -> xfile]} return + = <[file tail $xfile]> + variable xmodule + set xfile [linsert $xmodule end $xfile] + #sak::registry::local set $xfile Aborted 0 + return -code continue +} + +proc ::sak::test::run::NoTestsuite {} { + upvar 1 line line + if {![string match "Error: No test files remain after*" $line]} return + variable xstatus none + = {No tests} + return -code continue +} + +proc ::sak::test::run::Support {} { + upvar 1 line line + if {![regexp "^- (.*)$" $line -> package]} return + #= "S $package" + foreach {pn pv} $package break + variable xfile + #sak::registry::local set [linsert $xfile end Support] $pn $pv + return -code continue +} + +proc ::sak::test::run::Testing {} { + upvar 1 line line + if {![regexp "^\\* (.*)$" $line -> package]} return + #= "T $package" + foreach {pn pv} $package break + variable xfile + #sak::registry::local set [linsert $xfile end Testing] $pn $pv + return -code continue +} + +proc ::sak::test::run::Other {} { + upvar 1 line line + if {![string match ">*" $line]} return + return -code continue +} + +proc ::sak::test::run::Summary {} { + upvar 1 line line + if {![regexp "^all\\.tcl:(.*)$" $line -> line]} return + variable xmodule + variable xstatus + variable xvstatus + foreach {_ t _ p _ s _ f} [split [string trim $line]] break + #sak::registry::local set $xmodule Total $t ; set t [format %5d $t] + #sak::registry::local set $xmodule Passed $p ; set p [format %5d $p] + #sak::registry::local set $xmodule Skipped $s ; set s [format %5d $s] + #sak::registry::local set $xmodule Failed $f ; set f [format %5d $f] + + upvar 2 total _total ; incr _total $t + upvar 2 pass _pass ; incr _pass $p + upvar 2 skip _skip ; incr _skip $s + upvar 2 fail _fail ; incr _fail $f + upvar 2 err _err + + set t [format %5d $t] + set p [format %5d $p] + set s [format %5d $s] + set f [format %5d $f] + + if {$xstatus == "ok" && $t == 0} { + set xstatus none + } + + set st $xvstatus($xstatus) + + if {$xstatus == "ok"} { + # Quick return for ok suite. + =| "~~ $st T $t P $p S $s F $f" + return -code continue + } + + # Clean out progress display using a non-highlighted + # string. Prevents the char couint from being off. This is + # followed by construction and display of the highlighted version. + + = " $st T $t P $p S $s F $f" + switch -exact -- $xstatus { + none {=| "~~ [yel]$st T $t[rst] P $p S $s F $f"} + aborted {=| "~~ [whi]$st[rst] T $t P $p S $s F $f"} + error { + =| "~~ [mag]$st[rst] T $t P $p S $s F $f" + incr _err + } + fail {=| "~~ [red]$st[rst] T $t P $p S $s [red]F $f[rst]"} + } + return -code continue +} + +proc ::sak::test::run::TestStart {} { + upvar 1 line line + if {![string match {---- * start} $line]} return + set testname [string range $line 5 end-6] + = "---- $testname" + variable xfile + variable xtest [linsert $xfile end $testname] + variable xtestnum + incr xtestnum + return -code continue +} + +proc ::sak::test::run::TestSkipped {} { + upvar 1 line line + if {![string match {++++ * SKIPPED:*} $line]} return + regexp {^[^ ]* (.*)SKIPPED:.*$} $line -> testname + set testname [string trim $testname] + variable xtest + = "SKIP $testname" + if {$xtest == {}} { + variable xfile + set xtest [linsert $xfile end $testname] + } + #sak::registry::local set $xtest Status Skip + set xtest {} + return -code continue +} + +proc ::sak::test::run::TestPassed {} { + upvar 1 line line + if {![string match {++++ * PASSED} $line]} return + set testname [string range $line 5 end-7] + variable xtest + = "PASS $testname" + if {$xtest == {}} { + variable xfile + set xtest [linsert $xfile end $testname] + } + #sak::registry::local set $xtest Status Pass + set xtest {} + return -code continue +} + +proc ::sak::test::run::TestFailed {} { + upvar 1 line line + if {![string match {==== * FAILED} $line]} return + set testname [lindex [split [string range $line 5 end-7]] 0] + = "FAIL $testname" + variable xtest + if {$xtest == {}} { + variable xfile + set xtest [linsert $xfile end $testname] + } + #sak::registry::local set $xtest Status Fail + ## CAPTURE INIT + variable xcollect 1 + variable xbody "" + variable xactual "" + variable xexpected "" + variable xstatus fail + # Ignore failed status if we already have it, or an error + # status. The latter is more important to show. We do override + # status 'aborted'. + if {$xstatus == "ok"} {set xstatus fail} + if {$xstatus == "aborted"} {set xstatus fail} + return -code continue +} + +proc ::sak::test::run::CaptureFailureSync {} { + variable xcollect + if {$xcollect != 1} return + upvar 1 line line + if {![string match {==== Contents*} $line]} return + set xcollect 2 + return -code continue +} + +proc ::sak::test::run::CaptureFailureCollectBody {} { + variable xcollect + if {$xcollect != 2} return + upvar 1 rline line + variable xbody + if {[string match {---- Result was*} $line]} { + set xcollect 3 + return -code continue + } elseif {[string match {---- Test generated error*} $line]} { + set xcollect 5 + return -code continue + } + + variable xbody + append xbody $line \n + return -code continue +} + +proc ::sak::test::run::CaptureFailureCollectActual {} { + variable xcollect + if {$xcollect != 3} return + upvar 1 rline line + if {![string match {---- Result should*} $line]} { + variable xactual + append xactual $line \n + } else { + set xcollect 4 + } + return -code continue +} + +proc ::sak::test::run::CaptureFailureCollectExpected {} { + variable xcollect + if {$xcollect != 4} return + upvar 1 rline line + if {![string match {==== *} $line]} { + variable xexpected + append xexpected $line \n + } else { + variable alog + if {$alog} { + variable logfad + variable xtest + variable xbody + variable xactual + variable xexpected + + puts $logfad "==== [lrange $xtest end-1 end] FAILED =========" + puts $logfad "==== Contents of test case:\n" + puts $logfad $xbody + + puts $logfad "---- Result was:" + puts $logfad [string range $xactual 0 end-1] + + puts $logfad "---- Result should have been:" + puts $logfad [string range $xexpected 0 end-1] + + puts $logfad "==== [lrange $xtest end-1 end] ====\n\n" + flush $logfad + } + set xcollect 0 + #sak::registry::local set $xtest Body $xbody + #sak::registry::local set $xtest Actual $xactual + #sak::registry::local set $xtest Expected $xexpected + set xtest {} + } + return -code continue +} + +proc ::sak::test::run::CaptureFailureCollectError {} { + variable xcollect + if {$xcollect != 5} return + upvar 1 rline line + variable xbody + if {[string match {---- errorCode*} $line]} { + set xcollect 4 + return -code continue + } + + variable xactual + append xactual $line \n + return -code continue +} + +proc ::sak::test::run::Aborted {} { + upvar 1 line line + if {![string match {Aborting the tests found *} $line]} return + variable xfile + variable xstatus + # Ignore aborted status if we already have it, or some other error + # status (like error, or fail). These are more important to show. + if {$xstatus == "ok"} {set xstatus aborted} + = Aborted + #sak::registry::local set $xfile Aborted {} + return -code continue +} + +proc ::sak::test::run::AbortCause {} { + upvar 1 line line + if { + ![string match {Requiring *} $line] && + ![string match {Error in *} $line] + } return ; # {} + variable xfile + = $line + #sak::registry::local set $xfile Aborted $line + return -code continue +} + +proc ::sak::test::run::CaptureStackStart {} { + upvar 1 line line + if {![string match {@+*} $line]} return + variable xstackcollect 1 + variable xstack {} + variable xstatus error + = {Error, capturing stacktrace} + return -code continue +} + +proc ::sak::test::run::CaptureStack {} { + variable xstackcollect + if {!$xstackcollect} return + upvar 1 line line + variable xstack + if {![string match {@-*} $line]} { + append xstack [string range $line 2 end] \n + } else { + set xstackcollect 0 + variable xfile + variable alog + #sak::registry::local set $xfile Stacktrace $xstack + if {$alog} { + variable logerd + puts $logerd "[lindex $xfile end] StackTrace" + puts $logerd "========================================" + puts $logerd $xstack + puts $logerd "========================================\n\n" + flush $logerd + } + } + return -code continue +} + +proc ::sak::test::run::SetupError {} { + upvar 1 line line + if {![string match {SETUP Error*} $line]} return + variable xstatus error + = {Setup error} + return -code continue +} + +# ### + +proc ::sak::test::run::+= {string} { + variable araw + if {$araw} return + variable aprefix + append aprefix " " $string + sak::animate::next $aprefix + return +} + +proc ::sak::test::run::= {string} { + variable araw + if {$araw} return + variable aprefix + sak::animate::next "$aprefix $string" + return +} + +proc ::sak::test::run::=| {string} { + variable araw + if {$araw} return + variable aprefix + sak::animate::last "$aprefix $string" + variable alog + if {$alog} { + variable logsum + variable logfai + variable logski + variable lognon + variable xstatus + puts $logsum "$aprefix $string" ; flush $logsum + switch -exact -- $xstatus { + error - + fail {puts $logfai "$aprefix $string" ; flush $logfai} + none {puts $lognon "$aprefix $string" ; flush $lognon} + aborted {puts $logski "$aprefix $string" ; flush $logski} + } + } + set aprefix "" + return +} + +# ### + +namespace eval ::sak::test::run { + variable base [file join $::distribution support devel] + variable valgrind [auto_execok valgrind] + + # State of test processing. + + variable xstackcollect 0 + variable xstack {} + variable xcollect 0 + variable xbody {} + variable xactual {} + variable xexpected {} + variable xhost {} + variable xplatform {} + variable xcwd {} + variable xshell {} + variable xmodule {} + variable xfile {} + variable xtest {} + variable xstartfile {} + variable xtimes {} + + variable xstatus ok + + # Animation prefix of test processing, and flag controlling the + # nature of logging (raw vs animation). + + variable aprefix {} + variable araw 0 + + # Max length of module names and patchlevel information. + + variable maxml 0 + variable maxvl 0 + + # Map from internal stati to the displayed human readable + # strings. This includes the trailing whitespace needed for + # vertical alignment. + + variable xvstatus + array set xvstatus { + ok { } + none {None } + aborted {Skip } + error {ERR } + fail {FAILS} + } +} + +## +# ### + +package provide sak::test::run 1.0 + +if 0 { + # Bad valgrind, ok no valgrind + if {$config(valgrind)} { + foreach e $valgrind {lappend cmd $e} + lappend cmd --num-callers=8 + lappend cmd --leak-resolution=high + lappend cmd -v --leak-check=yes + lappend cmd --show-reachable=yes + } + lappend cmd $sh + lappend cmd [Driver] -modules $modules +} diff --git a/tcllib/support/devel/sak/test/shell.tcl b/tcllib/support/devel/sak/test/shell.tcl new file mode 100644 index 0000000..f0f0e5d --- /dev/null +++ b/tcllib/support/devel/sak/test/shell.tcl @@ -0,0 +1,94 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +getpackage fileutil fileutil/fileutil.tcl + +package require sak::test +package require sak::registry +namespace eval ::sak::test::shell {} + +# ### + +proc ::sak::test::shell {argv} { + if {![llength $argv]} {Usage Sub command missing} + + set cmd [lindex $argv 0] + set argv [lrange $argv 1 end] + + switch -exact -- $cmd { + add { + sak::test::shell::add $argv + } + delete { + sak::test::shell::delete $argv + } + default { + sak::test::usage Unknown command "\"shell $cmd\"" + } + } + return +} + +proc ::sak::test::shell::list {} { + return [sak::registry::local \ + get||default Tests Shells {}] +} + +proc ::sak::test::shell::add {paths} { + foreach p $paths { + if {![fileutil::test $p efrx msg "Shell"]} { + sak::test::usage $msg + } + } + + set shells [sak::registry::local \ + get||default Tests Shells {}] + array set known {} + foreach sh $shells {set known($sh) .} + + set changed 0 + foreach p $paths { + if {[info exists known($p)]} continue + lappend shells $p + set changed 1 + } + + if {$changed} { + sak::registry::local \ + set Tests Shells [lsort -dict $shells] + } + return +} + +proc ::sak::test::shell::delete {paths} { + set shells [sak::registry::local \ + get||default Tests Shells {}] + array set known {} + foreach sh $shells {set known($sh) .} + + set changed 0 + foreach p $paths { + if {![info exists known($p)]} continue + unset known($p) + set changed 1 + } + + if {$changed} { + sak::registry::local \ + set Tests Shells [lsort -dict \ + [array names known]] + } + return +} + +# ### + +namespace eval ::sak::test::shell { +} + +## +# ### + +package provide sak::test::shell 1.0 diff --git a/tcllib/support/devel/sak/test/shells.tcl b/tcllib/support/devel/sak/test/shells.tcl new file mode 100644 index 0000000..09a1bc6 --- /dev/null +++ b/tcllib/support/devel/sak/test/shells.tcl @@ -0,0 +1,24 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::test +package require sak::test::shell +namespace eval ::sak::test::shells {} + +# ### + +proc ::sak::test::shells {argv} { + if {[llength $argv]} { + sak::test::usage Wrong # args + } + + puts stdout [join [sak::test::shell::list] \n] + return +} + +## +# ### + +package provide sak::test::shells 1.0 diff --git a/tcllib/support/devel/sak/test/test.tcl b/tcllib/support/devel/sak/test/test.tcl new file mode 100644 index 0000000..c31d974 --- /dev/null +++ b/tcllib/support/devel/sak/test/test.tcl @@ -0,0 +1,19 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::test {} + +# ### + +proc ::sak::test::usage {args} { + package require sak::help + puts stdout [join $args { }]\n[sak::help::on test] + exit 1 +} + +## +# ### + +package provide sak::test 1.0 diff --git a/tcllib/support/devel/sak/test/topic.txt b/tcllib/support/devel/sak/test/topic.txt new file mode 100644 index 0000000..31d0be5 --- /dev/null +++ b/tcllib/support/devel/sak/test/topic.txt @@ -0,0 +1 @@ +test Execute testsuites diff --git a/tcllib/support/devel/sak/util/anim.tcl b/tcllib/support/devel/sak/util/anim.tcl new file mode 100644 index 0000000..302ff04 --- /dev/null +++ b/tcllib/support/devel/sak/util/anim.tcl @@ -0,0 +1,64 @@ +# -*- tcl -*- +# (C) 2006-2013 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::animate { + # EL (Erase Line) + # Sequence: ESC [ n K + # ** Effect: if n is 0 or missing, clear from cursor to end of line + # Effect: if n is 1, clear from beginning of line to cursor + # Effect: if n is 2, clear entire line + + variable eeol \033\[K +} + +# ### + +proc ::sak::animate::init {} { + variable prefix + variable n 0 + variable max [llength $prefix] +} + +proc ::sak::animate::next {string} { + variable prefix + variable n + variable max + variable eeol + + puts -nonewline stdout \r\[[lindex $prefix $n]\]\ $string$eeol + flush stdout + + incr n ; if {$n >= $max} {set n 0} + return +} + +proc ::sak::animate::last {string} { + variable clear + + puts stdout \r\[$clear\]\ $string + flush stdout + return +} + +# ### + +namespace eval ::sak::animate { + namespace export init next last + + variable prefix { + {* } {* } {* } {* } {* } + { * } { * } { * } { * } { * } + { * } { * } { * } { * } { * } + { *} { *} { *} { *} { *} + { * } { * } { * } { * } { * } + { * } { * } { * } { * } { * } + } + variable clear { } +} + +## +# ### + +package provide sak::animate 1.0 diff --git a/tcllib/support/devel/sak/util/color.tcl b/tcllib/support/devel/sak/util/color.tcl new file mode 100644 index 0000000..76a475e --- /dev/null +++ b/tcllib/support/devel/sak/util/color.tcl @@ -0,0 +1,54 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::color {} + +# ### + +if {$::tcl_platform(platform) == "windows"} { + # No ansi colorization on windows + namespace eval ::sak::color { + variable n + foreach n {cya yel whi mag red green rst} { + proc $n {} {return ""} + namespace export $n + + proc =$n {s} {return $s} + namespace export =$n + } + unset n + } +} else { + getpackage term::ansi::code::attr term/ansi/code/attr.tcl + getpackage term::ansi::code::ctrl term/ansi/code/ctrl.tcl + + ::term::ansi::code::ctrl::import ::sak::color sda_bg* sda_reset + + namespace eval ::sak::color { + variable s + variable n + foreach {s n} { + sda_bgcyan cya + sda_bgyellow yel + sda_bgwhite whi + sda_bgmagenta mag + sda_bgred red + sda_bggreen green + sda_reset rst + } { + rename $s $n + namespace export $n + + proc =$n {s} "return \[$n\]\$s\[rst\]" + namespace export =$n + } + unset s n + } +} + +## +# ### + +package provide sak::color 1.0 diff --git a/tcllib/support/devel/sak/util/feedback.tcl b/tcllib/support/devel/sak/util/feedback.tcl new file mode 100644 index 0000000..557ea50 --- /dev/null +++ b/tcllib/support/devel/sak/util/feedback.tcl @@ -0,0 +1,182 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +# Feedback modes +# +# [short] Animated short feedback on stdout, no logging +# [log] Animated short feedback on stdout, logging to multiple files. +# [verbose] Logging to stdout +# +# Output commands for various destinations: +# +# <v> Verbose Log +# <s> Short Log +# +# Handling of the destinations per mode +# +# <s> <v> +# [short] stdout, /dev/null +# [log] stdout, file +# [verbose] /dev/null, stdout + +# Log files for different things are opened on demand, i.e. on the +# first write to them. We can configure (per possible log) a string to +# be written before the first write. Reconfiguring that string for a +# log clears the flag for that log and causes the string to be +# rewritten on the next write. + +package require sak::animate + +namespace eval ::sak::feedback { + namespace import ::sak::animate::next ; rename next aNext + namespace import ::sak::animate::last ; rename last aLast +} + +# ### + +proc ::sak::feedback::init {mode stem} { + variable prefix "" + variable short [expr {$mode ne "verbose"}] + variable verbose [expr {$mode ne "short"}] + variable tofile [expr {$mode eq "log"}] + variable lstem $stem + variable dst "" + variable lfirst + unset lfirst + array set lfirst {} + # Note: lchan is _not_ reset. We keep channels, allowing us to + # merge output from different modules, if they are run as + # one unit (Example: validate and its various parts, which + # can be run separately, and together). + return +} + +proc ::sak::feedback::first {dst string} { + variable lfirst + set lfirst($dst) $string + return +} + +### + +proc ::sak::feedback::summary {text} { + #=| $text + #log $text + + variable short + variable verbose + if {$short} { puts $text } + if {$verbose} { puts [_channel log] $text } + return +} + + +proc ::sak::feedback::log {text {ext log}} { + variable verbose + if {!$verbose} return + set c [_channel $ext] + puts $c $text + flush $c + return +} + +### + +proc ::sak::feedback::! {} { + variable short + if {!$short} return + variable prefix "" + sak::animate::init + return +} + +proc ::sak::feedback::+= {string} { + variable short + if {!$short} return + variable prefix + append prefix " " $string + aNext $prefix + return +} + +proc ::sak::feedback::= {string} { + variable short + if {!$short} return + variable prefix + aNext "$prefix $string" + return +} + +proc ::sak::feedback::=| {string} { + variable short + if {!$short} return + + variable prefix + aLast "$prefix $string" + + variable verbose + if {$verbose} { + variable dst + if {[string length $dst]} { + # inlined 'log' + set c [_channel $dst] + puts $c "$prefix $string" + flush $c + set dst "" + } + } + + set prefix "" + return +} + +proc ::sak::feedback::>> {string} { + variable dst $string + return +} + +# ### + +proc ::sak::feedback::_channel {dst} { + variable tofile + if {!$tofile} { return stdout } + variable lchan + if {[info exists lchan($dst)]} { + set c $lchan($dst) + } else { + variable lstem + set c [open ${lstem}.$dst w] + set lchan($dst) $c + } + variable lfirst + if {[info exists lfirst($dst)]} { + puts $c $lfirst($dst) + unset lfirst($dst) + } + return $c +} + +# ### + +namespace eval ::sak::feedback { + namespace export >> ! += = =| init log summary + + variable dst "" + variable prefix "" + variable short "" + variable verbose "" + variable tofile "" + variable lstem "" + variable lchan + array set lchan {} + + variable lfirst + array set lfirst {} +} + +## +# ### + +package provide sak::feedback 1.0 diff --git a/tcllib/support/devel/sak/util/pkgIndex.tcl b/tcllib/support/devel/sak/util/pkgIndex.tcl new file mode 100644 index 0000000..0042019 --- /dev/null +++ b/tcllib/support/devel/sak/util/pkgIndex.tcl @@ -0,0 +1,6 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::util 1.0 [list source [file join $dir util.tcl]] +package ifneeded sak::registry 1.0 [list source [file join $dir registry.tcl]] +package ifneeded sak::animate 1.0 [list source [file join $dir anim.tcl]] +package ifneeded sak::color 1.0 [list source [file join $dir color.tcl]] +package ifneeded sak::feedback 1.0 [list source [file join $dir feedback.tcl]] diff --git a/tcllib/support/devel/sak/util/registry.tcl b/tcllib/support/devel/sak/util/registry.tcl new file mode 100644 index 0000000..933fcad --- /dev/null +++ b/tcllib/support/devel/sak/util/registry.tcl @@ -0,0 +1,59 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +getpackage pregistry registry/registry.tcl + +namespace eval ::sak::registry {} + +proc ::sak::registry::local {args} { + return [uplevel 1 [linsert $args 0 [Setup]]] + # return <$_local {expand}$args> +} + +proc ::sak::registry::Setup {} { + variable _local + variable state + variable statedir + + if {![file exists $statedir]} { + file mkdir $statedir + } + + if {$_local == {}} { + set _local [pregistry %AUTO% \ + -tie [list file $state]] + } + + return $_local +} + +proc ::sak::registry::Refresh {} { + variable _local + $_local destroy + set _local {} + Setup + return +} + +namespace eval ::sak::registry { + variable _here [file dirname [info script]] + + variable statedir [file join ~ .Tcllib] + variable state [file join $statedir Registry] + variable _local {} +} + +## +# ### + +package provide sak::registry 1.0 + +# ### +## Data structures +# +## Core is a tree (struct::tree), keys are lists, mapping to a node, +## starting from the root. Attributes are node attributes. A prefix is +## used to distinguish them from the attributes used for internal +## purposes. diff --git a/tcllib/support/devel/sak/util/util.tcl b/tcllib/support/devel/sak/util/util.tcl new file mode 100644 index 0000000..cca192e --- /dev/null +++ b/tcllib/support/devel/sak/util/util.tcl @@ -0,0 +1,72 @@ +# -*- tcl -*- +# (C) 2006 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::util {} + +# ### + +proc ::sak::util::path2modules {paths} { + set modules {} + foreach p $paths { + if {[file exists $p]} {set p [file tail $p]} + lappend modules $p + } + return $modules +} + +proc ::sak::util::modules2path {modules} { + global distribution + set modbase [file join $distribution modules] + + set paths {} + foreach m $modules { + lappend paths [file join $modbase $m] + } + return $paths +} + +proc ::sak::util::module2path {module} { + global distribution + set modbase [file join $distribution modules] + return [file join $modbase $module] +} + +proc ::sak::util::checkModules {modvar} { + upvar 1 $modvar modules + + if {![llength $modules]} { + # Default to all if none are specified. This information does + # not require validation. + + set modules [modules] + return 1 + } + + set modules [path2modules $modules] + + set fail 0 + foreach m $modules { + if {[modules_mod $m]} { + lappend results $m + continue + } + + puts " Unknown module: $m" + set fail 1 + } + + if {$fail} { + puts " Stop." + return 0 + } + + set modules $results + return 1 +} + +## +# ### + +package provide sak::util 1.0 diff --git a/tcllib/support/devel/sak/validate/cmd.tcl b/tcllib/support/devel/sak/validate/cmd.tcl new file mode 100644 index 0000000..ca2ddc9 --- /dev/null +++ b/tcllib/support/devel/sak/validate/cmd.tcl @@ -0,0 +1,70 @@ +# -*- tcl -*- +# Implementation of 'validate'. + +# Available variables +# * argv - Cmdline arguments +# * base - Location of sak.tcl = Top directory of Tcllib distribution +# * cbase - Location of all files relevant to this command. +# * sbase - Location of all files supporting the SAK. + +package require sak::util +package require sak::validate + +set raw 0 +set log 0 +set stem {} +set tclv {} + +if {[llength $argv]} { + # First argument may be a command. + set cmd [lindex $argv 0] + if {![catch { + package require sak::validate::$cmd + } msg]} { + set argv [lrange $argv 1 end] + } else { + set cmd all + } + + # Now process any possible options (-v, -l, --log). + + while {[string match -* [set opt [lindex $argv 0]]]} { + switch -exact -- $opt { + -v { + set raw 1 + set argv [lrange $argv 1 end] + } + -l - --log { + set log 1 + set stem [lindex $argv 1] + set argv [lrange $argv 2 end] + } + -t - --tcl { + set tclv [lindex $argv 1] + set argv [lrange $argv 2 end] + } + default { + sak::validate::usage Unknown option "\"$opt\"" + } + } + } +} else { + set cmd all +} + +# At last now handle all remaining arguments as module specifications. +if {![sak::util::checkModules argv]} return + +if {$log} { set raw 0 } + +array set mode { + 00 short + 01 log + 10 verbose + 11 _impossible_ +} + +sak::validate::$cmd $argv $mode($raw$log) $stem $tclv + +## +# ### diff --git a/tcllib/support/devel/sak/validate/help.txt b/tcllib/support/devel/sak/validate/help.txt new file mode 100644 index 0000000..6ded891 --- /dev/null +++ b/tcllib/support/devel/sak/validate/help.txt @@ -0,0 +1,53 @@ + + validate -- Validate modules and packages + + sak validate ?-v? ?-l|--log STEM? ?MODULE ...? + sak validate manpages ?-v? ?-l|--log STEM? ?MODULE ...? + sak validate versions ?-v? ?-l|--log STEM? ?MODULE ...? + sak validate testsuites ?-v? ?-l|--log STEM? ?MODULE ...? + sak validate syntax ?-v? ?-l|--log STEM? ?MODULE ...? + + Validate one or more aspects of the specified modules and the + packages they contain. If no module is specified all modules + are validated. If no aspect was specified all possible aspects + are validated. + + By default the output from a validation run is animated + feedback of the progress made, plus summarized color-coded + results. If -v is specified the actual log is returned + instead. + + If a log STEM is specified the extended log normally activated + via -v is written to STEM.log while the user is provided with + the regular feedback during execution. Usage of the -l switch + overides -v. + + The system is currently able to validate the following aspects + of the module and package sources: + + manpages + Reports modules/packages without documentation, and + modules/packages which have syntactically flawed + documentation. The second part is identical to + + sak doc validate + + versions + Reports modules and packages with mismatches between + 'package ifneeded' and 'package provided' commands. + + testsuites + Report modules and packages without testsuites. + + Note that this command is _not_ actually executing the + testsuites. That is done via + + sak test run ... + + See its documentation (sak help test) for more + information. + + syntax + Scan modules and packages using various tools + statically checking Tcl syntax, and report their + outputs. diff --git a/tcllib/support/devel/sak/validate/manpages.tcl b/tcllib/support/devel/sak/validate/manpages.tcl new file mode 100644 index 0000000..fbb0e86 --- /dev/null +++ b/tcllib/support/devel/sak/validate/manpages.tcl @@ -0,0 +1,464 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::animate +package require sak::feedback +package require sak::color + +getpackage textutil::repeat textutil/repeat.tcl +getpackage doctools doctools/doctools.tcl + +namespace eval ::sak::validate::manpages { + namespace import ::textutil::repeat::blank + namespace import ::sak::color::* + namespace import ::sak::feedback::! + namespace import ::sak::feedback::>> + namespace import ::sak::feedback::+= + namespace import ::sak::feedback::= + namespace import ::sak::feedback::=| + namespace import ::sak::feedback::log + namespace import ::sak::feedback::summary + rename summary sum +} + +# ### + +proc ::sak::validate::manpages {modules mode stem tclv} { + manpages::run $modules $mode $stem $tclv + manpages::summary + return +} + +proc ::sak::validate::manpages::run {modules mode stem tclv} { + sak::feedback::init $mode $stem + sak::feedback::first log "\[ Documentation \] ===============================================" + sak::feedback::first unc "\[ Documentation \] ===============================================" + sak::feedback::first fail "\[ Documentation \] ===============================================" + sak::feedback::first warn "\[ Documentation \] ===============================================" + sak::feedback::first miss "\[ Documentation \] ===============================================" + sak::feedback::first none "\[ Documentation \] ===============================================" + + # Preprocessing of module names to allow better formatting of the + # progress output, i.e. vertically aligned columns + + # Per module we can distinguish the following levels of + # documentation completeness and validity + + # Completeness: + # - No package has documentation + # - Some, but not all packages have documentation + # - All packages have documentation. + # + # Validity, restricted to the set packages which have documentation: + # - Documentation has errors and warnings + # - Documentation has errors, but no warnings. + # - Documentation has no errors, but warnings. + # - Documentation has neither errors nor warnings. + + # Progress report per module: Packages it is working on. + # Summary at module level: + # - Number of packages, number of packages with documentation, + # - Number of errors, number of warnings. + + # Full log: + # - Lists packages without documentation. + # - Lists packages with errors/warnings. + # - Lists the exact errors/warnings per package, and location. + + # Global preparation: Pull information about all packages and the + # modules they belong to. + + ::doctools::new dt -format desc -deprecated 1 + + Count $modules + MapPackages + + InitCounters + foreach m $modules { + # Skip tcllibc shared library, not a module. + if {[string equal $m tcllibc]} continue + + InitModuleCounters + ! + log "@@ Module $m" + Head $m + + # Per module: Find all doctools manpages inside and process + # them. We get errors, warnings, and determine the package(s) + # they may belong to. + + # Per package: Have they doc files claiming them? After that, + # are doc files left over (i.e. without a package)? + + ProcessPages $m + ProcessPackages $m + ProcessUnclaimed + ModuleSummary + } + + dt destroy + return +} + +proc ::sak::validate::manpages::summary {} { + Summary + return +} + +# ### + +proc ::sak::validate::manpages::ProcessPages {m} { + !claims + dt configure -module $m + foreach f [glob -nocomplain [file join [At $m] *.man]] { + ProcessManpage $f + } + return +} + +proc ::sak::validate::manpages::ProcessManpage {f} { + =file $f + dt configure -file $f + + if {[catch { + dt format [get_input $f] + } msg]} { + +e $msg + } else { + foreach {pkg _ _} $msg { +claim $pkg } + } + + set warnings [dt warnings] + if {![llength $warnings]} return + + foreach msg $warnings { +w $msg } + return +} + +proc ::sak::validate::manpages::ProcessPackages {m} { + !used + if {![HasPackages $m]} return + + foreach p [ThePackages $m] { + +pkg $p + if {[claimants $p]} { + +doc $p + } else { + nodoc $p + } + } + return +} + +proc ::sak::validate::manpages::ProcessUnclaimed {} { + variable claims + if {![array size claims]} return + foreach p [lsort -dict [array names claims]] { + foreach fx $claims($p) { +u $fx } + } + return +} + +### + +proc ::sak::validate::manpages::=file {f} { + variable current [file tail $f] + = "$current ..." + return +} + +### + +proc ::sak::validate::manpages::!claims {} { + variable claims + array unset claims * + return +} + +proc ::sak::validate::manpages::+claim {pkg} { + variable current + variable claims + lappend claims($pkg) $current + return +} + +proc ::sak::validate::manpages::claimants {pkg} { + variable claims + expr { [info exists claims($pkg)] && [llength $claims($pkg)] } +} + + +### + +proc ::sak::validate::manpages::!used {} { + variable used + array unset used * + return +} + +proc ::sak::validate::manpages::+use {pkg} { + variable used + variable claims + foreach fx $claims($pkg) { set used($fx) . } + unset claims($pkg) + return +} + +### + +proc ::sak::validate::manpages::MapPackages {} { + variable pkg + array unset pkg * + + ! + += Package + foreach {pname pdata} [ipackages] { + = "$pname ..." + foreach {pver pmodule} $pdata break + lappend pkg($pmodule) $pname + } + ! + =| {Packages mapped ...} + return +} + +proc ::sak::validate::manpages::HasPackages {m} { + variable pkg + expr { [info exists pkg($m)] && [llength $pkg($m)] } +} + +proc ::sak::validate::manpages::ThePackages {m} { + variable pkg + return [lsort -dict $pkg($m)] +} + +### + +proc ::sak::validate::manpages::+pkg {pkg} { + variable mtotal ; incr mtotal + variable total ; incr total + return +} + +proc ::sak::validate::manpages::+doc {pkg} { + variable mhavedoc ; incr mhavedoc + variable havedoc ; incr havedoc + = "$pkg Ok" + +use $pkg + return +} + +proc ::sak::validate::manpages::nodoc {pkg} { + = "$pkg Bad" + log "@@ WARN No documentation: $pkg" + return +} + +### + +proc ::sak::validate::manpages::+w {msg} { + variable mwarnings ; incr mwarnings + variable warnings ; incr warnings + variable current + foreach {a b c} [split $msg \n] break + log "@@ WARN $current: [Trim $a] [Trim $b] [Trim $c]" + return +} + +proc ::sak::validate::manpages::+e {msg} { + variable merrors ; incr merrors + variable errors ; incr errors + variable current + log "@@ ERROR $current $msg" + return +} + +proc ::sak::validate::manpages::+u {f} { + variable used + if {[info exists used($f)]} return + variable munclaimed ; incr munclaimed + variable unclaimed ; incr unclaimed + set used($f) . + log "@@ WARN Unclaimed documentation file: $f" + return +} + +### + +proc ::sak::validate::manpages::Count {modules} { + variable maxml 0 + ! + foreach m [linsert $modules 0 Module] { + = "M $m" + set l [string length $m] + if {$l > $maxml} {set maxml $l} + } + =| "Validate documentation (existence, errors, warnings) ..." + return +} + +proc ::sak::validate::manpages::Head {m} { + variable maxml + += ${m}[blank [expr {$maxml - [string length $m]}]] + return +} + +### + +proc ::sak::validate::manpages::InitModuleCounters {} { + variable mtotal 0 + variable mhavedoc 0 + variable munclaimed 0 + variable merrors 0 + variable mwarnings 0 + return +} + +proc ::sak::validate::manpages::ModuleSummary {} { + variable mtotal + variable mhavedoc + variable munclaimed + variable merrors + variable mwarnings + + set complete [F $mhavedoc]/[F $mtotal] + set not "! [F [expr {$mtotal - $mhavedoc}]]" + set err "E [F $merrors]" + set warn "W [F $mwarnings]" + set unc "U [F $munclaimed]" + + if {$munclaimed} { + set unc [=cya $unc] + >> unc + } + if {!$mhavedoc && $mtotal} { + set complete [=red $complete] + set not [=red $not] + >> none + } elseif {$mhavedoc < $mtotal} { + set complete [=yel $complete] + set not [=yel $not] + >> miss + } + if {$merrors} { + set err [=red $err] + set warn [=yel $warn] + >> fail + } elseif {$mwarnings} { + set warn [=yel $warn] + >> warn + } + + =| "~~ $complete $not $unc $err $warn" + return +} + +### + +proc ::sak::validate::manpages::InitCounters {} { + variable total 0 + variable havedoc 0 + variable unclaimed 0 + variable errors 0 + variable warnings 0 + return +} + +proc ::sak::validate::manpages::Summary {} { + variable total + variable havedoc + variable unclaimed + variable errors + variable warnings + + set tot [F $total] + set doc [F $havedoc] + set udc [F [expr {$total - $havedoc}]] + + set unc [F $unclaimed] + set per [format %6.2f [expr {$havedoc*100./$total}]] + set uper [format %6.2f [expr {($total - $havedoc)*100./$total}]] + set err [F $errors] + set wrn [F $warnings] + + if {$errors} { set err [=red $err] } + if {$warnings} { set wrn [=yel $wrn] } + if {$unclaimed} { set unc [=cya $unc] } + + if {!$havedoc && $total} { + set doc [=red $doc] + set udc [=red $udc] + } elseif {$havedoc < $total} { + set doc [=yel $doc] + set udc [=yel $udc] + } + + sum "" + sum "Documentation statistics" + sum "#Packages: $tot" + sum "#Documented: $doc (${per}%)" + sum "#Undocumented: $udc (${uper}%)" + sum "#Unclaimed: $unc" + sum "#Errors: $err" + sum "#Warnings: $wrn" + return +} + +### + +proc ::sak::validate::manpages::F {n} { format %6d $n } + +proc ::sak::validate::manpages::Trim {text} { + regsub {^[^:]*:} $text {} text + return [string trim $text] +} + +### + +proc ::sak::validate::manpages::At {m} { + global distribution + return [file join $distribution modules $m] +} + +# ### + +namespace eval ::sak::validate::manpages { + # Max length of module names and patchlevel information. + variable maxml 0 + + # Counters across all modules + variable total 0 ; # Number of packages overall. + variable havedoc 0 ; # Number of packages with documentation. + variable unclaimed 0 ; # Number of manpages not claimed by a specific package. + variable errors 0 ; # Number of errors found in all documentation. + variable warnings 0 ; # Number of warnings found in all documentation. + + # Same counters, per module. + variable mtotal 0 + variable mhavedoc 0 + variable munclaimed 0 + variable merrors 0 + variable mwarnings 0 + + # Name of currently processed manpage + variable current "" + + # Map from packages to files claiming to document them. + variable claims + array set claims {} + + # Set of files taken by packages, as array + variable used + array set used {} + + # Map from modules to packages contained in them + variable pkg + array set pkg {} +} + +## +# ### + +package provide sak::validate::manpages 1.0 diff --git a/tcllib/support/devel/sak/validate/pkgIndex.tcl b/tcllib/support/devel/sak/validate/pkgIndex.tcl new file mode 100644 index 0000000..d6ad128 --- /dev/null +++ b/tcllib/support/devel/sak/validate/pkgIndex.tcl @@ -0,0 +1,6 @@ +if {![package vsatisfies [package provide Tcl] 8.2]} return +package ifneeded sak::validate 1.0 [list source [file join $dir validate.tcl]] +package ifneeded sak::validate::manpages 1.0 [list source [file join $dir manpages.tcl]] +package ifneeded sak::validate::versions 1.0 [list source [file join $dir versions.tcl]] +package ifneeded sak::validate::testsuites 1.0 [list source [file join $dir testsuites.tcl]] +package ifneeded sak::validate::syntax 1.0 [list source [file join $dir syntax.tcl]] diff --git a/tcllib/support/devel/sak/validate/syntax.tcl b/tcllib/support/devel/sak/validate/syntax.tcl new file mode 100644 index 0000000..24e06d2 --- /dev/null +++ b/tcllib/support/devel/sak/validate/syntax.tcl @@ -0,0 +1,668 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::animate +package require sak::feedback +package require sak::color + +getpackage textutil::repeat textutil/repeat.tcl +getpackage doctools doctools/doctools.tcl + +namespace eval ::sak::validate::syntax { + namespace import ::textutil::repeat::blank + namespace import ::sak::color::* + namespace import ::sak::feedback::! + namespace import ::sak::feedback::>> + namespace import ::sak::feedback::+= + namespace import ::sak::feedback::= + namespace import ::sak::feedback::=| + namespace import ::sak::feedback::log + namespace import ::sak::feedback::summary + rename summary sum +} + +# ### + +proc ::sak::validate::syntax {modules mode stem tclv} { + syntax::run $modules $mode $stem $tclv + syntax::summary + return +} + +proc ::sak::validate::syntax::run {modules mode stem tclv} { + sak::feedback::init $mode $stem + sak::feedback::first log "\[ Syntax \] ======================================================" + sak::feedback::first unc "\[ Syntax \] ======================================================" + sak::feedback::first fail "\[ Syntax \] ======================================================" + sak::feedback::first warn "\[ Syntax \] ======================================================" + sak::feedback::first miss "\[ Syntax \] ======================================================" + sak::feedback::first none "\[ Syntax \] ======================================================" + + # Preprocessing of module names to allow better formatting of the + # progress output, i.e. vertically aligned columns + + # Per module we can distinguish the following levels of + # syntactic completeness and validity. + + # Rule completeness + # - No package has pcx rules + # - Some, but not all packages have pcx rules + # - All packages have pcx rules + # + # Validity. Not of the pcx rules, but of the files in the + # packages. + # - Package has errors and warnings + # - Package has errors, but no warnings. + # - Package has no errors, but warnings. + # - Package has neither errors nor warnings. + + # Progress report per module: Modules and packages it is working on. + # Summary at module level: + # - Number of packages, number of packages with pcx rules + # - Number of errors, number of warnings. + + # Full log: + # - Lists packages without pcx rules. + # - Lists packages with errors/warnings. + # - Lists the exact errors/warnings per package, and location. + + # Global preparation: Pull information about all packages and the + # modules they belong to. + + Setup + Count $modules + MapPackages + + InitCounters + foreach m $modules { + # Skip tcllibc shared library, not a module. + if {[string equal $m tcllibc]} continue + + InitModuleCounters + ! + log "@@ Module $m" + Head $m + + # Per module: Find all syntax definition (pcx) files inside + # and process them. Further find all the Tcl files and process + # them as well. We get errors, warnings, and determine the + # package(s) they may belong to. + + # Per package: Have they pcx files claiming them? After that, + # are pcx files left over (i.e. without a package)? + + ProcessAllPCX $m + ProcessPackages $m + ProcessUnclaimed + ProcessTclSources $m $tclv + ModuleSummary + } + + Shutdown + return +} + +proc ::sak::validate::syntax::summary {} { + Summary + return +} + +# ### + +proc ::sak::validate::syntax::ProcessAllPCX {m} { + !claims + foreach f [glob -nocomplain [file join [At $m] *.pcx]] { + ProcessOnePCX $f + } + return +} + +proc ::sak::validate::syntax::ProcessOnePCX {f} { + =file $f + + if {[catch { + Scan [get_input $f] + } msg]} { + +e $msg + } else { + +claim $msg + } + + return +} + +proc ::sak::validate::syntax::ProcessPackages {m} { + !used + if {![HasPackages $m]} return + + foreach p [ThePackages $m] { + +pkg $p + if {[claimants $p]} { + +pcx $p + } else { + nopcx $p + } + } + return +} + +proc ::sak::validate::syntax::ProcessUnclaimed {} { + variable claims + if {![array size claims]} return + foreach p [lsort -dict [array names claims]] { + foreach fx $claims($p) { +u $fx } + } + return +} + +proc ::sak::validate::syntax::ProcessTclSources {m tclv} { + variable tclchecker + if {![llength $tclchecker]} return + + foreach t [modtclfiles $m] { + # Ignore TeX files. + if {[string equal [file extension $t] .tex]} continue + + =file $t + set cmd [Command $t $tclv] + if {[catch {Close [Process [open |$cmd r+]]} msg]} { + if {[string match {*child process exited abnormally*} $msg]} continue + +e $msg + } + } + return +} + +### + +proc ::sak::validate::syntax::Setup {} { + variable ip [interp create] + + # Make it mostly empty (We keep the 'set' command). + + foreach n [interp eval $ip [list ::namespace children ::]] { + if {[string equal $n ::tcl]} continue + interp eval $ip [list namespace delete $n] + } + foreach c [interp eval $ip [list ::info commands]] { + if {[string equal $c set]} continue + if {[string equal $c if]} continue + if {[string equal $c rename]} continue + if {[string equal $c namespace]} continue + interp eval $ip [list ::rename $c {}] + } + + if {![package vsatisfies [package present Tcl] 8.6]} { + interp eval $ip [list ::namespace delete ::tcl] + } + interp eval $ip [list ::rename namespace {}] + interp eval $ip [list ::rename rename {}] + + foreach m { + pcx::register unknown + } { + interp alias $ip $m {} ::sak::validate::syntax::PCX/[string map {:: _} $m] $ip + } + return +} + +proc ::sak::validate::syntax::Shutdown {} { + variable ip + interp delete $ip + return +} + +proc ::sak::validate::syntax::Scan {data} { + variable ip + variable pcxpackage + while {1} { + if {[catch { + $ip eval $data + } msg]} { + if {[string match {can't read "*": no such variable} $msg]} { + regexp {can't read "(.*)": no such variable} $msg -> var + log "@@ + variable \"$var\"" + $ip eval [list set $var {}] + continue + } + return -code error $msg + } + break + } + return $pcxpackage +} + +proc ::sak::validate::syntax::PCX/pcx_register {ip pkg} { + variable pcxpackage $pkg + return +} + +proc ::sak::validate::syntax::PCX/unknown {ip args} { + return 0 +} + +### + +proc ::sak::validate::syntax::Process {pipe} { + variable current + set dst log + while {1} { + if {[eof $pipe]} break + if {[gets $pipe line] < 0} break + + set tline [string trim $line] + if {[string equal $tline ""]} continue + + if {[string match scanning:* $tline]} { + log $line + continue + } + if {[string match checking:* $tline]} { + log $line + continue + } + if {[regexp {^([^:]*):(\d+) \(([^)]*)\) (.*)$} $tline -> path at code detail]} { + = "$current $at $code" + set dst code,$code + if {[IsError $code]} { + +e $line + } else { + +w $line + } + } + log $line $dst + } + return $pipe +} + +proc ::sak::validate::syntax::IsError {code} { + variable codetype + variable codec + if {[info exists codec($code)]} { + return $codec($code) + } + + foreach {p t} $codetype { + if {![string match $p $code]} continue + set codec($code) $t + return $t + } + + # We assume that codetype contains a default * pattern as the last + # entry, capturing all unknown codes. + +e INTERNAL + exit +} + +proc ::sak::validate::syntax::Command {t tclv} { + # Unix. Construction of the pipe to run the tclchecker against a + # single tcl file. + + set cmd [Driver $tclv] + lappend cmd $t + + #lappend cmd >@ stdout 2>@ stderr + #puts <<$cmd>> + + return $cmd +} + +proc ::sak::validate::syntax::Close {pipe} { + close $pipe + return +} + +proc ::sak::validate::syntax::Driver {tclv} { + variable tclchecker + set cmd $tclchecker + + if {$tclv ne {}} { lappend cmd -use Tcl-$tclv } + + # Make all syntax definition files we may have available to the + # checker for higher accuracy of its output. + foreach m [modules] { lappend cmd -pcx [At $m] } + + # Memoize + proc ::sak::validate::syntax::Driver {tclv} [list return $cmd] + return $cmd +} + +### + +proc ::sak::validate::syntax::=file {f} { + variable current [file tail $f] + = "$current ..." + return +} + +### + +proc ::sak::validate::syntax::!claims {} { + variable claims + array unset claims * + return +} + +proc ::sak::validate::syntax::+claim {pkg} { + variable current + variable claims + lappend claims($pkg) $current + return +} + +proc ::sak::validate::syntax::claimants {pkg} { + variable claims + expr { [info exists claims($pkg)] && [llength $claims($pkg)] } +} + + +### + +proc ::sak::validate::syntax::!used {} { + variable used + array unset used * + return +} + +proc ::sak::validate::syntax::+use {pkg} { + variable used + variable claims + foreach fx $claims($pkg) { set used($fx) . } + unset claims($pkg) + return +} + +### + +proc ::sak::validate::syntax::MapPackages {} { + variable pkg + array unset pkg * + + ! + += Package + foreach {pname pdata} [ipackages] { + = "$pname ..." + foreach {pver pmodule} $pdata break + lappend pkg($pmodule) $pname + } + ! + =| {Packages mapped ...} + return +} + +proc ::sak::validate::syntax::HasPackages {m} { + variable pkg + expr { [info exists pkg($m)] && [llength $pkg($m)] } +} + +proc ::sak::validate::syntax::ThePackages {m} { + variable pkg + return [lsort -dict $pkg($m)] +} + +### + +proc ::sak::validate::syntax::+pkg {pkg} { + variable mtotal ; incr mtotal + variable total ; incr total + return +} + +proc ::sak::validate::syntax::+pcx {pkg} { + variable mhavepcx ; incr mhavepcx + variable havepcx ; incr havepcx + = "$pkg Ok" + +use $pkg + return +} + +proc ::sak::validate::syntax::nopcx {pkg} { + = "$pkg Bad" + log "@@ WARN No syntax definition: $pkg" + return +} + +### + +proc ::sak::validate::syntax::+w {msg} { + variable mwarnings ; incr mwarnings + variable warnings ; incr warnings + variable current + foreach {a b c} [split $msg \n] break + log "@@ WARN $current: [Trim $a] [Trim $b] [Trim $c]" + return +} + +proc ::sak::validate::syntax::+e {msg} { + variable merrors ; incr merrors + variable errors ; incr errors + variable current + log "@@ ERROR $current $msg" + return +} + +proc ::sak::validate::syntax::+u {f} { + variable used + if {[info exists used($f)]} return + variable munclaimed ; incr munclaimed + variable unclaimed ; incr unclaimed + set used($f) . + log "@@ WARN Unclaimed syntax definition file: $f" + return +} + +### + +proc ::sak::validate::syntax::Count {modules} { + variable maxml 0 + ! + foreach m [linsert $modules 0 Module] { + = "M $m" + set l [string length $m] + if {$l > $maxml} {set maxml $l} + } + =| "Validate syntax (code, and API definitions) ..." + return +} + +proc ::sak::validate::syntax::Head {m} { + variable maxml + += ${m}[blank [expr {$maxml - [string length $m]}]] + return +} + +### + +proc ::sak::validate::syntax::InitModuleCounters {} { + variable mtotal 0 + variable mhavepcx 0 + variable munclaimed 0 + variable merrors 0 + variable mwarnings 0 + return +} + +proc ::sak::validate::syntax::ModuleSummary {} { + variable mtotal + variable mhavepcx + variable munclaimed + variable merrors + variable mwarnings + variable tclchecker + + set complete [F $mhavepcx]/[F $mtotal] + set not "! [F [expr {$mtotal - $mhavepcx}]]" + set err "E [F $merrors]" + set warn "W [F $mwarnings]" + set unc "U [F $munclaimed]" + + if {$munclaimed} { + set unc [=cya $unc] + >> unc + } + if {!$mhavepcx && $mtotal} { + set complete [=red $complete] + set not [=red $not] + >> none + } elseif {$mhavepcx < $mtotal} { + set complete [=yel $complete] + set not [=yel $not] + >> miss + } + if {[llength $tclchecker]} { + if {$merrors} { + set err " [=red $err]" + set warn " [=yel $warn]" + >> fail + } elseif {$mwarnings} { + set err " $err" + set warn " [=yel $warn]" + >> warn + } else { + set err " $err" + set warn " $warn" + } + } else { + set err "" + set warn "" + } + + =| "~~ $complete $not $unc$err$warn" + return +} + +### + +proc ::sak::validate::syntax::InitCounters {} { + variable total 0 + variable havepcx 0 + variable unclaimed 0 + variable errors 0 + variable warnings 0 + return +} + +proc ::sak::validate::syntax::Summary {} { + variable total + variable havepcx + variable unclaimed + variable errors + variable warnings + variable tclchecker + + set tot [F $total] + set doc [F $havepcx] + set udc [F [expr {$total - $havepcx}]] + + set unc [F $unclaimed] + set per [format %6.2f [expr {$havepcx*100./$total}]] + set uper [format %6.2f [expr {($total - $havepcx)*100./$total}]] + set err [F $errors] + set wrn [F $warnings] + + if {$errors} { set err [=red $err] } + if {$warnings} { set wrn [=yel $wrn] } + if {$unclaimed} { set unc [=cya $unc] } + + if {!$havepcx && $total} { + set doc [=red $doc] + set udc [=red $udc] + } elseif {$havepcx < $total} { + set doc [=yel $doc] + set udc [=yel $udc] + } + + if {[llength $tclchecker]} { + set sfx " ($tclchecker)" + } else { + set sfx " ([=cya {No tclchecker available}])" + } + + sum "" + sum "Syntax statistics$sfx" + sum "#Packages: $tot" + sum "#Syntax def: $doc (${per}%)" + sum "#No syntax: $udc (${uper}%)" + sum "#Unclaimed: $unc" + if {[llength $tclchecker]} { + sum "#Errors: $err" + sum "#Warnings: $wrn" + } + return +} + +### + +proc ::sak::validate::syntax::F {n} { format %6d $n } + +proc ::sak::validate::syntax::Trim {text} { + regsub {^[^:]*:} $text {} text + return [string trim $text] +} + +### + +proc ::sak::validate::syntax::At {m} { + global distribution + return [file join $distribution modules $m] +} + +# ### + +namespace eval ::sak::validate::syntax { + # Max length of module names and patchlevel information. + variable maxml 0 + + # Counters across all modules + variable total 0 ; # Number of packages overall. + variable havepcx 0 ; # Number of packages with syntax definition (pcx) files. + variable unclaimed 0 ; # Number of PCX files not claimed by a specific package. + variable errors 0 ; # Number of errors found in all code. + variable warnings 0 ; # Number of warnings found in all code. + + # Same counters, per module. + variable mtotal 0 + variable mhavepcx 0 + variable munclaimed 0 + variable merrors 0 + variable mwarnings 0 + + # Name of currently processed syntax definition or code file + variable current "" + + # Map from packages to files claiming to define the syntax of their API. + variable claims + array set claims {} + + # Set of files taken by packages, as array + variable used + array set used {} + + # Map from modules to packages contained in them + variable pkg + array set pkg {} + + # Transient storage used while collecting packages per syntax definition. + variable pcxpackage {} + variable ip {} + + # Location of the tclchecker used to perform syntactic validation. + variable tclchecker [auto_execok tclchecker] + + # Patterns for separation of errors from warnings + variable codetype { + warn* 0 + nonPort* 0 + pkgUnchecked 0 + pkgVConflict 0 + * 1 + } + variable codec ; array set codec {} +} + +## +# ### + +package provide sak::validate::syntax 1.0 diff --git a/tcllib/support/devel/sak/validate/testsuites.tcl b/tcllib/support/devel/sak/validate/testsuites.tcl new file mode 100644 index 0000000..71ea694 --- /dev/null +++ b/tcllib/support/devel/sak/validate/testsuites.tcl @@ -0,0 +1,512 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::animate +package require sak::feedback +package require sak::color + +getpackage textutil::repeat textutil/repeat.tcl +getpackage interp interp/interp.tcl + +namespace eval ::sak::validate::testsuites { + namespace import ::textutil::repeat::blank + namespace import ::sak::color::* + namespace import ::sak::feedback::! + namespace import ::sak::feedback::>> + namespace import ::sak::feedback::+= + namespace import ::sak::feedback::= + namespace import ::sak::feedback::=| + namespace import ::sak::feedback::log + namespace import ::sak::feedback::summary + rename summary sum +} + +# ### + +proc ::sak::validate::testsuites {modules mode stem tclv} { + testsuites::run $modules $mode $stem $tclv + testsuites::summary + return +} + +proc ::sak::validate::testsuites::run {modules mode stem tclv} { + sak::feedback::init $mode $stem + sak::feedback::first log "\[ Testsuites \] ==================================================" + sak::feedback::first unc "\[ Testsuites \] ==================================================" + sak::feedback::first fail "\[ Testsuites \] ==================================================" + sak::feedback::first miss "\[ Testsuites \] ==================================================" + sak::feedback::first none "\[ Testsuites \] ==================================================" + + # Preprocessing of module names to allow better formatting of the + # progress output, i.e. vertically aligned columns + + # Per module we can distinguish the following levels of + # testsuite completeness: + # - No package has a testsuite + # - Some, but not all packages have a testsuite + # - All packages have a testsuite. + # + # Validity of the testsuites is not done here. It requires + # execution, see 'sak test run ...'. + + # Progress report per module: Packages it is working on. + # Summary at module level: + # - Number of packages, number of packages with testsuites, + + # Full log: + # - Lists packages without testsuites. + + # Global preparation: Pull information about all packages and the + # modules they belong to. + + Setup + Count $modules + MapPackages + + InitCounters + foreach m $modules { + # Skip tcllibc shared library, not a module. + if {[string equal $m tcllibc]} continue + + InitModuleCounters + ! + log "@@ Module $m" + Head $m + + # Per module: Find all testsuites in the module and process + # them. We determine the package(s) they may belong to. + + # Per package: Have they .test files claiming them? After + # that, are .test files left over (i.e. without a package)? + + ProcessTestsuites $m + ProcessPackages $m + ProcessUnclaimed + ModuleSummary + } + + Shutdown + return +} + +proc ::sak::validate::testsuites::summary {} { + Summary + return +} + +# ### + +proc ::sak::validate::testsuites::ProcessTestsuites {m} { + !claims + foreach f [glob -nocomplain [file join [At $m] *.test]] { + ProcessTestsuite $f + } + return +} + +proc ::sak::validate::testsuites::ProcessTestsuite {f} { + variable testing + =file $f + + if {[catch { + Scan [get_input $f] + } msg]} { + +e $msg + } else { + foreach p $testing { +claim $p } + } + + + return +} + +proc ::sak::validate::testsuites::Setup {} { + variable ip [interp create] + + # Make it mostly empty (We keep the 'set' command). + + foreach n [interp eval $ip [list ::namespace children ::]] { + if {[string equal $n ::tcl]} continue + interp eval $ip [list namespace delete $n] + } + foreach c [interp eval $ip [list ::info commands]] { + if {[string equal $c set]} continue + if {[string equal $c if]} continue + if {[string equal $c rename]} continue + if {[string equal $c namespace]} continue + interp eval $ip [list ::rename $c {}] + } + + if {![package vsatisfies [package present Tcl] 8.6]} { + interp eval $ip [list ::namespace delete ::tcl] + } + interp eval $ip [list ::rename namespace {}] + interp eval $ip [list ::rename rename {}] + + foreach m { + testing unknown useLocal useLocalKeep useAccel + } { + interp alias $ip $m {} ::sak::validate::testsuites::Process/$m $ip + } + return +} + +proc ::sak::validate::testsuites::Shutdown {} { + variable ip + interp delete $ip + return +} + +proc ::sak::validate::testsuites::Scan {data} { + variable ip + while {1} { + if {[catch { + $ip eval $data + } msg]} { + if {[string match {can't read "*": no such variable} $msg]} { + regexp {can't read "(.*)": no such variable} $msg -> var + log "@@ + variable \"$var\"" + $ip eval [list set $var {}] + continue + } + return -code error $msg + } + break + } + return +} + +proc ::sak::validate::testsuites::Process/useTcllibC {ip args} { + return 0 +} + +proc ::sak::validate::testsuites::Process/unknown {ip args} { + return 0 +} + +proc ::sak::validate::testsuites::Process/testing {ip script} { + variable testing {} + $ip eval $script + return -code return +} + +proc ::sak::validate::testsuites::Process/useLocal {ip f p args} { + variable testing + lappend testing $p + return +} + +proc ::sak::validate::testsuites::Process/useLocalKeep {ip f p args} { + variable testing + lappend testing $p + return +} + +proc ::sak::validate::testsuites::Process/useAccel {ip _ f p} { + variable testing + lappend testing $p + return +} + +proc ::sak::validate::testsuites::ProcessPackages {m} { + !used + if {![HasPackages $m]} return + + foreach p [ThePackages $m] { + +pkg $p + if {[claimants $p]} { + +tests $p + } else { + notests $p + } + } + return +} + +proc ::sak::validate::testsuites::ProcessUnclaimed {} { + variable claims + if {![array size claims]} return + foreach p [lsort -dict [array names claims]] { + foreach fx $claims($p) { +u $fx } + } + return +} + +### + +proc ::sak::validate::testsuites::=file {f} { + variable current [file tail $f] + = "$current ..." + return +} + +### + +proc ::sak::validate::testsuites::!claims {} { + variable claims + array unset claims * + return +} + +proc ::sak::validate::testsuites::+claim {pkg} { + variable current + variable claims + lappend claims($pkg) $current + return +} + +proc ::sak::validate::testsuites::claimants {pkg} { + variable claims + expr { [info exists claims($pkg)] && [llength $claims($pkg)] } +} + + +### + +proc ::sak::validate::testsuites::!used {} { + variable used + array unset used * + return +} + +proc ::sak::validate::testsuites::+use {pkg} { + variable used + variable claims + foreach fx $claims($pkg) { set used($fx) . } + unset claims($pkg) + return +} + +### + +proc ::sak::validate::testsuites::MapPackages {} { + variable pkg + array unset pkg * + + ! + += Package + foreach {pname pdata} [ipackages] { + = "$pname ..." + foreach {pver pmodule} $pdata break + lappend pkg($pmodule) $pname + } + ! + =| {Packages mapped ...} + return +} + +proc ::sak::validate::testsuites::HasPackages {m} { + variable pkg + expr { [info exists pkg($m)] && [llength $pkg($m)] } +} + +proc ::sak::validate::testsuites::ThePackages {m} { + variable pkg + return [lsort -dict $pkg($m)] +} + +### + +proc ::sak::validate::testsuites::+pkg {pkg} { + variable mtotal ; incr mtotal + variable total ; incr total + return +} + +proc ::sak::validate::testsuites::+tests {pkg} { + variable mhavetests ; incr mhavetests + variable havetests ; incr havetests + = "$pkg Ok" + +use $pkg + return +} + +proc ::sak::validate::testsuites::notests {pkg} { + = "$pkg Bad" + log "@@ WARN No testsuite: $pkg" + return +} + +### + +proc ::sak::validate::testsuites::+e {msg} { + variable merrors ; incr merrors + variable errors ; incr errors + variable current + log "@@ ERROR $current $msg" + return +} + +proc ::sak::validate::testsuites::+u {f} { + variable used + if {[info exists used($f)]} return + variable munclaimed ; incr munclaimed + variable unclaimed ; incr unclaimed + set used($f) . + log "@@ NOTE Unclaimed testsuite $f" + return +} + +### + +proc ::sak::validate::testsuites::Count {modules} { + variable maxml 0 + ! + foreach m [linsert $modules 0 Module] { + = "M $m" + set l [string length $m] + if {$l > $maxml} {set maxml $l} + } + =| "Validate testsuites (existence) ..." + return +} + +proc ::sak::validate::testsuites::Head {m} { + variable maxml + += ${m}[blank [expr {$maxml - [string length $m]}]] + return +} + +### + +proc ::sak::validate::testsuites::InitModuleCounters {} { + variable mtotal 0 + variable mhavetests 0 + variable munclaimed 0 + variable merrors 0 + return +} + +proc ::sak::validate::testsuites::ModuleSummary {} { + variable mtotal + variable mhavetests + variable munclaimed + variable merrors + + set complete [F $mhavetests]/[F $mtotal] + set not "! [F [expr {$mtotal - $mhavetests}]]" + set err "E [F $merrors]" + set unc "U [F $munclaimed]" + + if {$munclaimed} { + set unc [=cya $unc] + >> unc + } + if {!$mhavetests && $mtotal} { + set complete [=red $complete] + set not [=red $not] + >> none + } elseif {$mhavetests < $mtotal} { + set complete [=yel $complete] + set not [=yel $not] + >> miss + } + if {$merrors} { + set err [red]$err[rst] + >> fail + } + + =| "~~ $complete $not $unc $err" + return +} + +### + +proc ::sak::validate::testsuites::InitCounters {} { + variable total 0 + variable havetests 0 + variable unclaimed 0 + variable errors 0 + return +} + +proc ::sak::validate::testsuites::Summary {} { + variable total + variable havetests + variable unclaimed + variable errors + + set tot [F $total] + set tst [F $havetests] + set uts [F [expr {$total - $havetests}]] + set unc [F $unclaimed] + set per [format %6.2f [expr {$havetests*100./$total}]] + set uper [format %6.2f [expr {($total - $havetests)*100./$total}]] + set err [F $errors] + + if {$errors} { set err [=red $err] } + if {$unclaimed} { set unc [=cya $unc] } + + if {!$havetests && $total} { + set tst [=red $tst] + set uts [=red $uts] + } elseif {$havetests < $total} { + set tst [=yel $tst] + set uts [=yel $uts] + } + + sum "" + sum "Testsuite statistics" + sum "#Packages: $tot" + sum "#Tested: $tst (${per}%)" + sum "#Untested: $uts (${uper}%)" + sum "#Unclaimed: $unc" + sum "#Errors: $err" + return +} + +### + +proc ::sak::validate::testsuites::F {n} { format %6d $n } + +### + +proc ::sak::validate::testsuites::At {m} { + global distribution + return [file join $distribution modules $m] +} + +# ### + +namespace eval ::sak::validate::testsuites { + # Max length of module names and patchlevel information. + variable maxml 0 + + # Counters across all modules + variable total 0 ; # Number of packages overall. + variable havetests 0 ; # Number of packages with testsuites. + variable unclaimed 0 ; # Number of testsuites not claimed by a specific package. + variable errors 0 ; # Number of errors found with all testsuites. + + # Same counters, per module. + variable mtotal 0 + variable mhavetests 0 + variable munclaimed 0 + variable merrors 0 + + # Name of currently processed testsuite + variable current "" + + # Map from packages to files claiming to test them. + variable claims + array set claims {} + + # Set of files taken by packages, as array + variable used + array set used {} + + # Map from modules to packages contained in them + variable pkg + array set pkg {} + + # Transient storage used while collecting packages per testsuite. + variable testing {} + variable ip {} +} + +## +# ### + +package provide sak::validate::testsuites 1.0 diff --git a/tcllib/support/devel/sak/validate/topic.txt b/tcllib/support/devel/sak/validate/topic.txt new file mode 100644 index 0000000..1ddc79b --- /dev/null +++ b/tcllib/support/devel/sak/validate/topic.txt @@ -0,0 +1 @@ +validate Validate modules and packages diff --git a/tcllib/support/devel/sak/validate/validate.tcl b/tcllib/support/devel/sak/validate/validate.tcl new file mode 100644 index 0000000..1901deb --- /dev/null +++ b/tcllib/support/devel/sak/validate/validate.tcl @@ -0,0 +1,37 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +namespace eval ::sak::validate {} + +# ### + +proc ::sak::validate::usage {args} { + package require sak::help + puts stdout [join $args { }]\n[sak::help::on validate] + exit 1 +} + +proc ::sak::validate::all {modules mode stem tclv} { + package require sak::validate::versions + package require sak::validate::manpages + package require sak::validate::testsuites + package require sak::validate::syntax + + sak::validate::versions::run $modules $mode $stem $tclv + sak::validate::manpages::run $modules $mode $stem $tclv + sak::validate::testsuites::run $modules $mode $stem $tclv + sak::validate::syntax::run $modules $mode $stem $tclv + + sak::validate::versions::summary + sak::validate::manpages::summary + sak::validate::testsuites::summary + sak::validate::syntax::summary + return +} + +## +# ### + +package provide sak::validate 1.0 diff --git a/tcllib/support/devel/sak/validate/versions.tcl b/tcllib/support/devel/sak/validate/versions.tcl new file mode 100644 index 0000000..4d622ae --- /dev/null +++ b/tcllib/support/devel/sak/validate/versions.tcl @@ -0,0 +1,258 @@ +# -*- tcl -*- +# (C) 2008 Andreas Kupries <andreas_kupries@users.sourceforge.net> +## +# ### + +package require sak::animate +package require sak::feedback +package require sak::color + +getpackage textutil::repeat textutil/repeat.tcl +getpackage interp interp/interp.tcl +getpackage struct::set struct/sets.tcl +getpackage struct::list struct/list.tcl + +namespace eval ::sak::validate::versions { + namespace import ::textutil::repeat::blank + namespace import ::sak::color::* + namespace import ::sak::feedback::! + namespace import ::sak::feedback::>> + namespace import ::sak::feedback::+= + namespace import ::sak::feedback::= + namespace import ::sak::feedback::=| + namespace import ::sak::feedback::log + namespace import ::sak::feedback::summary + rename summary sum +} + +# ### + +proc ::sak::validate::versions {modules mode stem tclv} { + versions::run $modules $mode $stem $tclv + versions::summary + return +} + +proc ::sak::validate::versions::run {modules mode stem tclv} { + sak::feedback::init $mode $stem + sak::feedback::first log "\[ Versions \] ====================================================" + sak::feedback::first warn "\[ Versions \] ====================================================" + sak::feedback::first fail "\[ Versions \] ====================================================" + + # Preprocessing of module names to allow better formatting of the + # progress output, i.e. vertically aligned columns + + # Per module + # - List modules without package index (error) + # - List packages provided missing from pkgIndex.tcl + # - List packages in the pkgIndex.tcl, but not provided. + # - List packages where provided and indexed versions differ. + + Count $modules + MapPackages + + InitCounters + foreach m $modules { + # Skip tcllibc shared library, not a module. + if {[string equal $m tcllibc]} continue + + InitModuleCounters + ! + log "@@ Module $m" + Head $m + + if {![llength [glob -nocomplain [file join [At $m] pkgIndex.tcl]]]} { + +e "No package index" + } else { + # Compare package provided to ifneeded. + + struct::list assign \ + [struct::set intersect3 [Indexed $m] [Provided $m]] \ + compare only_indexed only_provided + + foreach p [lsort -dict $only_indexed ] { +w "Indexed/No Provider: $p" } + foreach p [lsort -dict $only_provided] { +w "Provided/Not Indexed: $p" } + + foreach p [lsort -dict $compare] { + set iv [IndexedVersions $m $p] + set pv [ProvidedVersions $m $p] + if {[struct::set equal $iv $pv]} continue + + struct::list assign \ + [struct::set intersect3 $pv $iv] \ + __ pmi imp + + +w "Indexed </> Provided: $p \[<$imp </> $pmi\]" + } + } + ModuleSummary + } + return +} + +proc ::sak::validate::versions::summary {} { + Summary + return +} + +# ### + +proc ::sak::validate::versions::MapPackages {} { + variable pkg + array unset pkg * + + ! + += Package + foreach {pname pdata} [ipackages] { + = "$pname ..." + foreach {pvlist pmodule} $pdata break + lappend pkg(mi,$pmodule) $pname + lappend pkg(vi,$pmodule,$pname) $pvlist + + foreach {pname pvlist} [ppackages $pmodule] { + lappend pkg(mp,$pmodule) $pname + lappend pkg(vp,$pmodule,$pname) $pvlist + } + } + ! + =| {Packages mapped ...} + return +} + +proc ::sak::validate::versions::Provided {m} { + variable pkg + if {![info exists pkg(mp,$m)]} { return {} } + return [lsort -dict $pkg(mp,$m)] +} + +proc ::sak::validate::versions::Indexed {m} { + variable pkg + if {![info exists pkg(mi,$m)]} { return {} } + return [lsort -dict $pkg(mi,$m)] +} + +proc ::sak::validate::versions::ProvidedVersions {m p} { + variable pkg + return [lsort -dict $pkg(vp,$m,$p)] +} + +proc ::sak::validate::versions::IndexedVersions {m p} { + variable pkg + return [lsort -dict $pkg(vi,$m,$p)] +} + +### + +proc ::sak::validate::versions::+e {msg} { + variable merrors ; incr merrors + variable errors ; incr errors + log "@@ ERROR $msg" + return +} + +proc ::sak::validate::versions::+w {msg} { + variable mwarnings ; incr mwarnings + variable warnings ; incr warnings + log "@@ WARN $msg" + return +} + +proc ::sak::validate::versions::Count {modules} { + variable maxml 0 + ! + foreach m [linsert $modules 0 Module] { + = "M $m" + set l [string length $m] + if {$l > $maxml} {set maxml $l} + } + =| "Validate versions (indexed vs. provided) ..." + return +} + +proc ::sak::validate::versions::Head {m} { + variable maxml + += ${m}[blank [expr {$maxml - [string length $m]}]] + return +} + +### + +proc ::sak::validate::versions::InitModuleCounters {} { + variable merrors 0 + variable mwarnings 0 + return +} + +proc ::sak::validate::versions::ModuleSummary {} { + variable merrors + variable mwarnings + + set err "E [F $merrors]" + set wrn "W [F $mwarnings]" + + if {$mwarnings} { set wrn [=yel $wrn] ; >> warn } + if {$merrors} { set err [=red $err] ; >> fail } + + =| "~~ $err $wrn" + return +} + +### + +proc ::sak::validate::versions::InitCounters {} { + variable errors 0 + variable warnings 0 + return +} + +proc ::sak::validate::versions::Summary {} { + variable errors + variable warnings + + set err [F $errors] + set wrn [F $warnings] + + if {$errors} { set err [=red $err] } + if {$warnings} { set wrn [=yel $wrn] } + + sum "" + sum "Versions statistics" + sum "#Errors: $err" + sum "#Warnings: $wrn" + return +} + +### + +proc ::sak::validate::versions::F {n} { format %6d $n } + +### + +proc ::sak::validate::versions::At {m} { + global distribution + return [file join $distribution modules $m] +} + +# ### + +namespace eval ::sak::validate::versions { + # Max length of module names and patchlevel information. + variable maxml 0 + + # Counters across all modules + variable errors 0 ; # Number of errors found (= modules without pkg index) + variable warnings 0 ; # Number of warings + + # Same counters, per module. + variable merrors 0 + variable mwarnings 0 + + # Map from modules to packages and their versions. + variable pkg + array set pkg {} +} + +## +# ### + +package provide sak::validate::versions 1.0 diff --git a/tcllib/support/fossil-nav-integration.html b/tcllib/support/fossil-nav-integration.html new file mode 100644 index 0000000..0c51a92 --- /dev/null +++ b/tcllib/support/fossil-nav-integration.html @@ -0,0 +1,91 @@ +<div class='fossil-doc' data-title='@TITLE@'> +<style> + HTML { + background: #FFFFFF; + color: black; + } + BODY { + background: #FFFFFF; + color: black; + } + DIV.doctools { + margin-left: 10%; + margin-right: 10%; + } + DIV.doctools H1,DIV.doctools H2 { + margin-left: -5%; + } + H1, H2, H3, H4 { + margin-top: 1em; + font-family: sans-serif; + font-size: large; + color: #005A9C; + background: transparent; + text-align: left; + } + H1.doctools_title { + text-align: center; + } + UL,OL { + margin-right: 0em; + margin-top: 3pt; + margin-bottom: 3pt; + } + UL LI { + list-style: disc; + } + OL LI { + list-style: decimal; + } + DT { + padding-top: 1ex; + } + UL.doctools_toc,UL.doctools_toc UL, UL.doctools_toc UL UL { + font: normal 12pt/14pt sans-serif; + list-style: none; + } + LI.doctools_section, LI.doctools_subsection { + list-style: none; + margin-left: 0em; + text-indent: 0em; + padding: 0em; + } + PRE { + display: block; + font-family: monospace; + white-space: pre; + margin: 0%; + padding-top: 0.5ex; + padding-bottom: 0.5ex; + padding-left: 1ex; + padding-right: 1ex; + width: 100%; + } + PRE.doctools_example { + color: black; + background: #f5dcb3; + border: 1px solid black; + } + UL.doctools_requirements LI, UL.doctools_syntax LI { + list-style: none; + margin-left: 0em; + text-indent: 0em; + padding: 0em; + } + DIV.doctools_synopsis { + color: black; + background: #80ffff; + border: 1px solid black; + font-family: serif; + margin-top: 1em; + margin-bottom: 1em; + } + UL.doctools_syntax { + margin-top: 1em; + border-top: 1px solid black; + } + UL.doctools_requirements { + margin-bottom: 1em; + border-bottom: 1px solid black; + } +</style> diff --git a/tcllib/support/installation/actions.tcl b/tcllib/support/installation/actions.tcl new file mode 100644 index 0000000..6978bf8 --- /dev/null +++ b/tcllib/support/installation/actions.tcl @@ -0,0 +1,112 @@ +# -*- tcl -*- + +# This file holds the commands determining the files to install. They +# are used by the installer to actually perform the installation, and +# by 'sak' to get the per-module lists of relevant files. The +# different purposes are handled through the redefinition of the +# commands [xcopy] and [xcopyf] used by the commands here. + +proc _null {args} {} + +proc _tcl {module libdir} { + global distribution + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.tcl + return +} + +proc _tcr {module libdir} { + global distribution + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 1 *.tcl + return +} + +proc _rde {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module rde_critcl] \ + [file join $libdir $module rde_critcl] \ + 1 + return +} + +proc _doc {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module mpformats] \ + [file join $libdir $module mpformats] \ + 1 + return +} + +proc _msg {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module msgs] \ + [file join $libdir $module msgs] \ + 1 + return +} + +proc _tex {module libdir} { + global distribution + + _tcl $module $libdir + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.tex + return +} + +proc _tci {module libdir} { + global distribution + + _tcl $module $libdir + xcopyfile [file join $distribution modules $module tclIndex] \ + [file join $libdir $module] + return +} + +proc _trt {module libdir} { + global distribution + + _tcr $module $libdir + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 0 *.template + return +} + +proc _manfile {f format ext docdir} { return } +proc _man {module format ext docdir} { return } + +proc _exa {module exadir} { + global distribution + xcopy \ + [file join $distribution examples $module] \ + [file join $exadir $module] \ + 1 + return +} + +proc _exax {actual module exadir} { + global distribution + xcopy \ + [file join $distribution examples $actual] \ + [file join $exadir $module] \ + 1 + return +} diff --git a/tcllib/support/installation/main.tcl b/tcllib/support/installation/main.tcl new file mode 100755 index 0000000..2a2aea3 --- /dev/null +++ b/tcllib/support/installation/main.tcl @@ -0,0 +1,5 @@ +# -*- tcl -*- +# Entrypoint for starkit and -pack based distributions + +# Delegate to the installer application +source [file join [file dirname [info script]] installer.tcl] diff --git a/tcllib/support/installation/man.macros b/tcllib/support/installation/man.macros new file mode 100644 index 0000000..ddd073d --- /dev/null +++ b/tcllib/support/installation/man.macros @@ -0,0 +1,267 @@ +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. diff --git a/tcllib/support/installation/modules.tcl b/tcllib/support/installation/modules.tcl new file mode 100755 index 0000000..c90ae8b --- /dev/null +++ b/tcllib/support/installation/modules.tcl @@ -0,0 +1,173 @@ +# -*- tcl -*- +# -------------------------------------------------------------- +# List of modules to install and definitions guiding the process of +# doing so. +# +# This file is shared between 'installer.tcl' and 'sak.tcl', like +# 'package_version.tcl'. The swiss army knife requires access to the +# data in this file to be able to check if there are modules in the +# directory hierarchy, but missing in the list of installed modules. +# -------------------------------------------------------------- + +proc Exclude {m} {global excluded ; lappend excluded $m ; return } +proc Application {a} {global apps ; lappend apps $a ; return } + +proc Module {m pkg doc exa} { + global modules guide + + lappend modules $m + set guide($m,pkg) $pkg + set guide($m,doc) $doc + set guide($m,exa) $exa + return +} + +set excluded [list] +set modules [list] +set apps [list] +array set guide {} + +# -------------------------------------------------------------- +# @@ Registration START + +Exclude calendar +Exclude exif + +# name pkg doc example +Module aes _tcl _man _null +Module amazon-s3 _tcl _man _null +Module asn _tcl _man _null +Module base32 _tcl _man _null +Module base64 _tcl _man _null +Module bee _tcl _man _null +Module bench _tcl _null _null +Module bibtex _tcl _man _exa +Module blowfish _tcl _man _null +Module cache _tcl _man _null +Module calendar _tci _man _null +Module clock _tcl _man _null +Module cmdline _tcl _man _null +Module comm _tcl _man _null +Module control _tci _man _null +Module coroutine _tcl _null _null +Module counter _tcl _man _null +Module crc _tcl _man _null +Module cron _tcl _man _null +Module csv _tcl _man _exa +Module debug _tcl _null _null +Module des _tcl _man _null +Module dicttool _tcl _man _null +Module dns _msg _man _exa +Module docstrip _tcl _man _null +Module doctools _doc _man _exa +Module doctools2base _tcl _man _null +Module doctools2idx _tcl _man _null +Module doctools2toc _tcl _man _null +Module dtplite _tcl _man _null +Module exif _tcl _man _null +Module fileutil _tcl _man _null +Module ftp _tcl _man _exa +Module ftpd _tcl _man _exa +Module fumagic _tcl _man _null +Module generator _tcl _man _null +Module gpx _tcl _null _null +Module grammar_aycock _tcl _man _null +Module grammar_fa _tcl _man _null +Module grammar_me _tcl _man _null +Module grammar_peg _tcl _man _null +Module hook _tcl _man _null +Module http _tcl _man _null +Module httpd _tcl _man _exa +Module httpwget _tcl _null _null +Module html _tcl _man _null +Module htmlparse _tcl _man _exa +Module ident _tcl _man _null +Module imap4 _tcl _man _null +Module inifile _tcl _man _null +Module interp _tcl _man _null +Module irc _tcl _man _exa +Module javascript _tcl _man _null +Module jpeg _tcl _man _null +Module json _tcl _man _null +Module lambda _tcl _man _null +Module ldap _tcl _man _exa +Module log _msg _man {_exax logger} +Module markdown _tcl _man _null +Module map _tcl _man _null +Module mapproj _tcl _man _exa +Module math _tci _man _exa +Module md4 _tcl _man _null +Module md5 _tcl _man _null +Module md5crypt _tcl _man _null +Module mime _tcl _man _exa +Module multiplexer _tcl _man _null +Module namespacex _tcl _man _null +Module ncgi _tcl _man _null +Module nettool _tcl _man _null +Module nmea _tcl _man _null +Module nns _tcl _man _null +Module nntp _tcl _man _exa +Module ntp _tcl _man _exa +Module oauth _tcl _man _null +Module oodialect _tcl _man _null +Module oometa _tcl _man _null +Module ooutil _tcl _man _null +Module otp _tcl _man _null +Module page _trt _man _null +Module pki _tcl _man _null +Module pluginmgr _tcl _man _null +Module png _tcl _man _null +Module pop3 _tcl _man _null +Module pop3d _tcl _man _null +Module processman _tcl _man _null +Module profiler _tcl _man _null +Module pt _rde _man _null +Module rc4 _tcl _man _null +Module rcs _tcl _man _null +Module report _tcl _man _null +Module rest _tcl _man _null +Module ripemd _tcl _man _null +Module sasl _tcl _man _exa +Module sha1 _tcl _man _null +Module simulation _tcl _man _null +Module smtpd _tcl _man _exa +Module snit _tcl _man _null +Module soundex _tcl _man _null +Module stooop _tcl _man _null +Module string _tcl _man _null +Module stringprep _tcl _man _null +Module struct _tcl _man _exa +Module tar _tcl _man _null +Module tepam _tcl _man _exa +Module term _tcr _man _exa +Module textutil _tex _man _null +Module tie _tcl _man _exa +Module tiff _tcl _man _null +Module tool _tcl _man _null +Module tool_datatype _tcl _man _null +Module transfer _tcl _man _null +Module treeql _tcl _man _null +Module try _tcl _man _null +Module uev _tcl _man _null +Module units _tcl _man _null +Module uri _tcl _man _null +Module uuid _tcl _man _null +Module valtype _tcl _null _null +Module virtchannel_base _tcl _man _null +Module virtchannel_core _tcl _man _null +Module virtchannel_transform _tcl _man _null +Module websocket _tcl _man _null +Module wip _tcl _man _null +Module yaml _tcl _man _null +Module zip _tcl _null _null + +Application dtplite +Application nns +Application nnsd +Application nnslog +Application page +Application pt +Application tcldocstrip + +# @@ Registration END +# -------------------------------------------------------------- diff --git a/tcllib/support/installation/version.tcl b/tcllib/support/installation/version.tcl new file mode 100644 index 0000000..42f6608 --- /dev/null +++ b/tcllib/support/installation/version.tcl @@ -0,0 +1,30 @@ +package_version 1.18 +package_name tcllib + +dist_exclude config +dist_exclude modules/ftp/example +dist_exclude modules/ftpd/examples +dist_exclude modules/stats +dist_exclude modules/fileinput + +critcl_main tcllibc tcllibc.tcl +critcl base64c {base64/base64c.tcl base64/uuencode.tcl base64/yencode.tcl} +critcl crcc {crc/crcc.tcl crc/sum.tcl crc/crc32.tcl} +critcl jsonc json/jsonc.tcl +critcl md4c md4/md4c.tcl +critcl md5c md5/md5c.tcl +critcl md5cryptc md5crypt/md5cryptc.tcl +critcl rc4c rc4/rc4c.tcl +critcl sha1c sha1/sha1c.tcl +critcl sha256c sha1/sha256c.tcl +critcl uuid uuid/uuid.tcl +critcl struct_treec struct/tree_c.tcl +critcl struct_graphc struct/graph_c.tcl +critcl struct_setc struct/sets_c.tcl +critcl struct_stackc struct/stack_c.tcl +critcl struct_queuec struct/queue_c.tcl +critcl base32c base32/base32_c.tcl +critcl base32hexc base32/base32hex_c.tcl +critcl ipMorec dns/ipMoreC.tcl +critcl ptc {pt/pt_rdengine_c.tcl pt/pt_parse_peg_c.tcl} +critcl_notes {Note: you can ignore warnings for tcllibc.tcl, base64c.tcl and crcc.tcl.} diff --git a/tcllib/support/releases/PACKAGES b/tcllib/support/releases/PACKAGES new file mode 100644 index 0000000..10baf79 --- /dev/null +++ b/tcllib/support/releases/PACKAGES @@ -0,0 +1,424 @@ +@@ RELEASE 1.17 + +S3 1.0.3 +SASL 1.3.3 +SASL::NTLM 1.1.2 +SASL::SCRAM 0.1 +SASL::XGoogleToken 1.0.1 +aes 1.2.1 +ascii85 1.0 +asn 0.8.4 +autoproxy 1.5.3 +base32 0.1 +base32::core 0.1 +base32::hex 0.1 +base64 2.4.2 +bee 0.1 +bench 0.4 +bench::in 0.1 +bench::out::csv 0.1.2 +bench::out::text 0.1.2 +bibtex 0.6 +blowfish 1.0.4 +cache::async 0.3 +calendar 0.2 +char 1.0.1 +cksum 1.1.4 +clock::iso8601 0.1 +clock::rfc2822 0.1 +cmdline 1.5 +comm 4.6.3.1 +configuration 1 +control 0.1.3 +coroutine 1.1.3 +coroutine::auto 1.1.3 +counter 2.0.4 +crc16 1.1.2 +crc32 1.3.2 +cron 1.1 +csv 0.8 +debug 1.0.5 +debug::caller 1 +debug::heartbeat 1 +debug::timestamp 1 +des 1.1.0 +dns 1.3.5 +docstrip 1.2 +docstrip::util 1.3 +doctools 1.4.19 +doctools::changelog 1.1 +doctools::config 0.1 +doctools::cvs 1 +doctools::html 0.1 +doctools::html::cssdefaults 0.1 +doctools::idx 1.0.5 +doctools::idx 2 +doctools::idx::export 0.1 +doctools::idx::export::docidx 0.1 +doctools::idx::export::html 0.2 +doctools::idx::export::json 0.1 +doctools::idx::export::nroff 0.3 +doctools::idx::export::text 0.2 +doctools::idx::export::wiki 0.2 +doctools::idx::import 0.1 +doctools::idx::import::docidx 0.1 +doctools::idx::import::json 0.1 +doctools::idx::parse 0.1 +doctools::idx::structure 0.1 +doctools::msgcat 0.1 +doctools::msgcat::idx::c 0.1 +doctools::msgcat::idx::de 0.1 +doctools::msgcat::idx::en 0.1 +doctools::msgcat::idx::fr 0.1 +doctools::msgcat::toc::c 0.1 +doctools::msgcat::toc::de 0.1 +doctools::msgcat::toc::en 0.1 +doctools::msgcat::toc::fr 0.1 +doctools::nroff::man_macros 0.1 +doctools::paths 0.1 +doctools::tcl::parse 0.1 +doctools::text 0.1 +doctools::toc 1.1.4 +doctools::toc 2 +doctools::toc::export 0.1 +doctools::toc::export::doctoc 0.1 +doctools::toc::export::html 0.1 +doctools::toc::export::json 0.1 +doctools::toc::export::nroff 0.2 +doctools::toc::export::text 0.1 +doctools::toc::export::wiki 0.1 +doctools::toc::import 0.1 +doctools::toc::import::doctoc 0.1 +doctools::toc::import::json 0.1 +doctools::toc::parse 0.1 +doctools::toc::structure 0.1 +dtplite 1.2 +exif 1.1.2 +fileutil 1.14.10 +fileutil::decode 0.2 +fileutil::magic::cfront 1.0 +fileutil::magic::cgen 1.0 +fileutil::magic::filetype 1.0.2 +fileutil::magic::mimetype 1.0.2 +fileutil::magic::rt 1.0 +fileutil::multi 0.1 +fileutil::multi::op 0.5.3 +fileutil::traverse 0.5 +ftp 2.4.13 +ftp::geturl 0.2.1 +ftpd 1.2.6 +generator 0.1 +gpx 1 +grammar::aycock 1.0 +grammar::aycock::debug 1.0 +grammar::aycock::runtime 1.0 +grammar::fa 0.5 +grammar::fa::dacceptor 0.1.1 +grammar::fa::dexec 0.2 +grammar::fa::op 0.4.1 +grammar::me::cpu 0.2 +grammar::me::cpu::core 0.2 +grammar::me::cpu::gasm 0.1 +grammar::me::tcl 0.1 +grammar::me::util 0.1 +grammar::peg 0.2 +grammar::peg::interp 0.1.1 +hook 0.1 +html 1.4.4 +htmlparse 1.2.1 +huddle 0.1.5 +ident 0.42 +imap4 0.5.2 +inifile 0.3 +interp 0.1.2 +interp::delegate::method 0.2 +interp::delegate::proc 0.2 +ip 1.3 +irc 0.6.1 +javascript 1.0.2 +jpeg 0.5 +json 1.3.3 +json::write 1.0.3 +lambda 1 +ldap 1.8 +ldapx 1.0 +log 1.3 +logger 0.9.4 +logger::appender 1.3 +logger::utils 1.3 +map::geocode::nominatim 0.1 +map::slippy 0.5 +map::slippy::cache 0.2 +map::slippy::fetcher 0.3 +mapproj 1.0 +math 1.2.5 +math::bigfloat 1.2.2 +math::bigfloat 2.0.2 +math::bignum 3.1.1 +math::calculus 0.8.1 +math::calculus::symdiff 1.0 +math::complexnumbers 1.0.2 +math::constants 1.0.1 +math::decimal 1.0.3 +math::fourier 1.0.2 +math::fuzzy 0.2.1 +math::geometry 1.1.3 +math::interpolate 1.1 +math::linearalgebra 1.1.5 +math::machineparameters 0.1 +math::numtheory 1.0 +math::optimize 1.0.1 +math::polynomials 1.0.1 +math::rationalfunctions 1.0.1 +math::roman 1.0 +math::special 0.3.0 +math::statistics 0.9.3 +md4 1.0.6 +md5 1.4.4 +md5 2.0.7 +md5crypt 1.1.0 +mime 1.6 +multiplexer 0.2 +nameserv 0.4.2 +nameserv::auto 0.3 +nameserv::common 0.1 +nameserv::server 0.3.2 +namespacex 0.1 +ncgi 1.4.3 +nettool 0.4 +nmea 1.0.0 +nntp 0.2.1 +oauth 1 +odie::processman 0.3 +oo::util 1.2.1 +otp 1.0.0 +page::analysis::peg::emodes 0.1 +page::analysis::peg::minimize 0.1 +page::analysis::peg::reachable 0.1 +page::analysis::peg::realizable 0.1 +page::compiler::peg::mecpu 0.1.1 +page::config::peg 0.1 +page::gen::peg::canon 0.1 +page::gen::peg::cpkg 0.1 +page::gen::peg::hb 0.1 +page::gen::peg::me 0.1 +page::gen::peg::mecpu 0.1 +page::gen::peg::ser 0.1 +page::gen::tree::text 0.1 +page::parse::lemon 0.1 +page::parse::peg 0.1 +page::parse::peghb 0.1 +page::parse::pegser 0.1 +page::pluginmgr 0.2 +page::reader::hb 0.1 +page::reader::lemon 0.1 +page::reader::peg 0.1 +page::reader::ser 0.1 +page::reader::treeser 0.1 +page::transform::mecpu 0.1 +page::transform::reachable 0.1 +page::transform::realizable 0.1 +page::util::flow 0.1 +page::util::norm::lemon 0.1 +page::util::norm::peg 0.1 +page::util::peg 0.1 +page::util::quote 0.1 +page::writer::hb 0.1 +page::writer::identity 0.1 +page::writer::me 0.1 +page::writer::mecpu 0.1.1 +page::writer::null 0.1 +page::writer::peg 0.1 +page::writer::ser 0.1 +page::writer::tpc 0.1 +page::writer::tree 0.1 +paths 1 +picoirc 0.5.1 +pki 0.6 +pluginmgr 0.3 +png 0.2 +pop3 1.9 +pop3d 1.1.0 +pop3d::dbox 1.0.2 +pop3d::udb 1.1 +profiler 0.3 +pt::ast 1.1 +pt::cparam::configuration::critcl 1.0.2 +pt::cparam::configuration::tea 0.1 +pt::parse::peg 1.0.1 +pt::pe 1.0.2 +pt::pe::op 1 +pt::peg 1 +pt::peg::container 1 +pt::peg::container::peg 1 +pt::peg::export 1 +pt::peg::export::container 1 +pt::peg::export::json 1 +pt::peg::export::peg 1 +pt::peg::from::json 1 +pt::peg::from::peg 1.0.3 +pt::peg::import 1 +pt::peg::import::json 1 +pt::peg::import::peg 1 +pt::peg::interp 1.0.1 +pt::peg::op 1.0.1 +pt::peg::to::container 1 +pt::peg::to::cparam 1.1.3 +pt::peg::to::json 1 +pt::peg::to::param 1.0.1 +pt::peg::to::peg 1.0.2 +pt::peg::to::tclparam 1.0.2 +pt::pgen 1.0.3 +pt::rde 1.0.3 +pt::rde::oo 1.0.3 +pt::tclparam::configuration::snit 1.0.2 +pt::tclparam::configuration::tcloo 1.0.4 +pt::util 1 +rc4 1.1.0 +rcs 0.1 +report 0.3.2 +resolv 1.0.3 +rest 1.0.1 +ripemd128 1.0.5 +ripemd160 1.0.5 +sha1 1.1.1 +sha1 2.0.3 +sha256 1.0.3 +simulation::annealing 0.2 +simulation::montecarlo 0.1 +simulation::random 0.3.1 +smtp 1.4.5 +smtpd 1.5 +snit 1.4.2 +snit 2.3.2 +soundex 1.0 +spf 1.1.1 +stooop 4.4.1 +string::token 1 +string::token::shell 1.2 +stringprep 1.0.1 +stringprep::data 1.0.1 +struct 1.4 +struct 2.1 +struct::disjointset 1.0 +struct::graph 1.2.1 +struct::graph 2.4 +struct::graph::op 0.11.3 +struct::list 1.8.3 +struct::matrix 1.2.1 +struct::matrix 2.0.3 +struct::pool 1.2.3 +struct::prioqueue 1.4 +struct::queue 1.4.5 +struct::record 1.2.1 +struct::set 2.2.3 +struct::skiplist 1.3 +struct::stack 1.5.3 +struct::tree 1.2.2 +struct::tree 2.1.2 +sum 1.1.2 +switched 2.2.1 +tar 0.10 +tcl::chan::cat 1.0.2 +tcl::chan::core 1 +tcl::chan::events 1 +tcl::chan::facade 1.0.1 +tcl::chan::fifo 1 +tcl::chan::fifo2 1 +tcl::chan::halfpipe 1 +tcl::chan::memchan 1.0.3 +tcl::chan::null 1 +tcl::chan::nullzero 1 +tcl::chan::random 1 +tcl::chan::std 1.0.1 +tcl::chan::string 1.0.2 +tcl::chan::textwindow 1 +tcl::chan::variable 1.0.3 +tcl::chan::zero 1 +tcl::randomseed 1 +tcl::transform::adler32 1 +tcl::transform::base64 1 +tcl::transform::core 1 +tcl::transform::counter 1 +tcl::transform::crc32 1 +tcl::transform::hex 1 +tcl::transform::identity 1 +tcl::transform::limitsize 1 +tcl::transform::observe 1 +tcl::transform::otp 1 +tcl::transform::rot 1 +tcl::transform::spacer 1 +tcl::transform::zlib 1.0.1 +tclDES 1.0.0 +tclDESjr 1.0.0 +tepam 0.5 +tepam::doc_gen 0.1.1 +term 0.1 +term::ansi::code 0.2 +term::ansi::code::attr 0.1 +term::ansi::code::ctrl 0.2 +term::ansi::code::macros 0.1 +term::ansi::ctrl::unix 0.1.1 +term::ansi::send 0.2 +term::interact::menu 0.1 +term::interact::pager 0.1 +term::receive 0.1 +term::receive::bind 0.1 +term::send 0.1 +text::write 1 +textutil 0.8 +textutil::adjust 0.7.3 +textutil::expander 1.3.1 +textutil::repeat 0.7 +textutil::split 0.7 +textutil::string 0.8 +textutil::tabify 0.7 +textutil::trim 0.7 +tie 1.1 +tie::std::array 1.0 +tie::std::dsource 1.0 +tie::std::file 1.0.4 +tie::std::growfile 1.0 +tie::std::log 1.0 +tie::std::rarray 1.0 +tiff 0.2.1 +time 1.2.1 +transfer::connect 0.2 +transfer::copy 0.3 +transfer::copy::queue 0.1 +transfer::data::destination 0.2 +transfer::data::source 0.2 +transfer::receiver 0.2 +transfer::transmitter 0.2 +treeql 1.3.1 +try 1 +uevent 0.3.1 +uevent::onidle 0.1 +unicode 1.0.0 +unicode::data 1.0.0 +units 2.1.1 +uri 1.2.5 +uri::urn 1.0.3 +uuencode 1.1.5 +uuid 1.0.4 +valtype::common 1 +valtype::creditcard::amex 1 +valtype::creditcard::discover 1 +valtype::creditcard::mastercard 1 +valtype::creditcard::visa 1 +valtype::gs1::ean13 1 +valtype::iban 1.5 +valtype::imei 1 +valtype::isbn 1 +valtype::luhn 1 +valtype::luhn5 1 +valtype::usnpi 1 +valtype::verhoeff 1 +websocket 1.4 +wip 1.2 +wip 2.2 +xsxp 1.0 +yaml 0.3.7 +yencode 1.1.3 +zipfile::decode 0.6.1 +zipfile::encode 0.3 diff --git a/tcllib/support/releases/history/README-1.10.txt b/tcllib/support/releases/history/README-1.10.txt new file mode 100644 index 0000000..eaf56ed --- /dev/null +++ b/tcllib/support/releases/history/README-1.10.txt @@ -0,0 +1,278 @@ +Overview +======== + + 7 new packages in 4 new modules and 1 module with 2 new packages. + 43 changed packages. +164 unchanged packages (or non-visible changes, like testsuites) + +New in Tcllib 1.10 +================== + Tcllib 1.10 +Module Package New Version Comments +------ ------- ----------- ----------------------- +fileutil fileutil::multi 0.1 multi-file operations + fileutil::multi::op 0.5 ditto, OO API +------ ------- ----------- ----------------------- +mapproj mapproj 1.0 Map projections. +------ ------- ----------- ----------------------- +nns nameserv 0.3 nameservice client + nameserv::auto 0.1 nameservice extended client + nameserv::common 0.1 nameservice shared code + nameserv::server 0.3 nameservice server +------ ------- ----------- ----------------------- +uev uevent 0.1.2 user events +------ ------- ----------- ----------------------- +wip wip 1.0 word interpreter Tcl 8.4 + wip 2.0 word interpreter Tcl 8.5 +------ ------- ----------- ----------------------- + +Changes from Tcllib 1.9 to 1.10 +=============================== + +Legend Change Details Comments + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + + Tcllib 1.9 Tcllib 1.10 +Module Package Old version New Version Comments +------ ------- ----------- ----------- --------------- +asn asn 0.7 0.8.1 D, B +base64 uuencode 1.1.3 1.1.4 B, D +------ ------- ----------- ----------- --------------- +bench bench 0.1 0.3.1 EF, D, B + bench::out::csv 0.1.1 0.1.2 B + bench::out::text 0.1.1 0.1.2 B +------ ------- ----------- ----------- --------------- +blowfish blowfish 1.0.2 1.0.3 B, D +comm comm 4.4 4.5.6 EF (futures), B, D +des des 1.0.0 1.1.0 EF (padding), D +------ ------- ----------- ----------- --------------- +dns dns 1.3.1 1.3.3 B, D + ip 1.1.1 1.1.2 B, D +------ ------- ----------- ----------- --------------- +doctools doctools 1.2.1 1.3 EF (syntax), B, D, T + doctools::idx 0.2.1 0.3 EF (syntax), D, T + doctools::toc 0.2.1 0.3 EF (syntax), D, T +------ ------- ----------- ----------- --------------- +fileutil fileutil 1.9 1.13.3 EF, B, T, D + fileutil::traverse 0.1 0.3 B +------ ------- ----------- ----------- --------------- +ftp ftp 2.4.4 2.4.8 B +ftpd ftpd 1.2.2 1.2.3 B, D +------ ------- ----------- ----------- --------------- +grammar_fa grammar::fa 0.2 0.3 EF, D + grammar::fa::dexec 0.1.1 0.2 EF (ext. introspection), D + grammar::fa::op 0.2 0.4 EF (nullary .|, 2regexp), D +------ ------- ----------- ----------- --------------- +http autoproxy 1.3 1.4 B, D +inifile inifile 0.2 0.2.1 B, D +interp interp 0.1 0.1.1 B, D, T +------ ------- ----------- ----------- --------------- +ldap ldap 1.6.6 1.6.8 B, D + ldapx 0.2.2 1.0 API, B +------ ------- ----------- ----------- --------------- +log logger 0.7 0.8 EF, D +------ ------- ----------- ----------- --------------- +math math::linearalgebra 1.0.1 1.0.2 B, D + math::special 0.2 0.2.1 B, D + math::statistics 0.3 0.5 EF (mv linreg), D, T +------ ------- ----------- ----------- --------------- +mime mime 1.5.1 1.5.2 B, T, D + smtp 1.4.2 1.4.4 B, D +------ ------- ----------- ----------- --------------- +nmea nmea 0.1 0.1.1 B, D +page page::compiler::peg::mecpu 0.1 0.1.1 B +png png 0.1.1 0.1.2 B, D, T +------ ------- ----------- ----------- --------------- +sasl SASL::NTLM 1.1.0 1.1.1 B, D + SASL::XGoogleToken 1.0.0 1.0.1 B, D +------ ------- ----------- ----------- --------------- +sha1 sha1 2.0.2 2.0.3 B, D, T + sha256 1.0.1 1.0.2 B, D, T +------ ------- ----------- ----------- --------------- +snit snit 1.2 1.3.1 EF (introspection, -class), B + snit 2.1 2.2.1 EF (introspection, -class), B +------ ------- ----------- ----------- --------------- +struct struct::graph 2.1 2.2 EF (Critcl), T, D + struct::list 1.6 1.6.1 B + struct::set 2.1.1 2.2.1 EF (Critcl), B, T, D +------ ------- ----------- ----------- --------------- +tar tar 0.2 0.4 B, D +uri uri 1.2 1.2.1 B, D +------ ------- ----------- ----------- --------------- + + +Invisible or no changes +------ ------- ----------- ----------- --------------- +aes aes 1.0.0 D +base32 base32 0.1 D + base32::core 0.1 D + base32::hex 0.1 D +base64 base64 2.3.2 D + yencode 1.1.1 D +bee bee 0.1 D +bench bench::in 0.1 D +bibtex bibtex 0.5 D +calendar calendar 0.2 +cmdline cmdline 1.3 D, T +control control 0.1.3 D +counter counter 2.0.4 D +crc cksum 1.1.1 D + crc16 1.1.1 D + crc32 1.3 D + sum 1.1.0 D +csv csv 0.7 D +des tclDES 1.0.0 + tclDESjr 1.0.0 +dns ip 1.1.1 B + resolv 1.0.3 + spf 1.1.0 +docstrip docstrip 1.2 + docstrip::util 1.2 +doctools doctools::changelog 0.1.1 + doctools::cvs 0.1.1 +exif exif 1.1.2 D +ftp ftp::geturl 0.2 +fumagic fileutil::magic::cfront 1.0 + fileutil::magic::cgen 1.0 + fileutil::magic::filetype 1.0.2 D + fileutil::magic::mimetype 1.0.2 D + fileutil::magic::rt 1.0 +grammar_fa grammar::fa::dacceptor 0.1.1 D +grammar_me grammar::me::cpu 0.2 D, T + grammar::me::cpu::core 0.2 D, T + grammar::me::cpu::gasm 0.1 D, T + grammar::me::tcl 0.1 D, T + grammar::me::util 0.1 D, T +grammar_peg grammar::peg 0.1 D + grammar::peg::interp 0.1 D +html html 1.4 D +htmlparse htmlparse 1.1.2 D, T +ident ident 0.42 D +interp interp::delegate::method 0.2 + interp::delegate::proc 0.2 +irc irc 0.6 D +javascript javascript 1.0.2 D +jpeg jpeg 0.3 D +json json 1.0 D +log log 1.2 D + logger::appender 1.3 D + logger::utils 1.3 D +math math 1.2.4 D + math::bigfloat 1.2.1 D + math::bigfloat 2.0 D + math::bignum 3.1.1 D + math::calculus 0.7 D + math::complexnumbers 1.0.2 D + math::constants 1.0.1 D + math::fourier 1.0.2 D + math::fuzzy 0.2 T, D + math::geometry 1.0.3 D + math::interpolate 1.0.2 D + math::optimize 1.0 D + math::polynomials 1.0.1 D + math::rationalfunctions 1.0.1 D + math::roman 1.0 D +md4 md4 1.0.4 D +md5 md5 1.4.4 D + md5 2.0.5 D +md5crypt md5crypt 1.0.0 D +multiplexer multiplexer 0.2 D, T +ncgi ncgi 1.3.2 D, T +nntp nntp 0.2.1 D +ntp time 1.2.1 D +otp otp 1.0.0 D +page page::analysis::peg::emodes 0.1 + page::analysis::peg::minimize 0.1 + page::analysis::peg::reachable 0.1 + page::analysis::peg::realizable 0.1 + page::gen::peg::canon 0.1 + page::gen::peg::cpkg 0.1 + page::gen::peg::hb 0.1 + page::gen::peg::me 0.1 + page::gen::peg::mecpu 0.1 + page::gen::peg::ser 0.1 + page::gen::tree::text 0.1 + page::parse::lemon 0.1 + page::parse::peg 0.1 + page::parse::peghb 0.1 + page::parse::pegser 0.1 + page::pluginmgr 0.2 + page::util::flow 0.1 + page::util::norm::lemon 0.1 + page::util::norm::peg 0.1 + page::util::peg 0.1 + page::util::quote 0.1 +pluginmgr pluginmgr 0.1 D +pop3 pop3 1.6.3 D, T +pop3d pop3d 1.1.0 D, T + pop3d::dbox 1.0.2 D + pop3d::udb 1.1 D +profiler profiler 0.3 D +rc4 rc4 1.1.0 D +rcs rcs 0.1 D +report report 0.3.1 D +ripemd ripemd128 1.0.3 D + ripemd160 1.0.3 D +sasl SASL 1.3.1 D + sha1 1.1.0 D, T +smtpd smtpd 1.4.0 D +soundex soundex 1.0 D +stooop stooop 4.4.1 D, T + switched 2.2.1 +struct struct 1.4 D + struct 2.1 D + struct::graph 1.2.1 D + struct::matrix 1.2.1 D + struct::matrix 2.0.1 D + struct::pool 1.2.1 D + struct::prioqueue 1.3.1 D + struct::queue 1.4 D + struct::record 1.2.1 D + struct::skiplist 1.3 D + struct::stack 1.3.1 D + struct::tree 1.2.2 D + struct::tree 2.1.1 D +term term 0.1 D + term::interact::menu 0.1 D + term::interact::pager 0.1 D + term::receive 0.1 D + term::receive::bind 0.1 D + term::send 0.1 D +textutil textutil 0.7.1 D + textutil::adjust 0.7 D + textutil::expander 1.3.1 D + textutil::repeat 0.7 D + textutil::split 0.7 D + textutil::string 0.7 D + textutil::tabify 0.7 D + textutil::trim 0.7 D +tie tie 1.1 D, T + tie::std::array 1.0 D, T + tie::std::dsource 1.0 D, T + tie::std::file 1.0.2 D, T + tie::std::growfile 1.0 D, T + tie::std::log 1.0 D, T + tie::std::rarray 1.0 D, T +tiff tiff 0.1 D +transfer transfer::connect 0.1 D + transfer::copy 0.1 D + transfer::copy::queue 0.1 D + transfer::data::destination 0.1 D + transfer::data::source 0.1 D + transfer::receiver 0.1 D + transfer::transmitter 0.1 D +treeql treeql 1.3.1 D, T +units units 2.1 D +uri uri::urn 1.0.2 D +uuid uuid 1.0.1 D +------ ------- ----------- ----------- --------------- diff --git a/tcllib/support/releases/history/README-1.11.1.txt b/tcllib/support/releases/history/README-1.11.1.txt new file mode 100644 index 0000000..1d99f93 --- /dev/null +++ b/tcllib/support/releases/history/README-1.11.1.txt @@ -0,0 +1,59 @@ +Overview +======== + + 4 new packages in 2 new modules. + 2 new packages in 2 existing modules. + 9 changed packages in 9 modules. + +New in Tcllib 1.11.1 +================== + +Module Package New Version Comments +------ ------- ----------- ----------------------- +cache cache::async 0.1 In-memory cache, async result return. +------ ------- ----------- ----------------------- +map map::slippy 0.1 Open Street Map. Commons, + map::slippy::fetcher 0.1 fetching map tiles, and + map::slippy::cache 0.1 local cache of map tiles. +------ ------- ----------- ----------------------- +uevent uevent::onidle 0.1 Merge idle requests for some action. +------ ------- ----------- ----------------------- +struct struct::graph::op 0.9 Graph operations, GSoC 2008 +------ ------- ----------- ----------------------- + +Changes from Tcllib 1.11 to 1.11.1 +================================== + + Tcllib 1.11 Tcllib 1.11.1 +Module Package Old version New Version Comments +------ ------- ----------- ----------- --------------- +base64 yencode 1.1.1 1.1.2 B +dns dns 1.3.2 1.3.3 B +doctools doctools 1.3.5 1.4 EF, D, T +fileutil fileutil 1.13.4 1.13.5 B +ldap ldap 1.7 1.8 EF +math math::linalg 1.0.1 1.1 EF, B, T +nns nameserv 0.4.1 0.4.2 B +struct struct::graph 2.3 2.3.1 B +------ ------- ----------- ----------- --------------- + +Invisible changes (no version change) +------ ------- ----------- ----------- --------------- +asn asn 0.8 D +base64 uuencode 1.1.4 T +tar tar 0.4 D +------ ------- ----------- ----------- --------------- + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. diff --git a/tcllib/support/releases/history/README-1.11.txt b/tcllib/support/releases/history/README-1.11.txt new file mode 100644 index 0000000..86129d1 --- /dev/null +++ b/tcllib/support/releases/history/README-1.11.txt @@ -0,0 +1,274 @@ +Overview +======== + + 11 new packages in 4 new modules, and 2 new packages in 2 existing modules. + 62 changed packages. +159 unchanged packages (or non-visible changes, like testsuites) + +New in Tcllib 1.11 +================== + Tcllib 1.10 +Module Package New Version Comments +------ ------- ----------- ----------------------- +amazon-s3 S3 1.0.0 access to amazon's S3 service + xsxp 1.0 XML processing helper +------ ------- ----------- ----------------------- +irc picoirc 0.5.1 minimal irc client +------ ------- ----------- ----------------------- +simulation simulation::annealing 0.2 simulation tools + simulation::montecarlo 0.1 + simulation::random 0.1 +------ ------- ----------- ----------------------- +stringprep stringprep 1.0.0 preparation for + stringprep::data 1.0.0 internationalized + unicode 1.0.0 strings + unicode::data 1.0.0 +------ ------- ----------- ----------------------- +struct struct::disjointset 1.0 union-merge structure +------ ------- ----------- ----------------------- +yaml huddle 0.1.3 generic serialization format + yaml 0.3.3 YAML processing +------ ------- ----------- ----------------------- + +Changes from Tcllib 1.10 to 1.11 +================================ + +Legend Change Details Comments + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + + Tcllib 1.10 Tcllib 1.11 +Module Package Old version New Version Comments +------ ------- ----------- ----------- --------------- +aes aes 1.0.0 1.0.1 B, D, T +asn asn 0.8.1 0.8.3 B, D +base64 base64 2.3.2 2.4 Changed defaults, B, D +bench bench 0.3.1 0.4 I +blowfish blowfish 1.0.3 1.0.4 T +cmdline cmdline 1.3 1.3.1 B, D +comm comm 4.5.6 4.5.7 B, D +crc cksum 1.1.1 1.1.2 B, D +csv csv 0.7 0.7.1 B +dns spf 1.1.0 1.1.1 B +doctools doctools 1.3 1.3.5 B + doctools::changelog 0.1.1 1 Accept maturity + doctools::cvs 0.1.1 1 . + doctools::idx 0.3 1 . + doctools::toc 0.3 1 . +fileutil fileutil 1.13.3 1.13.4 B + fileutil::multi::op 0.5 0.5.2 B + fileutil::traverse 0.3 0.4 B +ftp ftp 2.4.8 2.4.9 B, D + ftp::geturl 0.2 0.2.1 B +ftpd ftpd 1.2.3 1.2.4 B +grammar_fa grammar::fa::op 0.4 0.4.1 B +htmlparse htmlparse 1.1.2 1.1.3 B, D +http autoproxy 1.4 1.5.1 I, B, D +inifile inifile 0.2.1 0.2.3 I, B, D +irc irc 0.6 0.6.1 B, D +jpeg jpeg 0.3 0.3.3 D, B, T +ldap ldap 1.6.8 1.7 EF, B +log log 1.2 1.2.1 B, D +math math::bigfloat 1.2.1 1.2.2 B + math::bigfloat 2.0 2.0.1 B + math::calculus 0.7 0.7.1 B + math::linearalgebra 1.0.2 1.0.3 B, T + math::special 0.2.1 0.2.2 B + math::statistics 0.5 0.6 EF, D, T +md4 md4 1.0.4 1.0.5 B +md5 md5 2.0.5 2.0.7 B +md5crypt md5crypt 1.0.0 1.1.0 EF +mime mime 1.5.2 1.5.4 B + smtp 1.4.4 1.4.5 B +nmea nmea 0.1.1 0.2.0 EF, B, D +nns nameserv 0.3 0.4.1 B, D + nameserv::auto 0.1 0.3 I, B, D + nameserv::server 0.3 0.3.2 I, B, D +pluginmgr pluginmgr 0.1 0.2 B, D +sasl SASL 1.3.1 1.3.2 B +struct struct::graph 2.2 2.3 EF, T + struct::list 1.6.1 1.7 B, T, EF + struct::matrix 2.0.1 2.0.2 B + struct::prioqueue 1.3.1 1.4 EF + struct::queue 1.4 1.4.1 I, D + struct::set 2.2.1 2.2.3 B, T + struct::stack 1.3.1 1.3.3 P, T, I, D +term term::ansi::code::ctrl 0.1 0.1.1 B, D +textutil textutil::string 0.7 0.7.1 P, D +tie tie::std::file 1.0.2 1.0.4 B, D +tiff tiff 0.1 0.2.1 B, T, D +transfer transfer::copy 0.1 0.2 B +uev uevent 0.1.2 0.2 EF, B +wip wip 1.0 1.1.1 EF, B + wip 2.0 2.1.1 EF, B +------ ------- ----------- ----------- --------------- + + +Invisible or no changes +------ ------- ----------- ----------- --------------- +base32 base32 0.1 T, D + base32::core 0.1 T, D + base32::hex 0.1 T, D +base64 uuencode 1.1.4 D + yencode 1.1.1 D +bee bee 0.1 D +bench bench::in 0.1 + bench::out::csv 0.1.2 + bench::out::text 0.1.2 +bibtex bibtex 0.5 D +calendar calendar 0.2 +control control 0.1.3 +counter counter 2.0.4 +crc crc16 1.1.1 D + crc32 1.3 D + sum 1.1.0 D +des des 1.1.0 +dns dns 1.3.2 + ip 1.1.2 + resolv 1.0.3 +docstrip docstrip 1.2 + docstrip::util 1.2 +exif exif 1.1.2 D +fileutil fileutil::multi 0.1 D +fumagic fileutil::magic::cfront 1.0 D + fileutil::magic::cgen 1.0 D + fileutil::magic::filetype 1.0.2 D + fileutil::magic::mimetype 1.0.2 D + fileutil::magic::rt 1.0 D +grammar_fa grammar::fa 0.3 + grammar::fa::dacceptor 0.1.1 + grammar::fa::dexec 0.2 +grammar_me grammar::me::cpu 0.2 D + grammar::me::cpu::core 0.2 D + grammar::me::cpu::gasm 0.1 D + grammar::me::tcl 0.1 D + grammar::me::util 0.1 D +grammar_peg grammar::peg 0.1 D + grammar::peg::interp 0.1 D +html html 1.4 +ident ident 0.42 D +interp interp 0.1.1 + interp::delegate::method 0.2 + interp::delegate::proc 0.2 +javascript javascript 1.0.2 +json json 1.0 D, T +ldap ldapx 1.0 D +log logger 0.8 + logger::appender 1.3 + logger::utils 1.3 +mapproj mapproj 1.0 +math math 1.2.4 + math::bignum 3.1.1 + math::complexnumbers 1.0.2 + math::constants 1.0.1 T + math::fourier 1.0.2 + math::fuzzy 0.2 + math::geometry 1.0.3 + math::interpolate 1.0.2 + math::optimize 1.0 + math::polynomials 1.0.1 + math::rationalfunctions 1.0.1 + math::roman 1.0 D +md5 md5 1.4.4 +multiplexer multiplexer 0.2 +ncgi ncgi 1.3.2 D +nns nameserv::common 0.1 +nntp nntp 0.2.1 +ntp time 1.2.1 +otp otp 1.0.0 +page page::analysis::peg::emodes 0.1 + page::analysis::peg::minimize 0.1 + page::analysis::peg::reachable 0.1 + page::analysis::peg::realizable 0.1 + page::compiler::peg::mecpu 0.1.1 + page::gen::peg::canon 0.1 + page::gen::peg::cpkg 0.1 + page::gen::peg::hb 0.1 + page::gen::peg::me 0.1 + page::gen::peg::mecpu 0.1 + page::gen::peg::ser 0.1 + page::gen::tree::text 0.1 + page::parse::lemon 0.1 + page::parse::peg 0.1 + page::parse::peghb 0.1 + page::parse::pegser 0.1 + page::pluginmgr 0.2 + page::util::flow 0.1 + page::util::norm::lemon 0.1 + page::util::norm::peg 0.1 + page::util::peg 0.1 + page::util::quote 0.1 + pop3d::dbox 1.0.2 +png png 0.1.2 D +pop3d pop3d 1.1.0 + pop3d::udb 1.1 +pop3 pop3 1.6.3 +profiler profiler 0.3 +rc4 rc4 1.1.0 +rcs rcs 0.1 D +report report 0.3.1 +ripemd ripemd128 1.0.3 + ripemd160 1.0.3 +sasl SASL::NTLM 1.1.1 + SASL::XGoogleToken 1.0.1 +sha1 sha1 1.1.0 D + sha1 2.0.3 D + sha256 1.0.2 D +smtpd smtpd 1.4.0 +snit snit 1.3.1 D, T + snit 2.2.1 D, T +soundex soundex 1.0 D +stooop stooop 4.4.1 + switched 2.2.1 + tclDES 1.0.0 + tclDESjr 1.0.0 +struct struct 1.4 + struct 2.1 + struct::graph 1.2.1 + struct::matrix 1.2.1 + struct::pool 1.2.1 + struct::record 1.2.1 + struct::skiplist 1.3 + struct::tree 1.2.2 + struct::tree 2.1.1 T +tar tar 0.4 D +term term 0.1 D + term::interact::menu 0.1 D + term::interact::pager 0.1 D + term::receive 0.1 D + term::receive::bind 0.1 D + term::send 0.1 D +textutil textutil 0.7.1 D + textutil::adjust 0.7 D + textutil::expander 1.3.1 D + textutil::repeat 0.7 D + textutil::split 0.7 D + textutil::tabify 0.7 D + textutil::trim 0.7 D +tie tie 1.1 + tie::std::array 1.0 D + tie::std::dsource 1.0 D + tie::std::growfile 1.0 D + tie::std::log 1.0 D + tie::std::rarray 1.0 D +transfer transfer::connect 0.1 + transfer::copy::queue 0.1 + transfer::data::destination 0.1 + transfer::data::source 0.1 + transfer::receiver 0.1 + transfer::transmitter 0.1 +treeql treeql 1.3.1 +units units 2.1 D +uri uri 1.2.1 + uri::urn 1.0.2 D +uuid uuid 1.0.1 +------ ------- ----------- ----------- --------------- diff --git a/tcllib/support/releases/history/README-1.12.txt b/tcllib/support/releases/history/README-1.12.txt new file mode 100644 index 0000000..d4f06b8 --- /dev/null +++ b/tcllib/support/releases/history/README-1.12.txt @@ -0,0 +1,271 @@ +Overview +======== + + 72 new packages in 10 modules + 46 changed packages in 25 modules + 14 internally changed packages in 12 modules + 166 unchanged packages in 65 modules + 301 packages, total in 95 modules, total + +New in tcllib 1.12 +================== + + Module Package New Version Comments + ----------------------- ------------------------------- ------------- ----------------------------------------------- + coroutine coroutine 1 Tcl 8.6+ coroutine/event utilities + coroutine::auto 1 s.a. + ----------------------- ------------------------------- ------------- ----------------------------------------------- + doctools2base doctools::config 0.1 doctools v2 foundation + doctools::html 0.1 + doctools::html::cssdefaults 0.1 + doctools::msgcat 0.1 + doctools::nroff::man_macros 0.1 + doctools::paths 0.1 + doctools::tcl::parse 0.1 + doctools::text 0.1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + doctools2idx doctools::idx::export 0.1 doctools v2 index handling + doctools::idx::export::docidx 0.1 + doctools::idx::export::html 0.2 + doctools::idx::export::json 0.1 + doctools::idx::export::nroff 0.3 + doctools::idx::export::text 0.2 + doctools::idx::export::wiki 0.2 + doctools::idx::import 0.1 + doctools::idx::import::docidx 0.1 + doctools::idx::import::json 0.1 + doctools::idx::parse 0.1 + doctools::idx::structure 0.1 + doctools::msgcat::idx::c 0.1 + doctools::msgcat::idx::de 0.1 + doctools::msgcat::idx::en 0.1 + doctools::msgcat::idx::fr 0.1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + doctools2toc doctools::msgcat::toc::c 0.1 doctools v2 TOC handling + doctools::msgcat::toc::de 0.1 + doctools::msgcat::toc::en 0.1 + doctools::msgcat::toc::fr 0.1 + doctools::toc::export 0.1 + doctools::toc::export::doctoc 0.1 + doctools::toc::export::html 0.1 + doctools::toc::export::json 0.1 + doctools::toc::export::nroff 0.2 + doctools::toc::export::text 0.1 + doctools::toc::export::wiki 0.1 + doctools::toc::import 0.1 + doctools::toc::import::doctoc 0.1 + doctools::toc::import::json 0.1 + doctools::toc::parse 0.1 + doctools::toc::structure 0.1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + json json::write 1 JSON generation + math math::machineparameters 0.1 Determine double-precision machine parameters + rest rest 1.0.0 Specify RESTful interfaces to webservices + ----------------------- ------------------------------- ------------- ----------------------------------------------- + virtchannel_base tcl::chan::fifo 1 Various basic reflected/virtual channels + tcl::chan::fifo2 1 + tcl::chan::halfpipe 1 + tcl::chan::memchan 1 + tcl::chan::null 1 + tcl::chan::nullzero 1 + tcl::chan::random 1 + tcl::chan::string 1 + tcl::chan::textwindow 1 + tcl::chan::variable 1 + tcl::chan::zero 1 + tcl::randomseed 1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + virtchannel_core tcl::chan::core 1 Core services for OO based reflected + tcl::chan::events 1 channels and transformations + tcl::transform::core 1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + virtchannel_transform tcl::transform::adler32 1 Various basic channel transforms + tcl::transform::base64 1 + tcl::transform::counter 1 + tcl::transform::crc32 1 + tcl::transform::hex 1 + tcl::transform::identity 1 + tcl::transform::limitsize 1 + tcl::transform::observe 1 + tcl::transform::otp 1 + tcl::transform::rot 1 + tcl::transform::spacer 1 + tcl::transform::zlib 1 + ----------------------- ------------------------------- ------------- ----------------------------------------------- + +Changes from tcllib 1.11.1 to 1.12 +================================== + + tcllib 1.11.1 tcllib 1.12 + Module Package Old Version New Version Comments + -------------- ----------------------------- --------------- ------------- ------------ + base64 base64 2.4 2.4.1 B + uuencode 1.1.4 1.1.5 B + yencode 1.1.2 1.1.3 B + -------------- ----------------------------- --------------- ------------- ------------ + comm comm 4.5.7 4.6.1 EF B + -------------- ----------------------------- --------------- ------------- ------------ + crc cksum 1.1.2 1.1.3 B + crc32 1.3 1.3.1 B D + -------------- ----------------------------- --------------- ------------- ------------ + dns ip 1.1.2 1.1.3 B + -------------- ----------------------------- --------------- ------------- ------------ + doctools doctools 1.4 1.4.3 B + doctools::idx 1 1.0.3 D B API + doctools::idx 2 D B API + doctools::toc 1 1.1.2 D B EF API + doctools::toc 2 D B EF API + -------------- ----------------------------- --------------- ------------- ------------ + doctools2idx doctools::idx 1 1.0.3 API + doctools::idx 2 API + -------------- ----------------------------- --------------- ------------- ------------ + doctools2toc doctools::toc 1 1.1.2 API + doctools::toc 2 API + -------------- ----------------------------- --------------- ------------- ------------ + fileutil fileutil 1.13.5 1.14.2 EF B + fileutil::multi::op 0.5.2 0.5.3 B + fileutil::traverse 0.4 0.4.1 B + -------------- ----------------------------- --------------- ------------- ------------ + grammar_fa grammar::fa 0.3 0.4 EF B + htmlparse htmlparse 1.1.3 1.2 I + jpeg jpeg 0.3.3 0.3.5 B + json json 1.0 1.0.1 B T + -------------- ----------------------------- --------------- ------------- ------------ + log log 1.2.1 1.3 I B D + logger 0.8 0.9 EF + -------------- ----------------------------- --------------- ------------- ------------ + math math 1.2.4 1.2.5 B + math::geometry 1.0.3 1.0.4 B + math::interpolate 1.0.2 1.0.3 B + math::linearalgebra 1.1 1.1.3 B T + math::statistics 0.6 0.6.3 B + -------------- ----------------------------- --------------- ------------- ------------ + nmea nmea 0.2.0 API + nmea 1.0.0 API + -------------- ----------------------------- --------------- ------------- ------------ + pluginmgr pluginmgr 0.2 0.3 EF + pop3 pop3 1.6.3 1.7 EF T + -------------- ----------------------------- --------------- ------------- ------------ + ripemd ripemd128 1.0.3 1.0.4 B + ripemd160 1.0.3 1.0.4 B + -------------- ----------------------------- --------------- ------------- ------------ + snit snit 1.3.1 1.4.1 EF B + snit 2.2.1 2.3.1 EF B + -------------- ----------------------------- --------------- ------------- ------------ + stringprep stringprep 1.0.0 1.0.1 B + stringprep::data 1.0.0 1.0.1 B + -------------- ----------------------------- --------------- ------------- ------------ + struct struct::graph 1.2.1 1.2.1 EF B + struct::graph 2.3.1 2.4 EF B + struct::graph::op 0.9 0.11.3 EF + struct::stack 1.3.3 1.4 EF + struct::tree 1.2.2 1.2.2 B + struct::tree 2.1.1 2.1.2 B + -------------- ----------------------------- --------------- ------------- ------------ + tar tar 0.4 0.6 EF + -------------- ----------------------------- --------------- ------------- ------------ + transfer transfer::connect 0.1 0.2 EF I + transfer::copy 0.2 0.3 I B + transfer::data::destination 0.1 0.2 EF I + transfer::data::source 0.1 0.2 EF I + transfer::receiver 0.1 0.2 EF I + transfer::transmitter 0.1 0.2 EF I + -------------- ----------------------------- --------------- ------------- ------------ + wip wip 1.1.1 1.1.2 B + wip 2.1.1 2.1.2 B + -------------- ----------------------------- --------------- ------------- ------------ + yaml huddle 0.1.3 0.1.4 B D T + yaml 0.3.3 0.3.5 B D T + -------------- ----------------------------- --------------- ------------- ------------ + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.11.1 tcllib 1.12 + Module Package Old Version New Version Comments + ---------- ---------------- --------------- ------------- ---------- + aes aes 1.0.1 1.0.1 D + control control 0.1.3 0.1.3 T + crc sum 1.1.0 1.1.0 critcl + csv csv 0.7.1 0.7.1 D + ---------- ---------------- --------------- ------------- ---------- + docstrip docstrip 1.2 1.2 D + docstrip::util 1.2 1.2 D + ---------- ---------------- --------------- ------------- ---------- + md4 md4 1.0.5 1.0.5 critcl + ---------- ---------------- --------------- ------------- ---------- + md5 md5 1.4.4 1.4.4 critcl + md5 2.0.7 2.0.7 critcl + ---------- ---------------- --------------- ------------- ---------- + md5crypt md5crypt 1.1.0 1.1.0 critcl + pop3d pop3d 1.1.0 1.1.0 D T + rc4 rc4 1.1.0 1.1.0 critcl + ---------- ---------------- --------------- ------------- ---------- + sha1 sha1 1.1.0 1.1.0 critcl + sha1 2.0.3 2.0.3 critcl + sha256 1.0.2 1.0.2 critcl + ---------- ---------------- --------------- ------------- ---------- + struct struct::list 1.7 1.7 T + ---------- ---------------- --------------- ------------- ---------- + +Unchanged +========= + + asn, autoproxy, base32, base32::core, base32::hex, bee, bench, + bench::in, bench::out::csv, bench::out::text, bibtex, blowfish, + cache::async, calendar, cmdline, counter, crc16, des, dns, + doctools::changelog, doctools::cvs, exif, + fileutil::magic::cfront, fileutil::magic::cgen, + fileutil::magic::filetype, fileutil::magic::mimetype, + fileutil::magic::rt, fileutil::multi, ftp, ftp::geturl, ftpd, + grammar::fa::dacceptor, grammar::fa::dexec, grammar::fa::op, + grammar::me::cpu, grammar::me::cpu::core, + grammar::me::cpu::gasm, grammar::me::tcl, grammar::me::util, + grammar::peg, grammar::peg::interp, html, ident, inifile, + interp, interp::delegate::method, interp::delegate::proc, irc, + javascript, ldap, ldapx, logger::appender, logger::utils, + map::slippy, map::slippy::cache, map::slippy::fetcher, mapproj, + math::bigfloat, math::bignum, math::calculus, + math::complexnumbers, math::constants, math::fourier, + math::fuzzy, math::optimize, math::polynomials, + math::rationalfunctions, math::roman, math::special, mime, + multiplexer, nameserv, nameserv::auto, nameserv::common, + nameserv::server, ncgi, nntp, otp, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::gen::peg::canon, page::gen::peg::cpkg, page::gen::peg::hb, + page::gen::peg::me, page::gen::peg::mecpu, page::gen::peg::ser, + page::gen::tree::text, page::parse::lemon, page::parse::peg, + page::parse::peghb, page::parse::pegser, page::pluginmgr, + page::util::flow, page::util::norm::lemon, + page::util::norm::peg, page::util::peg, page::util::quote, + picoirc, png, pop3d::dbox, pop3d::udb, profiler, rcs, report, + resolv, S3, SASL, SASL::NTLM, SASL::XGoogleToken, + simulation::annealing, simulation::montecarlo, + simulation::random, smtp, smtpd, soundex, spf, stooop, struct, + struct::disjointset, struct::matrix, struct::pool, + struct::prioqueue, struct::queue, struct::record, struct::set, + struct::skiplist, switched, tclDES, tclDESjr, term, + term::interact::menu, term::interact::pager, term::receive, + term::receive::bind, term::send, textutil, textutil::adjust, + textutil::expander, textutil::repeat, textutil::split, + textutil::string, textutil::tabify, textutil::trim, tie, + tie::std::array, tie::std::dsource, tie::std::file, + tie::std::growfile, tie::std::log, tie::std::rarray, tiff, time, + transfer::copy::queue, treeql, uevent, uevent::onidle, unicode, + unicode::data, units, uri, uri::urn, uuid, xsxp + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.13.txt b/tcllib/support/releases/history/README-1.13.txt new file mode 100644 index 0000000..282887a --- /dev/null +++ b/tcllib/support/releases/history/README-1.13.txt @@ -0,0 +1,272 @@ +Overview +======== + + 44 new packages in 10 modules + 29 changed packages in 24 modules + 62 internally changed packages in 11 modules + 207 unchanged packages in 79 modules + 348 packages, total in 103 modules, total + +New in tcllib 1.13 +================== + + Module Package New Version Comments + ---------------- ------------------------------------ ------------- ---------- + base64 ascii85 1.0 + gpx gpx 1 + ---------------- ------------------------------------ ------------- ---------- + grammar_aycock grammar::aycock 1.0 + grammar::aycock::debug 1.0 + grammar::aycock::runtime 1.0 + ---------------- ------------------------------------ ------------- ---------- + hook hook 0.1 + imap4 imap4 0.3 + ---------------- ------------------------------------ ------------- ---------- + math math::calculus::symdiff 1.0 + math::numtheory 1.0 + ---------------- ------------------------------------ ------------- ---------- + namespacex namespacex 0.1 + pki pki 0.1 + ---------------- ------------------------------------ ------------- ---------- + pt char 1 + configuration 1 + paths 1 + pt::ast 1.1 + pt::cparam::configuration::critcl 1.0.1 + pt::parse::peg 1 + pt::pe 1 + pt::pe::op 1 + pt::peg 1 + pt::peg::container 1 + pt::peg::container::peg 1 + pt::peg::export 1 + pt::peg::export::container 1 + pt::peg::export::json 1 + pt::peg::export::peg 1 + pt::peg::from::json 1 + pt::peg::from::peg 1 + pt::peg::import 1 + pt::peg::import::json 1 + pt::peg::interp 1 + pt::peg::op 1 + pt::peg::to::container 1 + pt::peg::to::cparam 1.0.1 + pt::peg::to::json 1 + pt::peg::to::param 1 + pt::peg::to::peg 1 + pt::peg::to::tclparam 1 + pt::pgen 1 + pt::rde 1.0.1 + pt::tclparam::configuration::snit 1.0.1 + pt::tclparam::configuration::tcloo 1.0.1 + text::write 1 + ---------------- ------------------------------------ ------------- ---------- + tepam tepam 0.2.0 + ---------------- ------------------------------------ ------------- ---------- + +Changes from tcllib 1.12 to 1.13 +================================ + + tcllib 1.12 tcllib 1.13 + Module Package Old Version New Version Comments + -------------- --------------------- ------------- ------------- ---------- + aes aes 1.0.1 1.0.2 B + asn asn 0.8.3 0.8.4 B + base64 base64 2.4.1 2.4.2 D B + cmdline cmdline 1.3.1 1.3.2 D B + comm comm 4.6.1 4.6.2 B + csv csv 0.7.1 0.7.2 D B + dns ip 1.1.3 1.2 EF + docstrip docstrip::util 1.2 1.3 D EF B + -------------- --------------------- ------------- ------------- ---------- + doctools doctools 1.4.3 1.4.11 EF B + doctools::idx 1.0.3 1.0.4 B + doctools::idx 2 2 B + doctools::toc 1.1.2 1.1.3 B + doctools::toc 2 2 B + -------------- --------------------- ------------- ------------- ---------- + doctools2idx doctools::idx 1.0.3 1.0.4 B + doctools::idx 2 2 B + -------------- --------------------- ------------- ------------- ---------- + doctools2toc doctools::toc 1.1.2 1.1.3 B + doctools::toc 2 2 B + -------------- --------------------- ------------- ------------- ---------- + fileutil fileutil 1.14.2 1.14.4 B EF + ftpd ftpd 1.2.4 1.2.5 B + json json 1.0.1 1.1.1 I B + map map::slippy 0.2 0.3 B + -------------- --------------------- ------------- ------------- ---------- + math math::fuzzy 0.2 0.2.1 B + math::geometry 1.0.4 1.1.2 EF B D + math::linearalgebra 1.1.3 1.1.4 B + math::statistics 0.6.3 0.7.0 EF T + -------------- --------------------- ------------- ------------- ---------- + pop3 pop3 1.7 1.8 EF + sha1 sha256 1.0.2 1.0.3 B + -------------- --------------------- ------------- ------------- ---------- + snit snit 1.4.1 1.4.2 D B + snit 2.3.1 2.3.2 D B + -------------- --------------------- ------------- ------------- ---------- + struct struct::list 1.7 1.8 EF T D + struct::queue 1.4.1 1.4.2 I T + struct::stack 1.4 1.5.1 EF I + -------------- --------------------- ------------- ------------- ---------- + tar tar 0.6 0.7 EF + units units 2.1 2.1.1 B + -------------- --------------------- ------------- ------------- ---------- + wip wip 1.1.2 1.2 EF + wip 2.1.2 2.2 EF + -------------- --------------------- ------------- ------------- ---------- + yaml huddle 0.1.4 0.1.5 B + -------------- --------------------- ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.12 tcllib 1.13 + Module Package Old Version New Version Comments + ----------------------- ------------------------------- ------------- ------------- ---------- + coroutine coroutine 1 1 D + coroutine::auto 1 1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + doctools2base doctools::msgcat 0.1 0.1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + doctools2idx doctools::idx::export 0.1 0.1 D + doctools::idx::export::docidx 0.1 0.1 D + doctools::idx::export::html 0.2 0.2 D + doctools::idx::export::json 0.1 0.1 D + doctools::idx::export::nroff 0.3 0.3 D + doctools::idx::export::text 0.2 0.2 D + doctools::idx::export::wiki 0.2 0.2 D + doctools::idx::import 0.1 0.1 D + doctools::idx::import::docidx 0.1 0.1 D + doctools::idx::import::json 0.1 0.1 D + doctools::msgcat::idx::c 0.1 0.1 D + doctools::msgcat::idx::de 0.1 0.1 D + doctools::msgcat::idx::en 0.1 0.1 D + doctools::msgcat::idx::fr 0.1 0.1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + doctools2toc doctools::msgcat::toc::c 0.1 0.1 D + doctools::msgcat::toc::de 0.1 0.1 D + doctools::msgcat::toc::en 0.1 0.1 D + doctools::msgcat::toc::fr 0.1 0.1 D + doctools::toc::export 0.1 0.1 D + doctools::toc::export::doctoc 0.1 0.1 D + doctools::toc::export::html 0.1 0.1 D + doctools::toc::export::json 0.1 0.1 D + doctools::toc::export::nroff 0.2 0.2 D + doctools::toc::export::text 0.1 0.1 D + doctools::toc::export::wiki 0.1 0.1 D + doctools::toc::import 0.1 0.1 D + doctools::toc::import::doctoc 0.1 0.1 D + doctools::toc::import::json 0.1 0.1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + http autoproxy 1.5.1 1.5.1 D + mime smtp 1.4.5 1.4.5 D + simulation simulation::random 0.1 0.1 D + struct struct::graph::op 0.11.3 0.11.3 D T + ----------------------- ------------------------------- ------------- ------------- ---------- + virtchannel_base tcl::chan::fifo 1 1 D + tcl::chan::fifo2 1 1 D + tcl::chan::halfpipe 1 1 D + tcl::chan::memchan 1 1 D + tcl::chan::null 1 1 D + tcl::chan::nullzero 1 1 D + tcl::chan::random 1 1 D + tcl::chan::string 1 1 D + tcl::chan::textwindow 1 1 D + tcl::chan::variable 1 1 D + tcl::chan::zero 1 1 D + tcl::randomseed 1 1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + virtchannel_core tcl::chan::core 1 1 D + tcl::chan::events 1 1 D + tcl::transform::core 1 1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + virtchannel_transform tcl::transform::adler32 1 1 D + tcl::transform::base64 1 1 D + tcl::transform::counter 1 1 D + tcl::transform::crc32 1 1 D + tcl::transform::hex 1 1 D + tcl::transform::identity 1 1 D + tcl::transform::limitsize 1 1 D + tcl::transform::observe 1 1 D + tcl::transform::otp 1 1 D + tcl::transform::rot 1 1 D + tcl::transform::spacer 1 1 D + tcl::transform::zlib 1 1 D + ----------------------- ------------------------------- ------------- ------------- ---------- + +Unchanged +========= + + base32, base32::core, base32::hex, bee, bench, bench::in, + bench::out::csv, bench::out::text, bibtex, blowfish, + cache::async, calendar, cksum, control, counter, crc16, crc32, + des, dns, docstrip, doctools::changelog, doctools::config, + doctools::cvs, doctools::html, doctools::html::cssdefaults, + doctools::idx::parse, doctools::idx::structure, + doctools::nroff::man_macros, doctools::paths, + doctools::tcl::parse, doctools::text, doctools::toc::parse, + doctools::toc::structure, exif, fileutil::magic::cfront, + fileutil::magic::cgen, fileutil::magic::filetype, + fileutil::magic::mimetype, fileutil::magic::rt, fileutil::multi, + fileutil::multi::op, fileutil::traverse, ftp, ftp::geturl, + grammar::fa, grammar::fa::dacceptor, grammar::fa::dexec, + grammar::fa::op, grammar::me::cpu, grammar::me::cpu::core, + grammar::me::cpu::gasm, grammar::me::tcl, grammar::me::util, + grammar::peg, grammar::peg::interp, html, htmlparse, ident, + inifile, interp, interp::delegate::method, + interp::delegate::proc, irc, javascript, jpeg, json::write, + ldap, ldapx, log, logger, logger::appender, logger::utils, + map::slippy::cache, map::slippy::fetcher, mapproj, math, + math::bigfloat, math::bignum, math::calculus, + math::complexnumbers, math::constants, math::fourier, + math::interpolate, math::machineparameters, math::optimize, + math::polynomials, math::rationalfunctions, math::roman, + math::special, md4, md5, md5crypt, mime, multiplexer, nameserv, + nameserv::auto, nameserv::common, nameserv::server, ncgi, nmea, + nntp, otp, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::gen::peg::canon, page::gen::peg::cpkg, page::gen::peg::hb, + page::gen::peg::me, page::gen::peg::mecpu, page::gen::peg::ser, + page::gen::tree::text, page::parse::lemon, page::parse::peg, + page::parse::peghb, page::parse::pegser, page::pluginmgr, + page::util::flow, page::util::norm::lemon, + page::util::norm::peg, page::util::peg, page::util::quote, + picoirc, pluginmgr, png, pop3d, pop3d::dbox, pop3d::udb, + profiler, rc4, rcs, report, resolv, rest, ripemd128, ripemd160, + S3, SASL, SASL::NTLM, SASL::XGoogleToken, sha1, + simulation::annealing, simulation::montecarlo, smtpd, soundex, + spf, stooop, stringprep, stringprep::data, struct, + struct::disjointset, struct::graph, struct::matrix, + struct::pool, struct::prioqueue, struct::record, struct::set, + struct::skiplist, struct::tree, sum, switched, tclDES, tclDESjr, + term, term::interact::menu, term::interact::pager, + term::receive, term::receive::bind, term::send, textutil, + textutil::adjust, textutil::expander, textutil::repeat, + textutil::split, textutil::string, textutil::tabify, + textutil::trim, tie, tie::std::array, tie::std::dsource, + tie::std::file, tie::std::growfile, tie::std::log, + tie::std::rarray, tiff, time, transfer::connect, transfer::copy, + transfer::copy::queue, transfer::data::destination, + transfer::data::source, transfer::receiver, + transfer::transmitter, treeql, uevent, uevent::onidle, unicode, + unicode::data, uri, uri::urn, uuencode, uuid, xsxp, yaml, + yencode + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.14.txt b/tcllib/support/releases/history/README-1.14.txt new file mode 100644 index 0000000..b9b83aa --- /dev/null +++ b/tcllib/support/releases/history/README-1.14.txt @@ -0,0 +1,219 @@ +Overview +======== + + 21 new packages in 7 modules + 30 changed packages in 24 modules + 8 internally changed packages in 8 modules + 328 unchanged packages in 89 modules + 393 packages, total in 107 modules, total + +New in tcllib 1.14 +================== + + Module Package New Version Comments + ------------------ --------------------------------- ------------- ---------- + lambda lambda 1 + math math::decimal 1.0.2 T + ooutil oo::util 1 + pt pt::peg::import::peg 1 + try try 1 + ------------------ --------------------------------- ------------- ---------- + valtype valtype::common 1 + valtype::creditcard::amex 1 + valtype::creditcard::discover 1 + valtype::creditcard::mastercard 1 + valtype::creditcard::visa 1 + valtype::gs1::ean13 1 + valtype::iban 1 + valtype::imei 1 + valtype::isbn 1 + valtype::luhn 1 + valtype::luhn5 1 + valtype::usnpi 1 + valtype::verhoeff 1 + ------------------ --------------------------------- ------------- ---------- + virtchannel_base tcl::chan::cat 1.0.1 + tcl::chan::facade 1.0.1 + tcl::chan::std 1.0.1 + ------------------ --------------------------------- ------------- ---------- + +Changes from tcllib 1.13 to 1.14 +================================ + + tcllib 1.13 tcllib 1.14 + Module Package Old Version New Version Comments + ------------------ ------------------------------------ ------------- ------------- ---------- + cmdline cmdline 1.3.2 1.3.3 B T + ------------------ ------------------------------------ ------------- ------------- ---------- + coroutine coroutine 1 1.1 B + coroutine::auto 1 1.1 B + ------------------ ------------------------------------ ------------- ------------- ---------- + csv csv 0.7.2 0.7.3 B D T + doctools doctools 1.4.11 1.4.13 B T + fileutil fileutil::traverse 0.4.1 0.4.2 B + ftp ftp 2.4.9 2.4.11 B + ftpd ftpd 1.2.5 1.2.6 B + grammar_peg grammar::peg::interp 0.1 0.1.1 B + inifile inifile 0.2.3 0.2.4 B + interp interp 0.1.1 0.1.2 B + jpeg jpeg 0.3.5 0.4.0 I D + ------------------ ------------------------------------ ------------- ------------- ---------- + json json 1.1.1 1.1.2 B T + json::write 1 1.0.1 B + ------------------ ------------------------------------ ------------- ------------- ---------- + map map::slippy 0.3 0.4 B D T + pki pki 0.1 0.2 B T + ------------------ ------------------------------------ ------------- ------------- ---------- + pt pt::pgen 1 1.0.1 B + pt::rde 1.0.1 1.0.2 B T + pt::tclparam::configuration::tcloo 1.0.1 1.0.2 B T + ------------------ ------------------------------------ ------------- ------------- ---------- + rest rest 1.0.0 1.0 --- + simulation simulation::random 0.1 0.3 B D + smtpd smtpd 1.4.0 1.5 EF + struct struct::list 1.8 1.8.1 B + term term::ansi::ctrl::unix 0.1 0.1.1 B + textutil textutil::adjust 0.7 0.7.1 B + uri uri 1.2.1 1.2.2 B + ------------------ ------------------------------------ ------------- ------------- ---------- + virtchannel_base tcl::chan::memchan 1 1.0.2 B + tcl::chan::string 1 1.0.1 B + tcl::chan::variable 1 1.0.2 B + ------------------ ------------------------------------ ------------- ------------- ---------- + yaml yaml 0.3.5 0.3.6 B + ------------------ ------------------------------------ ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.13 tcllib 1.14 + Module Package Old Version New Version Comments + ------------- ----------------------------------- ------------- ------------- ---------- + base64 base64 2.4.2 2.4.2 T + hook hook 0.1 0.1 D + math math::linearalgebra 1.1.4 1.1.4 D + multiplexer multiplexer 0.2 0.2 T + pop3 pop3 1.8 1.8 T + pop3d pop3d 1.1.0 1.1.0 T + pt pt::cparam::configuration::critcl 1.0.1 1.0.1 T + tepam tepam 0.2.0 0.2.0 T + ------------- ----------------------------------- ------------- ------------- ---------- + +Unchanged +========= + + aes, ascii85, asn, autoproxy, base32, base32::core, base32::hex, + bee, bench, bench::in, bench::out::csv, bench::out::text, + bibtex, blowfish, cache::async, calendar, char, cksum, comm, + configuration, control, counter, crc16, crc32, des, dns, + docstrip, docstrip::util, doctools::changelog, doctools::config, + doctools::cvs, doctools::html, doctools::html::cssdefaults, + doctools::idx, doctools::idx, doctools::idx::export, + doctools::idx::export::docidx, doctools::idx::export::html, + doctools::idx::export::json, doctools::idx::export::nroff, + doctools::idx::export::text, doctools::idx::export::wiki, + doctools::idx::import, doctools::idx::import::docidx, + doctools::idx::import::json, doctools::idx::parse, + doctools::idx::structure, doctools::msgcat, + doctools::msgcat::idx::c, doctools::msgcat::idx::de, + doctools::msgcat::idx::en, doctools::msgcat::idx::fr, + doctools::msgcat::toc::c, doctools::msgcat::toc::de, + doctools::msgcat::toc::en, doctools::msgcat::toc::fr, + doctools::nroff::man_macros, doctools::paths, + doctools::tcl::parse, doctools::text, doctools::toc, + doctools::toc, doctools::toc::export, + doctools::toc::export::doctoc, doctools::toc::export::html, + doctools::toc::export::json, doctools::toc::export::nroff, + doctools::toc::export::text, doctools::toc::export::wiki, + doctools::toc::import, doctools::toc::import::doctoc, + doctools::toc::import::json, doctools::toc::parse, + doctools::toc::structure, exif, fileutil, + fileutil::magic::cfront, fileutil::magic::cgen, + fileutil::magic::filetype, fileutil::magic::mimetype, + fileutil::magic::rt, fileutil::multi, fileutil::multi::op, + ftp::geturl, gpx, grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::me::cpu, + grammar::me::cpu::core, grammar::me::cpu::gasm, + grammar::me::tcl, grammar::me::util, grammar::peg, html, + htmlparse, huddle, ident, imap4, interp::delegate::method, + interp::delegate::proc, ip, irc, javascript, ldap, ldapx, log, + logger, logger::appender, logger::utils, map::slippy::cache, + map::slippy::fetcher, mapproj, math, math::bigfloat, + math::bignum, math::calculus, math::calculus::symdiff, + math::complexnumbers, math::constants, math::fourier, + math::fuzzy, math::geometry, math::interpolate, + math::machineparameters, math::numtheory, math::optimize, + math::polynomials, math::rationalfunctions, math::roman, + math::special, math::statistics, md4, md5, md5crypt, mime, + nameserv, nameserv::auto, nameserv::common, nameserv::server, + namespacex, ncgi, nmea, nntp, otp, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::config::peg, page::gen::peg::canon, page::gen::peg::cpkg, + page::gen::peg::hb, page::gen::peg::me, page::gen::peg::mecpu, + page::gen::peg::ser, page::gen::tree::text, page::parse::lemon, + page::parse::peg, page::parse::peghb, page::parse::pegser, + page::pluginmgr, page::reader::hb, page::reader::lemon, + page::reader::peg, page::reader::ser, page::reader::treeser, + page::transform::mecpu, page::transform::reachable, + page::transform::realizable, page::util::flow, + page::util::norm::lemon, page::util::norm::peg, page::util::peg, + page::util::quote, page::writer::hb, page::writer::identity, + page::writer::me, page::writer::mecpu, page::writer::null, + page::writer::peg, page::writer::ser, page::writer::tpc, + page::writer::tree, paths, picoirc, pluginmgr, png, pop3d::dbox, + pop3d::udb, profiler, pt::ast, pt::parse::peg, pt::pe, + pt::pe::op, pt::peg, pt::peg::container, + pt::peg::container::peg, pt::peg::export, + pt::peg::export::container, pt::peg::export::json, + pt::peg::export::peg, pt::peg::from::json, pt::peg::from::peg, + pt::peg::import, pt::peg::import::json, pt::peg::interp, + pt::peg::op, pt::peg::to::container, pt::peg::to::cparam, + pt::peg::to::json, pt::peg::to::param, pt::peg::to::peg, + pt::peg::to::tclparam, pt::tclparam::configuration::snit, rc4, + rcs, report, resolv, ripemd128, ripemd160, S3, SASL, SASL::NTLM, + SASL::XGoogleToken, sha1, sha256, simulation::annealing, + simulation::montecarlo, smtp, snit, soundex, spf, stooop, + stringprep, stringprep::data, struct, struct::disjointset, + struct::graph, struct::graph::op, struct::matrix, struct::pool, + struct::prioqueue, struct::queue, struct::record, struct::set, + struct::skiplist, struct::stack, struct::tree, sum, switched, + tar, tcl::chan::core, tcl::chan::events, tcl::chan::fifo, + tcl::chan::fifo2, tcl::chan::halfpipe, tcl::chan::null, + tcl::chan::nullzero, tcl::chan::random, tcl::chan::textwindow, + tcl::chan::zero, tcl::randomseed, tcl::transform::adler32, + tcl::transform::base64, tcl::transform::core, + tcl::transform::counter, tcl::transform::crc32, + tcl::transform::hex, tcl::transform::identity, + tcl::transform::limitsize, tcl::transform::observe, + tcl::transform::otp, tcl::transform::rot, + tcl::transform::spacer, tcl::transform::zlib, tclDES, tclDESjr, + term, term::ansi::code, term::ansi::code::attr, + term::ansi::code::ctrl, term::ansi::code::macros, + term::ansi::send, term::interact::menu, term::interact::pager, + term::receive, term::receive::bind, term::send, text::write, + textutil, textutil::expander, textutil::repeat, textutil::split, + textutil::string, textutil::tabify, textutil::trim, tie, + tie::std::array, tie::std::dsource, tie::std::file, + tie::std::growfile, tie::std::log, tie::std::rarray, tiff, time, + transfer::connect, transfer::copy, transfer::copy::queue, + transfer::data::destination, transfer::data::source, + transfer::receiver, transfer::transmitter, treeql, uevent, + uevent::onidle, unicode, unicode::data, units, uri::urn, + uuencode, uuid, wip, xsxp, yencode + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.15.txt b/tcllib/support/releases/history/README-1.15.txt new file mode 100644 index 0000000..8ee8383 --- /dev/null +++ b/tcllib/support/releases/history/README-1.15.txt @@ -0,0 +1,220 @@ +Overview +======== + + 7 new packages in 5 modules + 33 changed packages in 29 modules + 10 internally changed packages in 6 modules + 344 unchanged packages in 90 modules + 400 packages, total in 110 modules, total + +New in tcllib 1.15 +================== + + Module Package New Version Comments + ----------- ------------------------- ------------- ---------- + clock clock::iso8601 0.1 + clock::rfc2822 0.1 + ----------- ------------------------- ------------- ---------- + fileutil fileutil::decode 0.1 + generator generator 0.1 + map map::geocode::nominatim 0.1 + ----------- ------------------------- ------------- ---------- + zip zipfile::decode 0.2 + zipfile::encode 0.1 + ----------- ------------------------- ------------- ---------- + +Changes from tcllib 1.14 to 1.15 +================================ + + tcllib 1.14 tcllib 1.15 + Module Package Old Version New Version Comments + ------------------ ------------------------ ------------- ------------- ---------- + aes aes 1.0.2 1.1 D EF + crc crc16 1.1.1 1.1.2 B + csv csv 0.7.3 0.8 EF + doctools doctools 1.4.13 1.4.14 T B + ------------------ ------------------------ ------------- ------------- ---------- + fileutil fileutil 1.14.4 1.14.5 B + fileutil::traverse 0.4.2 0.4.3 B + ------------------ ------------------------ ------------- ------------- ---------- + grammar_peg grammar::peg 0.1 0.2 B + htmlparse htmlparse 1.2 1.2.1 B + http autoproxy 1.5.1 1.5.3 B + imap4 imap4 0.3 0.4 EF + inifile inifile 0.2.4 0.2.5 B + json json::write 1.0.1 1.0.2 B + log logger 0.9 0.9.3 B + ------------------ ------------------------ ------------- ------------- ---------- + map map::slippy 0.4 0.5 EF + map::slippy::fetcher 0.2 0.3 EF + ------------------ ------------------------ ------------- ------------- ---------- + math math::statistics 0.7.0 0.8.0 EF + mime mime 1.5.4 1.5.6 B + ncgi ncgi 1.3.2 1.4.1 EF B T D + ooutil oo::util 1 1.1 EF + pki pki 0.2 0.6 EF + png png 0.1.2 0.2 EF + pop3 pop3 1.8 1.9 B T + simulation simulation::random 0.3 0.3.1 B + ------------------ ------------------------ ------------- ------------- ---------- + struct struct::list 1.8.1 1.8.2 B T + struct::queue 1.4.2 1.4.4 B T D + struct::stack 1.5.1 1.5.3 B T + ------------------ ------------------------ ------------- ------------- ---------- + tar tar 0.7 0.7.1 B + tepam tepam 0.2.0 0.4.0 EF D T + term term::ansi::code::ctrl 0.1.1 0.1.2 B + uev uevent 0.2 0.3.1 EF B + uuid uuid 1.0.1 1.0.2 B + valtype valtype::iban 1 1.1 EF + virtchannel_base tcl::chan::cat 1.0.1 1.0.2 B + ------------------ ------------------------ ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.14 tcllib 1.15 + Module Package Old Version New Version Comments + ------------ ------------------------ ------------- ------------- ---------- + base64 base64 2.4.2 2.4.2 D + cmdline cmdline 1.3.3 1.3.3 T + ------------ ------------------------ ------------- ------------- ---------- + grammar_me grammar::me::cpu 0.2 0.2 T + grammar::me::cpu::core 0.2 0.2 T + grammar::me::cpu::gasm 0.1 0.1 T + grammar::me::tcl 0.1 0.1 T + grammar::me::util 0.1 0.1 T + ------------ ------------------------ ------------- ------------- ---------- + irc irc 0.6.1 0.6.1 D + ------------ ------------------------ ------------- ------------- ---------- + struct struct::tree 1.2.2 1.2.2 D + struct::tree 2.1.2 2.1.2 D + ------------ ------------------------ ------------- ------------- ---------- + try try 1 1 D + ------------ ------------------------ ------------- ------------- ---------- + +Unchanged +========= + + ascii85, asn, base32, base32::core, base32::hex, bee, bench, + bench::in, bench::out::csv, bench::out::text, bibtex, blowfish, + cache::async, calendar, char, cksum, comm, configuration, + control, coroutine, coroutine::auto, counter, crc32, des, dns, + docstrip, docstrip::util, doctools::changelog, doctools::config, + doctools::cvs, doctools::html, doctools::html::cssdefaults, + doctools::idx, doctools::idx, doctools::idx::export, + doctools::idx::export::docidx, doctools::idx::export::html, + doctools::idx::export::json, doctools::idx::export::nroff, + doctools::idx::export::text, doctools::idx::export::wiki, + doctools::idx::import, doctools::idx::import::docidx, + doctools::idx::import::json, doctools::idx::parse, + doctools::idx::structure, doctools::msgcat, + doctools::msgcat::idx::c, doctools::msgcat::idx::de, + doctools::msgcat::idx::en, doctools::msgcat::idx::fr, + doctools::msgcat::toc::c, doctools::msgcat::toc::de, + doctools::msgcat::toc::en, doctools::msgcat::toc::fr, + doctools::nroff::man_macros, doctools::paths, + doctools::tcl::parse, doctools::text, doctools::toc, + doctools::toc, doctools::toc::export, + doctools::toc::export::doctoc, doctools::toc::export::html, + doctools::toc::export::json, doctools::toc::export::nroff, + doctools::toc::export::text, doctools::toc::export::wiki, + doctools::toc::import, doctools::toc::import::doctoc, + doctools::toc::import::json, doctools::toc::parse, + doctools::toc::structure, exif, fileutil::magic::cfront, + fileutil::magic::cgen, fileutil::magic::filetype, + fileutil::magic::mimetype, fileutil::magic::rt, fileutil::multi, + fileutil::multi::op, ftp, ftp::geturl, ftpd, gpx, + grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::peg::interp, hook, + html, huddle, ident, interp, interp::delegate::method, + interp::delegate::proc, ip, javascript, jpeg, json, lambda, + ldap, ldapx, log, logger::appender, logger::utils, + map::slippy::cache, mapproj, math, math::bigfloat, math::bignum, + math::calculus, math::calculus::symdiff, math::complexnumbers, + math::constants, math::decimal, math::fourier, math::fuzzy, + math::geometry, math::interpolate, math::linearalgebra, + math::machineparameters, math::numtheory, math::optimize, + math::polynomials, math::rationalfunctions, math::roman, + math::special, md4, md5, md5crypt, multiplexer, nameserv, + nameserv::auto, nameserv::common, nameserv::server, namespacex, + nmea, nntp, otp, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::config::peg, page::gen::peg::canon, page::gen::peg::cpkg, + page::gen::peg::hb, page::gen::peg::me, page::gen::peg::mecpu, + page::gen::peg::ser, page::gen::tree::text, page::parse::lemon, + page::parse::peg, page::parse::peghb, page::parse::pegser, + page::pluginmgr, page::reader::hb, page::reader::lemon, + page::reader::peg, page::reader::ser, page::reader::treeser, + page::transform::mecpu, page::transform::reachable, + page::transform::realizable, page::util::flow, + page::util::norm::lemon, page::util::norm::peg, page::util::peg, + page::util::quote, page::writer::hb, page::writer::identity, + page::writer::me, page::writer::mecpu, page::writer::null, + page::writer::peg, page::writer::ser, page::writer::tpc, + page::writer::tree, paths, picoirc, pluginmgr, pop3d, + pop3d::dbox, pop3d::udb, profiler, pt::ast, + pt::cparam::configuration::critcl, pt::parse::peg, pt::pe, + pt::pe::op, pt::peg, pt::peg::container, + pt::peg::container::peg, pt::peg::export, + pt::peg::export::container, pt::peg::export::json, + pt::peg::export::peg, pt::peg::from::json, pt::peg::from::peg, + pt::peg::import, pt::peg::import::json, pt::peg::import::peg, + pt::peg::interp, pt::peg::op, pt::peg::to::container, + pt::peg::to::cparam, pt::peg::to::json, pt::peg::to::param, + pt::peg::to::peg, pt::peg::to::tclparam, pt::pgen, pt::rde, + pt::tclparam::configuration::snit, + pt::tclparam::configuration::tcloo, rc4, rcs, report, resolv, + rest, ripemd128, ripemd160, S3, SASL, SASL::NTLM, + SASL::XGoogleToken, sha1, sha256, simulation::annealing, + simulation::montecarlo, smtp, smtpd, snit, soundex, spf, stooop, + stringprep, stringprep::data, struct, struct::disjointset, + struct::graph, struct::graph::op, struct::matrix, struct::pool, + struct::prioqueue, struct::record, struct::set, + struct::skiplist, sum, switched, tcl::chan::core, + tcl::chan::events, tcl::chan::facade, tcl::chan::fifo, + tcl::chan::fifo2, tcl::chan::halfpipe, tcl::chan::memchan, + tcl::chan::null, tcl::chan::nullzero, tcl::chan::random, + tcl::chan::std, tcl::chan::string, tcl::chan::textwindow, + tcl::chan::variable, tcl::chan::zero, tcl::randomseed, + tcl::transform::adler32, tcl::transform::base64, + tcl::transform::core, tcl::transform::counter, + tcl::transform::crc32, tcl::transform::hex, + tcl::transform::identity, tcl::transform::limitsize, + tcl::transform::observe, tcl::transform::otp, + tcl::transform::rot, tcl::transform::spacer, + tcl::transform::zlib, tclDES, tclDESjr, term, term::ansi::code, + term::ansi::code::attr, term::ansi::code::macros, + term::ansi::ctrl::unix, term::ansi::send, term::interact::menu, + term::interact::pager, term::receive, term::receive::bind, + term::send, text::write, textutil, textutil::adjust, + textutil::expander, textutil::repeat, textutil::split, + textutil::string, textutil::tabify, textutil::trim, tie, + tie::std::array, tie::std::dsource, tie::std::file, + tie::std::growfile, tie::std::log, tie::std::rarray, tiff, time, + transfer::connect, transfer::copy, transfer::copy::queue, + transfer::data::destination, transfer::data::source, + transfer::receiver, transfer::transmitter, treeql, + uevent::onidle, unicode, unicode::data, units, uri, uri::urn, + uuencode, valtype::common, valtype::creditcard::amex, + valtype::creditcard::discover, valtype::creditcard::mastercard, + valtype::creditcard::visa, valtype::gs1::ean13, valtype::imei, + valtype::isbn, valtype::luhn, valtype::luhn5, valtype::usnpi, + valtype::verhoeff, wip, xsxp, yaml, yencode + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.16.txt b/tcllib/support/releases/history/README-1.16.txt new file mode 100644 index 0000000..d820acb --- /dev/null +++ b/tcllib/support/releases/history/README-1.16.txt @@ -0,0 +1,516 @@ +Overview +======== + + 11 new packages in 7 modules + 45 changed packages in 26 modules + 288 internally changed packages in 100 modules + 61 unchanged packages in 11 modules + 411 packages, total in 114 modules, total + +New in tcllib 1.16 +================== + + Module Package New Version Comments + ----------- ---------------------- ------------- ---------- + debug debug 1.0.2 + debug::caller 1 + debug::heartbeat 1 + debug::timestamp 1 + ----------- ---------------------- ------------- ---------- + dtplite dtplite 1.1 + pt pt::rde::oo 1.0.2 + sasl SASL::SCRAM 0.1 + ----------- ---------------------- ------------- ---------- + string string::token 1 + string::token::shell 1.1 + ----------- ---------------------- ------------- ---------- + tepam tepam::doc_gen 0.1.1 + websocket websocket 1.3 + ----------- ---------------------- ------------- ---------- + +Changes from tcllib 1.15 to 1.16 +================================ + + tcllib 1.15 tcllib 1.16 + Module Package Old Version New Version Comments + ------------------ ------------------------------------ ------------- ------------- ---------- + aes aes 1.1 1.1.1 B D T + coroutine coroutine::auto 1.1 1.1.1 B D + dns ip 1.2 1.2.2 B D T + ------------------ ------------------------------------ ------------- ------------- ---------- + doctools doctools 1.4.14 1.4.17 B D T + doctools::changelog 1 1.1 D + ------------------ ------------------------------------ ------------- ------------- ---------- + fileutil fileutil 1.14.5 1.14.6 B D T + fileutil::decode 0.1 0.2 B + ------------------ ------------------------------------ ------------- ------------- ---------- + ftp ftp 2.4.11 2.4.12 B D + grammar_fa grammar::fa 0.4 0.5 B D + imap4 imap4 0.4 0.5.2 B D EF + jpeg jpeg 0.4.0 0.5 B D T + json json 1.1.2 1.3.2 D EF T + ------------------ ------------------------------------ ------------- ------------- ---------- + math math::calculus 0.7.1 0.7.2 B D + math::decimal 1.0.2 1.0.3 B D + math::geometry 1.1.2 1.1.3 B D + math::interpolate 1.0.3 1.1 B D T + math::statistics 0.8.0 0.9 D EF T + ------------------ ------------------------------------ ------------- ------------- ---------- + mime mime 1.5.6 1.6 D EF T + ncgi ncgi 1.4.1 1.4.2 B D T + ooutil oo::util 1.1 1.2 D EF + ------------------ ------------------------------------ ------------- ------------- ---------- + pt pt::peg::from::peg 1 1.0.2 B D T + pt::peg::op 1 1.0.1 B D + pt::peg::to::peg 1 1.0.1 B D T + pt::pgen 1.0.1 1.0.2 B D + pt::tclparam::configuration::tcloo 1.0.2 1.0.3 D T + ------------------ ------------------------------------ ------------- ------------- ---------- + rest rest 1.0 1.0.1 B D + ------------------ ------------------------------------ ------------- ------------- ---------- + sasl SASL 1.3.2 1.3.3 B D T + SASL::NTLM 1.1.1 1.1.2 B D T + ------------------ ------------------------------------ ------------- ------------- ---------- + struct struct::list 1.8.2 1.8.3 B D T + struct::matrix 1.2.1 1.2.1 D + struct::matrix 2.0.2 2.0.3 D + struct::queue 1.4.4 1.4.5 B D T + ------------------ ------------------------------------ ------------- ------------- ---------- + tar tar 0.7.1 0.9 B D T + tepam tepam 0.4.0 0.5.0 B D T + ------------------ ------------------------------------ ------------- ------------- ---------- + term term::ansi::code 0.1 0.2 B D + term::ansi::code::ctrl 0.1.2 0.2 B D + term::ansi::send 0.1 0.2 B D + ------------------ ------------------------------------ ------------- ------------- ---------- + textutil textutil 0.7.1 0.8 D EF + textutil::string 0.7.1 0.8 D EF T + ------------------ ------------------------------------ ------------- ------------- ---------- + uri uri 1.2.2 1.2.4 B D T + valtype valtype::iban 1.1 1.4 D EF T + ------------------ ------------------------------------ ------------- ------------- ---------- + virtchannel_base tcl::chan::memchan 1.0.2 1.0.3 B D + tcl::chan::string 1.0.1 1.0.2 B D + tcl::chan::variable 1.0.2 1.0.3 B D + ------------------ ------------------------------------ ------------- ------------- ---------- + zip zipfile::decode 0.2 0.4 B D + zipfile::encode 0.1 0.3 B D + ------------------ ------------------------------------ ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.15 tcllib 1.16 + Module Package Old Version New Version Comments + ----------------------- ----------------------------------- ------------- ------------- ---------- + amazon-s3 S3 1.0.0 1.0.0 D + xsxp 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + asn asn 0.8.4 0.8.4 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + base32 base32 0.1 0.1 D + base32::core 0.1 0.1 D + base32::hex 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + base64 ascii85 1.0 1.0 D + base64 2.4.2 2.4.2 D + uuencode 1.1.5 1.1.5 D + yencode 1.1.3 1.1.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + bee bee 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + bench bench 0.4 0.4 D + bench::in 0.1 0.1 D + bench::out::csv 0.1.2 0.1.2 D + bench::out::text 0.1.2 0.1.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + bibtex bibtex 0.5 0.5 D + blowfish blowfish 1.0.4 1.0.4 D + cache cache::async 0.3 0.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + clock clock::iso8601 0.1 0.1 D T + clock::rfc2822 0.1 0.1 D T + ----------------------- ----------------------------------- ------------- ------------- ---------- + cmdline cmdline 1.3.3 1.3.3 D + comm comm 4.6.2 4.6.2 D + control control 0.1.3 0.1.3 D + coroutine coroutine 1.1 1.1 D + counter counter 2.0.4 2.0.4 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + crc cksum 1.1.3 1.1.3 D + crc16 1.1.2 1.1.2 D + crc32 1.3.1 1.3.1 D + sum 1.1.0 1.1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + csv csv 0.8 0.8 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + des des 1.1.0 1.1.0 D + tclDES 1.0.0 1.0.0 D + tclDESjr 1.0.0 1.0.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + dns dns 1.3.3 1.3.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + docstrip docstrip 1.2 1.2 D + docstrip::util 1.3 1.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + doctools doctools::cvs 1 1 D + doctools::idx 1.0.4 1.0.4 D + doctools::idx 2 2 D + doctools::toc 1.1.3 1.1.3 D + doctools::toc 2 2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + doctools2base doctools::html::cssdefaults 0.1 0.1 D + doctools::msgcat 0.1 0.1 D + doctools::nroff::man_macros 0.1 0.1 D + doctools::tcl::parse 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + doctools2idx doctools::idx 1.0.4 1.0.4 D + doctools::idx 2 2 D + doctools::idx::export 0.1 0.1 D + doctools::idx::export::html 0.2 0.2 D + doctools::idx::export::json 0.1 0.1 D + doctools::idx::export::nroff 0.3 0.3 D + doctools::idx::export::text 0.2 0.2 D + doctools::idx::export::wiki 0.2 0.2 D + doctools::idx::import 0.1 0.1 D + doctools::idx::import::json 0.1 0.1 D + doctools::idx::parse 0.1 0.1 D + doctools::idx::structure 0.1 0.1 D + doctools::msgcat::idx::c 0.1 0.1 D + doctools::msgcat::idx::de 0.1 0.1 D + doctools::msgcat::idx::en 0.1 0.1 D + doctools::msgcat::idx::fr 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + doctools2toc doctools::msgcat::toc::c 0.1 0.1 D + doctools::msgcat::toc::de 0.1 0.1 D + doctools::msgcat::toc::en 0.1 0.1 D + doctools::msgcat::toc::fr 0.1 0.1 D + doctools::toc 1.1.3 1.1.3 D + doctools::toc 2 2 D + doctools::toc::export 0.1 0.1 D + doctools::toc::export::html 0.1 0.1 D + doctools::toc::export::json 0.1 0.1 D + doctools::toc::export::nroff 0.2 0.2 D + doctools::toc::export::text 0.1 0.1 D + doctools::toc::export::wiki 0.1 0.1 D + doctools::toc::import 0.1 0.1 D + doctools::toc::import::json 0.1 0.1 D + doctools::toc::parse 0.1 0.1 D + doctools::toc::structure 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + exif exif 1.1.2 1.1.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + fileutil fileutil::multi 0.1 0.1 D + fileutil::multi::op 0.5.3 0.5.3 D + fileutil::traverse 0.4.3 0.4.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + ftp ftp::geturl 0.2.1 0.2.1 D + ftpd ftpd 1.2.6 1.2.6 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + fumagic fileutil::magic::cfront 1.0 1.0 D + fileutil::magic::cgen 1.0 1.0 D + fileutil::magic::filetype 1.0.2 1.0.2 D + fileutil::magic::mimetype 1.0.2 1.0.2 D + fileutil::magic::rt 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + generator generator 0.1 0.1 D + gpx gpx 1 1 D + grammar_aycock grammar::aycock 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + grammar_fa grammar::fa::dacceptor 0.1.1 0.1.1 D + grammar::fa::dexec 0.2 0.2 D + grammar::fa::op 0.4.1 0.4.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + grammar_me grammar::me::cpu 0.2 0.2 D + grammar::me::cpu::core 0.2 0.2 D + grammar::me::cpu::gasm 0.1 0.1 D + grammar::me::tcl 0.1 0.1 D + grammar::me::util 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + grammar_peg grammar::peg 0.2 0.2 D + grammar::peg::interp 0.1.1 0.1.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + hook hook 0.1 0.1 D + html html 1.4 1.4 D + htmlparse htmlparse 1.2.1 1.2.1 D + http autoproxy 1.5.3 1.5.3 D + ident ident 0.42 0.42 D + inifile inifile 0.2.5 0.2.5 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + interp interp 0.1.2 0.1.2 D + interp::delegate::method 0.2 0.2 D + interp::delegate::proc 0.2 0.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + irc irc 0.6.1 0.6.1 D + picoirc 0.5.1 0.5.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + javascript javascript 1.0.2 1.0.2 D + json json::write 1.0.2 1.0.2 D T + lambda lambda 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + ldap ldap 1.8 1.8 D + ldapx 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + log log 1.3 1.3 D + logger 0.9.3 0.9.3 D + logger::appender 1.3 1.3 D + logger::utils 1.3 1.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + map map::geocode::nominatim 0.1 0.1 D + map::slippy 0.5 0.5 D + map::slippy::cache 0.2 0.2 D + map::slippy::fetcher 0.3 0.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + mapproj mapproj 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + math math 1.2.5 1.2.5 D T + math::bigfloat 1.2.2 1.2.2 D + math::bigfloat 2.0.1 2.0.1 D + math::bignum 3.1.1 3.1.1 D + math::calculus::symdiff 1.0 1.0 D + math::complexnumbers 1.0.2 1.0.2 D + math::constants 1.0.1 1.0.1 D + math::fourier 1.0.2 1.0.2 D + math::fuzzy 0.2.1 0.2.1 D + math::linearalgebra 1.1.4 1.1.4 D + math::machineparameters 0.1 0.1 D + math::numtheory 1.0 1.0 D + math::optimize 1.0 1.0 D + math::polynomials 1.0.1 1.0.1 D + math::rationalfunctions 1.0.1 1.0.1 D + math::roman 1.0 1.0 D + math::special 0.2.2 0.2.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + md4 md4 1.0.5 1.0.5 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + md5 md5 1.4.4 1.4.4 D + md5 2.0.7 2.0.7 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + md5crypt md5crypt 1.1.0 1.1.0 D + mime smtp 1.4.5 1.4.5 D + multiplexer multiplexer 0.2 0.2 D + namespacex namespacex 0.1 0.1 D + nmea nmea 1.0.0 1.0.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + nns nameserv 0.4.2 0.4.2 D + nameserv::auto 0.3 0.3 D + nameserv::common 0.1 0.1 D + nameserv::server 0.3.2 0.3.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + nntp nntp 0.2.1 0.2.1 D + ntp time 1.2.1 1.2.1 D + otp otp 1.0.0 1.0.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + page page::pluginmgr 0.2 0.2 D + page::util::flow 0.1 0.1 D + page::util::norm::lemon 0.1 0.1 D + page::util::norm::peg 0.1 0.1 D + page::util::peg 0.1 0.1 D + page::util::quote 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + pki pki 0.6 0.6 D + pluginmgr pluginmgr 0.3 0.3 D + png png 0.2 0.2 D + pop3 pop3 1.9 1.9 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + pop3d pop3d 1.1.0 1.1.0 D + pop3d::dbox 1.0.2 1.0.2 D + pop3d::udb 1.1 1.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + profiler profiler 0.3 0.3 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + pt pt::ast 1.1 1.1 D T + pt::cparam::configuration::critcl 1.0.1 1.0.1 T + pt::parse::peg 1 1 D T + pt::pe 1 1 D T + pt::pe::op 1 1 D + pt::peg 1 1 D T + pt::peg::container 1 1 D + pt::peg::export 1 1 D + pt::peg::export::json 1 1 T + pt::peg::export::peg 1 1 T + pt::peg::from::json 1 1 T + pt::peg::import 1 1 D + pt::peg::import::json 1 1 T + pt::peg::import::peg 1 1 T + pt::peg::interp 1 1 D T + pt::peg::to::container 1 1 T + pt::peg::to::cparam 1.0.1 1.0.1 T + pt::peg::to::json 1 1 T + pt::peg::to::param 1 1 T + pt::peg::to::tclparam 1 1 T + pt::rde 1.0.2 1.0.2 D + pt::tclparam::configuration::snit 1.0.1 1.0.1 T + ----------------------- ----------------------------------- ------------- ------------- ---------- + rc4 rc4 1.1.0 1.1.0 D + rcs rcs 0.1 0.1 D + report report 0.3.1 0.3.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + ripemd ripemd128 1.0.4 1.0.4 D + ripemd160 1.0.4 1.0.4 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + sasl SASL::XGoogleToken 1.0.1 1.0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + sha1 sha1 1.1.0 1.1.0 B D + sha1 2.0.3 2.0.3 B D + sha256 1.0.3 1.0.3 B D + ----------------------- ----------------------------------- ------------- ------------- ---------- + simulation simulation::annealing 0.2 0.2 D + simulation::montecarlo 0.1 0.1 D + simulation::random 0.3.1 0.3.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + smtpd smtpd 1.5 1.5 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + snit snit 1.4.2 1.4.2 D + snit 2.3.2 2.3.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + soundex soundex 1.0 1.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + stooop stooop 4.4.1 4.4.1 D + switched 2.2.1 2.2.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + stringprep stringprep 1.0.1 1.0.1 D + stringprep::data 1.0.1 1.0.1 D + unicode 1.0.0 1.0.0 D + unicode::data 1.0.0 1.0.0 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + struct struct::disjointset 1.0 1.0 D + struct::graph 1.2.1 1.2.1 D + struct::graph 2.4 2.4 D + struct::graph::op 0.11.3 0.11.3 D + struct::pool 1.2.1 1.2.1 D + struct::prioqueue 1.4 1.4 D + struct::record 1.2.1 1.2.1 D + struct::set 2.2.3 2.2.3 D + struct::skiplist 1.3 1.3 D + struct::stack 1.5.3 1.5.3 D + struct::tree 1.2.2 1.2.2 D + struct::tree 2.1.2 2.1.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + term term 0.1 0.1 D + term::ansi::code::attr 0.1 0.1 D + term::ansi::code::macros 0.1 0.1 D + term::ansi::ctrl::unix 0.1.1 0.1.1 D + term::interact::menu 0.1 0.1 D + term::interact::pager 0.1 0.1 D + term::receive 0.1 0.1 D + term::receive::bind 0.1 0.1 D + term::send 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + textutil textutil::adjust 0.7.1 0.7.1 D + textutil::expander 1.3.1 1.3.1 D T + textutil::repeat 0.7 0.7 D + textutil::split 0.7 0.7 D + textutil::tabify 0.7 0.7 D + textutil::trim 0.7 0.7 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + tie tie 1.1 1.1 D + tiff tiff 0.2.1 0.2.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + transfer transfer::connect 0.2 0.2 D + transfer::copy 0.3 0.3 D + transfer::data::destination 0.2 0.2 D + transfer::data::source 0.2 0.2 D + transfer::receiver 0.2 0.2 D + transfer::transmitter 0.2 0.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + treeql treeql 1.3.1 1.3.1 D + try try 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + uev uevent 0.3.1 0.3.1 D + uevent::onidle 0.1 0.1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + units units 2.1.1 2.1.1 D + uri uri::urn 1.0.2 1.0.2 D + uuid uuid 1.0.2 1.0.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + valtype valtype::common 1 1 D + valtype::creditcard::amex 1 1 D + valtype::creditcard::discover 1 1 D + valtype::creditcard::mastercard 1 1 D + valtype::creditcard::visa 1 1 D + valtype::gs1::ean13 1 1 D + valtype::imei 1 1 D + valtype::isbn 1 1 D + valtype::luhn 1 1 D + valtype::luhn5 1 1 D + valtype::usnpi 1 1 D + valtype::verhoeff 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + virtchannel_base tcl::chan::cat 1.0.2 1.0.2 D + tcl::chan::facade 1.0.1 1.0.1 D + tcl::chan::fifo 1 1 D + tcl::chan::fifo2 1 1 D + tcl::chan::halfpipe 1 1 D + tcl::chan::null 1 1 D + tcl::chan::nullzero 1 1 D + tcl::chan::random 1 1 D + tcl::chan::std 1.0.1 1.0.1 D + tcl::chan::textwindow 1 1 D + tcl::chan::zero 1 1 D + tcl::randomseed 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + virtchannel_core tcl::chan::core 1 1 D + tcl::chan::events 1 1 D + tcl::transform::core 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + virtchannel_transform tcl::transform::adler32 1 1 D + tcl::transform::base64 1 1 D + tcl::transform::counter 1 1 D + tcl::transform::crc32 1 1 D + tcl::transform::hex 1 1 D + tcl::transform::identity 1 1 D + tcl::transform::limitsize 1 1 D + tcl::transform::observe 1 1 D + tcl::transform::otp 1 1 D + tcl::transform::rot 1 1 D + tcl::transform::spacer 1 1 D + tcl::transform::zlib 1 1 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + wip wip 1.2 1.2 D + wip 2.2 2.2 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + yaml huddle 0.1.5 0.1.5 D + yaml 0.3.6 0.3.6 D + ----------------------- ----------------------------------- ------------- ------------- ---------- + +Unchanged +========= + + calendar, char, configuration, doctools::config, doctools::html, + doctools::idx::export::docidx, doctools::idx::import::docidx, + doctools::paths, doctools::text, doctools::toc::export::doctoc, + doctools::toc::import::doctoc, grammar::aycock::debug, + grammar::aycock::runtime, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::config::peg, page::gen::peg::canon, page::gen::peg::cpkg, + page::gen::peg::hb, page::gen::peg::me, page::gen::peg::mecpu, + page::gen::peg::ser, page::gen::tree::text, page::parse::lemon, + page::parse::peg, page::parse::peghb, page::parse::pegser, + page::reader::hb, page::reader::lemon, page::reader::peg, + page::reader::ser, page::reader::treeser, + page::transform::mecpu, page::transform::reachable, + page::transform::realizable, page::writer::hb, + page::writer::identity, page::writer::me, page::writer::mecpu, + page::writer::null, page::writer::peg, page::writer::ser, + page::writer::tpc, page::writer::tree, paths, + pt::peg::container::peg, pt::peg::export::container, resolv, + spf, struct, text::write, tie::std::array, tie::std::dsource, + tie::std::file, tie::std::growfile, tie::std::log, + tie::std::rarray, transfer::copy::queue + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.17.txt b/tcllib/support/releases/history/README-1.17.txt new file mode 100644 index 0000000..0f3e045 --- /dev/null +++ b/tcllib/support/releases/history/README-1.17.txt @@ -0,0 +1,315 @@ +Overview +======== + + 6 new packages in 5 modules + 66 changed packages in 39 modules + 46 internally changed packages in 31 modules + 293 unchanged packages in 74 modules + 418 packages, total in 118 modules, total + +New in tcllib 1.17 +================== + + Module Package New Version Comments + ------------ -------------------------------- ------------- ---------- + cron cron 1.1 + nettool nettool 0.4 + oauth oauth 1 + processman odie::processman 0.3 + ------------ -------------------------------- ------------- ---------- + pt pt::cparam::configuration::tea 0.1 + pt::util 1 + ------------ -------------------------------- ------------- ---------- + +Changes from tcllib 1.16 to 1.17 +================================ + + tcllib 1.16 tcllib 1.17 + Module Package Old Version New Version Comments + ----------------------- ------------------------------------ ------------- ------------- ---------- + aes aes 1.1.1 1.2.1 I P + amazon-s3 S3 1.0.0 1.0.3 B D P + bibtex bibtex 0.5 0.6 B EF + cmdline cmdline 1.3.3 1.5 D EF I T + comm comm 4.6.2 4.6.3.1 B D + ----------------------- ------------------------------------ ------------- ------------- ---------- + coroutine coroutine 1.1 1.1.3 B D + coroutine::auto 1.1.1 1.1.3 B D + ----------------------- ------------------------------------ ------------- ------------- ---------- + crc cksum 1.1.3 1.1.4 B D I + crc32 1.3.1 1.3.2 B D I + sum 1.1.0 1.1.2 B D I T + ----------------------- ------------------------------------ ------------- ------------- ---------- + debug debug 1.0.2 1.0.5 B D EF + ----------------------- ------------------------------------ ------------- ------------- ---------- + dns dns 1.3.3 1.3.5 B D I + ip 1.2.2 1.3 D EF I T + ----------------------- ------------------------------------ ------------- ------------- ---------- + doctools doctools 1.4.17 1.4.19 B D I + doctools::idx 1.0.4 1.0.5 B D I + doctools::idx 2 2 B D I + doctools::toc 1.1.3 1.1.4 B D I + doctools::toc 2 2 B D I + ----------------------- ------------------------------------ ------------- ------------- ---------- + doctools2idx doctools::idx 1.0.4 1.0.5 B D I + doctools::idx 2 2 B D I + ----------------------- ------------------------------------ ------------- ------------- ---------- + doctools2toc doctools::toc 1.1.3 1.1.4 B D I + doctools::toc 2 2 B D I + ----------------------- ------------------------------------ ------------- ------------- ---------- + dtplite dtplite 1.1 1.2 D I + ----------------------- ------------------------------------ ------------- ------------- ---------- + fileutil fileutil 1.14.6 1.14.10 B D T + fileutil::traverse 0.4.3 0.5 B D T + ----------------------- ------------------------------------ ------------- ------------- ---------- + ftp ftp 2.4.12 2.4.13 B D + html html 1.4 1.4.4 B D T + inifile inifile 0.2.5 0.3 D EF I T + ----------------------- ------------------------------------ ------------- ------------- ---------- + json json 1.3.2 1.3.3 B D T + json::write 1.0.2 1.0.3 B D T + ----------------------- ------------------------------------ ------------- ------------- ---------- + log logger 0.9.3 0.9.4 B D T + ----------------------- ------------------------------------ ------------- ------------- ---------- + math math::bigfloat 1.2.2 1.2.2 B T + math::bigfloat 2.0.1 2.0.2 B T + math::calculus 0.7.2 0.8.1 B D EF T + math::linearalgebra 1.1.4 1.1.5 B D T + math::optimize 1.0 1.0.1 B T + math::special 0.2.2 0.3.0 D EF T + math::statistics 0.9 0.9.3 B D EF T + ----------------------- ------------------------------------ ------------- ------------- ---------- + md4 md4 1.0.5 1.0.6 B D I + ncgi ncgi 1.4.2 1.4.3 B D T + ooutil oo::util 1.2 1.2.1 B D T + ----------------------- ------------------------------------ ------------- ------------- ---------- + pt char 1 1.0.1 D I T + pt::cparam::configuration::critcl 1.0.1 1.0.2 B D I T + pt::parse::peg 1 1.0.1 B I T + pt::pe 1 1.0.2 B D EF I + pt::peg::from::peg 1.0.2 1.0.3 D EF + pt::peg::interp 1 1.0.1 D EF + pt::peg::to::cparam 1.0.1 1.1.3 B D EF + pt::peg::to::param 1 1.0.1 B + pt::peg::to::peg 1.0.1 1.0.2 D EF + pt::peg::to::tclparam 1 1.0.2 B D EF + pt::pgen 1.0.2 1.0.3 EF T + pt::rde 1.0.2 1.0.3 B D EF + pt::rde::oo 1.0.2 1.0.3 B + pt::tclparam::configuration::snit 1.0.1 1.0.2 D EF + pt::tclparam::configuration::tcloo 1.0.3 1.0.4 D EF + ----------------------- ------------------------------------ ------------- ------------- ---------- + report report 0.3.1 0.3.2 D EF + ----------------------- ------------------------------------ ------------- ------------- ---------- + ripemd ripemd128 1.0.4 1.0.5 B D I + ripemd160 1.0.4 1.0.5 B D I + ----------------------- ------------------------------------ ------------- ------------- ---------- + sha1 sha1 1.1.0 1.1.1 B I T + sha1 2.0.3 2.0.3 B I T + ----------------------- ------------------------------------ ------------- ------------- ---------- + string string::token::shell 1.1 1.2 D EF T + struct struct::pool 1.2.1 1.2.3 D I T + tar tar 0.9 0.10 B D T + tepam tepam 0.5.0 0.5 I + textutil textutil::adjust 0.7.1 0.7.3 B D T + ----------------------- ------------------------------------ ------------- ------------- ---------- + uri uri 1.2.4 1.2.5 B D T + uri::urn 1.0.2 1.0.3 B D I T + ----------------------- ------------------------------------ ------------- ------------- ---------- + uuid uuid 1.0.2 1.0.4 B D I + valtype valtype::iban 1.4 1.5 B D EF T + virtchannel_transform tcl::transform::zlib 1 1.0.1 B + websocket websocket 1.3 1.4 B D EF + yaml yaml 0.3.6 0.3.7 B D T + zip zipfile::decode 0.4 0.6.1 B D EF + ----------------------- ------------------------------------ ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.16 tcllib 1.17 + Module Package Old Version New Version Comments + ----------- ----------------------------- ------------- ------------- ---------- + amazon-s3 xsxp 1.0 1.0 D + ----------- ----------------------------- ------------- ------------- ---------- + base32 base32 0.1 0.1 I + base32::hex 0.1 0.1 I + ----------- ----------------------------- ------------- ------------- ---------- + base64 uuencode 1.1.5 1.1.5 I + yencode 1.1.3 1.1.3 I + ----------- ----------------------------- ------------- ------------- ---------- + blowfish blowfish 1.0.4 1.0.4 I + calendar calendar 0.2 0.2 I + control control 0.1.3 0.1.3 I + crc crc16 1.1.2 1.1.2 D I + des des 1.1.0 1.1.0 I + ----------- ----------------------------- ------------- ------------- ---------- + dns resolv 1.0.3 1.0.3 I + spf 1.1.1 1.1.1 I + ----------- ----------------------------- ------------- ------------- ---------- + http autoproxy 1.5.3 1.5.3 D I + imap4 imap4 0.5.2 0.5.2 D + ----------- ----------------------------- ------------- ------------- ---------- + irc irc 0.6.1 0.6.1 I + picoirc 0.5.1 0.5.1 I + ----------- ----------------------------- ------------- ------------- ---------- + ldap ldap 1.8 1.8 D + log logger::utils 1.3 1.3 D + math math 1.2.5 1.2.5 I + ----------- ----------------------------- ------------- ------------- ---------- + md5 md5 1.4.4 1.4.4 I + md5 2.0.7 2.0.7 I + ----------- ----------------------------- ------------- ------------- ---------- + md5crypt md5crypt 1.1.0 1.1.0 I + mime smtp 1.4.5 1.4.5 D I + ntp time 1.2.1 1.2.1 I + otp otp 1.0.0 1.0.0 I + pop3 pop3 1.9 1.9 D + ----------- ----------------------------- ------------- ------------- ---------- + pop3d pop3d 1.1.0 1.1.0 I T + pop3d::dbox 1.0.2 1.0.2 I T + pop3d::udb 1.1 1.1 I + ----------- ----------------------------- ------------- ------------- ---------- + pt pt::peg::op 1.0.1 1.0.1 D + rc4 rc4 1.1.0 1.1.0 I + rest rest 1.0.1 1.0.1 D + ----------- ----------------------------- ------------- ------------- ---------- + sasl SASL 1.3.3 1.3.3 I + SASL::NTLM 1.1.2 1.1.2 I + SASL::SCRAM 0.1 0.1 I + SASL::XGoogleToken 1.0.1 1.0.1 D I + ----------- ----------------------------- ------------- ------------- ---------- + sha1 sha256 1.0.3 1.0.3 I T + smtpd smtpd 1.5 1.5 D I + ----------- ----------------------------- ------------- ------------- ---------- + struct struct::matrix 1.2.1 1.2.1 D + struct::matrix 2.0.3 2.0.3 D + ----------- ----------------------------- ------------- ------------- ---------- + tepam tepam::doc_gen 0.1.1 0.1.1 I + ----------- ----------------------------- ------------- ------------- ---------- + transfer transfer::connect 0.2 0.2 D + transfer::copy 0.3 0.3 D + transfer::copy::queue 0.1 0.1 D + transfer::data::destination 0.2 0.2 D + transfer::data::source 0.2 0.2 D + transfer::receiver 0.2 0.2 D + transfer::transmitter 0.2 0.2 D + ----------- ----------------------------- ------------- ------------- ---------- + +Unchanged +========= + + ascii85, asn, base32::core, base64, bee, bench, bench::in, + bench::out::csv, bench::out::text, cache::async, clock::iso8601, + clock::rfc2822, configuration, counter, csv, debug::caller, + debug::heartbeat, debug::timestamp, docstrip, docstrip::util, + doctools::changelog, doctools::config, doctools::cvs, + doctools::html, doctools::html::cssdefaults, + doctools::idx::export, doctools::idx::export::docidx, + doctools::idx::export::html, doctools::idx::export::json, + doctools::idx::export::nroff, doctools::idx::export::text, + doctools::idx::export::wiki, doctools::idx::import, + doctools::idx::import::docidx, doctools::idx::import::json, + doctools::idx::parse, doctools::idx::structure, + doctools::msgcat, doctools::msgcat::idx::c, + doctools::msgcat::idx::de, doctools::msgcat::idx::en, + doctools::msgcat::idx::fr, doctools::msgcat::toc::c, + doctools::msgcat::toc::de, doctools::msgcat::toc::en, + doctools::msgcat::toc::fr, doctools::nroff::man_macros, + doctools::paths, doctools::tcl::parse, doctools::text, + doctools::toc::export, doctools::toc::export::doctoc, + doctools::toc::export::html, doctools::toc::export::json, + doctools::toc::export::nroff, doctools::toc::export::text, + doctools::toc::export::wiki, doctools::toc::import, + doctools::toc::import::doctoc, doctools::toc::import::json, + doctools::toc::parse, doctools::toc::structure, exif, + fileutil::decode, fileutil::magic::cfront, + fileutil::magic::cgen, fileutil::magic::filetype, + fileutil::magic::mimetype, fileutil::magic::rt, fileutil::multi, + fileutil::multi::op, ftp::geturl, ftpd, generator, gpx, + grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::me::cpu, + grammar::me::cpu::core, grammar::me::cpu::gasm, + grammar::me::tcl, grammar::me::util, grammar::peg, + grammar::peg::interp, hook, htmlparse, huddle, ident, interp, + interp::delegate::method, interp::delegate::proc, javascript, + jpeg, lambda, ldapx, log, logger::appender, + map::geocode::nominatim, map::slippy, map::slippy::cache, + map::slippy::fetcher, mapproj, math::bignum, + math::calculus::symdiff, math::complexnumbers, math::constants, + math::decimal, math::fourier, math::fuzzy, math::geometry, + math::interpolate, math::machineparameters, math::numtheory, + math::polynomials, math::rationalfunctions, math::roman, mime, + multiplexer, nameserv, nameserv::auto, nameserv::common, + nameserv::server, namespacex, nmea, nntp, + page::analysis::peg::emodes, page::analysis::peg::minimize, + page::analysis::peg::reachable, page::analysis::peg::realizable, + page::compiler::peg::mecpu, page::config::peg, + page::gen::peg::canon, page::gen::peg::cpkg, page::gen::peg::hb, + page::gen::peg::me, page::gen::peg::mecpu, page::gen::peg::ser, + page::gen::tree::text, page::parse::lemon, page::parse::peg, + page::parse::peghb, page::parse::pegser, page::pluginmgr, + page::reader::hb, page::reader::lemon, page::reader::peg, + page::reader::ser, page::reader::treeser, + page::transform::mecpu, page::transform::reachable, + page::transform::realizable, page::util::flow, + page::util::norm::lemon, page::util::norm::peg, page::util::peg, + page::util::quote, page::writer::hb, page::writer::identity, + page::writer::me, page::writer::mecpu, page::writer::null, + page::writer::peg, page::writer::ser, page::writer::tpc, + page::writer::tree, paths, pki, pluginmgr, png, profiler, + pt::ast, pt::pe::op, pt::peg, pt::peg::container, + pt::peg::container::peg, pt::peg::export, + pt::peg::export::container, pt::peg::export::json, + pt::peg::export::peg, pt::peg::from::json, pt::peg::import, + pt::peg::import::json, pt::peg::import::peg, + pt::peg::to::container, pt::peg::to::json, rcs, + simulation::annealing, simulation::montecarlo, + simulation::random, snit, soundex, stooop, string::token, + stringprep, stringprep::data, struct, struct::disjointset, + struct::graph, struct::graph::op, struct::list, + struct::prioqueue, struct::queue, struct::record, struct::set, + struct::skiplist, struct::stack, struct::tree, switched, + tcl::chan::cat, tcl::chan::core, tcl::chan::events, + tcl::chan::facade, tcl::chan::fifo, tcl::chan::fifo2, + tcl::chan::halfpipe, tcl::chan::memchan, tcl::chan::null, + tcl::chan::nullzero, tcl::chan::random, tcl::chan::std, + tcl::chan::string, tcl::chan::textwindow, tcl::chan::variable, + tcl::chan::zero, tcl::randomseed, tcl::transform::adler32, + tcl::transform::base64, tcl::transform::core, + tcl::transform::counter, tcl::transform::crc32, + tcl::transform::hex, tcl::transform::identity, + tcl::transform::limitsize, tcl::transform::observe, + tcl::transform::otp, tcl::transform::rot, + tcl::transform::spacer, tclDES, tclDESjr, term, + term::ansi::code, term::ansi::code::attr, + term::ansi::code::ctrl, term::ansi::code::macros, + term::ansi::ctrl::unix, term::ansi::send, term::interact::menu, + term::interact::pager, term::receive, term::receive::bind, + term::send, text::write, textutil, textutil::expander, + textutil::repeat, textutil::split, textutil::string, + textutil::tabify, textutil::trim, tie, tie::std::array, + tie::std::dsource, tie::std::file, tie::std::growfile, + tie::std::log, tie::std::rarray, tiff, treeql, try, uevent, + uevent::onidle, unicode, unicode::data, units, valtype::common, + valtype::creditcard::amex, valtype::creditcard::discover, + valtype::creditcard::mastercard, valtype::creditcard::visa, + valtype::gs1::ean13, valtype::imei, valtype::isbn, + valtype::luhn, valtype::luhn5, valtype::usnpi, + valtype::verhoeff, wip, zipfile::encode + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.18.txt b/tcllib/support/releases/history/README-1.18.txt new file mode 100644 index 0000000..38c8a23 --- /dev/null +++ b/tcllib/support/releases/history/README-1.18.txt @@ -0,0 +1,263 @@ +Overview +======== + + 18 new packages in 14 modules + 32 changed packages in 22 modules + 24 internally changed packages in 18 modules + 357 unchanged packages in 97 modules + 438 packages, total in 126 modules, total + +New in tcllib 1.18 +================== + + Module Package New Version Comments + --------------- ------------------- ------------- ---------- + dicttool dicttool 1.0 + --------------- ------------------- ------------- ---------- + httpd httpd 4.0 + httpd::content 4.0 + httpd::dispatch 4.0 + scgi::app 0.1 + --------------- ------------------- ------------- ---------- + httpwget http::wget 0.1 + markdown Markdown 1.0 + math math::exact 1.0 + nns nameserv::cluster 0.2.3 + oodialect oo::dialect 0.3 + --------------- ------------------- ------------- ---------- + oometa oo::meta 0.4.1 + oo::option 0.3 + --------------- ------------------- ------------- ---------- + processman processman 0.3 + tool tool 0.5 + tool_datatype tool::datatype 0.1 + try throw 1 + yaml huddle::json 0.1 + zip zipfile::mkzip 1.2 + --------------- ------------------- ------------- ---------- + +Changes from tcllib 1.17 to 1.18 +================================ + + tcllib 1.17 tcllib 1.18 + Module Package Old Version New Version Comments + ----------- ------------------------- ------------- ------------- ---------- + cron cron 1.1 1.2.1 B EF + csv csv 0.8 0.8.1 B + ----------- ------------------------- ------------- ------------- ---------- + debug debug 1.0.5 1.0.6 B D EF + debug::caller 1 1.1 EF + ----------- ------------------------- ------------- ------------- ---------- + docstrip docstrip::util 1.3 1.3.1 B D + dtplite dtplite 1.2 1.3 B EF + ----------- ------------------------- ------------- ------------- ---------- + fileutil fileutil 1.14.10 1.15 B D EF T + fileutil::traverse 0.5 0.6 B D T + ----------- ------------------------- ------------- ------------- ---------- + ftp ftp::geturl 0.2.1 0.2.2 B + ftpd ftpd 1.2.6 1.3 B EF + htmlparse htmlparse 1.2.1 1.2.2 D EF T + imap4 imap4 0.5.2 0.5.3 D EF + irc picoirc 0.5.1 0.5.2 B D + map map::slippy::fetcher 0.3 0.4 D EF + ----------- ------------------------- ------------- ------------- ---------- + math math::calculus::symdiff 1.0 1.0.1 B T + math::constants 1.0.1 1.0.2 B D + math::statistics 0.9.3 B EF + math::statistics 1.0 B EF + ----------- ------------------------- ------------- ------------- ---------- + nettool nettool 0.4 0.5.1 B EF I + ooutil oo::util 1.2.1 1.2.2 B D T + ----------- ------------------------- ------------- ------------- ---------- + pt pt::pe::op 1 1.0.1 B D T + pt::peg::to::tclparam 1.0.2 1.0.3 B D T + pt::rde 1.0.3 1.1 B D I T + pt::rde::oo 1.0.3 1.1 D I + pt::util 1 1.1 B + ----------- ------------------------- ------------- ------------- ---------- + rest rest 1.0.1 1.0.2 B D + tie tie::std::rarray 1.0 1.0.1 B D T + uri uri 1.2.5 1.2.6 D EF T + uuid uuid 1.0.4 1.0.5 B I + ----------- ------------------------- ------------- ------------- ---------- + yaml huddle 0.1.5 0.2 D I T + yaml 0.3.7 0.3.9 D I T + ----------- ------------------------- ------------- ------------- ---------- + zip zipfile::decode 0.6.1 0.7 EF I + zipfile::encode 0.3 0.4 B D + ----------- ------------------------- ------------- ------------- ---------- + +Invisible changes (documentation, testsuites) +============================================= + + tcllib 1.17 tcllib 1.18 + Module Package Old Version New Version Comments + ------------- -------------------- ------------- ------------- ---------- + base64 uuencode 1.1.5 1.1.5 I + yencode 1.1.3 1.1.3 I + ------------- -------------------- ------------- ------------- ---------- + crc crc32 1.3.2 1.3.2 I + sum 1.1.2 1.1.2 I + ------------- -------------------- ------------- ------------- ---------- + dns spf 1.1.1 1.1.1 I + docstrip docstrip 1.2 1.2 D + ------------- -------------------- ------------- ------------- ---------- + doctools doctools 1.4.19 1.4.19 EF + doctools::idx 1.0.5 1.0.5 EF + doctools::idx 2 2 EF + doctools::toc 1.1.4 1.1.4 EF + doctools::toc 2 2 EF + ------------- -------------------- ------------- ------------- ---------- + gpx gpx 1 1 T + json json 1.3.3 1.3.3 B + ldap ldapx 1.0 1.0 D + math math::special 0.3.0 0.3.0 D + md4 md4 1.0.6 1.0.6 I + ------------- -------------------- ------------- ------------- ---------- + md5 md5 1.4.4 1.4.4 I + md5 2.0.7 2.0.7 I + ------------- -------------------- ------------- ------------- ---------- + multiplexer multiplexer 0.2 0.2 T + nns nameserv::auto 0.3 0.3 D + processman odie::processman 0.3 0.3 B I + rc4 rc4 1.1.0 1.1.0 T + ------------- -------------------- ------------- ------------- ---------- + ripemd ripemd128 1.0.5 1.0.5 I + ripemd160 1.0.5 1.0.5 I + ------------- -------------------- ------------- ------------- ---------- + sha1 sha1 1.1.1 1.1.1 I + sha1 2.0.3 2.0.3 I + sha256 1.0.3 1.0.3 I + ------------- -------------------- ------------- ------------- ---------- + textutil textutil::expander 1.3.1 1.3.1 I + ------------- -------------------- ------------- ------------- ---------- + +Unchanged +========= + + aes, ascii85, asn, autoproxy, base32, base32::core, base32::hex, + base64, bee, bench, bench::in, bench::out::csv, + bench::out::text, bibtex, blowfish, cache::async, calendar, + char, cksum, clock::iso8601, clock::rfc2822, cmdline, comm, + configuration, control, coroutine, coroutine::auto, counter, + crc16, debug::heartbeat, debug::timestamp, des, dns, + doctools::changelog, doctools::config, doctools::cvs, + doctools::html, doctools::html::cssdefaults, doctools::idx, + doctools::idx::export, doctools::idx::export::docidx, + doctools::idx::export::html, doctools::idx::export::json, + doctools::idx::export::nroff, doctools::idx::export::text, + doctools::idx::export::wiki, doctools::idx::import, + doctools::idx::import::docidx, doctools::idx::import::json, + doctools::idx::parse, doctools::idx::structure, + doctools::msgcat, doctools::msgcat::idx::c, + doctools::msgcat::idx::de, doctools::msgcat::idx::en, + doctools::msgcat::idx::fr, doctools::msgcat::toc::c, + doctools::msgcat::toc::de, doctools::msgcat::toc::en, + doctools::msgcat::toc::fr, doctools::nroff::man_macros, + doctools::paths, doctools::tcl::parse, doctools::text, + doctools::toc, doctools::toc::export, + doctools::toc::export::doctoc, doctools::toc::export::html, + doctools::toc::export::json, doctools::toc::export::nroff, + doctools::toc::export::text, doctools::toc::export::wiki, + doctools::toc::import, doctools::toc::import::doctoc, + doctools::toc::import::json, doctools::toc::parse, + doctools::toc::structure, exif, fileutil::decode, + fileutil::magic::cfront, fileutil::magic::cgen, + fileutil::magic::filetype, fileutil::magic::mimetype, + fileutil::magic::rt, fileutil::multi, fileutil::multi::op, ftp, + generator, grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::me::cpu, + grammar::me::cpu::core, grammar::me::cpu::gasm, + grammar::me::tcl, grammar::me::util, grammar::peg, + grammar::peg::interp, hook, html, ident, inifile, interp, + interp::delegate::method, interp::delegate::proc, ip, irc, + javascript, jpeg, json::write, lambda, ldap, log, logger, + logger::appender, logger::utils, map::geocode::nominatim, + map::slippy, map::slippy::cache, mapproj, math, math::bigfloat, + math::bignum, math::calculus, math::complexnumbers, + math::decimal, math::fourier, math::fuzzy, math::geometry, + math::interpolate, math::linearalgebra, math::machineparameters, + math::numtheory, math::optimize, math::polynomials, + math::rationalfunctions, math::roman, md5crypt, mime, nameserv, + nameserv::common, nameserv::server, namespacex, ncgi, nmea, + nntp, oauth, otp, page::analysis::peg::emodes, + page::analysis::peg::minimize, page::analysis::peg::reachable, + page::analysis::peg::realizable, page::compiler::peg::mecpu, + page::config::peg, page::gen::peg::canon, page::gen::peg::cpkg, + page::gen::peg::hb, page::gen::peg::me, page::gen::peg::mecpu, + page::gen::peg::ser, page::gen::tree::text, page::parse::lemon, + page::parse::peg, page::parse::peghb, page::parse::pegser, + page::pluginmgr, page::reader::hb, page::reader::lemon, + page::reader::peg, page::reader::ser, page::reader::treeser, + page::transform::mecpu, page::transform::reachable, + page::transform::realizable, page::util::flow, + page::util::norm::lemon, page::util::norm::peg, page::util::peg, + page::util::quote, page::writer::hb, page::writer::identity, + page::writer::me, page::writer::mecpu, page::writer::null, + page::writer::peg, page::writer::ser, page::writer::tpc, + page::writer::tree, paths, pki, pluginmgr, png, pop3, pop3d, + pop3d::dbox, pop3d::udb, profiler, pt::ast, + pt::cparam::configuration::critcl, + pt::cparam::configuration::tea, pt::parse::peg, pt::pe, pt::peg, + pt::peg::container, pt::peg::container::peg, pt::peg::export, + pt::peg::export::container, pt::peg::export::json, + pt::peg::export::peg, pt::peg::from::json, pt::peg::from::peg, + pt::peg::import, pt::peg::import::json, pt::peg::import::peg, + pt::peg::interp, pt::peg::op, pt::peg::to::container, + pt::peg::to::cparam, pt::peg::to::json, pt::peg::to::param, + pt::peg::to::peg, pt::pgen, pt::tclparam::configuration::snit, + pt::tclparam::configuration::tcloo, rcs, report, resolv, S3, + SASL, SASL::NTLM, SASL::SCRAM, SASL::XGoogleToken, + simulation::annealing, simulation::montecarlo, + simulation::random, smtp, smtpd, snit, soundex, stooop, + string::token, string::token::shell, stringprep, + stringprep::data, struct, struct::disjointset, struct::graph, + struct::graph::op, struct::list, struct::matrix, struct::pool, + struct::prioqueue, struct::queue, struct::record, struct::set, + struct::skiplist, struct::stack, struct::tree, switched, tar, + tcl::chan::cat, tcl::chan::core, tcl::chan::events, + tcl::chan::facade, tcl::chan::fifo, tcl::chan::fifo2, + tcl::chan::halfpipe, tcl::chan::memchan, tcl::chan::null, + tcl::chan::nullzero, tcl::chan::random, tcl::chan::std, + tcl::chan::string, tcl::chan::textwindow, tcl::chan::variable, + tcl::chan::zero, tcl::randomseed, tcl::transform::adler32, + tcl::transform::base64, tcl::transform::core, + tcl::transform::counter, tcl::transform::crc32, + tcl::transform::hex, tcl::transform::identity, + tcl::transform::limitsize, tcl::transform::observe, + tcl::transform::otp, tcl::transform::rot, + tcl::transform::spacer, tcl::transform::zlib, tclDES, tclDESjr, + tepam, tepam::doc_gen, term, term::ansi::code, + term::ansi::code::attr, term::ansi::code::ctrl, + term::ansi::code::macros, term::ansi::ctrl::unix, + term::ansi::send, term::interact::menu, term::interact::pager, + term::receive, term::receive::bind, term::send, text::write, + textutil, textutil::adjust, textutil::repeat, textutil::split, + textutil::string, textutil::tabify, textutil::trim, tie, + tie::std::array, tie::std::dsource, tie::std::file, + tie::std::growfile, tie::std::log, tiff, time, + transfer::connect, transfer::copy, transfer::copy::queue, + transfer::data::destination, transfer::data::source, + transfer::receiver, transfer::transmitter, treeql, try, uevent, + uevent::onidle, unicode, unicode::data, units, uri::urn, + valtype::common, valtype::creditcard::amex, + valtype::creditcard::discover, valtype::creditcard::mastercard, + valtype::creditcard::visa, valtype::gs1::ean13, valtype::iban, + valtype::imei, valtype::isbn, valtype::luhn, valtype::luhn5, + valtype::usnpi, valtype::verhoeff, websocket, wip, xsxp + +Legend Change Details Comments + ------ ------- --------- + Major API: ** incompatible ** API changes. + + Minor EF : Extended functionality, API. + I : Major rewrite, but no API change + + Patch B : Bug fixes. + EX : New examples. + P : Performance enhancement. + + None T : Testsuite changes. + D : Documentation updates. + diff --git a/tcllib/support/releases/history/README-1.4.txt b/tcllib/support/releases/history/README-1.4.txt new file mode 100644 index 0000000..55fb516 --- /dev/null +++ b/tcllib/support/releases/history/README-1.4.txt @@ -0,0 +1,99 @@ +New in Tcllib 1.4 +================= + Tcllib 1.3 Tcllib 1.4 +Module Package Old Version New version Comments +------ ------- ----------- ----------- ------------------------------- +crc crc16 -- 1.0.1 More crc's +des -- 0.8 Data Encryption Standard +------ ------- ----------- ----------- ------------------------------- +doctools doctools -- 1.0 Documentation tools, first time + doctools::toc -- 0.1 as packages. Regular documenation, + doctools::idx -- 0.1 table of contents, keyword indices, + doctools::cvs -- 0.1 parsing of ChangeLogs and cvs logs. + doctools::changelog -- 0.1 +------ ------- ----------- ----------- ------------------------------- +dns resolv -- 1.0 Resolver on top of basic dns, mini-cache +log logger -- 0.1 Alternate logging. +math statistics -- 0.1 Statistics package +math optimization -- 0.1 Optimization package +md4 -- 1.0 Another hash algorithm +ntp time -- 1.0.1 TIME protocol +------ ------- ----------- ----------- ------------------------------- +struct 1.2.1 1.3 + record / Variable record's + list / Extended list manipulation +------ ------- ----------- ----------- ------------------------------- +soundex -- 1.0 Phonetic string comparison +------ ------- ----------- ----------- ------------------------------- + + +Changes from Tcllib 1.3 to 1.4 +============================== + +Legend + P : Performance enhancement. + B : Bug fixes. + D : Documentation updates. + EF: Extended functionality. + EX: New examples. + + Tcllib 1.3 Tcllib 1.4 +Module Package Old Version New version Comments +------ ------- ----------- ----------- ------------------------------- +base64 base64 2.2.1 2.2.2 P + uuencode 1.0.1 1.0.2 B + yencode 1.0 1.0.1 B +------ ------- ----------- ----------- ------------------------------- +calendar 0.1 0.2 B +cmdline 1.2 1.2.1 B P +comm 4.0 4.0.1 B P +control 0.1.1 0.1.2 D +counter 2.0 2.0.1 B P +------ ------- ----------- ----------- ------------------------------- +crc cksum 1.0 1.0.1 D, Internal chunking + crc32 1.0 1.0.1 B D, Internal chunking + sum 1.0 1.0.1 D +------ ------- ----------- ----------- ------------------------------- +csv 0.3 0.4 B D +dns dns 1.0.1 1.0.3 B, TclUDP fallback +exif 1.0 1.1 B P EF +fileutil 1.4 1.5 B P +------ ------- ----------- ----------- ------------------------------- +ftp ftp 2.3.1 2.4 B EF + ftp::geturl 0.1 0.2 B +------ ------- ----------- ----------- ------------------------------- +ftpd 1.1.2 1.1.3 B +html 1.2.1 1.2.2 B +htmlparse 0.3 0.3.1 B P +irc 0.2 0.3 B EX +javascript 1.0 1.0.1 D +log log 1.0.1 1.0.2 D +math math 1.2.1 1.2.2 D +md5 1.4.2 1.4.3 B P +------ ------- ----------- ----------- ------------------------------- +mime mime 1.3.2 1.3.3 B D + smtp 1.3.2 1.3.3 B D EX +------ ------- ----------- ----------- ------------------------------- +ncgi 1.2.1 1.2.2 B P +nntp 0.2 0.2.1 D P +pop3 1.5.1 1.6 B D EF +------ ------- ----------- ----------- ------------------------------- +pop3d pop3d 1.0 1.0.1 B D + pop3d::dbox 1.0 1.1 EF + pop3d::udb 1.0 1.0.1 D +------ ------- ----------- ----------- ------------------------------- +profiler 0.2 0.2.1 B P +report 0.3 0.3.1 D +sha1 1.0.2 1.0.3 B +smtpd 1.0 1.2.1 B D EF +stooop 4.4 4.4.1 D +------ ------- ----------- ----------- ------------------------------- +struct 1.2.1 1.3 B EF EX + \ graph Use cgraph if present. +------ ------- ----------- ----------- ------------------------------- +textutil textutil 0.5 0.6 P EF (TeX based hyphenation!) + expander 1.0.1 1.2 EF +------ ------- ----------- ----------- ------------------------------- +uri uri 1.1.1 1.1.2 B P + uri::urn 1.0 1.0.1 B +------ ------- ----------- ----------- ------------------------------- diff --git a/tcllib/support/releases/history/README-1.6.1.txt b/tcllib/support/releases/history/README-1.6.1.txt new file mode 100644 index 0000000..137cbce --- /dev/null +++ b/tcllib/support/releases/history/README-1.6.1.txt @@ -0,0 +1,47 @@ +Overview +======== + +Tcllib 1.6.1 is a bugfix release. This means that the enhancements and +extensions which have been made to the main line are _not_ present in +this branch. + +New in Tcllib 1.6.1 +=================== + +Nothing. See the Overview for an explanation. + + +Changes from Tcllib 1.6 to 1.6.1 +================================ + +Legend + B : Bug fixes. \ + D : Documentation updates. > Implies change of patchlevel. + EX : New examples. > + P : Performance enhancement. / + + Tcllib 1.6 Tcllib 1.6.1 +Module Package Old version New Version Comments +------ ------- ----------- ----------- ------------------------------- +base64 uuencode 1.1 1.1.1 B +crc crc32 1.1 1.1.1 B +csv 0.5 0.5.1 B +------ ------- ----------- ----------- ------------------------------- +doctools doctools 1.0.1 1.0.2 B +------ ------- ----------- ----------- ------------------------------- +fileutil 1.6 1.6.1 B +ftpd 1.2 1.2.1 B +inifile 0.1 0.1 B (Testsuite, nothing functional) +log log 1.1 1.1.1 B (Defaults) +ntp time 1.0.2 1.0.3 B +md4 1.0.1 1.0.2 B +md5 2.0.0 2.0.1 B +------ ------- ----------- ----------- ------------------------------- +mime mime 1.3.4 1.3.6 B + smtp 1.3.4 1.3.6 B +------ ------- ----------- ----------- ------------------------------- +snit 0.93 0.93 B (Index, testsuite only) +struct sets 2.0 2.0 B (Typo police) +textutil textutil 0.6 0.6.1 B +uri uri 1.1.3 1.1.4 B +------ ------- ----------- ----------- ------------------------------- diff --git a/tcllib/support/releases/history/README-1.6.txt b/tcllib/support/releases/history/README-1.6.txt new file mode 100644 index 0000000..7d3e3e2 --- /dev/null +++ b/tcllib/support/releases/history/README-1.6.txt @@ -0,0 +1,88 @@ +New in Tcllib 1.6 +================= + Tcllib 1.4 Tcllib 1.6 +Module Package Old version New Version Comments +------ ------- ----------- ----------- ------------------------------- +inifile -- 0.1 Handling of Window .ini files. +------ ------- ----------- ----------- ------------------------------- +md5crypt -- 1.0.0 MD5 based password hashing. +multiplexer -- 0.2 Message multiplexing. +snit -- 0.92 pure-Tcl OO system. +------ ------- ----------- ----------- ------------------------------- +struct 1.3 2.0 + \ set Set manipulation. +------ ------- ----------- ----------- ------------------------------- + + +Changes from Tcllib 1.4 to 1.6 +============================== + +Legend + API: ** incompatible ** API changes. > Implies change of major version. + EF : Extended functionality, API. > Implies change of minor verson. + B : Bug fixes. \ + D : Documentation updates. > Implies change of patchlevel. + EX : New examples. > + P : Performance enhancement. / + + Tcllib 1.4 Tcllib 1.6 +Module Package Old version New Version Comments +------ ------- ----------- ----------- ------------------------------- +base64 base64 2.2.2 2.3 B, EF (Trf) + uuencode 1.0.2 1.1 EF (critcl) + yencode 1.0.1 1.1 EF (critcl) +------ ------- ----------- ----------- ------------------------------- +cmdline 1.2.1 1.2.2 B +comm 4.0.1 4.2 B, EF (async return callback) +counter 2.0.1 2.0.2 B +------ ------- ----------- ----------- ------------------------------- +crc crc16 1.0.1 1.1 EF (xmodem) + crc32 1.0.1 1.1 EF (-channel) + sum 1.0.1 1.1.0 EF (-channel) +------ ------- ----------- ----------- ------------------------------- +csv 0.4 0.5 D +des 0.8 0.8.1 B +------ ------- ----------- ----------- ------------------------------- +dns dns 1.0.4 1.1 EF (SOA decode) + resolv 1.0.2 1.0.3 P +------ ------- ----------- ----------- ------------------------------- +doctools doctools 1.0 1.0.1 B, +French msgcat +exif 1.1 1.1.1 B +fileutil 1.5 1.6 B, EF +------ ------- ----------- ----------- ------------------------------- +ftp ftp 2.4 2.4.1 B +------ ------- ----------- ----------- ------------------------------- +ftpd 1.1.3 1.2 B, EF +htmlparse 0.3.1 1.0 B, +switch to struct 2.0 +irc 0.3 0.4 B, EF +------ ------- ----------- ----------- ------------------------------- +log log 1.0.2 1.1 B, EF + logger 0.1 0.3 B, EF +------ ------- ----------- ----------- ------------------------------- +math math::calculus 0.5 0.5.1 B + math::statistics 0.1 0.1.1 B +------ ------- ----------- ----------- ------------------------------- +md4 1.0.0 1.0.1 B +md5 1.4.3 2.0.0 API ** INCOMPATIBLE API CHANGES ** +------ ------- ----------- ----------- ------------------------------- +mime mime 1.3.3 1.3.4 B + smtp 1.3.3 1.3.4 B, EF (tls) +------ ------- ----------- ----------- ------------------------------- +ntp time 1.0.1 1.0.2 B +------ ------- ----------- ----------- ------------------------------- +ncgi 1.2.2 1.2.3 B +pop3 1.6 1.6.1 B +------ ------- ----------- ----------- ------------------------------- +pop3d pop3d 1.0.1 1.0.2 B +------ ------- ----------- ----------- ------------------------------- +profiler 0.2.1 0.2.2 B +------ ------- ----------- ----------- ------------------------------- +struct1 struct 1.3 1.4 B, EF +struct struct 1.3 2.0 API, B, EF + \ list | ** INCOMPATIBLE API CHANGES ** + \ graph | ** INCOMPATIBLE API CHANGES ** + \ tree | ** INCOMPATIBLE API CHANGES ** +------ ------- ----------- ----------- ------------------------------- +textutil expander 1.2 1.2.1 B +uri uri 1.1.2 1.1.3 B +------ ------- ----------- ----------- ------------------------------- diff --git a/tcllib/support/releases/history/README-1.7.txt b/tcllib/support/releases/history/README-1.7.txt new file mode 100644 index 0000000..d895326 --- /dev/null +++ b/tcllib/support/releases/history/README-1.7.txt @@ -0,0 +1,141 @@ +New in Tcllib 1.7 +================= + Tcllib 1.7 +Module Package New Version Comments +------ ------- ----------- ------------------------------- +asn 0.1 Partial ASN de- & encoder. +bee 0.1 B de- & encoder (BitTorrent Serialization) +------ ------- ----------- ------------------------------- +dns ip 1.0.0 IP address manipulation + spf 1.1.0 Sender Policy Framework +------ ------- ----------- ------------------------------- +grammar_fa grammar::fa 0.1 Finite Automaton Container + grammar::fa::dacceptor 0.1 FA acceptor + grammar::fa::dexec 0.1 FA interpreter + grammar::fa::op 0.1 FA operations +------ ------- ----------- ------------------------------- +http autoproxy 1.2.0 Http proxy +------ ------- ----------- ------------------------------- +ident 0.42 RFC 1413 IDENT client +jpeg 0.1 JPEG images, meta data manipulation +ldap 1.2 RFC 2251 LDAP client +------ ------- ----------- ------------------------------- +math math::complexnumbers 1.0 Complex number arithmetics + math::constants 1.0 Important mathematical constants + math::interpolate 1.0 Interpolation for n-dimensional data + math::polynomials 1.0 Polynomial arithmetics + math::rationalfunctions 1.0 Arithmetics on rationals over polynomials + math::special 0.1 Bessel functions, Elliptics, ... + math::fourier 1.0 Fourier Transform +------ ------- ----------- ------------------------------- +png 0.1 PNG images, meta data manipulation +rc4 1.0.0 RC4 stream cipher +------ ------- ----------- ------------------------------- +ripemd ripemd128 1.0.0 RIPEMD Hash algorithm + ripemd160 1.0.0 +------ ------- ----------- ------------------------------- +tar 0.1 Tar file creation & manipulation +------ ------- ----------- ------------------------------- +tie tie 1.0 Persistence for Tcl arrays. + tie::std::array 1.0 Various data sources for the + tie::std::dsource 1.0 persistence. + tie::std::file 1.0 + tie::std::log 1.0 + tie::std::rarray 1.0 +------ ------- ----------- ------------------------------- +treeql 1.1 Tree Query Language, CoST inspired +------ ------- ----------- ------------------------------- +uuid 1.0.0 Generation of universally unique identifiers +------ ------- ----------- ------------------------------- + + +Changes from Tcllib 1.6 to 1.7 +============================== + +Legend + API: ** incompatible ** API changes. > Implies change of major version. + EF : Extended functionality, API. > Implies change of minor verson. + B : Bug fixes. \ + D : Documentation updates. > Implies change of patchlevel. + EX : New examples. > + P : Performance enhancement. / + TS : Test suite fix / + + Tcllib 1.6.1 Tcllib 1.7 +Module Package Old version New Version Comments +------ ------- ----------- ----------- ------------------------------- +base64 base64 2.3 2.3.1 D + uuencode 1.1.1 1.1.2 B + yencode 1.1 1.1.1 D +------ ------- ----------- ----------- ------------------------------- +crc crc32 1.1.1 1.2 BF +------ ------- ----------- ----------- ------------------------------- +cmdline 1.2.2 1.2.3 D, TS +comm 4.2 4.2.1 D +counter 2.0.2 2.0.3 B, P +des 0.8.1 0.8.2 P +------ ------- ----------- ----------- ------------------------------- +dns dns 1.1 1.2.0 B, EF (ipv6) +------ ------- ----------- ----------- ------------------------------- +doctools doctools 1.0.2 1.1 D, B, P, EF + - changelog 0.1 0.1.1 D + - cvs 0.1 0.1.1 D + - idx 0.1 0.2 D, B, EF + - toc 0.1 0.2 D, B, EF +------ ------- ----------- ----------- ------------------------------- +exif 1.1.1 1.1.2 B +fileutil 1.6.1 1.7 EF, D, TS +ftpd 1.2.1 1.2.2 B +html 1.2.2 1.2.3 D +htmlparse 1.0 1.1 B, EF (empty tags) +irc 0.4 0.5 P, EF (logger) +------ ------- ----------- ----------- ------------------------------- +log log 1.1.1 1.2 D, EF + logger 0.3 0.5 B, EF +------ ------- ----------- ----------- ------------------------------- +math - calculus 0.5.1 0.6 EF (regula falsi) + - optimize 0.1 0.2 EF + - statistics 0.1.1 0.1.2 P + - geometry 1.0.1 1.0.2 D +------ ------- ----------- ----------- ------------------------------- +mime mime 1.3.6 1.4 Sync + smtp 1.3.6 1.4 D, EF (auth, sasl) +------ ------- ----------- ----------- ------------------------------- +ntp time 1.0.3 1.1 B +------ ------- ----------- ----------- ------------------------------- +pop3 1.6.1 1.6.2 TS +------ ------- ----------- ----------- ------------------------------- +pop3d pop3d 1.0.2 1.0.3 B (md5 switch) + - dbox 1.0.1 1.0.2 TS +------ ------- ----------- ----------- ------------------------------- +smtpd 1.2.1 1.3.0 B, EF (secure) +------ ------- ----------- ----------- ------------------------------- +snit 0.93 0.97 API, EF (macros, pragmas, hierarchical) +------ ------- ----------- ----------- ------------------------------- +struct 2.0 2.1 Exploded into many packages + - graph 2.0 B + - list 1.4 -- + - matrix 2.0 B + - pool 1.2.1 -- + - prioqueue 1.3 -- + - queue 1.3 B + - record 1.2.1 B + - set 2.1 B + - skiplist 1.3 P + - stack 1.3 B + - tree 2.0 B, EF +------ ------- ----------- ----------- ------------------------------- +textutil textutil 0.6.1 0.6.2 B + - expander 1.2.1 1.3 TS, D, B, EF (location) +------ ------- ----------- ----------- ------------------------------- +uri uri::urn 1.0.1 1.0.2 B +------ ------- ----------- ----------- ------------------------------- + +Unchanged Modules/Packages +========================== + +calendar, crc (cksum, crc16, sum), control, csv, dns (resolv), +ftp (ftp, ftp::geturl), inifile, javascript, math (math::fuzzy), md4, +md5, md5crypt, multiplexer, ncgi, nntp, profiler, report, sha1, +soundex, stoop (stooop, switched), pop3d (pop3d::udb), uri + diff --git a/tcllib/support/releases/history/README-1.8.txt b/tcllib/support/releases/history/README-1.8.txt new file mode 100644 index 0000000..c311166 --- /dev/null +++ b/tcllib/support/releases/history/README-1.8.txt @@ -0,0 +1,203 @@ +New in Tcllib 1.8 +================= + Tcllib 1.8 +Module Package New Version Comments +------ ------- ----------- ------------------------------- +aes aes 1.0.0 AES Encryption +bibtex bibtex 0.5 Processing of BibTeX bibliographies +blowfish blowfish 1.0.0 Blowfish Encryption +------ ------- ----------- ------------------------------- +des tclDES 1.0.0 DES encryption + tclDESjr 1.0.0 +------ ------- ----------- ------------------------------- +docstrip docstrip 1.2 Literate programming tools + docstrip::util 1.2 +------ ------- ----------- ------------------------------- +fumagic fileutil::magic::filetype 1.0 File types basic on magic numbers. + fileutil::magic::mimetype 1.0 +------ ------- ----------- ------------------------------- +grammar_me grammar::me::cpu 0.1 Match Engine. Foundation for + grammar::me::cpu::core 0.1 parsers. + grammar::me::tcl 0.1 + grammar::me::util 0.1 +------ ------- ----------- ------------------------------- +grammar_peg grammar::peg 0.1 Container for Parsing Expression + grammar::peg::interp 0.1 Grammars, PEG interpreter. +------ ------- ----------- ------------------------------- +log logger::appender 1.2 Utilities for logger. + logger::utils 1.2 +------ ------- ----------- ------------------------------- +math math::bigfloat 1.2 Arbitrary-precision floating point. + math::linearalgebra 1.0 Matrix & vector processing. + math::roman 1.0 Handling of roman numerals. +------ ------- ----------- ------------------------------- +page page::analysis::* 0.1 Parser generator packages. Plugin + page::config::peg 0.1 based. Can be used for arbitrary + page::gen::* 0.1 text processing as well because + page::parse::* 0.1 of that. + page::pluginmgr 0.1 + page::reader::* 0.1 + page::transform::* 0.1 + page::util::* 0.1 + page::writer::* 0.1 +------ ------- ----------- ------------------------------- +pluginmgr pluginmgr 0.1 Generic plugin management. +rcs rcs 0.1 Processing of RCS patches. +sha sha256 1.0.1 Extended SHA hash +------ ------- ----------- ------------------------------- +sasl SASL 1.0.0 Simple Authentication & Security Layer + SASL::NTLM 1.0.0 +------ ------- ----------- ------------------------------- +snit snit 2.0 Snit for Tcl 8.5 +units units 2.1 Unit conversions. +------ ------- ----------- ------------------------------- + + +Changes from Tcllib 1.7 to 1.8 +============================== + +Legend + API: ** incompatible ** API changes. > Implies change of major version. + EF : Extended functionality, API. \ Implies change of minor verson. + I : Major rewrite, but no API change/ + B : Bug fixes. \ + D : Documentation updates. > Implies change of patchlevel. + EX : New examples. > + P : Performance enhancement. / + TS : Test suite fix / + + Tcllib 1.7 Tcllib 1.8 +Module Package Old version New Version Comments +------ ------- ----------- ----------- ------------------------------- +asn asn 0.1 0.4 EF, B, TS, D +------ ------- ----------- ----------- ------------------------------- +base64 uuencode 1.1.2 1.1.3 TS + base64 2.3.1 2.3.2 D +------ ------- ----------- ----------- ------------------------------- +cmdline cmdline 1.2.3 1.2.4 B, TS +------ ------- ----------- ----------- ------------------------------- +comm comm 4.2.1 4.3 D, EF +------ ------- ----------- ----------- ------------------------------- +control control 0.1.2 0.1.3 TS +------ ------- ----------- ----------- ------------------------------- +counter counter 2.0.3 2.0.4 B +------ ------- ----------- ----------- ------------------------------- +crc crc32 1.2 1.3 TS, B, I + crc16 1.1 1.1.1 B + cksum 1.0.1 1.1.0 D, TS, I +------ ------- ----------- ----------- ------------------------------- +csv csv 0.5.1 0.6 TS, EF +------ ------- ----------- ----------- ------------------------------- +des des 0.8.2 1.0.0 ** API **, Import tclDES(jr), s.a. +------ ------- ----------- ----------- ------------------------------- +dns ip 1.0.0 1.1.0 EF, D + dns 1.2.0 1.3.0 B, D, EF +------ ------- ----------- ----------- ------------------------------- +doctools doctools 1.1 1.2 EF, B, TS + - idx 0.2 0.2.1 B, TS + - toc 0.2 0.2.1 B, TS +------ ------- ----------- ----------- ------------------------------- +fileutil fileutil 1.7 1.8 D, B, TS, EF +------ ------- ----------- ----------- ------------------------------- +ftp ftp 2.4.1 2.4.2 B +------ ------- ----------- ----------- ------------------------------- +grammar_fa grammar::fa 0.1 0.1.1 TS + - op 0.1 0.1.1 TS + - dexec 0.1 0.1.1 TS + - dacceptor 0.1 0.1.1 TS +------ ------- ----------- ----------- ------------------------------- +html html 1.2.3 1.3 B, TS, EF +------ ------- ----------- ----------- ------------------------------- +htmlparse htmlparse 1.1 1.1.1 B, TS +------ ------- ----------- ----------- ------------------------------- +http autoproxy 1.2.0 1.2.1 B +------ ------- ----------- ----------- ------------------------------- +inifile inifile 0.1 0.1.1 B, TS +------ ------- ----------- ----------- ------------------------------- +javascript javascript 1.0.1 1.0.2 B +------ ------- ----------- ----------- ------------------------------- +jpeg jpeg 0.1 0.2 ** API ** +------ ------- ----------- ----------- ------------------------------- +ldap ldap 1.2 1.2.1 B +------ ------- ----------- ----------- ------------------------------- +log logger 0.5 0.6.1 B, TS, D, EF +------ ------- ----------- ----------- ------------------------------- +math math 1.2.2 1.2.3 B, TS + - bignum 3.0 3.1 B, D, TS, EF + - calculus 0.6 0.6.1 B, TS + - complexnumbers 1.0 1.0.1 TS + - constants 1.0 1.0.1 B, TS + - fourier 1.0 1.0.1 TS + - geometry 1.0.2 1.0.3 D + - interpolate 1.0 1.0.1 B, TS + - optimize 0.2 1.0 B, D, TS, EF + - polynomials 1.0 1.0.1 TS + - rationalfunctions 1.0 1.0.1 B + - special 0.1 0.2 B, TS, EF + - statistics 0.1.2 0.2 B, TS, EF +------ ------- ----------- ----------- ------------------------------- +md4 md4 1.0.2 1.0.3 B, TS +------ ------- ----------- ----------- ------------------------------- +md5 md5 1.4.3 1.4.4 B, TS, D + md5 2.0.1 2.0.4 B, TS +------ ------- ----------- ----------- ------------------------------- +mime smtp 1.4 1.4.1 B + mime 1.4 1.4.2 B +------ ------- ----------- ----------- ------------------------------- +ncgi ncgi 1.2.3 1.3 EF +------ ------- ----------- ----------- ------------------------------- +ntp time 1.1 1.2 B, TS, EF (ceptcl) +------ ------- ----------- ----------- ------------------------------- +png png 0.1 0.1.1 B +------ ------- ----------- ----------- ------------------------------- +pop3 pop3 1.6.2 1.6.3 B/TS +------ ------- ----------- ----------- ------------------------------- +pop3d pop3d 1.0.3 1.1.0 B, TS, EF +------ ------- ----------- ----------- ------------------------------- +profiler profiler 0.2.2 0.2.3 B +------ ------- ----------- ----------- ------------------------------- +rc4 rc4 1.0.0 1.0.1 D, B, TS +------ ------- ----------- ----------- ------------------------------- +ripemd ripemd128 1.0.0 1.0.3 TS, D, B + ripemd160 1.0.0 1.0.3 TS, D, B +------ ------- ----------- ----------- ------------------------------- +sha sha1 1.0.3 1.1.0 TS, B, EF (cryptkit) + sha1 -- 2.0.2 TS, B, EF (cryptkit) +------ ------- ----------- ----------- ------------------------------- +smtpd smtpd 1.3.0 1.4.0 B +------ ------- ----------- ----------- ------------------------------- +snit snit 0.97 1.1 D, P, B, TS, I +------ ------- ----------- ----------- ------------------------------- +struct - tree 1.2.1 1.2.2 B + - tree 2.0 2.1 D, EF (ext. api, critcl) + - graph 2.0 2.0.1 B + - queue 1.3 1.4 B, EF + - prioqueue 1.3 1.3.1 B + - list 1.4 1.5 D, TS, EF, B + - matrix 2.0 2.0.1 B + - stack 1.3 1.3.1 B +------ ------- ----------- ----------- ------------------------------- +textutil textutil 0.6.2 0.7 B, EF +------ ------- ----------- ----------- ------------------------------- +tie tie 1.0 1.0.1 D, EX, TS + - std::file 1.0 1.0.1 B +------ ------- ----------- ----------- ------------------------------- +treeql treeql 1.2 1.3 B, D, TS, EF +------ ------- ----------- ----------- ------------------------------- +uri uri 1.1.4 1.1.5 B +------ ------- ----------- ----------- ------------------------------- +uuid uuid 1.0.0 1.0.1 B +------ ------- ----------- ----------- ------------------------------- + +Unchanged Modules/Packages +========================== + +base64 (yencode), bee, calendar, crc (sum), dns (spf, resolv), +doctools (doctools::cvs, doctools::changelog), exif, ftp (ftp::geturl), +ftpd, ident, irc, log, math (math::fuzzy), md5crypt, multiplexer, +nntp, pop3d (pop3d::dbox, pop3d::udb), report, soundex, stooop +(stooop, switched), tar, textutil (textutil::expander), +tie (tie::std::array, tie::std::rarray, tie::std::dsource, +tie::std::log), uri (uri::urn), struct (struct, struct::graph v1, +struct::matrix v1, struct::pool, struct::record, struct::skiplist, +struct::set) diff --git a/tcllib/support/releases/history/README-1.9.txt b/tcllib/support/releases/history/README-1.9.txt new file mode 100644 index 0000000..98a5ff2 --- /dev/null +++ b/tcllib/support/releases/history/README-1.9.txt @@ -0,0 +1,164 @@ +Overview +======== + + 47 new packages in 9 new modules and 8 modules with new packages. + 58 changed packages. +105 unchanged packages (or non-visible changes, like testsuites) + +New in Tcllib 1.9 +================= + Tcllib 1.9 +Module Package New Version Comments +------ ------- ----------- ----------------------- +base32 base32 0.1 Base32 encoding, + base32::core 0.1 standard and extended + base32::hex 0.1 hex forms +------ ------- ----------- ----------------------- +bench bench 0.1 Benchmarking support, + bench::in 0.1 generation, import and + bench::out::csv 0.1.1 export of performance + bench::out::text 0.1.1 information +------ ------- ----------- ----------------------- +fileutil fileutil::traverse 0.1 find iterator +grammar_me grammar::me::cpu::gasm 0.1 graph asm for ME vm +------ ------- ----------- ----------------------- +interp interp 0.1 Interpreter utilities, + interp::delegate::method 0.2 runtime environments, + interp::delegate::proc 0.2 delegation commands +------ ------- ----------- ----------------------- +json json 1.0 JavaScript Object Notation +ldap ldapx 0.2.2 OO wrapper around ldap +------ ------- ----------- ----------------------- +math math::bigfloat 2.0 Large FP numbers +nmea nmea 0.1 NMEA gps messages +otp otp 1.0.0 RFC 2289 One-Time Passwd +------ ------- ----------- ----------------------- +page page::compiler::peg::mecpu 0.1 Generator for MEcpu code + page::gen::peg::mecpu 0.1 and graph-based compiler +------ ------- ----------- ----------------------- +sasl SASL::XGoogleToken 1.0.0 X-GOOGLE-TOKEN auth +------ ------- ----------- ----------------------- +term term 0.1 Low-level terminal + term::ansi::code 0.1 control, mainly control + term::ansi::code::attr 0.1 codes, some reception + term::ansi::code::ctrl 0.1 processing. + term::ansi::code::macros 0.1 + term::ansi::ctrl::unix 0.1 + term::ansi::send 0.1 + term::interact::menu 0.1 + term::interact::pager 0.1 + term::receive 0.1 + term::receive::bind 0.1 + term::send 0.1 +------ ------- ----------- ----------------------- +textutil textutil::adjust 0.7 Textutil functionality + textutil::repeat 0.7 split into separate + textutil::split 0.7 packages + textutil::string 0.7 + textutil::tabify 0.7 + textutil::trim 0.7 +------ ------- ----------- ----------------------- +tie tie::std::growfile 1.0 tie backend, evergrowing +tiff tiff 0.1 TIFF image manipulation +------ ------- ----------- ----------------------- +transfer transfer::connect 0.1 Classes handling and + transfer::copy 0.1 organizing various + transfer::copy::queue 0.1 types of data transfers + transfer::data::destination 0.1 across sockets. + transfer::data::source 0.1 + transfer::receiver 0.1 + transfer::transmitter 0.1 +------ ------- ----------- ----------------------- + +Changes from Tcllib 1.8 to 1.9 +============================== + +Legend + API: ** incompatible ** API changes. > Implies change of major version. + EF : Extended functionality, API. \ Implies change of minor verson. + I : Major rewrite, but no API change/ + B : Bug fixes. \ + D : Documentation updates. > Implies change of patchlevel. + EX : New examples. > + P : Performance enhancement. / + + Tcllib 1.8 Tcllib 1.9 +Module Package Old version New Version Comments +------ ------- ----------- ----------- --------------- +asn asn 0.4 0.7 B, EF +blowfish blowfish 1.0.0 1.0.2 B, D, EF +cmdline cmdline 1.2.4 1.3 I +comm comm 4.3 4.4 EF +crc cksum 1.1.0 1.1.1 B +csv csv 0.6 0.7 EF +------ ------- ----------- ----------- --------------- +dns dns 1.3.0 1.3.1 B, EF + ip 1.1.0 1.1.1 B +------ ------- ----------- ----------- --------------- +doctools doctools 1.2 1.2.1 B +fileutil fileutil 1.8 1.9 B, D, EF +ftp ftp 2.4.2 2.4.4 B +------ ------- ----------- ----------- --------------- +fumagic fileutil::magic::filetype 1.0 1.0.2 B + fileutil::magic::mimetype 1.0 1.0.2 B +------ ------- ----------- ----------- --------------- +grammar_fa grammar::fa 0.1.1 0.2 EF + grammar::fa::op 0.1.1 0.2 EF +------ ------- ----------- ----------- --------------- +grammar_me grammar::me::cpu 0.1 0.2 B, EF + grammar::me::cpu::core 0.1 0.2 B, EF +------ ------- ----------- ----------- --------------- +html html 1.3 1.4 B, EF +htmlparse htmlparse 1.1.1 1.1.2 B +http autoproxy 1.2.1 1.3 EF +inifile inifile 0.1.1 0.2 B, EF +irc irc 0.5 0.6 EF +jpeg jpeg 0.2 0.3 B, EF +ldap ldap 1.2.1 1.6.6 B, I, EF +------ ------- ----------- ----------- --------------- +log logger 0.6.1 0.7 B, EF + - appender 1.2 1.3 B + - utils 1.2 1.3 B +------ ------- ----------- ----------- --------------- +math math 1.2.3 1.2.4 B + - bigfloat 1.2 1.2.1 B + - bignum 3.1 3.1.1 B + - calculus 0.6.1 0.7 B + - complexnumbers 1.0.1 1.0.2 B + - fourier 1.0.1 1.0.2 B + - interpolate 1.0.1 1.0.2 B + - linearalgebra 1.0 1.0.1 D, B + - statistics 0.2 0.3 B +------ ------- ----------- ----------- --------------- +md4 md4 1.0.3 1.0.4 B +md5 md5 2.0.4 2.0.5 P +mime mime 1.4.1 1.5.1 B, EF +ncgi ncgi 1.3 1.3.2 B, P +ntp time 1.2 1.2.1 B +profiler profiler 0.2.3 0.3 EF +rc4 rc4 1.0.1 1.1.0 B, EF +------ ------- ----------- ----------- --------------- +sasl SASL 1.0.0 1.3.1 B, EF + SASL::NTLM 1.0.0 1.1.0 B, EF +------ ------- ----------- ----------- --------------- +snit snit 1.1 1.2 B, D + snit 2.0 2.1 B, D +------ ------- ----------- ----------- --------------- +stooop switched 2.2 2.2.1 B +------ ------- ----------- ----------- --------------- +struct struct::graph 2.0.1 2.1 B, EF + struct::list 1.5 1.6 EF + struct::set 2.1 2.1.1 B + struct::tree 2.1.1 2.1.1 B +------ ------- ----------- ----------- --------------- +tar tar 0.1 0.2 B, EF +------ ------- ----------- ----------- --------------- +textutil textutil 0.7 0.7.1 I + - expander 1.3 1.3.1 B +------ ------- ----------- ----------- --------------- +tie tie 1.0.1 1.1 EF (growfile) + tie::std::file 1.0.1 1.0.2 B +------ ------- ----------- ----------- --------------- +treeql treeql 1.3 1.3.1 B +uri uri 1.1.5 1.2 EF +------ ------- ----------- ----------- --------------- diff --git a/tcllib/support/releases/package_rpm.txt b/tcllib/support/releases/package_rpm.txt new file mode 100644 index 0000000..26e5bf9 --- /dev/null +++ b/tcllib/support/releases/package_rpm.txt @@ -0,0 +1,57 @@ +# $Id: package_rpm.txt,v 1.1 2006/07/01 03:16:57 andreas_kupries Exp $ + +%define version @PACKAGE_VERSION@ +%define directory /usr + +Summary: The standard Tcl library +Name: @PACKAGE_NAME@ +Version: %{version} +Release: 2 +Copyright: BSD +Group: Development/Languages +Source: %{name}-%{version}.tar.bz2 +URL: http://core.tcl.tk/tcllib/ +Packager: Jean-Luc Fontaine <jfontain@free.fr> +BuildArchitectures: noarch +Prefix: /usr +Requires: tcl >= 8.3.1 +BuildRequires: tcl >= 8.3.1 +Buildroot: /var/tmp/%{name}-%{version} + +%description +Tcllib, the Tcl Standard Library is a collection of Tcl packages +that provide utility functions useful to a large collection of Tcl +programmers. +The home web site for this code is http://core.tcl.tk/tcllib/. +At this web site, you will find mailing lists, web forums, databases +for bug reports and feature requests, the CVS repository (browsable +on the web, or read-only accessible via CVS ), and more. +Note: also grab source tarball for more documentation, examples, ... + +%prep + +%setup -q + +%install +# compensate for missing manual files: +echo 'not available' > modules/calendar/calendar.n +/usr/bin/tclsh installer.tcl -no-gui -no-wait -no-html -no-examples\ + -pkg-path $RPM_BUILD_ROOT/usr/lib/%{name}-%{version}\ + -nroff-path $RPM_BUILD_ROOT/usr/share/man/mann/ +# install HTML documentation to specific modules sub-directories: +cd modules +mkdir ../ftp; mv ftp/docs/*.html ../ftp/ +for module in exif mime textutil stooop struct; do + mkdir ../$module && mv $module/*.html ../$module/; +done +# generate list of files in the package (man pages are compressed): +find $RPM_BUILD_ROOT ! -type d |\ + sed -e "s,^$RPM_BUILD_ROOT,,;" -e 's,\.n$,\.n\.gz,;' >\ + %{_builddir}/%{name}-%{version}/files + +%clean +rm -rf $RPM_BUILD_ROOT + +%files -f %{_builddir}/%{name}-%{version}/files +%defattr(-,root,root) +%doc README ChangeLog license.terms exif/ ftp/ mime/ stooop/ struct/ textutil/ diff --git a/tcllib/support/releases/package_tip55.txt b/tcllib/support/releases/package_tip55.txt new file mode 100644 index 0000000..e0838e6 --- /dev/null +++ b/tcllib/support/releases/package_tip55.txt @@ -0,0 +1,9 @@ +Identifier: @PACKAGE_NAME@ +Title: Tcl Standard Library +Description: This package is intended to be a collection of + Tcl packages that provide utility functions useful to a + large collection of Tcl programmers. +Rights: BSD +Version: @PACKAGE_VERSION@ +URL: http://core.tcl.tk/tcllib +Architecture: tcl diff --git a/tcllib/support/releases/package_yml.txt b/tcllib/support/releases/package_yml.txt new file mode 100644 index 0000000..9bcd7ed --- /dev/null +++ b/tcllib/support/releases/package_yml.txt @@ -0,0 +1,20 @@ +dist_id: tcllib +version: @PACKAGE_VERSION@ +language: tcl +description: | + This package is intended to be a collection of Tcl packages that provide + utility functions useful to a large collection of Tcl programmers. + + The home web site for this code is http://core.tcl.tk/tcllib/. + At this web site, you will find mailing lists, web forums, databases + for bug reports and feature requests, the CVS repository (browsable + on the web, or read-only accessible via CVS ), and more. + +categories: + - Library/Utility + - Library/Mail + - Library/Cryptography + - Library/Math +license: BSD +owner_id: AndreasKupries +wrapped_content: @PACKAGE_NAME@-@PACKAGE_VERSION@/ diff --git a/tcllib/support/shed.tcl b/tcllib/support/shed.tcl new file mode 100644 index 0000000..17d3f6c --- /dev/null +++ b/tcllib/support/shed.tcl @@ -0,0 +1,40 @@ +### +# Build basic description of this tool +### + +### +# List of mirrors +### +#tool mirror http://core.tcl.tk/tcllib +#tool mirror http://fossil.etoyoc.com/fossil/tcllib +### +# Populate the branches +### +my shed set name: tcllib +my shed set installer: sak +my add { + name: trunk + linktype: release + checkout: trunk +} +foreach release { + 1.17 1.16 1.15 1.14 1.13 1.12 1.11.1 1.11 1.10 + 1.9 1.8 1.7 1.6.1 1.4 1.3 1.2.0 1.2 1.1 1.0 + 0.8 0.6.1 0.6 0.5 0.4 +} { + set checkout tcllib-[join [split $release .] -] + my add [list name: $checkout linktype: release version: $release checkout: $checkout] +} + +foreach file [glob [file join $::TOOL_ROOT apps *]] { + if {[file extension $file] ne {}} continue + my scan $file {class: application} +} + +### +# Build the module section +### +foreach path [glob [file join $::TOOL_ROOT modules *]] { + puts "SCANNING $path" + my scan $path {class: source} +} |