The application described by this document, dtplite, is the
+
The application described by this document, dtplite, is the
successor to the extremely simple mpexpand. Influenced in its
functionality by the dtp doctools processor it is much more
powerful than mpexpand, yet still as easy to use; definitely
easier than dtp with its myriad of subcommands and options.
dtplite was written with the following three use cases in
+
dtplite was written with the following three use cases in
mind.
Validation of a single document, i.e. checking that it was written in
valid doctools format. This mode can also be used to get a preliminary
version of the formatted output for a single document, for display in
@@ -176,11 +176,11 @@
appropriate engine parameter (See section OPTIONS) the last
two have internal processing which make them specific to HTML.
This is the form for use case [1]. The options will be
explained later, in section OPTIONS.
path output (in)
This argument specifies where to write the generated document. It can
@@ -199,25 +199,25 @@
FORMATS for the possibilities recognized by the application.
path inputfile (in)
This argument specifies the path to the file to process. It has to
exist, must be readable, and written in doctools format.
This is a simpler form for use case [1]. The "validate" format
generates no output at all, only syntax checks are performed. As such
the specification of an output file or other options is not necessary
and left out.
This is the form for use case [2]. It differs from the form for
use case [1] by having the input documents specified through a
directory instead of a file. The other arguments are identical, except
for output, which now has to be the path to an existing and
writable directory.
The input documents are all files in inputdirectory or any of
its subdirectories which were recognized by fileutil::fileType
as containing text in doctools format.
This is the form for use case [3]. The only difference to the
form for use case [2] is the additional option -merge.
Each such call will merge the generated documents coming from
processing the input documents under inputdirectory or any of
its subdirectories to the files under output. In this manner it
ADDED idoc/www/tcllib/files/apps/mkdoc.html
Index: idoc/www/tcllib/files/apps/mkdoc.html
==================================================================
--- /dev/null
+++ idoc/www/tcllib/files/apps/mkdoc.html
@@ -0,0 +1,212 @@
+
The application reads the input file, extracts the embedded documentation, and
+writes it to the output file.
+
If the output file is not a ".md" file the extracted documentation is
+converted to HTML before being written.
+
When generating and writing HTML the default CSS stylesheet can be overridden by
+specifying the path to a custom stylesheet via option --css.
+
If the input file is a ".md" file it is expected to contain Markdown as-is,
+instead of Markdown embedded into code.
+
On the other side, when the file is considered code then the documentation is
+expected to be contained in all lines starting with the marker #'.
+For script languages like Tcl the # character of this marker means that the
+documentation is contained in the so-flagged comments.
+For other languages the marker and documentation may have to be embedded into multi-line
+comments.
+ # Create HTML manual for a CPP file using a custom style sheet
+ mkdoc sample.cpp sample.html --css manual.css
+ # Extract the documentation from code as simple Markdown, ready to be processed
+ # further, for example with pandoc, or similar
+ mkdoc sample.cpp sample.md
+ # Convert a Markdown file to HTML
+ mkdoc sample.md sample.html
+
This document, and the package it describes, will undoubtedly contain bugs and
+other problems. Please report such to the author of this package. Please also report any ideas for enhancements you may have for
+either package and/or documentation.
The following terms apply to all files a ssociated with the software unless
+explicitly disclaimed in individual files.
+
The authors hereby grant permission to use, copy, modify, distribute, and license
+this software and its documentation for any purpose, provided that existing copyright
+notices are retained in all copies and that this notice is included verbatim in any
+distributions. No written agreement, license, or royalty fee is required for any of the
+authorized uses. Modifications to this software may be copyrighted by their authors and
+need not follow the licensing terms described here, provided that the new terms are
+clearly indicated on the first page of each file where they apply.
+
In no event shall the authors or distributors be liable to any party for direct,
+indirect, special, incidental, or consequential damages arising out of the use of this
+software, its documentation, or any derivatives thereof, even if the authors have been
+advised of the possibility of such damage.
+
The authors and distributors specifically disclaim any warranties, including, but
+not limited to, the implied warranties of merchantability, fitness for a particular
+purpose, and non-infringement.
+This software is provided on an "as is" basis, and the authors and distributors have no
+obligation to provide maintenance, support, updates, enhancements, or modifications.
+
RESTRICTED RIGHTS: Use, duplication or disclosure by the government is
+subject to the restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in
+Technical Data and Computer Software Clause as DFARS 252.227-7013 and FAR 52.227-19.
Index: idoc/www/tcllib/files/modules/doctools/docidx_intro.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/docidx_intro.html
+++ idoc/www/tcllib/files/modules/doctools/docidx_intro.html
@@ -148,17 +148,17 @@
need the docidx language command reference from time to
time to refresh her memory.
While a document is written the dtp application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
-text, wiki, etc. The simpler dtplite application makes
+text, wiki, etc. The simpler dtplite application makes
internal use of docidx when handling directories of documentation,
automatically generating a proper keyword index for them.
A processor of documentation written in the docidx
markup language has to know which tools are available for use.
The main tool is the aforementioned dtp application provided
-by Tcllib. The simpler dtplite does not expose docidx to the
+by Tcllib. The simpler dtplite does not expose docidx to the
user.
At the bottom level, common to both applications, however sits the
package doctoools::idx, providing the basic facilities to
read and process files containing text in the docidx format.
At last, but not least, plugin writers have to understand the
Index: idoc/www/tcllib/files/modules/doctools/docidx_lang_faq.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/docidx_lang_faq.html
+++ idoc/www/tcllib/files/modules/doctools/docidx_lang_faq.html
@@ -145,16 +145,16 @@
We have no direct examples of documents written using docidx
-markup. However the doctools processor dtplite does generate
+markup. However the doctools processor dtplite does generate
a table of contents when processing a set of documents written in
doctools markup. The intermediate file for it uses docidx
markup and is not deleted when generation completes. Such files can
therefore serve as examples.
-
dtplite is distributed as part of Tcllib, so to get it you
+
dtplite is distributed as part of Tcllib, so to get it you
need one of
A snapshot of Tcllib. How to retrieve such a snapshot and the
tools required for this are described at
Development Snapshots
To be able to validate a document while writing it, it is also
recommended to familiarize oneself with Tclapps' ultra-configurable
dtp.
On the other hand, docidx is perfectly suited for the automatic
generation from doctools documents, and this is the route Tcllib's
-easy and simple dtplite goes, creating an index for a set of
+easy and simple dtplite goes, creating an index for a set of
documents behind the scenes, without the writer having to do so on
their own.
This document, and the package it describes, will undoubtedly contain
Index: idoc/www/tcllib/files/modules/doctools/doctoc_intro.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/doctoc_intro.html
+++ idoc/www/tcllib/files/modules/doctools/doctoc_intro.html
@@ -148,17 +148,17 @@
need the doctoc language command reference from time to
time to refresh her memory.
While a document is written the dtp application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
-text, wiki, etc. The simpler dtplite application makes
+text, wiki, etc. The simpler dtplite application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.
A processor of documentation written in the doctoc
markup language has to know which tools are available for use.
The main tool is the aforementioned dtp application provided
-by Tcllib. The simpler dtplite does not expose doctoc to the
+by Tcllib. The simpler dtplite does not expose doctoc to the
user.
At the bottom level, common to both applications, however sits the
package doctoools::toc, providing the basic facilities to
read and process files containing text in the doctoc format.
At last, but not least, plugin writers have to understand the
Index: idoc/www/tcllib/files/modules/doctools/doctoc_lang_faq.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/doctoc_lang_faq.html
+++ idoc/www/tcllib/files/modules/doctools/doctoc_lang_faq.html
@@ -145,16 +145,16 @@
We have no direct examples of documents written using doctoc
-markup. However the doctools processor dtplite does generate
+markup. However the doctools processor dtplite does generate
a table of contents when processing a set of documents written in
doctools markup. The intermediate file for it uses doctoc
markup and is not deleted when generation completes. Such files can
therefore serve as examples.
-
dtplite is distributed as part of Tcllib, so to get it you
+
dtplite is distributed as part of Tcllib, so to get it you
need one of
A snapshot of Tcllib. How to retrieve such a snapshot and the
tools required for this are described at
Development Snapshots
To be able to validate a document while writing it, it is also
recommended to familiarize oneself with Tclapps' ultra-configurable
dtp.
On the other hand, doctoc is perfectly suited for the automatic
generation from doctools documents, and this is the route Tcllib's
-easy and simple dtplite goes, creating a table of contents
+easy and simple dtplite goes, creating a table of contents
for a set of documents behind the scenes, without the writer having to
do so on their own.
This document, and the package it describes, will undoubtedly contain
Index: idoc/www/tcllib/files/modules/doctools/doctools_intro.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/doctools_intro.html
+++ idoc/www/tcllib/files/modules/doctools/doctools_intro.html
@@ -144,17 +144,17 @@
doctools language introduction first. Having digested this
the formal doctools language syntax specification should
become understandable. A writer experienced with doctools may only
need the doctools language command reference from time to
time to refresh her memory.
-
While a document is written the dtplite application can be
+
While a document is written the dtplite application can be
used to validate it, and after completion it also performs the
conversion into the chosen system of visual markup, be it *roff, HTML,
plain text, wiki, etc.
A processor of documentation written in the doctools
markup language has to know which tools are available for use.
-
The main tool is the aforementioned dtplite application
+
The main tool is the aforementioned dtplite application
provided by Tcllib. A more powerful one (in terms of options and
ability to configure it) is the dtp application, provided by
Tclapps.
At the bottom level, common to both applications, however sits the
package doctools, providing the basic facilities to read and
Index: idoc/www/tcllib/files/modules/doctools/doctools_lang_faq.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/doctools_lang_faq.html
+++ idoc/www/tcllib/files/modules/doctools/doctools_lang_faq.html
@@ -145,16 +145,16 @@
We have no direct examples of documents written using doctools
-markup. However the doctools processor dtplite does generate
+markup. However the doctools processor dtplite does generate
a table of contents when processing a set of documents written in
doctools markup. The intermediate file for it uses doctools
markup and is not deleted when generation completes. Such files can
therefore serve as examples.
-
dtplite is distributed as part of Tcllib, so to get it you
+
dtplite is distributed as part of Tcllib, so to get it you
need one of
A snapshot of Tcllib. How to retrieve such a snapshot and the
tools required for this are described at
Development Snapshots
Index: idoc/www/tcllib/files/modules/doctools/doctools_lang_intro.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools/doctools_lang_intro.html
+++ idoc/www/tcllib/files/modules/doctools/doctools_lang_intro.html
@@ -607,11 +607,11 @@
detailed specification and cheat sheet for all available commands and
their syntax.
To be able to validate a document while writing it, it is also
recommended to familiarize oneself with one of the applications for
the processing and conversion of doctools documents, i.e. either
-Tcllib's easy and simple dtplite, or Tclapps'
+Tcllib's easy and simple dtplite, or Tclapps'
ultra-configurable dtp.
This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Index: idoc/www/tcllib/files/modules/doctools2idx/idx_introduction.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools2idx/idx_introduction.html
+++ idoc/www/tcllib/files/modules/doctools2idx/idx_introduction.html
@@ -157,17 +157,17 @@
need the docidx language command reference from time to
time to refresh her memory.
While a document is written the dtp application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
-text, wiki, etc. The simpler dtplite application makes
+text, wiki, etc. The simpler dtplite application makes
internal use of docidx when handling directories of documentation,
automatically generating a proper keyword index for them.
A processor of documentation written in the docidx
markup language has to know which tools are available for use.
The main tool is the aforementioned dtp application provided
-by Tcllib. The simpler dtplite does not expose docidx to the
+by Tcllib. The simpler dtplite does not expose docidx to the
user. At the bottom level, common to both applications, however we
find the three packages providing the basic facilities to handle
keyword indices, i.e. import from textual formats, programmatic
manipulation in memory, and export to textual formats. These are
Index: idoc/www/tcllib/files/modules/doctools2toc/toc_introduction.html
==================================================================
--- idoc/www/tcllib/files/modules/doctools2toc/toc_introduction.html
+++ idoc/www/tcllib/files/modules/doctools2toc/toc_introduction.html
@@ -157,17 +157,17 @@
need the doctoc language command reference from time to
time to refresh her memory.
While a document is written the dtp application can be used
to validate it, and after completion it also performs the conversion
into the chosen system of visual markup, be it *roff, HTML, plain
-text, wiki, etc. The simpler dtplite application makes
+text, wiki, etc. The simpler dtplite application makes
internal use of doctoc when handling directories of documentation,
automatically generating a proper table of contents for them.
A processor of documentation written in the doctoc
markup language has to know which tools are available for use.
The main tool is the aforementioned dtp application provided
-by Tcllib. The simpler dtplite does not expose doctoc to the
+by Tcllib. The simpler dtplite does not expose doctoc to the
user. At the bottom level, common to both applications, however we
find the three packages providing the basic facilities to handle
tables of contents, i.e. import from textual formats, programmatic
manipulation in memory, and export to textual formats. These are
Index: idoc/www/tcllib/files/modules/dtplite/pkg_dtplite.html
==================================================================
--- idoc/www/tcllib/files/modules/dtplite/pkg_dtplite.html
+++ idoc/www/tcllib/files/modules/dtplite/pkg_dtplite.html
@@ -1,7 +1,7 @@
-dtplite - Documentation toolbox
+pkg_dtplite - Documentation toolbox
+
+
+
+
+ [
+ Tcllib Home
+| Main Table Of Contents
+| Table Of Contents
+| Keyword Index
+| Categories
+| Modules
+| Applications
+ ]
+
+
mkdoc(n) 0.7.0 tcllib "Source code documentation using Markdown"
The package mkdoc provides a command to extract documentation embedded in code
+and optionally convert these comments into HTML.
+The latter uses Tcllib's Markdown package.
+Each line of the embedded documentation begins with the special comment marker
+#'.
The command reads the specified infile and extracts the code comments introduced by
+the #' marker. If the outfile is either a ".html" or ".htm"
+file the Markdown is converted into HTML using either a default style or the specified
+style sheet cssfile.
+
All arguments are paths to the files to read from or write to.
+
The result of the command is the empty string.
+
See section Formatting for the supported Markdown syntax and extensions
+to it.
The command reads the specified infile, extracts the embedded documentation, and
+then executes the contents of the first example, i.e. ```-quoted block, found in
+the Example section.
+
Here is such an example which will be executed by the Tcl interpreter
+
+ #' ## <a name="example">Example</a>
+ #'
+ #' ```
+ #' puts "Hello mkdoc package"
+ #' puts "I am in the example section"
+ #' ```
+
+
DANGER, BEWARE.
+Failing to open the infile causes the command to exit the entire process.
+
Use of this command in a general context is not recommended.
The package supports the syntax supported by Tcllib's Markdown package.
+
It further supports a set of simple YAML headers whose information is inserted into
+appropriate HTML meta-tags. The supported keys are
+
+
author
+
Set the document author. Defaults to NN.
+
title
+
Set the document title. Defaults to Documentation filename].
+
date
+
Sets the document date. Defaults to the current day.
+
css
+
Sets a custom CSS stylesheet. Defaults to the internal mkdoc sheet.
+
+
Note that in Markdown output mode these headers are simply passed through
+into the result. This is proper, as processors like pandoc are able to use them
+as well.
This document, and the package it describes, will undoubtedly contain bugs and other
+problems. Please report such to the author of this package. Please also report any ideas
+for enhancements you may have for either package and/or documentation.
The following terms apply to all files a ssociated with the software unless
+explicitly disclaimed in individual files.
+
The authors hereby grant permission to use, copy, modify, distribute, and license
+this software and its documentation for any purpose, provided that existing copyright
+notices are retained in all copies and that this notice is included verbatim in any
+distributions. No written agreement, license, or royalty fee is required for any of the
+authorized uses. Modifications to this software may be copyrighted by their authors and
+need not follow the licensing terms described here, provided that the new terms are
+clearly indicated on the first page of each file where they apply.
+
In no event shall the authors or distributors be liable to any party for direct,
+indirect, special, incidental, or consequential damages arising out of the use of this
+software, its documentation, or any derivatives thereof, even if the authors have been
+advised of the possibility of such damage.
+
The authors and distributors specifically disclaim any warranties, including, but
+not limited to, the implied warranties of merchantability, fitness for a particular
+purpose, and non-infringement.
+This software is provided on an "as is" basis, and the authors and distributors have no
+obligation to provide maintenance, support, updates, enhancements, or modifications.
+
RESTRICTED RIGHTS: Use, duplication or disclosure by the government is
+subject to the restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in
+Technical Data and Computer Software Clause as DFARS 252.227-7013 and FAR 52.227-19.
The user may configure the basic authentication by overriding
the procedure basic_auth in the namespace of interface. This
procedure takes two arguments, the username and password, in this
order.
+
bearer
+
The user may configure a bearer token as authentication. The value is
+the token passed to the HTTP authorization header.
sign
The value must actually be a list with the second element the name of
a procedure which will be called to perform request signing.
Note: Starting with version 0.8 the tar reader commands
-(contents, stats, get, untar) support the GNU LongName extension
-(header type 'L') for large paths.
+
Note: Starting with version 0.8 the tar reader commands
+(contents, stats, get, untar) support the GNU LongName extension (header type
+'L') for large paths.
It is assumed that the channel was opened for reading, and configured for
+ binary input.
+
It is assumed that the channel position is at the beginning of a legal
+ tar file.
+
The commands will modify the channel position as they perform their
+ task.
+
The commands will not close the channel.
+
In other words, the commands leave the channel in a state very likely
+ unsuitable for use by further tar commands. Still doing so will
+ very likely results in errors, bad data, etc. pp.
+
It is the responsibility of the user to seek the channel back to a
+ suitable position.
+
When using a channel transformation which is not generally seekable, for
+ example gunzip, then it is the responsibility of the user to (a)
+ unstack the transformation before seeking the channel back to a suitable
+ position, and (b) for restacking it after.
This document, and the package it describes, will undoubtedly contain
bugs and other problems.
Please report such in the category tar of the
Tcllib Trackers.
Please also report any ideas for enhancements you may have for either
Index: idoc/www/tcllib/files/modules/websocket/websocket.html
==================================================================
--- idoc/www/tcllib/files/modules/websocket/websocket.html
+++ idoc/www/tcllib/files/modules/websocket/websocket.html
@@ -103,11 +103,11 @@
| Categories
| Modules
| Applications
]
-
websocket(n) 1.3.1 tcllib "websocket client and server"
+
websocket(n) 1.4.2 tcllib "websocket client and server"
Index: modules/0compatibility/d_config.tcl
==================================================================
--- modules/0compatibility/d_config.tcl
+++ modules/0compatibility/d_config.tcl
@@ -1,16 +1,10 @@
-# (c) 2019 Andreas Kupries
-# Redirection wrapper for deprecated package
+# (c) 2022 Andreas Kupries
+# Error wrapper for deprecated package
# Deprecated:
# - doctools::config
# Replacement:
# - struct::map
-package require Tcl 8.4
-package require struct::map
-
-namespace eval ::doctools {}
-
-proc ::doctools::config {args} { uplevel 1 [linsert $args 0 ::struct::map] }
-
+error "The package doctools::config is stage 2 deprecated. Use struct::map instead."
package provide doctools::config 0.1
return
DELETED modules/0compatibility/d_config.test
Index: modules/0compatibility/d_config.test
==================================================================
--- modules/0compatibility/d_config.test
+++ /dev/null
@@ -1,144 +0,0 @@
-# -*- tcl -*-
-# config.test: Testsuite for DEPRECATED package doctools::config
-#
-# Copyright (c) 2019 by Andreas Kupries
-# All rights reserved.
-
-# -------------------------------------------------------------------------
-
-source [file join \
- [file dirname [file dirname [file join [pwd] [info script]]]] \
- devtools testutilities.tcl]
-
-testsNeedTcl 8.4
-testsNeedTcltest 2.0
-
-support {
- use snit/snit.tcl snit
- use struct/map.tcl struct::map
-}
-testing {
- useLocal d_config.tcl doctools::config
-}
-
-# ---------------------------------------------------------------------
-# [] constructor
-# [] destructor
-# [] get
-# [] names
-# [] set
-# [] unset
-
-#----------------------------------------------------------------------
-## Constructor, destructor
-
-test doctools-config-1.0 {constructor, wrong args, too many} -body {
- doctools::config M X
-} -returnCodes error -result {Error in constructor: wrong # args: should be "::struct::map::I::Snit_constructor type selfns win self"}
-
-test doctools-config-1.1 {instance, bogus method} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M bogus
-} -returnCodes error -result {"::M bogus" is not defined}
-
-#----------------------------------------------------------------------
-## get
-
-test doctools-config-2.0 {get, wrong args, too many} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M get X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodget type selfns win self"}
-
-test doctools-config-2.1 {get, base state, none} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M get
-} -result {}
-
-#----------------------------------------------------------------------
-## names
-
-test doctools-config-3.0 {names, wrong args, too many} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M names X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodnames type selfns win self"}
-
-test doctools-config-3.1 {names, base state, none} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M names
-} -result {}
-
-#----------------------------------------------------------------------
-## set
-
-test doctools-config-4.0 {set, wrong args, not enough} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M set
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodset type selfns win self name ?value?"}
-
-test doctools-config-4.1 {set, wrong args, too many} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- M set K V X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodset type selfns win self name ?value?"}
-
-test doctools-config-4.2 {set, state change, result} -setup {
- doctools::config M
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M set K V] [M names] [M get]
-} -result {{} {} V K {K V}}
-
-#----------------------------------------------------------------------
-## unset
-
-test doctools-config-5.2 {unset, known key, state change, result} -setup {
- doctools::config M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset K] [M names] [M get]
-} -result {K {K V} {} {} {}}
-
-test doctools-config-5.3 {unset, missing key, no state change, result} -setup {
- doctools::config M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset K'] [M names] [M get]
-} -result {K {K V} {} K {K V}}
-
-test doctools-config-5.4 {unset, no pattern, clear, result} -setup {
- doctools::config M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset] [M names] [M get]
-} -result {K {K V} {} {} {}}
-
-#----------------------------------------------------------------------
-testsuiteCleanup
-return
Index: modules/0compatibility/d_paths.tcl
==================================================================
--- modules/0compatibility/d_paths.tcl
+++ modules/0compatibility/d_paths.tcl
@@ -3,14 +3,8 @@
# Deprecated:
# - doctools::paths
# Replacement:
# - fileutil::paths
-package require Tcl 8.4
-package require fileutil::paths
-
-namespace eval ::doctools {}
-
-proc ::doctools::paths {args} { uplevel 1 [linsert $args 0 ::fileutil::paths] }
-
+error "The package doctools::paths is stage 2 deprecated. Use fileutil::paths instead."
package provide doctools::paths 0.1
return
DELETED modules/0compatibility/d_paths.test
Index: modules/0compatibility/d_paths.test
==================================================================
--- modules/0compatibility/d_paths.test
+++ /dev/null
@@ -1,152 +0,0 @@
-# -*- tcl -*-
-# paths.test: Testsuite for DEPRECATED package doctools::paths
-#
-# Copyright (c) 2019 by Andreas Kupries
-# All rights reserved.
-
-# -------------------------------------------------------------------------
-
-source [file join \
- [file dirname [file dirname [file join [pwd] [info script]]]] \
- devtools testutilities.tcl]
-
-testsNeedTcl 8.4
-testsNeedTcltest 2.0
-
-support {
- use snit/snit.tcl snit
- use fileutil/paths.tcl fileutil::paths
-}
-testing {
- useLocal d_paths.tcl doctools::paths
-}
-
-# ---------------------------------------------------------------------
-# [] constructor
-# [] destructor
-# [] paths
-# [] add
-# [] remove
-# [] clear
-
-#----------------------------------------------------------------------
-## Constructor, destructor
-
-test doctools-paths-1.0 {constructor, wrong args, too many} -body {
- doctools::paths P X
-} -returnCodes error -result {Error in constructor: wrong # args: should be "::fileutil::paths::Snit_constructor type selfns win self"}
-
-test doctools-paths-1.1 {instance, bogus method} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P bogus
-} -returnCodes error -result {"::P bogus" is not defined}
-
-#----------------------------------------------------------------------
-## paths
-
-test doctools-paths-2.0 {paths, wrong args, too many} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P paths X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodpaths type selfns win self"}
-
-test doctools-paths-2.1 {paths, base state, none} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P paths
-} -result {}
-
-#----------------------------------------------------------------------
-## add
-
-test doctools-paths-3.0 {add, wrong args, not enough} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P add
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodadd type selfns win self path"}
-
-test doctools-paths-3.1 {add, wrong args, too many} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P add F X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodadd type selfns win self path"}
-
-test doctools-paths-3.2 {add, state change, result} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- list [P add F] [P paths]
-} -result {{} F}
-
-#----------------------------------------------------------------------
-## remove
-
-test doctools-paths-4.0 {remove, wrong args, not enough} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P remove
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodremove type selfns win self path"}
-
-test doctools-paths-4.1 {remove, wrong args, too many} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P remove F X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodremove type selfns win self path"}
-
-test doctools-paths-4.2 {remove, known path, state change, result} -setup {
- doctools::paths P
- P add F
-} -cleanup {
- P destroy
-} -body {
- list [P remove F] [P paths]
-} -result {{} {}}
-
-test doctools-paths-4.3 {remove, missing path, no state change, result} -setup {
- doctools::paths P
- P add Z
-} -cleanup {
- P destroy
-} -body {
- list [P remove F] [P paths]
-} -result {{} Z}
-
-#----------------------------------------------------------------------
-## clear
-
-test doctools-paths-5.0 {clear, wrong args, too many} -setup {
- doctools::paths P
-} -cleanup {
- P destroy
-} -body {
- P clear X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodclear type selfns win self"}
-
-test doctools-paths-5.1 {clear, return to base state} -setup {
- doctools::paths P
- P add F
-} -cleanup {
- P destroy
-} -body {
- list [P clear] [P paths]
-} -result {{} {}}
-
-#----------------------------------------------------------------------
-testsuiteCleanup
-return
Index: modules/0compatibility/p_config.tcl
==================================================================
--- modules/0compatibility/p_config.tcl
+++ modules/0compatibility/p_config.tcl
@@ -3,12 +3,8 @@
# Deprecated:
# - configuration
# Replacement:
# - struct::map
-package require Tcl 8.4
-package require struct::map
-
-proc ::configuration {args} { uplevel 1 [linsert $args 0 ::struct::map] }
-
+error "The package configuration is stage 2 deprecated. Use struct::map instead."
package provide configuration 1
return
DELETED modules/0compatibility/p_config.test
Index: modules/0compatibility/p_config.test
==================================================================
--- modules/0compatibility/p_config.test
+++ /dev/null
@@ -1,144 +0,0 @@
-# -*- tcl -*-
-# config.test: Testsuite for DEPRECATED package configuration
-#
-# Copyright (c) 2019 by Andreas Kupries
-# All rights reserved.
-
-# -------------------------------------------------------------------------
-
-source [file join \
- [file dirname [file dirname [file join [pwd] [info script]]]] \
- devtools testutilities.tcl]
-
-testsNeedTcl 8.4
-testsNeedTcltest 2.0
-
-support {
- use snit/snit.tcl snit
- use struct/map.tcl struct::map
-}
-testing {
- useLocal p_config.tcl configuration
-}
-
-# ---------------------------------------------------------------------
-# [] constructor
-# [] destructor
-# [] get
-# [] names
-# [] set
-# [] unset
-
-#----------------------------------------------------------------------
-## Constructor, destructor
-
-test configuration-1.0 {constructor, wrong args, too many} -body {
- configuration M X
-} -returnCodes error -result {Error in constructor: wrong # args: should be "::struct::map::I::Snit_constructor type selfns win self"}
-
-test configuration-1.1 {instance, bogus method} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M bogus
-} -returnCodes error -result {"::M bogus" is not defined}
-
-#----------------------------------------------------------------------
-## get
-
-test configuration-2.0 {get, wrong args, too many} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M get X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodget type selfns win self"}
-
-test configuration-2.1 {get, base state, none} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M get
-} -result {}
-
-#----------------------------------------------------------------------
-## names
-
-test configuration-3.0 {names, wrong args, too many} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M names X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodnames type selfns win self"}
-
-test configuration-3.1 {names, base state, none} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M names
-} -result {}
-
-#----------------------------------------------------------------------
-## set
-
-test configuration-4.0 {set, wrong args, not enough} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M set
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodset type selfns win self name ?value?"}
-
-test configuration-4.1 {set, wrong args, too many} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- M set K V X
-} -returnCodes error -result {wrong # args: should be "::struct::map::I::Snit_methodset type selfns win self name ?value?"}
-
-test configuration-4.2 {set, state change, result} -setup {
- configuration M
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M set K V] [M names] [M get]
-} -result {{} {} V K {K V}}
-
-#----------------------------------------------------------------------
-## unset
-
-test configuration-5.2 {unset, known key, state change, result} -setup {
- configuration M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset K] [M names] [M get]
-} -result {K {K V} {} {} {}}
-
-test configuration-5.3 {unset, missing key, no state change, result} -setup {
- configuration M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset K'] [M names] [M get]
-} -result {K {K V} {} K {K V}}
-
-test configuration-5.4 {unset, no pattern, clear, result} -setup {
- configuration M
- M set K V
-} -cleanup {
- M destroy
-} -body {
- list [M names] [M get] [M unset] [M names] [M get]
-} -result {K {K V} {} {} {}}
-
-#----------------------------------------------------------------------
-testsuiteCleanup
-return
Index: modules/0compatibility/p_paths.tcl
==================================================================
--- modules/0compatibility/p_paths.tcl
+++ modules/0compatibility/p_paths.tcl
@@ -3,12 +3,7 @@
# Deprecated:
# - paths
# Replacement:
# - fileutil::paths
-package require Tcl 8.4
-package require fileutil::paths
-
-proc ::paths {args} { uplevel 1 [linsert $args 0 ::fileutil::paths] }
-
-package provide paths 1
+error "The package paths is stage 2 deprecated. Use fileutil::paths instead."
return
DELETED modules/0compatibility/p_paths.test
Index: modules/0compatibility/p_paths.test
==================================================================
--- modules/0compatibility/p_paths.test
+++ /dev/null
@@ -1,152 +0,0 @@
-# -*- tcl -*-
-# paths.test: Testsuite for DEPRECATED package paths (pt)
-#
-# Copyright (c) 2019 by Andreas Kupries
-# All rights reserved.
-
-# -------------------------------------------------------------------------
-
-source [file join \
- [file dirname [file dirname [file join [pwd] [info script]]]] \
- devtools testutilities.tcl]
-
-testsNeedTcl 8.4
-testsNeedTcltest 2.0
-
-support {
- use snit/snit.tcl snit
- use fileutil/paths.tcl fileutil::paths
-}
-testing {
- useLocal p_paths.tcl paths
-}
-
-# ---------------------------------------------------------------------
-# [] constructor
-# [] destructor
-# [] paths
-# [] add
-# [] remove
-# [] clear
-
-#----------------------------------------------------------------------
-## Constructor, destructor
-
-test paths-1.0 {constructor, wrong args, too many} -body {
- paths P X
-} -returnCodes error -result {Error in constructor: wrong # args: should be "::fileutil::paths::Snit_constructor type selfns win self"}
-
-test paths-1.1 {instance, bogus method} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P bogus
-} -returnCodes error -result {"::P bogus" is not defined}
-
-#----------------------------------------------------------------------
-## paths
-
-test paths-2.0 {paths, wrong args, too many} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P paths X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodpaths type selfns win self"}
-
-test paths-2.1 {paths, base state, none} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P paths
-} -result {}
-
-#----------------------------------------------------------------------
-## add
-
-test paths-3.0 {add, wrong args, not enough} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P add
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodadd type selfns win self path"}
-
-test paths-3.1 {add, wrong args, too many} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P add F X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodadd type selfns win self path"}
-
-test paths-3.2 {add, state change, result} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- list [P add F] [P paths]
-} -result {{} F}
-
-#----------------------------------------------------------------------
-## remove
-
-test paths-4.0 {remove, wrong args, not enough} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P remove
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodremove type selfns win self path"}
-
-test paths-4.1 {remove, wrong args, too many} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P remove F X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodremove type selfns win self path"}
-
-test paths-4.2 {remove, known path, state change, result} -setup {
- paths P
- P add F
-} -cleanup {
- P destroy
-} -body {
- list [P remove F] [P paths]
-} -result {{} {}}
-
-test paths-4.3 {remove, missing path, no state change, result} -setup {
- paths P
- P add Z
-} -cleanup {
- P destroy
-} -body {
- list [P remove F] [P paths]
-} -result {{} Z}
-
-#----------------------------------------------------------------------
-## clear
-
-test paths-5.0 {clear, wrong args, too many} -setup {
- paths P
-} -cleanup {
- P destroy
-} -body {
- P clear X
-} -returnCodes error -result {wrong # args: should be "::fileutil::paths::Snit_methodclear type selfns win self"}
-
-test paths-5.1 {clear, return to base state} -setup {
- paths P
- P add F
-} -cleanup {
- P destroy
-} -body {
- list [P clear] [P paths]
-} -result {{} {}}
-
-#----------------------------------------------------------------------
-testsuiteCleanup
-return
Index: modules/clay/clay.test
==================================================================
--- modules/clay/clay.test
+++ modules/clay/clay.test
@@ -1,8 +1,11 @@
+## -*- tcl -*-
+# -------------------------------------------------------------------------
-namespace eval ::oo::dialect {}
-set ::oo::dialect::has(tip470) 0
+namespace eval ::oo::dialect {
+ variable has ; set has(tip470) 0
+}
# clay.test - Copyright (c) 2018 Sean Woods
# -------------------------------------------------------------------------
set MODDIR [file dirname [file dirname [file join [pwd] [info script]]]]
@@ -21,14 +24,11 @@
support {}
testing {
useLocal clay.tcl clay
}
-
set ::clay::trace 0
-
-
# -------------------------------------------------------------------------
# Handle multiple implementation testing
#
@@ -3124,26 +3124,25 @@
###
test tip479-004 {Test that a later ensemble definition trumps a more primitive one} {
$obj item new id 4 shape round trim leather
} {id 4 shape round trim leather color green}
-
-
testsuiteCleanup
# Local variables:
# mode: tcl
# indent-tabs-mode: nil
# End:
-
-
+# -------------------------------------------------------------------------
if {![package vsatisfies [package provide Tcl] 8.7]} {return}
puts "Repeating tests with 8.7 features"
-namespace eval ::oo::dialect {}
-set ::oo::dialect::has(tip470) 1
+
+namespace eval ::oo::dialect {
+ variable has ; set has(tip470) 1
+}
# clay.test - Copyright (c) 2018 Sean Woods
# -------------------------------------------------------------------------
set MODDIR [file dirname [file dirname [file join [pwd] [info script]]]]
@@ -3162,14 +3161,11 @@
support {}
testing {
useLocal clay.tcl clay
}
-
set ::clay::trace 0
-
-
# -------------------------------------------------------------------------
# Handle multiple implementation testing
#
@@ -6268,12 +6264,10 @@
} {id 4 shape round trim leather color green}
testsuiteCleanup
-
+return
# Local variables:
# mode: tcl
# indent-tabs-mode: nil
# End:
-
-
Index: modules/dtplite/pkg_dtplite.man
==================================================================
--- modules/dtplite/pkg_dtplite.man
+++ modules/dtplite/pkg_dtplite.man
@@ -1,8 +1,8 @@
-[comment {-*- tcl -*- doctools manpage}]
+[comment {-*- mode: tcl ; fill-column: 90 -*- doctools manpage}]
[vset PACKAGE_VERSION 1.3.1]
-[manpage_begin dtplite n [vset PACKAGE_VERSION]]
+[manpage_begin pkg_dtplite n [vset PACKAGE_VERSION]]
[see_also {docidx introduction}]
[see_also {doctoc introduction}]
[see_also {doctools introduction}]
[keywords conversion]
[keywords docidx]
@@ -19,431 +19,34 @@
[category {Documentation tools}]
[require dtplite [opt [vset PACKAGE_VERSION]]]
[description]
[para]
-The application described by this document, [syscmd dtplite], is the
-successor to the extremely simple [syscmd mpexpand]. Influenced in its
-functionality by the [syscmd dtp] doctools processor it is much more
-powerful than [syscmd mpexpand], yet still as easy to use; definitely
-easier than [syscmd dtp] with its myriad of subcommands and options.
-
-[para]
-
-[syscmd dtplite] is based upon the package [package doctools], like
-the other two processors.
-
-[subsection {USE CASES}]
-
-[syscmd dtplite] was written with the following three use cases in
-mind.
-
-[para]
-[list_begin enumerated]
-[enum]
-Validation of a single document, i.e. checking that it was written in
-valid doctools format. This mode can also be used to get a preliminary
-version of the formatted output for a single document, for display in
-a browser, nroff, etc., allowing proofreading of the formatting.
-
-[enum]
-Generation of the formatted documentation for a single package,
-i.e. all the manpages, plus a table of contents and an index of
-keywords.
-
-[enum]
-An extension of the previous mode of operation, a method for the easy
-generation of one documentation tree for several packages, and
-especially of a unified table of contents and keyword index.
-
-[list_end]
-
-[para]
-
-Beyond the above we also want to make use of the customization
-features provided by the HTML formatter. It is not the only format the
-application should be able to generate, but we anticipiate it to be
-the most commonly used, and it is one of the few which do provide
-customization hooks.
-
-[para]
-
-We allow the caller to specify a header string, footer string, a
-stylesheet, and data for a bar of navigation links at the top of the
-generated document.
-
-While all can be set as long as the formatting engine provides an
-appropriate engine parameter (See section [sectref OPTIONS]) the last
-two have internal processing which make them specific to HTML.
-
-[subsection {COMMAND LINE}]
-
-[list_begin definitions]
-
-[call [cmd dtplite] [option -o] [arg output] [opt options] [arg format] [arg inputfile]]
-
-This is the form for use case [lb]1[rb]. The [arg options] will be
-explained later, in section [sectref OPTIONS].
-
-[list_begin arguments]
-
-[arg_def path output in]
-
-This argument specifies where to write the generated document. It can
-be the path to a file or directory, or [const -].
-
-The last value causes the application to write the generated
-documented to [const stdout].
-
-[para]
-
-If the [arg output] does not exist then [lb]file dirname $output[rb]
-has to exist and must be a writable directory.
-
-The generated document will be written to a file in that directory,
-and the name of that file will be derived from the [arg inputfile],
-the [arg format], and the value given to option [option -ext] (if
-present).
-
-[arg_def (path|handle) format in]
-
-This argument specifies the formatting engine to use when processing
-the input, and thus the format of the generated document. See section
-[sectref FORMATS] for the possibilities recognized by the application.
-
-[arg_def path inputfile in]
-
-This argument specifies the path to the file to process. It has to
-exist, must be readable, and written in [term doctools] format.
-
-[list_end]
-[para]
-
-[call [cmd dtplite] [const validate] [arg inputfile]]
-
-This is a simpler form for use case [lb]1[rb]. The "validate" format
-generates no output at all, only syntax checks are performed. As such
-the specification of an output file or other options is not necessary
-and left out.
-
-[call [cmd dtplite] [option -o] [arg output] [opt options] [arg format] [arg inputdirectory]]
-
-This is the form for use case [lb]2[rb]. It differs from the form for
-use case [lb]1[rb] by having the input documents specified through a
-directory instead of a file. The other arguments are identical, except
-for [arg output], which now has to be the path to an existing and
-writable directory.
-
-[para]
-
-The input documents are all files in [arg inputdirectory] or any of
-its subdirectories which were recognized by [cmd fileutil::fileType]
-as containing text in [term doctools] format.
-
-[call [cmd dtplite] [option -merge] [option -o] [arg output] [opt options] [arg format] [arg inputdirectory]]
-
-This is the form for use case [lb]3[rb]. The only difference to the
-form for use case [lb]2[rb] is the additional option [option -merge].
-
-[para]
-
-Each such call will merge the generated documents coming from
-processing the input documents under [arg inputdirectory] or any of
-its subdirectories to the files under [arg output]. In this manner it
-is possible to incrementally build the unified documentation for any
-number of packages. Note that it is necessary to run through all the
-packages twice to get fully correct cross-references (for formats
-supporting them).
-
-[list_end]
-
-[subsection OPTIONS]
-
-This section describes all the options available to the user of the
-application, with
-
-the exception of the options [option -o] and [option -merge]. These
-two were described already, in section [sectref {COMMAND LINE}].
-
-[para]
-[list_begin options]
-[opt_def -exclude string]
-
-This option specifies an exclude (glob) pattern. Any files identified
-as manpages to process which match the exclude pattern are
-ignored. The option can be provided multiple times, each usage adding
-an additional pattern to the list of exclusions.
-
-[opt_def -ext string]
-
-If the name of an output file has to be derived from the name of an
-input file it will use the name of the [arg format] as the extension
-by default. This option here will override this however, forcing it to
-use [arg string] as the file extension. This option is ignored if the
-name of the output file is fully specified through option [option -o].
-
-[para]
-
-When used multiple times only the last definition is relevant.
-
-[opt_def -header file]
-
-This option can be used if and only if the selected [arg format]
-provides an engine parameter named "header". It takes the contents of
-the specified file and assign them to that parameter, for whatever use
-by the engine. The HTML engine will insert the text just after the tag
-[const ].
-
-If navigation buttons are present (see option [option -nav] below),
-then the HTML generated for them is appended to the header data
-originating here before the final assignment to the parameter.
-
-[para]
-
-When used multiple times only the last definition is relevant.
-
-[opt_def -footer file]
-
-Like [option -header], except that: Any navigation buttons are ignored,
-the corresponding required engine parameter is named "footer", and the
-data is inserted just before the tag [const ].
-
-[para]
-
-When used multiple times only the last definition is relevant.
-
-[opt_def -style file]
-
-This option can be used if and only if the selected [arg format]
-provides an engine parameter named "meta". When specified it will
-generate a piece of HTML code declaring the [arg file] as the
-stylesheet for the generated document and assign that to the
-parameter. The HTML engine will insert this inot the document, just
-after the tag [const ].
-
-[para]
-
-When processing an input directory the stylesheet file is copied into
-the output directory and the generated HTML will refer to the copy, to
-make the result more self-contained. When processing an input file we
-have no location to copy the stylesheet to and so just reference it as
-specified.
-
-[para]
-
-When used multiple times only the last definition is relevant.
-
-[opt_def -toc path|text]
-
-This option specifies a doctoc file (or text) to use for the table of contents
-instead of generating our own.
-
-[para]
-
-When used multiple times only the last definition is relevant.
-
-[opt_def -pre+toc "label path|text"]
-[opt_def -post+toc "label path|text"]
-
-This option specifies additional doctoc files (or texts) to use in
-the navigation bar.
-
-[para] Positioning and handling of multiple uses is like for options
-[option -prenav] and [option -postnav], see below.
-
-[opt_def -nav "label url"]
-[opt_def -prenav "label url"]
-
-Use this option to specify a navigation button with [arg label] to
-display and the [arg url] to link to. This option can be used if and
-only if the selected [arg format] provides an engine parameter named
-"header". The HTML generated for this is appended to whatever data we
-got from option [option -header] before it is inserted into the
-generated documents.
-
-[para]
-
-When used multiple times all definitions are collected and a
-navigation bar is created, with the first definition shown at the left
-edge and the last definition to the right.
-
-[para] The url can be relative. In that case it is assumed to be relative
-to the main files (TOC and Keyword index), and will be transformed for
-all others to still link properly.
-
-[opt_def -postnav "label url"]
-
-Use this option to specify a navigation button with [arg label] to
-display and the [arg url] to link to. This option can be used if and
-only if the selected [arg format] provides an engine parameter named
-"header". The HTML generated for this is appended to whatever data we
-got from option [option -header] before it is inserted into the
-generated documents.
-
-[para]
-
-When used multiple times all definitions are collected and a
-navigation bar is created, with the last definition shown at the right
-edge and the first definition to the left.
-
-[para] The url can be relative. In that case it is assumed to be relative
-to the main files (TOC and Keyword index), and will be transformed for
-all others to still link properly.
-
-[list_end]
-
-[subsection FORMATS]
-
-At first the [arg format] argument will be treated as a path to a tcl
-file containing the code for the requested formatting engine. The
-argument will be treated as the name of one of the predefined formats
-listed below if and only if the path does not exist.
-
-[para]
-
-[emph {Note a limitation}]: If treating the format as path to the tcl
-script implementing the engine was sucessful, then this script has to
-implement not only the engine API for doctools, i.e.
-
-[term doctools_api], but for [term doctoc_api] and [term docidx_api]
-as well. Otherwise the generation of a table of contents and of a
-keyword index will fail.
-
-[para]
-
-List of predefined formats, i.e. as provided by the
-package [package doctools]:
-
-[para]
-[list_begin definitions]
-
-[def [const nroff]]
-
-The processor generates *roff output, the standard format for unix
-manpages.
-
-[def [const html]]
-
-The processor generates HTML output, for usage in and display by web
-browsers. This engine is currently the only one providing the various
-engine parameters required for the additional customaization of the
-output.
-
-[def [const tmml]]
-
-The processor generates TMML output, the Tcl Manpage Markup Language,
-a derivative of XML.
-
-[def [const latex]]
-
-The processor generates LaTeX output.
-
-[def [const wiki]]
-
-The processor generates Wiki markup as understood by [syscmd wikit].
-
-[def [const list]]
-
-The processor extracts the information provided by [cmd manpage_begin].
-[see_also {docidx introduction}]
-[see_also {doctoc introduction}]
-[see_also {doctools introduction}]
-[keywords conversion]
-[keywords docidx]
-[keywords doctoc]
-[keywords doctools]
-[keywords HTML]
-[keywords manpage]
-[keywords markup]
-[keywords nroff]
-[keywords TMML]
-
-This format is used internally to extract the meta data from which
-both table of contents and keyword index are derived from.
-
-[def [const null]]
-
-The processor does not generate any output. This is equivalent to
-[const validate].
-
-[list_end]
-
-[subsection {DIRECTORY STRUCTURES}]
-
-In this section we describe the directory structures generated by the
-application under [arg output] when processing all documents in an
-[arg inputdirectory]. In other words, this is only relevant to the use
-cases [lb]2[rb] and [lb]3[rb].
-
-[list_begin definitions]
-
-[def "[lb]2[rb]"]
-
-The following directory structure is created when processing a single
-set of input documents. The file extension used is for output in
-HTML, but that is not relevant to the structure and was just used to
-have proper file names.
-
-[example {
- output/
- toc.html
- index.html
- files/
- path/to/FOO.html
-}]
-
-The last line in the example shows the document
-generated for a file FOO located at
-
-[example {
- inputdirectory/path/to/FOO
-}]
-
-[def "[lb]3[rb]"]
-
-When merging many packages into a unified set of documents the
-generated directory structure is a bit deeper:
-
-[example {
- output
- .toc
- .idx
- .tocdoc
- .idxdoc
- .xrf
- toc.html
- index.html
- FOO1/
- ...
- FOO2/
- toc.html
- files/
- path/to/BAR.html
-}]
-
-Each of the directories FOO1, ... contains the documents generated for
-the package FOO1, ... and follows the structure shown for use case
-[lb]2[rb]. The only exception is that there is no per-package index.
-
-[para]
-
-The files [file .toc], [file .idx], and [file .xrf] contain the
-internal status of the whole output and will be read and updated by
-the next invokation. Their contents will not be documented. Remove
-these files when all packages wanted for the output have been
-processed, i.e. when the output is complete.
-
-[para]
-
-The files [file .tocdoc], and [file .idxdoc], are intermediate files
-in doctoc and docidx markup, respectively, containing the main table
-of contents and keyword index for the set of documents before their
-conversion to the chosen output format.
-
-They are left in place, i.e. not deleted, to serve as demonstrations
-of doctoc and docidx markup.
+The package provided by this document, [package dtplite], is the foundation for the
+[syscmd dtplite] application. It is a light wrapper around the various [package doctools]
+packages.
+
+[section COMMANDS]
+
+[list_begin definitions]
+
+[call [cmd dtplite::print-via] [arg cmd]]
+
+Redirect print operations of the package to the specified [arg cmd].
+
+[para] The result of the command is the empty string.
+
+[call [cmd dtplite::do] [arg arguments]]
+
+The main command it takes a [emph {single list}] of [arg arguments], processes them, and
+performs the specified action.
+
+[para] The result of the command is the empty string.
+
+[para] The details of the syntax inside of the [arg arguments] list are explained in
+section [term {COMMAND LINE}] of the documentation for the [syscmd dtplite] application.
[list_end]
[vset CATEGORY doctools]
[include ../common-text/feedback.inc]
[manpage_end]
Index: modules/fumagic/filetypes.tcl
==================================================================
--- modules/fumagic/filetypes.tcl
+++ modules/fumagic/filetypes.tcl
@@ -8,12 +8,10 @@
# Copyright (c) 2004-2005 Colin McCormack
# Copyright (c) 2005-2006 Andreas Kupries
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#) $Id: filetypes.tcl,v 1.6 2006/09/27 21:19:35 andreas_kupries Exp $
#####
#
# "mime type discriminator"
# http://wiki.tcl.tk/12537
@@ -79,11 +77,11 @@
}
return [list $class {} {}]
}
-package provide fileutil::magic::filetype 2.0
+package provide fileutil::magic::filetype 2.0.1
namespace eval ::fileutil::magic::filetype {
# The actual recognizer is the command below.
Index: modules/fumagic/pkgIndex.tcl
==================================================================
--- modules/fumagic/pkgIndex.tcl
+++ modules/fumagic/pkgIndex.tcl
@@ -1,9 +1,9 @@
if {![package vsatisfies [package provide Tcl] 8.6]} {return}
# Recognizers
-package ifneeded fileutil::magic::filetype 2.0 [list source [file join $dir filetypes.tcl]]
+package ifneeded fileutil::magic::filetype 2.0.1 [list source [file join $dir filetypes.tcl]]
# Runtime
package ifneeded fileutil::magic::rt 3.0 [list source [file join $dir rtcore.tcl]]
# Compiler packages
Index: modules/irc/irc.tcl
==================================================================
--- modules/irc/irc.tcl
+++ modules/irc/irc.tcl
@@ -523,9 +523,9 @@
return $returncommand
}
# -------------------------------------------------------------------------
-package provide irc 0.6.2
+package provide irc 0.7.0
# -------------------------------------------------------------------------
return
Index: modules/ldap/ldapx.tcl
==================================================================
--- modules/ldap/ldapx.tcl
+++ modules/ldap/ldapx.tcl
@@ -1,12 +1,10 @@
#
# Extended object interface to entries in LDAP directories or LDIF files.
#
# (c) 2006-2018 Pierre David (pdagog@gmail.com)
#
-# $Id: ldapx.tcl,v 1.12 2008/02/07 21:19:39 pdav Exp $
-#
# History:
# 2006/08/08 : pda : design
#
package require Tcl 8.5
Index: modules/ldap/pkgIndex.tcl
==================================================================
--- modules/ldap/pkgIndex.tcl
+++ modules/ldap/pkgIndex.tcl
@@ -2,6 +2,6 @@
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
package ifneeded ldap 1.10.1 [list source [file join $dir ldap.tcl]]
# the OO level wrapper for ldap
-package ifneeded ldapx 1.1 [list source [file join $dir ldapx.tcl]]
+package ifneeded ldapx 1.2 [list source [file join $dir ldapx.tcl]]
Index: modules/markdown/markdown.tcl
==================================================================
--- modules/markdown/markdown.tcl
+++ modules/markdown/markdown.tcl
@@ -402,11 +402,11 @@
$list_type>\n\n
}
{^<(?:p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)} {
# HTML BLOCKS
set block_tag [string range $line_match 1 end]
- set re_htmltag {<(/?)(\w+)(?:\s+\w+=(?:\"[^\"]+\"|'[^']+'))*\s*>}
+ set re_htmltag {<(/?)(\w+)(?:\s+\w+(?:=\"[^\"]+\"|'[^']+')?)*\s*>}
set block_lines 0
set buffer {}
while {$index < $no_lines} {
append buffer $line \n
@@ -431,12 +431,11 @@
set line [lindex $lines $index]
}
# Skip empty lines after the block.
- while {$index < $no_lines
- && [regexp {^\s*$} [lindex $lines $index]]} {
+ while {$index < $no_lines && [is_empty_line [lindex $lines $index]]} {
incr index
}
if {$index < $no_lines} {
append buffer \n
Index: modules/markdown/markdown.test
==================================================================
--- modules/markdown/markdown.test
+++ modules/markdown/markdown.test
@@ -473,14 +473,87 @@
![ ](https://www.url.com)
}
} -result {
}
+
+#-------------------------------------------------------------------------
+# Attribute mishandling in HTML block tags. Ticket [0d23817f75]
+
+test div-1.1 {[0d23817f75] embedded html on a line surrounded by empty lines having html attribute without value} -body {
+ convert {
+ hello
+
+
+
+ hello again
+ }
+} -result {
+
hello
+
+
+
+
hello again
+}
+
+test div-1.2 {[0d23817f75] embedded html on a line surrounded by empty lines having html attribute with value} -body {
+ convert {
+ hello
+
+
+
+ hello again
+ }
+} -result {
+
hello
+
+
+
+
hello again
+}
+
+#-------------------------------------------------------------------------
+# known bugs in div handling - Ticket [57f151c354]
+
+test div-1.3 {[57f151c354] embedded div on a line in a paragraph} -body {
+ convert {
+ hello
+
+ hello again
+ }
+} -constraints knownbug -result {
+
hello
+
+
+
+
hello again
+}
+# actual result:
+#
hello
+# <div allowfullscreen>
+# hello again
+
+test div-1.4 {[57f151c354] embedded div with attribute on a line in a paragraph} -body {
+ convert {
+ hello
+
+ hello again
+ }
+} -constraints knownbug -result {
+
hello
+
+
+
+
hello again
+}
+# actual result:
+#
hello
+#
+# hello again
#-------------------------------------------------------------------------
# Tests with texts from the original markdown page at daringfireball.net
-
test gruber-1.1 {a sample text} -body {
convert {
A First Level Header
====================
Index: modules/math/bigfloat.tcl
==================================================================
--- modules/math/bigfloat.tcl
+++ modules/math/bigfloat.tcl
@@ -2311,6 +2311,6 @@
}
# (AM) No "namespace import" - this should be left to the user!
#namespace import ::math::bigfloat::*
-package provide math::bigfloat 1.2.2
+package provide math::bigfloat 1.2.3
Index: modules/math/pkgIndex.tcl
==================================================================
--- modules/math/pkgIndex.tcl
+++ modules/math/pkgIndex.tcl
@@ -12,21 +12,21 @@
if {![package vsatisfies [package provide Tcl] 8.4]} {return}
package ifneeded math::optimize 1.0.1 [list source [file join $dir optimize.tcl]]
package ifneeded math::interpolate 1.1.2 [list source [file join $dir interpolate.tcl]]
package ifneeded math::bignum 3.1.1 [list source [file join $dir bignum.tcl]]
-package ifneeded math::bigfloat 1.2.2 [list source [file join $dir bigfloat.tcl]]
+package ifneeded math::bigfloat 1.2.3 [list source [file join $dir bigfloat.tcl]]
package ifneeded math::machineparameters 0.1 [list source [file join $dir machineparameters.tcl]]
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
package ifneeded math::calculus 0.8.2 [list source [file join $dir calculus.tcl]]
# statistics depends on linearalgebra (for multi-variate linear regression).
# statistics depends on optimize (for logistic regression).
package ifneeded math::statistics 1.5.0 [list source [file join $dir statistics.tcl]]
package ifneeded math::linearalgebra 1.1.6 [list source [file join $dir linalg.tcl]]
package ifneeded math::calculus::symdiff 1.0.1 [list source [file join $dir symdiff.tcl]]
-package ifneeded math::bigfloat 2.0.2 [list source [file join $dir bigfloat2.tcl]]
+package ifneeded math::bigfloat 2.0.3 [list source [file join $dir bigfloat2.tcl]]
package ifneeded math::numtheory 1.1.3 [list source [file join $dir numtheory.tcl]]
package ifneeded math::decimal 1.0.4 [list source [file join $dir decimal.tcl]]
package ifneeded math::geometry 1.4.1 [list source [file join $dir geometry.tcl]]
package ifneeded math::trig 1.0 [list source [file join $dir trig.tcl]]
package ifneeded math::quasirandom 1.0 [list source [file join $dir quasirandom.tcl]]
ADDED modules/mkdoc/LICENSE
Index: modules/mkdoc/LICENSE
==================================================================
--- /dev/null
+++ modules/mkdoc/LICENSE
@@ -0,0 +1,29 @@
+BSD 3-Clause License
+
+Copyright (c) 2022, D Groth
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ADDED modules/mkdoc/Makefile
Index: modules/mkdoc/Makefile
==================================================================
--- /dev/null
+++ modules/mkdoc/Makefile
@@ -0,0 +1,6 @@
+VERSION=$(shell tclsh mkdoc.tcl --version)
+
+mkdoc:
+ dtplite -o mkdoc.html html mkdoc.man
+ tclsh mkdoc.tcl mkdoc.tcl mkdoc.md
+ tclsh mkdoc.tcl mkdoc.tcl mkdoc-mkdoc.html
ADDED modules/mkdoc/README.md
Index: modules/mkdoc/README.md
==================================================================
--- /dev/null
+++ modules/mkdoc/README.md
@@ -0,0 +1,57 @@
+# mkdoc
+
+Source code documentation tool using embedded Markdown for programming
+languages supporting either multiline comments or at least the # character for comments.
+
+
+* Download current code and manuals: [mkdoc.zip](https://downgit.github.io/#/home?url=https://github.com/mittelmark/mkdoc/tree/main/mkdoc)
+* Short Manual generated from doctools manpage [mkdoc.html](http://htmlpreview.github.io/?https://github.com/mittelmark/mkdoc/blob/master/mkdoc/mkdoc.html)
+* Long Manual generated from mkdoc.tcl directly [mkdoc-mkdoc.html](http://htmlpreview.github.io/?https://github.com/mittelmark/mkdoc/blob/master/mkdoc/mkdoc-mkdoc.html)
+
+Here an example of an embedded mkdoc comment for a Python script:
+
+```python
+
+#' **hw()**
+#'
+#' > Function prints "Hello World!" to the terminal!"
+#'
+#' > Arguments:
+#'
+#' > - _n_ - how often the string "Hello World!" should be printed, default: 3
+#'
+#' > Returns: None
+#'
+#' > Example:
+#'
+#' ```
+#' hw(5)
+#' ```
+#'
+def hw(n=3):
+ for i in range(0,n):
+ print("Hello World!")
+
+```
+
+Markdown documentation comments for programming languages which have not the hash character as a comment character can be embedded using multliline comments. Here an example for a C or C++ programm:
+
+```c
+/*
+#' **void hw(int n);**
+#' ...
+*/
+void hw(int n) {
+ int i = 0;
+ for (i = 0 ; i < n; i=i+1) {
+ printf("Hello World!\n");
+ }
+}
+```
+
+A more extended example can be seen within the script
+[mkdoc/mkdoc.tcl](https://github.com/mittelmark/mkdoc/blob/main/mkdoc/mkdoc.tcl)
+itself. These comments are used to create the longer manual which can be seen here: [mkdoc-mkdoc.html](http://htmlpreview.github.io/?https://github.com/mittelmark/mkdoc/blob/master/mkdoc/mkdoc-mkdoc.html).
+
+
+
ADDED modules/mkdoc/mkdoc.man
Index: modules/mkdoc/mkdoc.man
==================================================================
--- /dev/null
+++ modules/mkdoc/mkdoc.man
@@ -0,0 +1,160 @@
+[comment {-*- mode: tcl ;fill-column: 90 -*- doctools manpage}]
+[vset VERSION 0.7.0]
+[manpage_begin mkdoc n [vset VERSION]]
+[copyright {2019-2022, Detlef Groth }]
+[moddesc {Source code documentation using Markdown}]
+[titledesc {Extracts and optionally converts Markdown comments in source code to HTML}]
+[category {Text processing}]
+[require Tcl 8.6]
+[require Markdown [opt 1.2.1]]
+[require yaml [opt 0.4.1]]
+[require mkdoc [opt [vset VERSION]]]
+[require hook]
+[description]
+
+The package [package mkdoc] provides a command to extract documentation embedded in code
+and optionally convert these comments into HTML.
+
+The latter uses Tcllib's [package Markdown] package.
+
+Each line of the embedded documentation begins with the special comment marker
+[const "#'"].
+
+[list_begin definitions]
+
+[call [cmd ::mkdoc::mkdoc] [arg infile] [arg outfile] [opt "[option -css] [arg cssfile]"]]
+
+The command reads the specified [arg infile] and extracts the code comments introduced by
+the [const " #'"] marker. If the [arg outfile] is either a [file .html] or [file .htm]
+file the Markdown is converted into HTML using either a default style or the specified
+style sheet [arg cssfile].
+
+[para] All arguments are paths to the files to read from or write to.
+
+[para] The result of the command is the empty string.
+
+[para] See section [sectref Formatting] for the supported Markdown syntax and extensions
+to it.
+
+[call [cmd ::mkdoc::run] [arg infile]]
+
+The command reads the specified [arg infile], extracts the embedded documentation, and
+then executes the contents of the first example, i.e. [const ```]-quoted block, found in
+the [const Example] section.
+
+[para] Here is such an example which will be executed by the Tcl interpreter
+
+[example {
+ #' ## Example
+ #'
+ #' ```
+ #' puts "Hello mkdoc package"
+ #' puts "I am in the example section"
+ #' ```
+}]
+
+[para] [strong {DANGER, BEWARE}].
+Failing to open the [arg infile] causes the command to [strong exit] the entire process.
+
+[para] Use of this command in a general context is not recommended.
+
+[list_end]
+
+[section Examples]
+
+The example below demonstrates the conversion of the documentation embedded into the file
+[file mkdoc.tcl] itself:
+
+[para][example {
+ package require mkdoc
+ # extracting the Markdown
+ mkdoc::mkdoc mkdoc.tcl mkdoc.md
+ # converting Markdown to HTML
+ mkdoc::mkdoc mkdoc.md mkdoc.html
+ # direct conversion without intermediate file
+ mkdoc::mkdoc mkdoc.tcl mkdoc.html
+}]
+
+[section Formatting]
+
+The package supports the syntax supported by Tcllib's [package Markdown] package.
+
+[para] It further supports a set of simple YAML headers whose information is inserted into
+appropriate HTML [const meta]-tags. The supported keys are
+
+[list_begin definitions]
+[def [const author]] Set the document author. Defaults to [const NN].
+[def [const title]] Set the document title. Defaults to [const "Documentation "][var filename]].
+[def [const date]] Sets the document date. Defaults to the current day.
+[def [const css]] Sets a custom CSS stylesheet. Defaults to the internal mkdoc sheet.
+[list_end]
+
+[para] [emph Note] that in Markdown output mode these headers are simply passed through
+into the result. This is proper, as processors like [syscmd pandoc] are able to use them
+as well.
+
+[para] See the example below for the syntax:
+
+[example {
+ #' ---
+ #' title: mkdoc::mkdoc 0.7.0
+ #' author: Detlef Groth, Schwielowsee, Germany
+ #' date: 2022-04-17
+ #' css: mini.css
+ #' ---
+ #'
+}]
+
+
+[para] Another extension over standard Markdown is the support of a single level of includes.
+
+[para] See the example below for the syntax:
+
+[example {
+ #' #include "path/to/include/file"
+}]
+
+[para] [emph Note], the double-quotes around the path are part of the syntax.
+
+[para] [strong Beware] further that relative paths are resolved relative to the current
+working directory, and [strong not] relative to the location of the including file.
+
+[section "Bugs, Ideas, Feedback"]
+
+This document, and the package it describes, will undoubtedly contain bugs and other
+problems. Please report such to the author of this package. Please also report any ideas
+for enhancements you may have for either package and/or documentation.
+
+[section "Code Copyright"]
+
+BSD License type:
+
+[para] The following terms apply to all files a ssociated with the software unless
+explicitly disclaimed in individual files.
+
+[para] The authors hereby grant permission to use, copy, modify, distribute, and license
+this software and its documentation for any purpose, provided that existing copyright
+notices are retained in all copies and that this notice is included verbatim in any
+distributions. No written agreement, license, or royalty fee is required for any of the
+authorized uses. Modifications to this software may be copyrighted by their authors and
+need not follow the licensing terms described here, provided that the new terms are
+clearly indicated on the first page of each file where they apply.
+
+[para] In no event shall the authors or distributors be liable to any party for direct,
+indirect, special, incidental, or consequential damages arising out of the use of this
+software, its documentation, or any derivatives thereof, even if the authors have been
+advised of the possibility of such damage.
+
+[para] The authors and distributors specifically disclaim any warranties, including, but
+not limited to, the implied warranties of merchantability, fitness for a particular
+purpose, and non-infringement.
+
+This software is provided on an "as is" basis, and the authors and distributors have no
+obligation to provide maintenance, support, updates, enhancements, or modifications.
+
+[para] [strong {RESTRICTED RIGHTS}]: Use, duplication or disclosure by the government is
+subject to the restrictions as set forth in subparagraph (c) (1) (ii) of the Rights in
+Technical Data and Computer Software Clause as DFARS 252.227-7013 and FAR 52.227-19.
+
+[vset CATEGORY mkdoc]
+[manpage_end]
ADDED modules/mkdoc/mkdoc.tcl
Index: modules/mkdoc/mkdoc.tcl
==================================================================
--- /dev/null
+++ modules/mkdoc/mkdoc.tcl
@@ -0,0 +1,701 @@
+# -*- mode: tcl ; fill-column: 80 -*-
+##############################################################################
+# Author : Dr. Detlef Groth
+# Created : Fri Nov 15 10:20:22 2019
+# Last Modified : <220423.0622>
+#
+# Description : Command line utility and package to extract Markdown documentation
+# from programming code if embedded as after comment sequence #'
+# manual pages and installation of Tcl files as Tcl modules.
+# Copy and adaptation of dgw/dgwutils.tcl
+#
+# History : 2019-11-08 version 0.1
+# 2019-11-28 version 0.2
+# 2020-02-26 version 0.3
+# 2020-11-10 Release 0.4
+# 2020-12-30 Release 0.5 (rox2md)
+# 2022-02-09 Release 0.6
+# 2022-04-XX Release 0.7 (minimal)
+#
+##############################################################################
+#
+# Copyright (c) 2019-2022 Dr. Detlef Groth, E-mail: detlef(at)dgroth(dot)de
+#
+# This library is free software; you can use, modify, and redistribute it for
+# any purpose, provided that existing copyright notices are retained in all
+# copies and that this notice is included verbatim in any distributions.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the implied
+# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+#' ---
+#' title: mkdoc::mkdoc 0.7.0
+#' author: Detlef Groth, Schwielowsee, Germany
+#' css: mkdoc.css
+#' ---
+#'
+#'
+#'
+#' ## NAME
+#'
+#' **mkdoc::mkdoc** - Tcl package and command line application to extract and format
+#' embedded programming documentation from source code files written in Markdown or
+#' doctools format and optionally converting it into HTML.
+#'
+#' ## TABLE OF CONTENTS
+#'
+#' - [SYNOPSIS](#synopsis)
+#' - [DESCRIPTION](#description)
+#' - [COMMAND](#command)
+#' - [mkdoc::mkdoc](#mkdoc)
+#' - [mkdoc::run](#run)
+#' - [EXAMPLE](#example)
+#' - [BASIC FORMATTING](#format)
+#' - [INSTALLATION](#install)
+#' - [SEE ALSO](#see)
+#' - [CHANGES](#changes)
+#' - [TODO](#todo)
+#' - [AUTHOR](#authors)
+#' - [LICENSE AND COPYRIGHT](#license)
+#'
+#' ## SYNOPSIS
+#'
+#' Usage as package:
+#'
+#' ```
+#' package require mkdoc::mkdoc
+#' mkdoc::mkdoc inputfile outputfile ?-css file.css?
+#' ```
+#'
+#' Usage as command line application for extraction of Markdown comments prefixed with `#'`:
+#'
+#' ```
+#' mkdoc inputfile outputfile ?--css file.css?
+#' ```
+#'
+#' Usage as command line application for conversion of Markdown to HTML:
+#'
+#' ```
+#' mkdoc inputfile.md outputfile.html ?--css file.css?
+#' ```
+#'
+#' ## DESCRIPTION
+#'
+#' **mkdoc::mkdoc** extracts embedded Markdown or doctools documentation from source code files
+#' and as well converts Markdown the output to HTML if desired.
+#' The documentation inside the source code must be prefixed with the `#'` character sequence.
+#' The file extension of the output file determines the output format.
+#' File extensions can bei either `.md` for Markdown output, `.man` for doctools output or `.html` for html output.
+#' The latter requires the tcllib Markdown or the doctools extensions to be installed.
+#' If the file extension of the inputfile is *.md* and file extension of the output files is *.html*
+#' there will be simply a conversion from a Markdown to a HTML file.
+#'
+#' The file `mkdoc.tcl` can be as well directly used as a console application.
+#' An explanation on how to do this, is given in the section [Installation](#install).
+#'
+#' ## COMMAND
+#'
+#'
+#' **mkdoc::mkdoc** *infile outfile ?-css file.css?*
+#'
+#' > Extracts the documentation in Markdown format from *infile* and writes the documentation
+#' to *outfile* either in Markdown, Doctools or HTML format.
+#'
+#' > - *infile* - file with embedded markdown documentation
+#' - *outfile* - name of output file extension
+#' - *-css cssfile* if outfile is an HTML file use the given *cssfile*
+#'
+#' > If the file extension of the outfile is either html or htm a HTML file is created. If the output file has other
+#' file extension the documentation after _#'_ comments is simply extracted and stored in the given _outfile_, *-mode* flag (one of -html, -md, -pandoc) is not given, the output format is taken from the file extension of the output file, either *.html* for HTML or *.md* for Markdown format. This deduction from the filetype can be overwritten giving either `-html` or `-md` as command line flags. If as mode `-pandoc` is given, the Markdown markup code as well contains the YAML header.
+#' If infile has the extension .md (Markdown) or -man (Doctools) than conversion to html will be performed, outfile file extension
+#' In this case must be .html. If output is html a *-css* flag can be given to use the given stylesheet file instead of the default style sheet embedded within the mkdoc code.
+#'
+#' > Example:
+#'
+#' > ```
+#' package require mkdoc::mkdoc
+#' mkdoc::mkdoc mkdoc.tcl mkdoc.html
+#' mkdoc::mkdoc mkdoc.tcl mkdoc.md
+#' > ```
+
+package require Tcl 8.6
+
+package require yaml
+package require Markdown
+package require hook
+
+package provide mkdoc 0.7.0
+
+namespace eval mkdoc {
+ variable deindent [list \n\t \n "\n " \n]
+
+ variable htmltemplate [string map $deindent {
+
+
+
+
+
+
+
+ $document(title)
+ $style
+
+
+ }]
+
+ variable htmlstart [string map $deindent {
+
$document(title)
+
$document(author)
+
$document(date)
+ }]
+
+ variable mkdocstyle [string map $deindent {
+ body {
+ margin-left: 10%; margin-right: 10%;
+ font-family: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
+ max-width: 90%;
+ }
+ pre {
+ padding-top: 1ex;
+ padding-bottom: 1ex;
+ padding-left: 2ex;
+ padding-right: 1ex;
+ width: 100%;
+ color: black;
+ background: #fff4e4;
+ border-top: 1px solid black;
+ border-bottom: 1px solid black;
+ font-family: Monaco, Consolas, "Liberation Mono", Menlo, Courier, monospace;
+ }
+ a {
+ text-decoration: none
+ }
+ pre.synopsis {
+ background: #cceeff;
+ }
+ pre.code code.tclin {
+ background-color: #ffeeee;
+ }
+ pre.code code.tclout {
+ background-color: #ffffee;
+ }
+ code {
+ font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+ }
+ h1,h2, h3,h4 {
+ font-family: sans-serif;
+ background: transparent;
+ }
+ h1 {
+ font-size: 120%;
+ text-align: center;
+ }
+
+ h2.author, h2.date {
+ text-align: center;
+ color: black;
+ }
+ h2 { font-size: 110%; }
+ h3, h4 { font-size: 100% }
+ div.title h1 {
+ font-family: sans-serif;
+ font-size: 120%;
+ background: transparent;
+ text-align: center;
+ color: black;
+ }
+ div.author h3, div.date h3 {
+ font-family: sans-serif;
+ font-size: 110%;
+ background: transparent;
+ text-align: center;
+ color: black ;
+ }
+ h2, h3 {
+ margin-top: 1em;
+ font-family: sans-serif;
+ font-size: 110%;
+ color: #005A9C;
+ background: transparent;
+ text-align: left;
+ }
+ }]
+}
+
+proc mkdoc::mkdoc {filename outfile args} {
+ variable htmltemplate
+ variable htmlstart
+ variable mkdocstyle
+
+ array set arg [list -css ""]
+ array set arg $args
+ if {[file extension $filename] eq [file extension $outfile]} {
+ return -code error "Error: infile and outfile must have different file extensions!"
+ }
+ set outmode html
+ if {[file extension $outfile] in [list .md .man]} {
+ set outmode markup
+ }
+ set inmode code
+ if {[file extension $filename] in [list .md .man]} {
+ set inmode markup
+ }
+
+ hook call mkdoc::mkdoc Processing $filename $inmode $outmode
+
+ set markdown ""
+ if [catch {
+ open $filename r
+ } infh] {
+ return -code error "Cannot open $filename: $infh"
+ } else {
+ set flag false
+ while {[gets $infh line] >= 0} {
+ if {[regexp {^\s*#' +#include +"(.*)"} $line -> include]} {
+ if [catch {
+ open $include r
+ } iinfh] {
+ return -code error "Cannot open include file $include: $iinfh"
+ } else {
+ #set ilines [read $iinfh]
+ while {[gets $iinfh iline] >= 0} {
+ # Process line
+ append markdown "$iline\n"
+ }
+ close $iinfh
+ }
+ } elseif {$inmode eq "code" && [regexp {^\s*#' ?(.*)} $line -> md]} {
+ append markdown "$md\n"
+ } elseif {$inmode eq "markup"} {
+ append markdown "$line\n"
+ }
+ }
+ close $infh
+ set yamldict \
+ [dict create \
+ title "Documentation [file tail [file rootname $filename]]" \
+ author NN \
+ date [clock format [clock seconds] -format "%Y-%m-%d"] \
+ css mkdoc.css]
+
+ hook call mkdoc::mkdoc Header/Defaults $yamldict
+
+ set mdhtml ""
+ set yamlflag false
+ set yamltext ""
+ set hasyaml false
+ set indent ""
+ set header $htmltemplate
+ set lnr 0
+ foreach line [split $markdown "\n"] {
+ incr lnr
+ if {$lnr < 5 && !$yamlflag && [regexp {^---} $line]} {
+ set yamlflag true
+ } elseif {$yamlflag && [regexp {^---} $line]} {
+ set hasyaml true
+
+ set yamldict [dict merge $yamldict [yaml::yaml2dict $yamltext]]
+
+ hook call mkdoc::mkdoc Header/YAML $yamldict
+
+ set yamlflag false
+ } elseif {$yamlflag} {
+ append yamltext "$line\n"
+ } else {
+ set line [regsub -all {!\[\]\((.+?)\)} $line ""]
+ append mdhtml "$indent$line\n"
+ }
+ }
+ if {$arg(-css) ne ""} {
+ dict set yamldict css $arg(-css)
+ }
+
+ # Regenerate yamltext from the final dict (to report the final CSS reference)
+ set yamltext "---\n"
+ foreach k [lsort -dict [dict keys $yamldict]] {
+ append yamltext "${k}: [dict get $yamldict $k]\n"
+ }
+ append yamltext "---"
+
+ hook call mkdoc::mkdoc Header/Final $yamldict
+
+ set style
+
+ if {$outmode eq "html"} {
+ if {[dict get $yamldict css] ne "mkdoc.css"} {
+ # Switch from embedded style to external link
+ set style ""
+ }
+ set html [Markdown::convert $mdhtml]
+ set out [open $outfile w 0644]
+ foreach key [dict keys $yamldict] {
+ set document($key) [dict get $yamldict $key]
+ }
+ if {![dict exists $yamldict date]} {
+ dict set yamldict date [clock format [clock seconds]]
+ }
+ set header [subst -nobackslashes -nocommands $header]
+ puts $out $header
+ if {$hasyaml} {
+ set start [subst -nobackslashes -nocommands $htmlstart]
+ puts $out $start
+ }
+ puts $out $html
+ puts $out "\n"
+ close $out
+ } else {
+ set out [open $outfile w 0644]
+ puts $out $yamltext
+ puts $out $mdhtml
+ close $out
+ }
+
+ hook call mkdoc::mkdoc Done $outfile
+ }
+}
+
+#'
+#'
+#' **mkdoc::run** *infile*
+#'
+#' > Source the code in infile and runs the examples in the documentation section
+#' written with Markdown documentation. Below follows an example section which can be
+#' run with `tclsh mkdoc.tcl mkdoc.tcl --run`
+#'
+#' ## EXAMPLE
+#'
+#' ```
+#' puts "Hello mkdoc package"
+#' puts "I am in the example section"
+#' ```
+#'
+proc ::mkdoc::run {argv} {
+ set filename [lindex $argv 0]
+ if {[llength $argv] == 3} {
+ set t [lindex $argv 2]
+ } else {
+ set t 1
+ }
+ source $filename
+ set extext ""
+ set example false
+ set excode false
+ if [catch {
+ open $filename r
+ } infh] {
+ return -code error "Cannot open $filename: $infh"
+ } else {
+ while {[gets $infh line] >= 0} {
+ # Process line
+ if {$extext eq "" && \
+ [regexp -nocase {^\s*#'\s+#{2,3}\s.+Example} $line]} {
+ set example true
+ } elseif {$extext ne "" && \
+ [regexp -nocase "^\\s*#'.*\\s# demo: $extext" $line]} {
+ set excode true
+ } elseif {$example && [regexp {^\s*#'\s+>?\s*```} $line]} {
+ set example false
+ set excode true
+ } elseif {$excode && [regexp {^\s*#'\s+>?\s*```} $line]} {
+ namespace eval :: $code
+ break
+ # eval code
+ } elseif {$excode && [regexp {^\s*#'\s(.+)} $line -> c]} {
+ append code "$c\n"
+ }
+ }
+ close $infh
+ if {$t > -1} {
+ catch {
+ update idletasks
+ after [expr {$t*1000}]
+ destroy .
+ }
+ }
+ }
+}
+
+#'
+#' ## BASIC FORMATTING
+#'
+#' For a complete list of Markdown formatting commands consult the basic Markdown syntax at [https://daringfireball.net](https://daringfireball.net/projects/markdown/syntax).
+#' Here just the most basic essentials to create documentation are described.
+#' Please note, that formatting blocks in Markdown are separated by an empty line, and empty line in this documenting mode is a line prefixed with the `#'` and nothing thereafter.
+#'
+#' **Title and Author**
+#'
+#' Title and author can be set at the beginning of the documentation in a so called YAML header.
+#' This header will be as well used by the document converter [pandoc](https://pandoc.org) to handle various options for later processing if you extract not HTML but Markdown code from your documentation.
+#'
+#' A YAML header starts and ends with three hyphens. Here is the YAML header of this document:
+#'
+#' ```
+#' #' ---
+#' #' title: mkdoc - Markdown extractor and formatter
+#' #' author: Dr. Detlef Groth, Schwielowsee, Germany
+#' #' ---
+#' ```
+#'
+#' Those four lines produce the two lines on top of this document. You can extend the header if you would like to process your document after extracting the Markdown with other tools, for instance with Pandoc.
+#'
+#' You can as well specify an other style sheet, than the default by adding
+#' the following style information:
+#'
+#' ```
+#' #' ---
+#' #' title: mkdoc - Markdown extractor and formatter
+#' #' author: Dr. Detlef Groth, Schwielowsee, Germany
+#' #' css: tufte.css
+#' #' ---
+#' ```
+#'
+#' Please note, that the indentation is required and it is two spaces.
+#'
+#' **Headers**
+#'
+#' Headers are prefixed with the hash symbol, single hash stands for level 1 heading, double hashes for level 2 heading, etc.
+#' Please note, that the embedded style sheet centers level 1 and level 3 headers, there are intended to be used
+#' for the page title (h1), author (h3) and date information (h3) on top of the page.
+#'
+#' ```
+#' #' ## Section title
+#' #'
+#' #' Some free text that follows after the required empty
+#' #' line above ...
+#' ```
+#'
+#' This produces a level 2 header. Please note, if you have a section name `synopsis` the code fragments thereafer will be hilighted different than the other code fragments. You should only use level 2 and 3 headers for the documentation. Level 1 header are reserved for the title.
+#'
+#' **Lists**
+#'
+#' Lists can be given either using hyphens or stars at the beginning of a line.
+#'
+#' ```
+#' #' - item 1
+#' #' - item 2
+#' #' - item 3
+#' ```
+#'
+#' Here the output:
+#'
+#' - item 1
+#' - item 2
+#' - item 3
+#'
+#' A special list on top of the help page could be the table of contents list. Here is an example:
+#'
+#' ```
+#' #' ## Table of Contents
+#' #'
+#' #' - [Synopsis](#synopsis)
+#' #' - [Description](#description)
+#' #' - [Command](#command)
+#' #' - [Example](#example)
+#' #' - [Authors](#author)
+#' ```
+#'
+#' This will produce in HTML mode a clickable hyperlink list. You should however create
+#' the name targets using html code like so:
+#'
+#' ```
+#' ## Synopsis
+#' ```
+#'
+#' **Hyperlinks**
+#'
+#' Hyperlinks are written with the following markup code:
+#'
+#' ```
+#' [Link text](URL)
+#' ```
+#'
+#' Let's link to the Tcler's Wiki:
+#'
+#' ```
+#' [Tcler's Wiki](https://wiki.tcl-lang.org/)
+#' ```
+#'
+#' produces: [Tcler's Wiki](https://wiki.tcl-lang.org/)
+#'
+#' **Indentations**
+#'
+#' Indentations are achieved using the greater sign:
+#'
+#' ```
+#' #' Some text before
+#' #'
+#' #' > this will be indented
+#' #'
+#' #' This will be not indented again
+#' ```
+#'
+#' Here the output:
+#'
+#' Some text before
+#'
+#' > this will be indented
+#'
+#' This will be not indented again
+#'
+#' Also lists can be indented:
+#'
+#' ```
+#' > - item 1
+#' - item 2
+#' - item 3
+#' ```
+#'
+#' produces:
+#'
+#' > - item 1
+#' - item 2
+#' - item 3
+#'
+#' **Fontfaces**
+#'
+#' Italic font face can be requested by using single stars or underlines at the beginning
+#' and at the end of the text. Bold is achieved by dublicating those symbols:
+#' Monospace font appears within backticks.
+#' Here an example:
+#'
+#' ```
+#' #' > I am _italic_ and I am __bold__! But I am programming code: `ls -l`
+#' ```
+#'
+#' > I am _italic_ and I am __bold__! But I am programming code: `ls -l`
+#'
+#' **Code blocks**
+#'
+#' Code blocks can be started using either three or more spaces after the #' sequence
+#' or by embracing the code block with triple backticks on top and on bottom. Here an example:
+#'
+#' ```
+#' #' ```
+#' #' puts "Hello World!"
+#' #' ```
+#' ```
+#'
+#' Here the output:
+#'
+#' ```
+#' puts "Hello World!"
+#' ```
+#'
+#' **Images**
+#'
+#' If you insist on images in your documentation, images can be embedded in Markdown with a syntax close to links.
+#' The links here however start with an exclamation mark:
+#'
+#' ```
+#' #' ![image caption](filename.png)
+#' ```
+#'
+#' The source code of mkdoc.tcl is a good example for usage of this source code
+#' annotation tool. Don't overuse the possibilities of Markdown, sometimes less is more.
+#' Write clear and concise, don't use fancy visual effects.
+#'
+#' **Includes**
+#'
+#' mkdoc in contrast to standard markdown as well support includes. Using the `#' #include "filename.md"` syntax
+#' it is possible to include other markdown files. This might be useful for instance to include the same
+#' header or a footer in a set of related files.
+#'
+#' ## INSTALLATION
+#'
+#' The mkdoc::mkdoc package can be installed either as command line application or as a Tcl module. It requires the markdown, cmdline, yaml and textutils packages from tcllib to be installed.
+#'
+#' Installation as command line application is easiest by downloading the file [mkdoc-0.6.bin](https://raw.githubusercontent.com/mittelmark/DGTcl/master/bin/mkdoc-0.6.bin), which
+#' contains the main script file and all required libraries, to your local machine. Rename this file to mkdoc, make it executable and coy it to a folder belonging to your PATH variable.
+#'
+#' Installation as command line application can be as well done by copying the `mkdoc.tcl` as
+#' `mkdoc` to a directory which is in your executable path. You should make this file executable using `chmod`.
+#'
+#' Installation as Tcl package by copying the mkdoc folder to a folder
+#' which is in your library path for Tcl. Alternatively you can install it as Tcl mode by copying it
+#' in your module path as `mkdoc-0.6.0.tm` for instance. See the [tm manual page](https://www.tcl.tk/man/tcl8.6/TclCmd/tm.htm)
+#'
+#' ## SEE ALSO
+#'
+#' - [tcllib](https://core.tcl-lang.org/tcllib/doc/trunk/embedded/index.md) for the Markdown and the textutil packages
+#' - [pandoc](https://pandoc.org) - a universal document converter
+#' - [Ruff!](https://github.com/apnadkarni/ruff) Ruff! documentation generator for Tcl using Markdown syntax as well
+
+#'
+#' ## CHANGES
+#'
+#' - 2019-11-19 Release 0.1
+#' - 2019-11-22 Adding direct conversion from Markdown files to HTML files.
+#' - 2019-11-27 Documentation fixes
+#' - 2019-11-28 Kit version
+#' - 2019-11-28 Release 0.2 to fossil
+#' - 2019-12-06 Partial R-Roxygen/Markdown support
+#' - 2020-01-05 Documentation fixes and version information
+#' - 2020-02-02 Adding include syntax
+#' - 2020-02-26 Adding stylesheet option --css
+#' - 2020-02-26 Adding files pandoc.css and dgw.css
+#' - 2020-02-26 Making standalone file using pkgDeps and mk_tm
+#' - 2020-02-26 Release 0.3 to fossil
+#' - 2020-02-27 support for \_\_DATE\_\_, \_\_PKGNAME\_\_, \_\_PKGVERSION\_\_ macros in Tcl code based on package provide line
+#' - 2020-09-01 Roxygen2 plugin
+#' - 2020-11-09 argument --run supprt
+#' - 2020-11-10 Release 0.4
+#' - 2020-11-11 command line option --run with seconds
+#' - 2020-12-30 Release 0.5 (rox2md @section support with preformatted, emph and strong/bold)
+#' - 2022-02-11 Release 0.6.0
+#' - parsing yaml header
+#' - workaround for images
+#' - making standalone using tpack.tcl [mkdoc-0.6.bin](https://github.com/mittelmark/DGTcl/blob/master/bin/mkdoc-0.6.bin)
+#' - terminal help update and cleanup
+#' - moved to Github in Wiki
+#' - code cleanup
+#' - 2022-04-XX Release 0.7.0
+#' - removing features to simplify the code, so removed plugin support, underline placeholder and sorting facilitites to reduce code size
+#' - creating tcllib compatible manual page
+#'
+#' ## TODO
+#'
+#' - dtplite support ?
+#'
+#' ## AUTHOR(s)
+#'
+#' The **mkdoc::mkdoc** package was written by Dr. Detlef Groth, Schwielowsee, Germany.
+#'
+#' ## LICENSE AND COPYRIGHT
+#'
+#' Markdown extractor and converter mkdoc::mkdoc, version 0.7.0
+#'
+#' Copyright (c) 2019-22 Detlef Groth, E-mail:
+#'
+#' BSD License type:
+
+#' Sun Microsystems, Inc. The following terms apply to all files a ssociated
+#' with the software unless explicitly disclaimed in individual files.
+
+#' The authors hereby grant permission to use, copy, modify, distribute, and
+#' license this software and its documentation for any purpose, provided that
+#' existing copyright notices are retained in all copies and that this notice
+#' is included verbatim in any distributions. No written agreement, license,
+#' or royalty fee is required for any of the authorized uses. Modifications to
+#' this software may be copyrighted by their authors and need not follow the
+#' licensing terms described here, provided that the new terms are clearly
+#' indicated on the first page of each file where they apply.
+#'
+#' In no event shall the authors or distributors be liable to any party for
+#' direct, indirect, special, incidental, or consequential damages arising out
+#' of the use of this software, its documentation, or any derivatives thereof,
+#' even if the authors have been advised of the possibility of such damage.
+#'
+#' The authors and distributors specifically disclaim any warranties,
+#' including, but not limited to, the implied warranties of merchantability,
+#' fitness for a particular purpose, and non-infringement. This software is
+#' provided on an "as is" basis, and the authors and distributors have no
+#' obligation to provide maintenance, support, updates, enhancements, or
+#' modifications.
+#'
+#' RESTRICTED RIGHTS: Use, duplication or disclosure by the government is
+#' subject to the restrictions as set forth in subparagraph (c) (1) (ii) of
+#' the Rights in Technical Data and Computer Software Clause as DFARS
+#' 252.227-7013 and FAR 52.227-19.
+
+
ADDED modules/mkdoc/pkgIndex.tcl
Index: modules/mkdoc/pkgIndex.tcl
==================================================================
--- /dev/null
+++ modules/mkdoc/pkgIndex.tcl
@@ -0,0 +1,2 @@
+if {![package vsatisfies [package require Tcl] 8.6]} {return}
+package ifneeded mkdoc 0.7.0 [list source [file join $dir mkdoc.tcl]]
Index: modules/rest/pkgIndex.tcl
==================================================================
--- modules/rest/pkgIndex.tcl
+++ modules/rest/pkgIndex.tcl
@@ -1,2 +1,2 @@
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
-package ifneeded rest 1.4 [list source [file join $dir rest.tcl]]
+package ifneeded rest 1.5 [list source [file join $dir rest.tcl]]
Index: modules/rest/rest.man
==================================================================
--- modules/rest/rest.man
+++ modules/rest/rest.man
@@ -1,7 +1,7 @@
[comment {-*- tcl -*- doctools manpage}]
-[vset VERSION 1.4]
+[vset VERSION 1.5]
[manpage_begin rest n [vset VERSION]]
[moddesc {A framework for RESTful web services}]
[titledesc {define REST web APIs and call them inline or asychronously}]
[require Tcl 8.5]
[require rest [opt [vset VERSION]]]
@@ -329,10 +329,15 @@
The user may configure the [term {basic authentication}] by overriding
the procedure [cmd basic_auth] in the namespace of interface. This
procedure takes two arguments, the username and password, in this
order.
+[def [const bearer]]
+
+The user may configure a bearer token as authentication. The value is
+the token passed to the HTTP authorization header.
+
[def [const sign]]
The value must actually be a list with the second element the name of
a procedure which will be called to perform request signing.
Index: modules/rest/rest.tcl
==================================================================
--- modules/rest/rest.tcl
+++ modules/rest/rest.tcl
@@ -8,11 +8,11 @@
package require http 2.7
package require json
package require tdom
package require base64
-package provide rest 1.4
+package provide rest 1.5
namespace eval ::rest {
namespace export create_interface parameters parse_opts save \
describe substitute
}
@@ -54,11 +54,13 @@
if {[dict exists $config auth]} {
set auth [dict get $config auth]
if {[lindex $auth 0] == "basic"} {
lappend headers Authorization "Basic [base64::encode [lindex $auth 1]:[lindex $auth 2]]"
- }
+ } elseif {[lindex $auth 0] == "bearer"} {
+ lappend headers Authorization "Bearer [lindex $auth 1]"
+ }
}
if {[dict exists $config content-type]} {
lappend headers Content-type [join [dict get $config content-type] \;]
}
if {[dict exists $config headers]} {
Index: modules/struct/list.tcl
==================================================================
--- modules/struct/list.tcl
+++ modules/struct/list.tcl
@@ -1829,6 +1829,6 @@
namespace eval ::struct {
# Get 'list::list' into the general structure namespace.
namespace import -force list::list
namespace export list
}
-package provide struct::list 1.8.4
+package provide struct::list 1.8.5
Index: modules/struct/pkgIndex.tcl
==================================================================
--- modules/struct/pkgIndex.tcl
+++ modules/struct/pkgIndex.tcl
@@ -15,11 +15,11 @@
package ifneeded struct::graph 1.2.1 [list source [file join $dir graph1.tcl]]
package ifneeded struct::tree 1.2.2 [list source [file join $dir tree1.tcl]]
package ifneeded struct::matrix 1.2.2 [list source [file join $dir matrix1.tcl]]
if {![package vsatisfies [package provide Tcl] 8.4]} {return}
-package ifneeded struct::list 1.8.4 [list source [file join $dir list.tcl]]
+package ifneeded struct::list 1.8.5 [list source [file join $dir list.tcl]]
package ifneeded struct::list::test 1.8.4 [list source [file join $dir list.test.tcl]]
package ifneeded struct::graph 2.4.3 [list source [file join $dir graph.tcl]]
package ifneeded struct::map 1 [list source [file join $dir map.tcl]]
if {![package vsatisfies [package provide Tcl] 8.5]} {return}
Index: modules/struct/struct_list.man
==================================================================
--- modules/struct/struct_list.man
+++ modules/struct/struct_list.man
@@ -1,8 +1,7 @@
[comment {-*- tcl -*- doctools manpage}]
-[comment {$Id: struct_list.man,v 1.24 2010/10/05 21:47:25 andreas_kupries Exp $}]
-[vset LIST_VERSION 1.8.4]
+[vset LIST_VERSION 1.8.5]
[manpage_begin struct::list n [vset LIST_VERSION]]
[keywords assign]
[keywords common]
[keywords comparison]
[keywords diff]
Index: modules/tar/tar.man
==================================================================
--- modules/tar/tar.man
+++ modules/tar/tar.man
@@ -1,7 +1,7 @@
+[comment {-*- mode: tcl ; fill-column: 80 -*- doctools manpage}]
[vset PACKAGE_VERSION 0.11]
-[comment {-*- tcl -*- doctools manpage}]
[manpage_begin tar n [vset PACKAGE_VERSION]]
[keywords archive]
[keywords {tape archive}]
[keywords tar]
[moddesc {Tar file handling}]
@@ -9,15 +9,48 @@
[category {File formats}]
[require Tcl 8.4]
[require tar [opt [vset PACKAGE_VERSION]]]
[description]
-[para] Note: Starting with version 0.8 the tar reader commands
-(contents, stats, get, untar) support the GNU LongName extension
-(header type 'L') for large paths.
+[para] [strong Note]: Starting with version 0.8 the tar reader commands
+(contents, stats, get, untar) support the GNU LongName extension (header type
+'L') for large paths.
+
+[para]
+
+[section BEWARE]
+
+For all commands, when using [option -chan] ...
+
+[list_begin enumerated]
+
+[enum] It is assumed that the channel was opened for reading, and configured for
+ binary input.
+
+[enum] It is assumed that the channel position is at the beginning of a legal
+ tar file.
+
+[enum] The commands will [emph modify] the channel position as they perform their
+ task.
+
+[enum] The commands will [emph not] close the channel.
+
+[enum] In other words, the commands leave the channel in a state very likely
+ unsuitable for use by further [cmd tar] commands. Still doing so will
+ very likely results in errors, bad data, etc. pp.
+
+[enum] It is the responsibility of the user to seek the channel back to a
+ suitable position.
+
+[enum] When using a channel transformation which is not generally seekable, for
+ example [cmd gunzip], then it is the responsibility of the user to (a)
+ unstack the transformation before seeking the channel back to a suitable
+ position, and (b) for restacking it after.
+
+[list_end]
-[para]
+[section COMMANDS]
[list_begin definitions]
[call [cmd ::tar::contents] [arg tarball] [opt [option -chan]]]
Index: modules/websocket/pkgIndex.tcl
==================================================================
--- modules/websocket/pkgIndex.tcl
+++ modules/websocket/pkgIndex.tcl
@@ -1,11 +1,2 @@
-# Tcl package index file, version 1.1
-# This file is generated by the "pkg_mkIndex" command
-# and sourced either when an application starts up or
-# by a "package unknown" script. It invokes the
-# "package ifneeded" command to set up package-related
-# information so that packages will be loaded automatically
-# in response to "package require" commands. When this
-# script is sourced, the variable $dir must contain the
-# full path name of this file's directory.
-
-package ifneeded websocket 1.4.1 [list source [file join $dir websocket.tcl]]
+if {![package vsatisfies [package provide Tcl] 8.5]} {return}
+package ifneeded websocket 1.4.2 [list source [file join $dir websocket.tcl]]
Index: modules/websocket/websocket.man
==================================================================
--- modules/websocket/websocket.man
+++ modules/websocket/websocket.man
@@ -1,7 +1,7 @@
[comment {-*- tcl -*- doctools manpage}]
-[vset WEBSOCKET_VERSION 1.3.1]
+[vset WEBSOCKET_VERSION 1.4.2]
[manpage_begin websocket n [vset WEBSOCKET_VERSION]]
[see_also http]
[keywords http]
[keywords internet]
[keywords net]
Index: modules/websocket/websocket.tcl
==================================================================
--- modules/websocket/websocket.tcl
+++ modules/websocket/websocket.tcl
@@ -375,13 +375,10 @@
if {"upgrade" eq [ASCIILowercase $v]} {
set upgrading 1
break
}
}
- if {!$upgrading} {
- ThrowError "No 'Connect' header with 'upgrade' token found" HANDSHAKE CONNECTION
- }
}
upgrade {
# May be a list, see
# and
# .
@@ -431,10 +428,13 @@
}
dict lappend res protocols {*}$protocols;
}
}
}
+ if {!$upgrading} {
+ ThrowError "No 'Connect' header with 'upgrade' token found" HANDSHAKE CONNECTION
+ }
if {![dict exists $res version]} {
ThrowError "No WebSocket version specified" HANDSHAKE VERSION
}
if {![dict exists $res key]} {
ThrowError "No WebSocket key specified" HANDSHAKE KEY
@@ -1752,6 +1752,6 @@
-code error \
-errorcode [list WEBSOCKET {*}$args] \
$msg;
}
-package provide websocket 1.4.1
+package provide websocket 1.4.2
Index: support/devel/sak/doc/kwic.txt
==================================================================
--- support/devel/sak/doc/kwic.txt
+++ support/devel/sak/doc/kwic.txt
@@ -487,14 +487,14 @@
[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/dtplite/pkg_dtplite.man pkg_dtplite]
[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]
@@ -722,12 +722,12 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_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]
@@ -761,12 +761,12 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_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]
@@ -818,12 +818,12 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_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]
@@ -1353,13 +1353,13 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_dtplite]
[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]
@@ -1769,13 +1769,13 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_dtplite]
[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]
@@ -1814,13 +1814,13 @@
[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 modules/dtplite/pkg_dtplite.man pkg_dtplite]
[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]
@@ -2091,13 +2091,13 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_dtplite]
[key NTLM]
[manpage modules/sasl/ntlm.man SASL::NTLM]
[key NTP]
[manpage modules/ntp/ntp_time.man ntp_time]
[key null]
@@ -3431,13 +3431,13 @@
[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]
+[manpage modules/dtplite/pkg_dtplite.man pkg_dtplite]
[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]
Index: support/devel/sak/doc/manpages.txt
==================================================================
--- support/devel/sak/doc/manpages.txt
+++ support/devel/sak/doc/manpages.txt
@@ -1,6 +1,7 @@
apps/dtplite.man
+apps/mkdoc.man
apps/nns.man
apps/nnsd.man
apps/nnslog.man
apps/page.man
apps/pt.man
@@ -215,10 +216,11 @@
modules/md4/md4.man
modules/md5/md5.man
modules/md5crypt/md5crypt.man
modules/mime/mime.man
modules/mime/smtp.man
+modules/mkdoc/mkdoc.man
modules/multiplexer/multiplexer.man
modules/namespacex/namespacex.man
modules/ncgi/ncgi.man
modules/nettool/nettool.man
modules/nmea/nmea.man
Index: support/devel/sak/doc/toc.txt
==================================================================
--- support/devel/sak/doc/toc.txt
+++ support/devel/sak/doc/toc.txt
@@ -130,13 +130,13 @@
[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 modules/dtplite/pkg_dtplite.man pkg_dtplite {Lightweight DocTools 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]
@@ -417,10 +417,12 @@
[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/markdown/markdown.man markdown {Converts Markdown text to HTML}]
[item modules/mime/mime.man mime {Manipulation of MIME body parts}]
+[item modules/mkdoc/mkdoc.man mkdoc {Extracts and optionally converts Markdown comments in source code to HTML}]
+[item apps/mkdoc.man mkdoc {Source code documentation extractor/converter application}]
[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}]
@@ -496,10 +498,11 @@
[division_end]
[division_end]
[division_start {By Type}]
[division_start Applications]
[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}]
+[item apps/mkdoc.man mkdoc {Source code documentation extractor/converter application}]
[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}]
@@ -680,11 +683,11 @@
[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}]
+[item modules/dtplite/pkg_dtplite.man pkg_dtplite {Lightweight DocTools Markup Processor}]
[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}]
@@ -848,10 +851,13 @@
[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 mkdoc]
+[item modules/mkdoc/mkdoc.man mkdoc {Extracts and optionally converts Markdown comments in source code to HTML}]
+[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}]
Index: support/devel/sak/doc/toc_apps.txt
==================================================================
--- support/devel/sak/doc/toc_apps.txt
+++ support/devel/sak/doc/toc_apps.txt
@@ -1,8 +1,9 @@
[toc_begin {Table Of Contents} {}]
[division_start Applications]
[item apps/dtplite.man dtplite {Lightweight DocTools Markup Processor}]
+[item apps/mkdoc.man mkdoc {Source code documentation extractor/converter application}]
[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}]
Index: support/devel/sak/doc/toc_cats.txt
==================================================================
--- support/devel/sak/doc/toc_cats.txt
+++ support/devel/sak/doc/toc_cats.txt
@@ -130,13 +130,13 @@
[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 modules/dtplite/pkg_dtplite.man pkg_dtplite {Lightweight DocTools 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]
@@ -417,10 +417,12 @@
[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/markdown/markdown.man markdown {Converts Markdown text to HTML}]
[item modules/mime/mime.man mime {Manipulation of MIME body parts}]
+[item modules/mkdoc/mkdoc.man mkdoc {Extracts and optionally converts Markdown comments in source code to HTML}]
+[item apps/mkdoc.man mkdoc {Source code documentation extractor/converter application}]
[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}]
Index: support/devel/sak/doc/toc_mods.txt
==================================================================
--- support/devel/sak/doc/toc_mods.txt
+++ support/devel/sak/doc/toc_mods.txt
@@ -174,11 +174,11 @@
[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}]
+[item modules/dtplite/pkg_dtplite.man pkg_dtplite {Lightweight DocTools Markup Processor}]
[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}]
@@ -342,10 +342,13 @@
[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 mkdoc]
+[item modules/mkdoc/mkdoc.man mkdoc {Extracts and optionally converts Markdown comments in source code to HTML}]
+[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}]
Index: support/devel/sak/readme/readme.tcl
==================================================================
--- support/devel/sak/readme/readme.tcl
+++ support/devel/sak/readme/readme.tcl
@@ -220,11 +220,14 @@
CNT add row [list $np {packages, total} in $nm {modules, total}]
Table CNT Overview {
CNT delete row 0 ; # strip title row
- } {}
+ } {
+ set align [lreplace $align 0 0 r]
+ set align [lreplace $align 3 3 r]
+ }
Table LEG Legend {
Sep LEG - 1
} {
}
@@ -287,14 +290,22 @@
txt {
uplevel 1 $pretxt
puts [Indent " " [Detrail [$obj format 2string]]]
}
md {
+ upvar 1 align align
+ # Column alignment setup.
+ set align [lrepeat [$obj columns] l]
+
uplevel 1 $premd
# Header row, then separator, then the remainder.
puts |[join [$obj get row 0] |]|
- puts |[join [lrepeat [$obj columns] ---] |]|
+ puts |[join [string map {
+ c ---
+ l :---
+ r ---:
+ } $align] |]|
set n [$obj rows]
for {set i 1} {$i < $n} {incr i} {
puts |[join [$obj get row $i] |]|
}
}
Index: support/devel/sak/review/review.tcl
==================================================================
--- support/devel/sak/review/review.tcl
+++ support/devel/sak/review/review.tcl
@@ -1,8 +1,8 @@
# -*- tcl -*-
# # ## ### ##### ######## ############# #####################
-# (C) 2013 Andreas Kupries
+# (C) 2013-2022 Andreas Kupries
##
# ###
package require linenoise
package require sak::color
@@ -58,21 +58,28 @@
# 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
+
+ #puts T:($trunk)\t($tuid)
+ #puts Y:($release)\t($ruid)
+
AllParentsAfter $trunk $tuid $release $ruid -> rid uuid numparents {
- Next ; Progress " $rid"
+ Next ; Progress " $rid $uuid"
if {$numparents > 1} {
Progress " SKIP"
} else {
# Consider only commits with one parent, i.e. non-merges,
# as possible contributors to modules and packages.
set d [Description $rid]
Progress " D"
+
+ set ts [Timestamp $rid]
+ Progress " $ts"
# Determine file set, split by modules, then generate a package of
# uuid, description and filtered files per modules touched.
array set fs {}
@@ -81,11 +88,11 @@
Progress .
set px [file split $path]
set themodule [lindex $px 1]
lappend modifiedm $themodule
- lappend cm($themodule) $d
+ lappend cm($themodule) "($ts) $d"
# ignore files in modules/
if {[llength $px] < 3} continue
#puts $themodule||$rid||$action|$px|
@@ -93,12 +100,13 @@
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 \[htts://core.tcl.tk/tcllib/info/$uuid\]\n$d\n\n[join [lsort -dict $files] \n]
+ set str "($ts)\n\[https://core.tcl-lang.org/tcllib/info/$uuid\]\n$d\n\n[join [lsort -dict [lsort -unique $files]] \n]"
lappend rm($m) $str
+ set rm($m) [lsort $rm($m)]
}
unset fs
}
}
@@ -311,11 +319,11 @@
END
FROM mlink, filename
WHERE mlink.mid = @rid@
AND mlink.fnid = filename.fnid
ORDER BY filename.name;
- }]]] \n] {
+ }] file-set]] \n] {
foreach {thepath theaction} [split $line |] break
# ignore all changes not in modules
if {![string match modules* $thepath]} continue
uplevel 1 $script
}
@@ -327,14 +335,25 @@
string trim [F [string map $map {
SELECT coalesce(event.ecomment,event.comment)
FROM event
WHERE event.objid = @rid@
;
- }]]
+ }] description]
+}
+
+proc ::sak::review::Timestamp {rid} {
+ lappend map @rid@ $rid
+ string trim [F [string map $map {
+ SELECT datetime(event.mtime)
+ FROM event
+ WHERE event.objid = @rid@
+ ;
+ }] timestamp]
}
proc ::sak::review::AllParentsAfter {rid ruid cut cutuid _ rv uv nv script} {
+ #puts X:[info level 0]
upvar 1 $rv therev $uv theuid $nv thenump
array set rev {}
set rev($rid) .
lappend front $rid
@@ -390,23 +409,24 @@
WHERE plink.cid = @rid@
AND plink.pid = blob.rid
AND plink.pid = event.objid
AND event.mtime > @cutoff@
;
- }]] \n
+ }] parents] \n
}
proc ::sak::review::AllParents {rid} {
+ #puts X:[info level 0]
lappend map @rid@ $rid
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
;
- }]] \n
+ }] all-parents] \n
}
proc ::sak::review::YoungestOfTag {tag} {
lappend map @tag@ $tag
puts stderr "last $tag = [F [string map $map {
@@ -418,11 +438,11 @@
AND tagxref.rid = event.objid
AND event.type = 'ci'
ORDER BY event.mtime DESC
LIMIT 1
;
- }]]"
+ }] youngest-tag]"
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
@@ -431,31 +451,36 @@
AND event.type = 'ci'
AND blob.rid = event.objid
ORDER BY event.mtime DESC
LIMIT 1
;
- }]] |
+ }] youngest-tag] |
}
proc ::sak::review::Leaf {branch} {
lappend map @branch@ $branch
- split [F [string map $map {
+ set script [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)
+ ORDER BY blob.rid
+ ;
+ }]
+ set r [split [lindex [split [F $script leaf] \n] end] |]
+
+ #puts ($script)-->($r)
+ return $r
+}
+
+proc ::sak::review::F {script {label unknown}} {
+ #puts stderr $label:|$script|
+ set r [exec fossil sqlite3 << ".mode list\n$script"]
+ #puts stderr =($r)
return $r
}
@@ -592,21 +617,23 @@
variable nr
variable clog
variable rlog
variable what
variable smode
+ variable ip
+ variable np
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]"
+ Banner "(C $ir/$nr) \[M $im/$nm\] [=cya [string totitle $what]] \[P $ip/$np\] [=green $m]"
} else {
- Banner "\[$im/$nm\] [=cya [string totitle $what]] [=green $m]"
+ Banner "\[M $im/$nm\] [=cya [string totitle $what]] \[P $ip/$np\] [=green $m]"
}
puts "| [join [split $text \n] "\n| "]\n"
return
}
@@ -631,15 +658,15 @@
variable nr
variable what
variable m
if {$smode eq "rev"} {
- append p "($ir/$nr) "
+ append p "(C $ir/$nr) "
}
- append p "\[$im/$nm\] [=green $m] [=cya [string totitle $what]] "
- append p "\[$ip/$np\] [=whi $name] ($tags): "
+ append p "\[M $im/$nm\] [=green $m] [=cya [string totitle $what]] "
+ append p "\[P $ip/$np\] [=whi $name] ($tags): "
return $p
}
proc ::sak::review::Complete {line} {
variable allcommands
Index: support/installation/modules.tcl
==================================================================
--- support/installation/modules.tcl
+++ support/installation/modules.tcl
@@ -86,15 +86,15 @@
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 html _tcl _man _null
+Module htmlparse _tcl _man _exa
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
@@ -103,18 +103,19 @@
Module json _tcl _man _null
Module lambda _tcl _man _null
Module lazyset _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 markdown _tcl _man _null
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 mkdoc _tcl _man _null
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
@@ -174,14 +175,15 @@
Module wip _tcl _man _null
Module yaml _tcl _man _null
Module zip _tcl _null _null
Application dtplite
+Application mkdoc
Application nns
Application nnsd
Application nnslog
Application page
Application pt
Application tcldocstrip
# @@ Registration END
# --------------------------------------------------------------
Index: support/installation/version.tcl
==================================================================
--- support/installation/version.tcl
+++ support/installation/version.tcl
@@ -1,6 +1,6 @@
-package_version 1.20
+package_version 1.21
package_name tcllib
dist_exclude config
dist_exclude modules/ftp/example
dist_exclude modules/ftpd/examples
Index: support/releases/PACKAGES
==================================================================
--- support/releases/PACKAGES
+++ support/releases/PACKAGES
@@ -1,8 +1,8 @@
-@@ RELEASE 1.20
+@@ RELEASE 1.21
-Markdown 1.1.1
+Markdown 1.2.2
S3 1.0.3
SASL 1.3.3
SASL::NTLM 1.1.2
SASL::SCRAM 0.1
SASL::XGoogleToken 1.0.1
@@ -11,44 +11,44 @@
asn 0.8.4
autoproxy 1.7
base32 0.1
base32::core 0.1
base32::hex 0.1
-base64 2.4.2
+base64 2.5
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
+bibtex 0.7
blowfish 1.0.5
cache::async 0.3.1
calendar 0.2
-char 1.0.1
+char 1.0.2
cksum 1.1.4
clay 0.8.6
clock::iso8601 0.1
clock::rfc2822 0.1
-cmdline 1.5
-comm 4.6.3.1
+cmdline 1.5.2
+comm 4.7
configuration 1
control 0.1.3
-coroutine 1.2
-coroutine::auto 1.1.3
+coroutine 1.3
+coroutine::auto 1.2
counter 2.0.4
-crc16 1.1.3
-crc32 1.3.2
+crc16 1.1.4
+crc32 1.3.3
cron 2.1
csv 0.8.1
debug 1.0.6
debug::caller 1.1
debug::heartbeat 1.0.1
debug::timestamp 1
defer 1
des 1.1.0
dicttool 1.1
-dns 1.4.1
+dns 1.5.0
docstrip 1.2
docstrip::util 1.3.1
doctools 1.5.6
doctools::changelog 1.1
doctools::config 0.1
@@ -96,24 +96,24 @@
doctools::toc::import::json 0.1
doctools::toc::parse 0.1
doctools::toc::structure 0.1
dtplite 1.3.1
exif 1.1.2
-fileutil 1.16
+fileutil 1.16.1
fileutil::decode 0.2.1
-fileutil::magic::cfront 1.2.0
-fileutil::magic::cgen 1.2.0
-fileutil::magic::filetype 2.0
-fileutil::magic::rt 2.0
+fileutil::magic::cfront 1.3.0
+fileutil::magic::cgen 1.3.0
+fileutil::magic::filetype 2.0.1
+fileutil::magic::rt 3.0
fileutil::multi 0.1
fileutil::multi::op 0.5.3
fileutil::paths 1
fileutil::traverse 0.6
ftp 2.4.13
ftp::geturl 0.2.2
ftpd 1.3
-generator 0.1
+generator 0.2
gpx 1
grammar::aycock 1.0
grammar::aycock::debug 1.0
grammar::aycock::runtime 1.0
grammar::fa 0.5
@@ -125,33 +125,33 @@
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
+hook 0.2
html 1.5
htmlparse 1.2.2
http::wget 0.1
-httpd 4.3.4
-huddle 0.3
+httpd 4.3.5
+huddle 0.4
huddle::json 0.1
ident 0.42
imap4 0.5.3
-inifile 0.3.1
+inifile 0.3.2
interp 0.1.2
interp::delegate::method 0.2
interp::delegate::proc 0.2
ip 1.4
-irc 0.6.2
+irc 0.7.0
javascript 1.0.2
jpeg 0.5
json 1.3.4
-json::write 1.0.3
+json::write 1.0.4
lambda 1
lazyset 1
-ldap 1.9.2
-ldapx 1.1
+ldap 1.10.1
+ldapx 1.2
log 1.4
logger 0.9.4
logger::appender 1.3
logger::utils 1.3.1
map::geocode::nominatim 0.1
@@ -159,53 +159,59 @@
map::slippy::cache 0.2
map::slippy::fetcher 0.4
mapproj 1.0
math 1.2.5
math::PCA 1.0
-math::bigfloat 1.2.2
-math::bigfloat 2.0.2
+math::bigfloat 1.2.3
+math::bigfloat 2.0.3
math::bignum 3.1.1
math::calculus 0.8.2
math::calculus::symdiff 1.0.1
+math::changepoint 0.1
+math::combinatorics 2.0
math::complexnumbers 1.0.2
math::constants 1.0.2
-math::decimal 1.0.3
+math::decimal 1.0.4
math::exact 1.0.1
+math::figurate 1.0
+math::filters 0.1
math::fourier 1.0.2
math::fuzzy 0.2.1
-math::geometry 1.3.1
+math::geometry 1.4.1
math::interpolate 1.1.2
math::linearalgebra 1.1.6
math::machineparameters 0.1
-math::numtheory 1.1.1
+math::numtheory 1.1.3
math::optimize 1.0.1
math::polynomials 1.0.1
+math::probopt 1.0
math::quasirandom 1.0
math::rationalfunctions 1.0.1
math::roman 1.0
-math::special 0.4.0
+math::special 0.5.2
math::statistics 1.5.0
math::trig 1.0
md4 1.0.7
-md5 1.4.4
-md5 2.0.7
+md5 1.4.5
+md5 2.0.8
md5crypt 1.1.0
-mime 1.6.2
+mime 1.7.0
+mkdoc 0.7.0
multiplexer 0.2
nameserv 0.4.2
nameserv::auto 0.3
nameserv::cluster 0.2.5
nameserv::common 0.1
nameserv::server 0.3.2
-namespacex 0.2
+namespacex 0.3
ncgi 1.4.4
nettool 0.5.2
nettool::available_ports 0.1
nmea 1.0.0
nntp 0.2.1
oauth 1.0.3
-odie::processman 0.5
+odie::processman 0.6
oo::dialect 0.3.3
oo::meta 0.7.1
oo::option 0.3.1
oo::util 1.2.2
otp 1.0.0
@@ -248,21 +254,21 @@
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.2
-pki 0.10
+picoirc 0.13.0
+pki 0.20
pluginmgr 0.3
png 0.3
-pop3 1.9
+pop3 1.10
pop3d 1.1.0
pop3d::dbox 1.0.2
pop3d::udb 1.1
practcl 0.16.4
-processman 0.5
-profiler 0.4
+processman 0.6
+profiler 0.6
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
@@ -297,20 +303,21 @@
pt::util 1.1
rc4 1.1.0
rcs 0.1
report 0.3.2
resolv 1.0.3
-rest 1.3.1
+rest 1.5
ripemd128 1.0.5
ripemd160 1.0.5
sha1 1.1.1
sha1 2.0.4
sha256 1.0.4
+sha256c 1.0.4
simulation::annealing 0.2
simulation::montecarlo 0.1
simulation::random 0.4.0
-smtp 1.5
+smtp 1.5.1
smtpd 1.5
snit 1.4.2
snit 2.3.2
soundex 1.0
spf 1.1.1
@@ -323,11 +330,12 @@
struct 2.1
struct::disjointset 1.1
struct::graph 1.2.1
struct::graph 2.4.3
struct::graph::op 0.11.3
-struct::list 1.8.4
+struct::list 1.8.5
+struct::list::test 1.8.4
struct::map 1
struct::matrix 1.2.2
struct::matrix 2.0.4
struct::pool 1.2.3
struct::prioqueue 1.4
@@ -345,11 +353,11 @@
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.0.1
+tcl::chan::halfpipe 1.0.2
tcl::chan::memchan 1.0.4
tcl::chan::null 1
tcl::chan::nullzero 1
tcl::chan::random 1
tcl::chan::std 1.0.1
@@ -376,11 +384,11 @@
tepam 0.5.2
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::ctrl 0.3
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
@@ -397,17 +405,17 @@
textutil::string 0.8
textutil::tabify 0.7
textutil::trim 0.7
textutil::wcswidth 35.1
throw 1
-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.1
+tie 1.2
+tie::std::array 1.1
+tie::std::dsource 1.1
+tie::std::file 1.1
+tie::std::growfile 1.1
+tie::std::log 1.1
+tie::std::rarray 1.1
tiff 0.2.1
time 1.2.1
tool 0.7
transfer::connect 0.2
transfer::copy 0.3
@@ -439,14 +447,14 @@
valtype::isbn 1
valtype::luhn 1
valtype::luhn5 1
valtype::usnpi 1
valtype::verhoeff 1
-websocket 1.4.1
+websocket 1.4.2
wip 1.2
wip 2.2
xsxp 1.0
yaml 0.4.1
yencode 1.1.3
-zipfile::decode 0.7.1
+zipfile::decode 0.9
zipfile::encode 0.4
zipfile::mkzip 1.2.1
ADDED support/releases/history/README-1.21.md
Index: support/releases/history/README-1.21.md
==================================================================
--- /dev/null
+++ support/releases/history/README-1.21.md
@@ -0,0 +1,332 @@
+Overview
+========
+
+||||||
+|---:|:---|:---|---:|:---|
+|7|new packages|in|3|modules|
+|53|changed packages|in|34|modules|
+|78|internally changed packages|in|19|modules|
+|307|unchanged packages|in|102|modules|
+|453|packages, total|in|132|modules, total|
+
+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|
+
+New in Tcllib 1.21
+==================
+
+|Module|Package|New Version|Comments|
+|:---|:---|:---|:---|
+|math|math::changepoint|0.1||
+||math::combinatorics|2.0||
+||math::figurate|1.0||
+||math::filters|0.1||
+||math::probopt|1.0||
+|mkdoc|mkdoc|0.7.0||
+|struct|struct::list::test|1.8.4||
+|||||
+
+Deprecations in Tcllib 1.21
+===========================
+
+Four packages are stage 2 deprecated in favor of two replacements.
+All internal users of the deprecated packages have been rewritten to
+use their replacements.
+
+|Module|Package|Replacement|Deprecation stage|
+|---|---|---|---|
+|doctools|doctools::paths|fileutil::paths|(D2) Attempts to use throw errors|
+|doctools|doctools::config|struct::map|(D2) Attempts to use throw errors|
+|pt|paths|fileutil::paths|(D2) Attempts to use throw errors|
+|pt|configuration|struct::map|(D2) Attempts to use throw errors|
+
+Stage 1 (__D1__) means that:
+
+ - The deprecated packages still exist.
+ - Their implementations have changed and throw errors.
+
+Future progress:
+
+ - In the release after 1.21 the stage 2 deprecated packages will be
+ moved to stage 3 (__D3__). In that stage the implementations will
+ be removed from Tcllib, causing `package require` to fail.
+
+Changes from Tcllib 1.20 to 1.21
+================================
+
+|Module|Package|From 1.20|To 1.21|Comments|
+|:---|:---|:---|:---|:---|
+|base64|base64|2.4.2|2.5|B D EF T|
+|bibtex|bibtex|0.6|0.7|D EF T|
+|cmdline|cmdline|1.5|1.5.2|B D T|
+|comm|comm|4.6.3.1|4.7|B I T|
+||||||
+|coroutine|coroutine|1.2|1.3|B D I|
+||coroutine::auto|1.1.3|1.2|D I|
+||||||
+|crc|crc16|1.1.3|1.1.4|B D|
+||crc32|1.3.2|1.3.3|B D|
+||||||
+|dns|dns|1.4.1|1.5.0|D EF|
+|fileutil|fileutil|1.16|1.16.1|B T|
+||||||
+|fumagic|fileutil::magic::cfront|1.2.0|1.3.0|B|
+||fileutil::magic::cgen|1.2.0|1.3.0|B|
+||fileutil::magic::filetype|2.0|2.0.1|B|
+||fileutil::magic::rt|2.0||B|
+||fileutil::magic::rt||3.0|B|
+||||||
+|generator|generator|0.1|0.2|B D|
+|hook|hook|0.1|0.2|B D T|
+|httpd|httpd|4.3.4|4.3.5|B T|
+|inifile|inifile|0.3.1|0.3.2|B T|
+||||||
+|irc|irc|0.6.2|0.7.0|I|
+||picoirc|0.5.2|0.13.0|B D EF I T|
+||||||
+|json|json::write|1.0.3|1.0.4|EF|
+||||||
+|ldap|ldap|1.9.2|1.10.1|B D|
+||ldapx|1.1|1.2|EF|
+||||||
+|markdown|Markdown|1.1.1|1.2.2|B D EF T|
+||||||
+|math|math::bigfloat|1.2.2|1.2.3|B D T|
+||math::bigfloat|2.0.2|2.0.3|B D T|
+||math::decimal|1.0.3|1.0.4|B T|
+||math::geometry|1.3.1|1.4.1|B D EF T|
+||math::numtheory|1.1.1|1.1.3|B D EF T|
+||math::special|0.4.0|0.5.2|D EF I T|
+||||||
+|md5|md5|1.4.4|1.4.5|D I P|
+||md5|2.0.7|2.0.8|D I P|
+||||||
+|mime|mime|1.6.2|1.7.0|B D EF I T|
+||smtp|1.5|1.5.1|B D T|
+||||||
+|namespacex|namespacex|0.2|0.3|B D T|
+|pki|pki|0.10|0.20|B D EF I T|
+|pop3|pop3|1.9|1.10|D EF T|
+||||||
+|processman|odie::processman|0.5|0.6|B D|
+||processman|0.5|0.6|B D|
+||||||
+|profiler|profiler|0.4|0.6|B D T|
+|pt|char|1.0.1|1.0.2|B T|
+|rest|rest|1.3.1|1.5|D EF|
+|struct|struct::list|1.8.4|1.8.5|B D T|
+|term|term::ansi::code::ctrl|0.2|0.3|B D|
+||||||
+|tie|tie|1.1|1.2|D EF T|
+||tie::std::array|1.0|1.1|D EF T|
+||tie::std::dsource|1.0|1.1|D EF T|
+||tie::std::file|1.0.4|1.1|D EF T|
+||tie::std::growfile|1.0|1.1|D EF T|
+||tie::std::log|1.0|1.1|D EF T|
+||tie::std::rarray|1.0.1|1.1|D EF T|
+|virtchannel_base|tcl::chan::halfpipe|1.0.1|1.0.2|EF|
+|websocket|websocket|1.4.1|1.4.2|B|
+|yaml|huddle|0.3|0.4|B D T|
+|zip|zipfile::decode|0.7.1|0.9|B D EF|
+||||||
+
+Invisible changes (documentation, testsuites)
+=============================================
+
+|Module|Package|From 1.20|To 1.21|Comments|
+|:---|:---|:---|:---|:---|
+|amazon-s3|S3|1.0.3|1.0.3|T|
+|asn|asn|0.8.4|0.8.4|T|
+|base64|yencode|1.1.3|1.1.3|T|
+|clay|clay|0.8.6|0.8.6|T|
+||||||
+|clock|clock::iso8601|0.1|0.1|D|
+||clock::rfc2822|0.1|0.1|D I|
+||||||
+|doctools2base|doctools::tcl::parse|0.1|0.1|T|
+||||||
+|doctools2idx|doctools::idx::export|0.2.1|0.2.1|T|
+||doctools::idx::export::docidx|0.1|0.1|T|
+||doctools::idx::export::html|0.2|0.2|T|
+||doctools::idx::export::json|0.1|0.1|T|
+||doctools::idx::export::nroff|0.3|0.3|T|
+||doctools::idx::export::text|0.2|0.2|T|
+||doctools::idx::export::wiki|0.2|0.2|T|
+||doctools::idx::import|0.2.1|0.2.1|T|
+||doctools::idx::import::docidx|0.1|0.1|T|
+||doctools::idx::import::json|0.1|0.1|T|
+||doctools::idx::parse|0.1|0.1|T|
+||doctools::idx::structure|0.1|0.1|T|
+||||||
+|doctools2toc|doctools::toc::export|0.2.1|0.2.1|T|
+||doctools::toc::export::doctoc|0.1|0.1|T|
+||doctools::toc::export::html|0.1|0.1|T|
+||doctools::toc::export::json|0.1|0.1|T|
+||doctools::toc::export::nroff|0.2|0.2|T|
+||doctools::toc::export::text|0.1|0.1|T|
+||doctools::toc::export::wiki|0.1|0.1|T|
+||doctools::toc::import|0.2.1|0.2.1|T|
+||doctools::toc::import::doctoc|0.1|0.1|T|
+||doctools::toc::import::json|0.1|0.1|T|
+||doctools::toc::parse|0.1|0.1|T|
+||doctools::toc::structure|0.1|0.1|T|
+||||||
+|grammar_fa|grammar::fa|0.5|0.5|T|
+|httpwget|http::wget|0.1|0.1|I|
+|mapproj|mapproj|1.0|1.0|I|
+||||||
+|math|math::fourier|1.0.2|1.0.2|D|
+||math::machineparameters|0.1|0.1|D|
+||math::quasirandom|1.0|1.0|D|
+||||||
+|oometa|oo::meta|0.7.1|0.7.1|T|
+||||||
+|pt|pt::ast|1.1|1.1|T|
+||pt::cparam::configuration::critcl|1.0.2|1.0.2|I T|
+||pt::cparam::configuration::tea|0.1|0.1|T|
+||pt::parse::peg|1.0.1|1.0.1|I T|
+||pt::pe|1.0.2|1.0.2|T|
+||pt::pe::op|1.0.1|1.0.1|T|
+||pt::peg|1|1|T|
+||pt::peg::container|1|1|T|
+||pt::peg::export|1.0.1|1.0.1|T|
+||pt::peg::export::container|1|1|T|
+||pt::peg::export::json|1|1|T|
+||pt::peg::export::peg|1|1|T|
+||pt::peg::from::json|1|1|T|
+||pt::peg::from::peg|1.0.3|1.0.3|T|
+||pt::peg::import|1.0.1|1.0.1|T|
+||pt::peg::import::json|1|1|T|
+||pt::peg::import::peg|1|1|T|
+||pt::peg::interp|1.0.1|1.0.1|T|
+||pt::peg::op|1.1.0|1.1.0|T|
+||pt::peg::to::container|1|1|T|
+||pt::peg::to::cparam|1.1.3|1.1.3|T|
+||pt::peg::to::json|1|1|T|
+||pt::peg::to::param|1.0.1|1.0.1|T|
+||pt::peg::to::peg|1.0.2|1.0.2|T|
+||pt::peg::to::tclparam|1.0.3|1.0.3|T|
+||pt::pgen|1.1|1.1|T|
+||pt::rde|1.1|1.1|I T|
+||pt::tclparam::configuration::nx|1.0.1|1.0.1|T|
+||pt::tclparam::configuration::snit|1.0.2|1.0.2|T|
+||pt::tclparam::configuration::tcloo|1.0.4|1.0.4|T|
+||||||
+|struct|struct::graph|1.2.1|1.2.1|I|
+||struct::graph|2.4.3|2.4.3|I|
+||struct::queue|1.4.5|1.4.5|I|
+||struct::skiplist|1.3|1.3|T|
+||struct::stack|1.5.3|1.5.3|I|
+||struct::tree|1.2.2|1.2.2|I T|
+||struct::tree|2.1.2|2.1.2|I T|
+||||||
+|tar|tar|0.11|0.11|D|
+||||||
+|textutil|textutil::adjust|0.7.3|0.7.3|T|
+||textutil::patch|0.1|0.1|I T|
+|tool|tool|0.7|0.7|I|
+|yaml|yaml|0.4.1|0.4.1|I|
+||||||
+
+Unchanged
+=========
+
+ aes, ascii85, autoproxy, base32, base32::core, base32::hex, bee,
+ bench, bench::in, bench::out::csv, bench::out::text, blowfish,
+ cache::async, calendar, cksum, clay, configuration, control,
+ counter, cron, csv, debug, debug::caller, debug::heartbeat,
+ debug::timestamp, defer, des, dicttool, docstrip,
+ docstrip::util, doctools, doctools::changelog, doctools::config,
+ doctools::cvs, doctools::html, doctools::html::cssdefaults,
+ doctools::idx, doctools::idx, 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::text,
+ doctools::toc, doctools::toc, dtplite, exif, fileutil::decode,
+ fileutil::multi, fileutil::multi::op, fileutil::paths,
+ fileutil::traverse, ftp, ftp::geturl, ftpd, gpx,
+ grammar::aycock, grammar::aycock::debug,
+ grammar::aycock::runtime, 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, huddle::json, ident,
+ imap4, interp, interp::delegate::method, interp::delegate::proc,
+ ip, javascript, jpeg, json, lambda, lazyset, log, logger,
+ logger::appender, logger::utils, map::geocode::nominatim,
+ map::slippy, map::slippy::cache, map::slippy::fetcher, math,
+ math::bignum, math::calculus, math::calculus::symdiff,
+ math::complexnumbers, math::constants, math::exact, math::fuzzy,
+ math::interpolate, math::linearalgebra, math::optimize,
+ math::PCA, math::polynomials, math::rationalfunctions,
+ math::roman, math::statistics, math::trig, md4, md5crypt,
+ multiplexer, nameserv, nameserv::auto, nameserv::common,
+ nameserv::server, ncgi, nettool, nmea, nntp, oauth, oo::dialect,
+ oo::option, oo::util, 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, pluginmgr, png, pop3d, pop3d::dbox,
+ pop3d::udb, practcl, pt::peg::container::peg, pt::rde::nx,
+ pt::rde::oo, pt::util, rc4, rcs, report, resolv, ripemd128,
+ ripemd160, SASL, SASL::NTLM, SASL::SCRAM, SASL::XGoogleToken,
+ sha1, sha256, simulation::annealing, simulation::montecarlo,
+ simulation::random, smtpd, snit, soundex, spf, stooop,
+ string::token, string::token::shell, stringprep,
+ stringprep::data, struct, struct::disjointset,
+ struct::graph::op, struct::map, struct::matrix, struct::pool,
+ struct::prioqueue, struct::record, struct::set, sum, switched,
+ tcl::chan::cat, tcl::chan::core, tcl::chan::events,
+ tcl::chan::facade, tcl::chan::fifo, tcl::chan::fifo2,
+ 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::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, textutil::wcswidth, throw,
+ tiff, time, transfer::connect, transfer::copy,
+ transfer::copy::queue, transfer::data::destination,
+ transfer::data::source, transfer::receiver,
+ transfer::transmitter, treeql, try, udpcluster, uevent,
+ uevent::onidle, unicode, unicode::data, units, uri, uri::urn,
+ uuencode, uuid, 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, wip, xsxp, zipfile::encode,
+ zipfile::mkzip
ADDED support/releases/history/README-1.21.txt
Index: support/releases/history/README-1.21.txt
==================================================================
--- /dev/null
+++ support/releases/history/README-1.21.txt
@@ -0,0 +1,335 @@
+Overview
+========
+
+ 7 new packages in 3 modules
+ 53 changed packages in 34 modules
+ 78 internally changed packages in 19 modules
+ 307 unchanged packages in 102 modules
+ 453 packages, total in 132 modules, total
+
+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
+ -------- --------- ----------------------------------
+
+New in Tcllib 1.21
+==================
+
+ Module Package New Version Comments
+ -------- --------------------- ------------- ----------
+ math math::changepoint 0.1
+ math::combinatorics 2.0
+ math::figurate 1.0
+ math::filters 0.1
+ math::probopt 1.0
+ -------- --------------------- ------------- ----------
+ mkdoc mkdoc 0.7.0
+ struct struct::list::test 1.8.4
+ -------- --------------------- ------------- ----------
+
+Deprecations in Tcllib 1.21
+===========================
+
+Four packages are stage 2 deprecated in favor of two replacements.
+All internal users of the deprecated packages have been rewritten to
+use their replacements.
+
+ Module Package Replacement Deprecation stage
+ ------------------ ----------------- ---------------- --------------------------------
+ doctools doctools::paths fileutil::paths (D2) Attempts to use throw errors
+ doctools doctools::config struct::map (D2) Attempts to use throw errors
+ pt paths fileutil::paths (D2) Attempts to use throw errors
+ pt configuration struct::map (D2) Attempts to use throw errors
+ ------------------ ----------------- ---------------- --------------------------------
+
+Stage 2 (D2) means that:
+
+ - The deprecated packages still exist.
+ - Their implementations have changed and throw errors.
+
+Future progress:
+
+ - In the release after 1.21 the stage 2 deprecated packages will be
+ moved to stage 3 (D3). In that stage the packages will be removed
+ from Tcllib, causing `package require` to fail.
+
+Changes from Tcllib 1.20 to 1.21
+================================
+
+ Module Package From 1.20 To 1.21 Comments
+ ------------------ --------------------------- ----------- --------- ------------
+ base64 base64 2.4.2 2.5 B D EF T
+ bibtex bibtex 0.6 0.7 D EF T
+ cmdline cmdline 1.5 1.5.2 B D T
+ comm comm 4.6.3.1 4.7 B I T
+ ------------------ --------------------------- ----------- --------- ------------
+ coroutine coroutine 1.2 1.3 B D I
+ coroutine::auto 1.1.3 1.2 D I
+ ------------------ --------------------------- ----------- --------- ------------
+ crc crc16 1.1.3 1.1.4 B D
+ crc32 1.3.2 1.3.3 B D
+ ------------------ --------------------------- ----------- --------- ------------
+ dns dns 1.4.1 1.5.0 D EF
+ fileutil fileutil 1.16 1.16.1 B T
+ ------------------ --------------------------- ----------- --------- ------------
+ fumagic fileutil::magic::cfront 1.2.0 1.3.0 B
+ fileutil::magic::cgen 1.2.0 1.3.0 B
+ fileutil::magic::filetype 2.0 2.0.1 B
+ fileutil::magic::rt 2.0 B
+ fileutil::magic::rt 3.0 B
+ ------------------ --------------------------- ----------- --------- ------------
+ generator generator 0.1 0.2 B D
+ hook hook 0.1 0.2 B D T
+ httpd httpd 4.3.4 4.3.5 B T
+ inifile inifile 0.3.1 0.3.2 B T
+ ------------------ --------------------------- ----------- --------- ------------
+ irc irc 0.6.2 0.7.0 I
+ picoirc 0.5.2 0.13.0 B D EF I T
+ ------------------ --------------------------- ----------- --------- ------------
+ json json::write 1.0.3 1.0.4 EF
+ ------------------ --------------------------- ----------- --------- ------------
+ ldap ldap 1.9.2 1.10.1 B D
+ ldapx 1.1 1.2 EF
+ ------------------ --------------------------- ----------- --------- ------------
+ markdown Markdown 1.1.1 1.2.2 B D EF T
+ ------------------ --------------------------- ----------- --------- ------------
+ math math::bigfloat 1.2.2 1.2.3 B D T
+ math::bigfloat 2.0.2 2.0.3 B D T
+ math::decimal 1.0.3 1.0.4 B T
+ math::geometry 1.3.1 1.4.1 B D EF T
+ math::numtheory 1.1.1 1.1.3 B D EF T
+ math::special 0.4.0 0.5.2 D EF I T
+ ------------------ --------------------------- ----------- --------- ------------
+ md5 md5 1.4.4 1.4.5 D I P
+ md5 2.0.7 2.0.8 D I P
+ ------------------ --------------------------- ----------- --------- ------------
+ mime mime 1.6.2 1.7.0 B D EF I T
+ smtp 1.5 1.5.1 B D T
+ ------------------ --------------------------- ----------- --------- ------------
+ namespacex namespacex 0.2 0.3 B D T
+ pki pki 0.10 0.20 B D EF I T
+ pop3 pop3 1.9 1.10 D EF T
+ ------------------ --------------------------- ----------- --------- ------------
+ processman odie::processman 0.5 0.6 B D
+ processman 0.5 0.6 B D
+ ------------------ --------------------------- ----------- --------- ------------
+ profiler profiler 0.4 0.6 B D T
+ pt char 1.0.1 1.0.2 B T
+ rest rest 1.3.1 1.5 D EF
+ struct struct::list 1.8.4 1.8.5 B D T
+ term term::ansi::code::ctrl 0.2 0.3 B D
+ ------------------ --------------------------- ----------- --------- ------------
+ tie tie 1.1 1.2 D EF T
+ tie::std::array 1.0 1.1 D EF T
+ tie::std::dsource 1.0 1.1 D EF T
+ tie::std::file 1.0.4 1.1 D EF T
+ tie::std::growfile 1.0 1.1 D EF T
+ tie::std::log 1.0 1.1 D EF T
+ tie::std::rarray 1.0.1 1.1 D EF T
+ ------------------ --------------------------- ----------- --------- ------------
+ virtchannel_base tcl::chan::halfpipe 1.0.1 1.0.2 EF
+ websocket websocket 1.4.1 1.4.2 B
+ yaml huddle 0.3 0.4 B D T
+ zip zipfile::decode 0.7.1 0.9 B D EF
+ ------------------ --------------------------- ----------- --------- ------------
+
+Invisible changes (documentation, testsuites)
+=============================================
+
+ Module Package From 1.20 To 1.21 Comments
+ --------------- ------------------------------------ ----------- --------- ----------
+ amazon-s3 S3 1.0.3 1.0.3 T
+ asn asn 0.8.4 0.8.4 T
+ base64 yencode 1.1.3 1.1.3 T
+ clay clay 0.8.6 0.8.6 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ clock clock::iso8601 0.1 0.1 D
+ clock::rfc2822 0.1 0.1 D I
+ --------------- ------------------------------------ ----------- --------- ----------
+ doctools2base doctools::tcl::parse 0.1 0.1 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ doctools2idx doctools::idx::export 0.2.1 0.2.1 T
+ doctools::idx::export::docidx 0.1 0.1 T
+ doctools::idx::export::html 0.2 0.2 T
+ doctools::idx::export::json 0.1 0.1 T
+ doctools::idx::export::nroff 0.3 0.3 T
+ doctools::idx::export::text 0.2 0.2 T
+ doctools::idx::export::wiki 0.2 0.2 T
+ doctools::idx::import 0.2.1 0.2.1 T
+ doctools::idx::import::docidx 0.1 0.1 T
+ doctools::idx::import::json 0.1 0.1 T
+ doctools::idx::parse 0.1 0.1 T
+ doctools::idx::structure 0.1 0.1 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ doctools2toc doctools::toc::export 0.2.1 0.2.1 T
+ doctools::toc::export::doctoc 0.1 0.1 T
+ doctools::toc::export::html 0.1 0.1 T
+ doctools::toc::export::json 0.1 0.1 T
+ doctools::toc::export::nroff 0.2 0.2 T
+ doctools::toc::export::text 0.1 0.1 T
+ doctools::toc::export::wiki 0.1 0.1 T
+ doctools::toc::import 0.2.1 0.2.1 T
+ doctools::toc::import::doctoc 0.1 0.1 T
+ doctools::toc::import::json 0.1 0.1 T
+ doctools::toc::parse 0.1 0.1 T
+ doctools::toc::structure 0.1 0.1 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ grammar_fa grammar::fa 0.5 0.5 T
+ httpwget http::wget 0.1 0.1 I
+ mapproj mapproj 1.0 1.0 I
+ --------------- ------------------------------------ ----------- --------- ----------
+ math math::fourier 1.0.2 1.0.2 D
+ math::machineparameters 0.1 0.1 D
+ math::quasirandom 1.0 1.0 D
+ --------------- ------------------------------------ ----------- --------- ----------
+ oometa oo::meta 0.7.1 0.7.1 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ pt pt::ast 1.1 1.1 T
+ pt::cparam::configuration::critcl 1.0.2 1.0.2 I T
+ pt::cparam::configuration::tea 0.1 0.1 T
+ pt::parse::peg 1.0.1 1.0.1 I T
+ pt::pe 1.0.2 1.0.2 T
+ pt::pe::op 1.0.1 1.0.1 T
+ pt::peg 1 1 T
+ pt::peg::container 1 1 T
+ pt::peg::export 1.0.1 1.0.1 T
+ pt::peg::export::container 1 1 T
+ pt::peg::export::json 1 1 T
+ pt::peg::export::peg 1 1 T
+ pt::peg::from::json 1 1 T
+ pt::peg::from::peg 1.0.3 1.0.3 T
+ pt::peg::import 1.0.1 1.0.1 T
+ pt::peg::import::json 1 1 T
+ pt::peg::import::peg 1 1 T
+ pt::peg::interp 1.0.1 1.0.1 T
+ pt::peg::op 1.1.0 1.1.0 T
+ pt::peg::to::container 1 1 T
+ pt::peg::to::cparam 1.1.3 1.1.3 T
+ pt::peg::to::json 1 1 T
+ pt::peg::to::param 1.0.1 1.0.1 T
+ pt::peg::to::peg 1.0.2 1.0.2 T
+ pt::peg::to::tclparam 1.0.3 1.0.3 T
+ pt::pgen 1.1 1.1 T
+ pt::rde 1.1 1.1 I T
+ pt::tclparam::configuration::nx 1.0.1 1.0.1 T
+ pt::tclparam::configuration::snit 1.0.2 1.0.2 T
+ pt::tclparam::configuration::tcloo 1.0.4 1.0.4 T
+ --------------- ------------------------------------ ----------- --------- ----------
+ struct struct::graph 1.2.1 1.2.1 I
+ struct::graph 2.4.3 2.4.3 I
+ struct::queue 1.4.5 1.4.5 I
+ struct::skiplist 1.3 1.3 T
+ struct::stack 1.5.3 1.5.3 I
+ struct::tree 1.2.2 1.2.2 I T
+ struct::tree 2.1.2 2.1.2 I T
+ --------------- ------------------------------------ ----------- --------- ----------
+ tar tar 0.11 0.11 D
+ --------------- ------------------------------------ ----------- --------- ----------
+ textutil textutil::adjust 0.7.3 0.7.3 T
+ textutil::patch 0.1 0.1 I T
+ --------------- ------------------------------------ ----------- --------- ----------
+ tool tool 0.7 0.7 I
+ yaml yaml 0.4.1 0.4.1 I
+ --------------- ------------------------------------ ----------- --------- ----------
+
+Unchanged
+=========
+
+ aes, ascii85, autoproxy, base32, base32::core, base32::hex, bee,
+ bench, bench::in, bench::out::csv, bench::out::text, blowfish,
+ cache::async, calendar, cksum, clay, configuration, control,
+ counter, cron, csv, debug, debug::caller, debug::heartbeat,
+ debug::timestamp, defer, des, dicttool, docstrip,
+ docstrip::util, doctools, doctools::changelog, doctools::config,
+ doctools::cvs, doctools::html, doctools::html::cssdefaults,
+ doctools::idx, doctools::idx, 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::text,
+ doctools::toc, doctools::toc, dtplite, exif, fileutil::decode,
+ fileutil::multi, fileutil::multi::op, fileutil::paths,
+ fileutil::traverse, ftp, ftp::geturl, ftpd, gpx,
+ grammar::aycock, grammar::aycock::debug,
+ grammar::aycock::runtime, 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, huddle::json, ident,
+ imap4, interp, interp::delegate::method, interp::delegate::proc,
+ ip, javascript, jpeg, json, lambda, lazyset, log, logger,
+ logger::appender, logger::utils, map::geocode::nominatim,
+ map::slippy, map::slippy::cache, map::slippy::fetcher, math,
+ math::bignum, math::calculus, math::calculus::symdiff,
+ math::complexnumbers, math::constants, math::exact, math::fuzzy,
+ math::interpolate, math::linearalgebra, math::optimize,
+ math::PCA, math::polynomials, math::rationalfunctions,
+ math::roman, math::statistics, math::trig, md4, md5crypt,
+ multiplexer, nameserv, nameserv::auto, nameserv::common,
+ nameserv::server, ncgi, nettool, nmea, nntp, oauth, oo::dialect,
+ oo::option, oo::util, 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, pluginmgr, png, pop3d, pop3d::dbox,
+ pop3d::udb, practcl, pt::peg::container::peg, pt::rde::nx,
+ pt::rde::oo, pt::util, rc4, rcs, report, resolv, ripemd128,
+ ripemd160, SASL, SASL::NTLM, SASL::SCRAM, SASL::XGoogleToken,
+ sha1, sha256, simulation::annealing, simulation::montecarlo,
+ simulation::random, smtpd, snit, soundex, spf, stooop,
+ string::token, string::token::shell, stringprep,
+ stringprep::data, struct, struct::disjointset,
+ struct::graph::op, struct::map, struct::matrix, struct::pool,
+ struct::prioqueue, struct::record, struct::set, sum, switched,
+ tcl::chan::cat, tcl::chan::core, tcl::chan::events,
+ tcl::chan::facade, tcl::chan::fifo, tcl::chan::fifo2,
+ 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::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, textutil::wcswidth, throw,
+ tiff, time, transfer::connect, transfer::copy,
+ transfer::copy::queue, transfer::data::destination,
+ transfer::data::source, transfer::receiver,
+ transfer::transmitter, treeql, try, udpcluster, uevent,
+ uevent::onidle, unicode, unicode::data, units, uri, uri::urn,
+ uuencode, uuid, 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, wip, xsxp, zipfile::encode,
+ zipfile::mkzip
Index: tcllib.spec
==================================================================
--- tcllib.spec
+++ tcllib.spec
@@ -1,8 +1,8 @@
# $Id: package_rpm.txt,v 1.1 2006/07/01 03:16:57 andreas_kupries Exp $
-%define version 1.20
+%define version 1.21
%define directory /usr
Summary: The standard Tcl library
Name: tcllib
Version: %{version}
Index: tcllib.tap
==================================================================
--- tcllib.tap
+++ tcllib.tap
@@ -1,14 +1,14 @@
format {TclDevKit Project File}
fmtver 2.0
fmttool {TclDevKit TclApp PackageDefinition} 2.5
-## Saved at : Sun Dec 01 14:04:43 PST 2019
+## Saved at : Sat May 07 16:10:12 CEST 2022
## By : aku
##
## Generated by "sak.tcl tap"
-## of tcllib 1.20
+## of tcllib 1.21
########
#####
###
##
@@ -15,11 +15,11 @@
#
# ###############
# Complete bundle
-Package {tcllib 1.20}
+Package {tcllib 1.21}
Base @TAP_DIR@
Platform *
Desc {Tcllib: Bundle of all packages}
Path pkgIndex.tcl
Path 0compatibility
@@ -65,15 +65,15 @@
Path grammar_aycock
Path grammar_fa
Path grammar_me
Path grammar_peg
Path hook
+Path html
+Path htmlparse
Path http
Path httpd
Path httpwget
-Path html
-Path htmlparse
Path ident
Path imap4
Path inifile
Path interp
Path irc
@@ -82,18 +82,19 @@
Path json
Path lambda
Path lazyset
Path ldap
Path log
-Path markdown
Path map
Path mapproj
+Path markdown
Path math
Path md4
Path md5
Path md5crypt
Path mime
+Path mkdoc
Path multiplexer
Path namespacex
Path ncgi
Path nettool
Path nmea
@@ -155,13 +156,12 @@
Path zip
# #######################
# Module "0compatibility"
# [1] | "configuration" (1)
-# [2] | "paths" (1)
-# [3] | "doctools::config" (0.1)
-# [4] | "doctools::paths" (0.1)
+# [2] | "doctools::config" (0.1)
+# [3] | "doctools::paths" (0.1)
# -------+
Package {__0compatibility 0.0}
Platform *
Desc {Tcllib module}
@@ -172,15 +172,10 @@
Path p_config.tcl
Path p_paths.tcl
Path pkgIndex.tcl
Package {configuration 1}
-See __0compatibility
-Platform *
-Desc {Tcllib package}
-
-Package {paths 1}
See __0compatibility
Platform *
Desc {Tcllib package}
Package {doctools::config 0.1}
@@ -294,11 +289,11 @@
# ###############
# ###############
# Module "base64"
# [1] | "uuencode" (1.1.5)
-# [2] | "base64" (2.4.2)
+# [2] | "base64" (2.5)
# [3] | "ascii85" (1.0)
# [4] | "yencode" (1.1.3)
# -------+
Package {__base64 0.0}
@@ -316,11 +311,11 @@
Package {uuencode 1.1.5}
See __base64
Platform *
Desc {UU-encode/decode binary data}
-Package {base64 2.4.2}
+Package {base64 2.5}
See __base64
Platform *
Desc {base64-encode/decode binary data}
Package {ascii85 1.0}
@@ -351,12 +346,12 @@
#
# ############
# ##############
# Module "bench"
-# [1] | "bench::out::csv" (0.1.2)
-# [2] | "bench" (0.4)
+# [1] | "bench" (0.4)
+# [2] | "bench::out::csv" (0.1.2)
# [3] | "bench::out::text" (0.1.2)
# [4] | "bench::in" (0.1)
# -------+
Package {__bench 0.0}
@@ -369,20 +364,20 @@
Path bench_wcsv.tcl
Path bench_wtext.tcl
Path libbench.tcl
Path pkgIndex.tcl
+Package {bench 0.4}
+See __bench
+Platform *
+Desc {bench - Processing benchmark suites}
+
Package {bench::out::csv 0.1.2}
See __bench
Platform *
Desc {bench::out::csv - Formatting benchmark results as CSV}
-Package {bench 0.4}
-See __bench
-Platform *
-Desc {bench - Processing benchmark suites}
-
Package {bench::out::text 0.1.2}
See __bench
Platform *
Desc {bench::out::text - Formatting benchmark results as human readable text}
@@ -394,14 +389,14 @@
#
# ##############
# ###############
# Module "bibtex"
-# [1] | "bibtex" (0.6)
+# [1] | "bibtex" (0.7)
# -------+
-Package {bibtex 0.6}
+Package {bibtex 0.7}
Platform *
Desc {Parse bibtex files}
Base @TAP_DIR@/bibtex
Path bibtex.tcl
Path pkgIndex.tcl
@@ -487,11 +482,11 @@
Path rfc2822.tcl
Package {clock::rfc2822 0.1}
See __clock
Platform *
-Desc {Parsing ISO 8601 dates/times}
+Desc {Parsing RFC 2822 dates/times}
Package {clock::iso8601 0.1}
See __clock
Platform *
Desc {Parsing ISO 8601 dates/times}
@@ -499,14 +494,14 @@
#
# ##############
# ################
# Module "cmdline"
-# [1] | "cmdline" (1.5)
+# [1] | "cmdline" (1.5.2)
# -------+
-Package {cmdline 1.5}
+Package {cmdline 1.5.2}
Platform *
Desc {Procedures to process command lines and options.}
Base @TAP_DIR@/cmdline
Path cmdline.tcl
Path pkgIndex.tcl
@@ -514,16 +509,16 @@
#
# ################
# #############
# Module "comm"
-# [1] | "comm" (4.6.3.1)
+# [1] | "comm" (4.7)
# -------+
-Package {comm 4.6.3.1}
+Package {comm 4.7}
Platform *
-Desc {The comm wire protocol}
+Desc {A remote communication facility for Tcl (8.5 and later)}
Base @TAP_DIR@/comm
Path comm.tcl
Path pkgIndex.tcl
#
@@ -549,29 +544,29 @@
#
# ################
# ##################
# Module "coroutine"
-# [1] | "coroutine" (1.2)
-# [2] | "coroutine::auto" (1.1.3)
+# [1] | "coroutine" (1.3)
+# [2] | "coroutine::auto" (1.2)
# -------+
Package {__coroutine 0.0}
Platform *
-Desc {Coroutine utilities, Tcl Web Server}
+Desc {Coroutine utilities}
Hidden
Base @TAP_DIR@/coroutine
Path coro_auto.tcl
Path coroutine.tcl
Path pkgIndex.tcl
-Package {coroutine 1.2}
+Package {coroutine 1.3}
See __coroutine
Platform *
-Desc {A TclOO and coroutine based web server}
+Desc {Coroutine based event and IO handling}
-Package {coroutine::auto 1.1.3}
+Package {coroutine::auto 1.2}
See __coroutine
Platform *
Desc {Automatic event and IO coroutine awareness}
#
@@ -592,14 +587,14 @@
#
# ################
# ############
# Module "crc"
-# [1] | "crc32" (1.3.2)
+# [1] | "crc32" (1.3.3)
# [2] | "sum" (1.1.2)
-# [3] | "crc16" (1.1.3)
-# [4] | "cksum" (1.1.4)
+# [3] | "cksum" (1.1.4)
+# [4] | "crc16" (1.1.4)
# -------+
Package {__crc 0.0}
Platform *
Desc {Cyclic Redundancy Checks}
@@ -610,30 +605,30 @@
Path crc32.tcl
Path crcc.tcl
Path pkgIndex.tcl
Path sum.tcl
-Package {crc32 1.3.2}
+Package {crc32 1.3.3}
See __crc
Platform *
Desc {Perform a 32bit Cyclic Redundancy Check}
Package {sum 1.1.2}
See __crc
Platform *
Desc {Calculate a sum(1) compatible checksum}
-Package {crc16 1.1.3}
-See __crc
-Platform *
-Desc {Perform a 16bit Cyclic Redundancy Check}
-
Package {cksum 1.1.4}
See __crc
Platform *
Desc {Calculate a cksum(1) compatible checksum}
+Package {crc16 1.1.4}
+See __crc
+Platform *
+Desc {Perform a 16bit Cyclic Redundancy Check}
+
#
# ############
# #############
# Module "cron"
@@ -723,12 +718,12 @@
# ##############
# ############
# Module "des"
# [1] | "des" (1.1.0)
-# [2] | "tclDES" (1.0.0)
-# [3] | "tclDESjr" (1.0.0)
+# [2] | "tclDESjr" (1.0.0)
+# [3] | "tclDES" (1.0.0)
# -------+
Package {__des 0.0}
Platform *
Desc {Data Encryption Standard (DES)}
@@ -742,16 +737,16 @@
Package {des 1.1.0}
See __des
Platform *
Desc {Implementation of the DES and triple-DES ciphers}
-Package {tclDES 1.0.0}
+Package {tclDESjr 1.0.0}
See __des
Platform *
Desc {Implementation of the DES and triple-DES ciphers}
-Package {tclDESjr 1.0.0}
+Package {tclDES 1.0.0}
See __des
Platform *
Desc {Implementation of the DES and triple-DES ciphers}
#
@@ -762,22 +757,22 @@
# [1] | "dicttool" (1.1)
# -------+
Package {dicttool 1.1}
Platform *
-Desc {Dictionary Tools}
+Desc {TclOO Library (TOOL) Framework}
Base @TAP_DIR@/dicttool
Path dicttool.tcl
Path pkgIndex.tcl
#
# #################
# ############
# Module "dns"
-# [1] | "spf" (1.1.1)
-# [2] | "dns" (1.4.1)
+# [1] | "dns" (1.5.0)
+# [2] | "spf" (1.1.1)
# [3] | "ip" (1.4)
# [4] | "resolv" (1.0.3)
# -------+
Package {__dns 0.0}
@@ -792,20 +787,20 @@
Path msgs/en.msg
Path pkgIndex.tcl
Path resolv.tcl
Path spf.tcl
+Package {dns 1.5.0}
+See __dns
+Platform *
+Desc {Tcl Domain Name Service Client}
+
Package {spf 1.1.1}
See __dns
Platform *
Desc {Tcllib package}
-Package {dns 1.4.1}
-See __dns
-Platform *
-Desc {Tcl Domain Name Service Client}
-
Package {ip 1.4}
See __dns
Platform *
Desc {IPv4 and IPv6 address manipulation}
@@ -847,13 +842,13 @@
# #################
# Module "doctools"
# [1] | "doctools::idx" (1.1)
# [2] | "doctools::toc" (1.2)
-# [3] | "doctools::changelog" (1.1)
-# [4] | "doctools::cvs" (1)
-# [5] | "doctools" (1.5.6)
+# [3] | "doctools" (1.5.6)
+# [4] | "doctools::changelog" (1.1)
+# [5] | "doctools::cvs" (1)
# -------+
Package {__doctools 0.0}
Platform *
Desc {Documentation tools}
@@ -918,17 +913,22 @@
Path pkgIndex.tcl
Package {doctools::idx 1.1}
See __doctools
Platform *
-Desc {docidx - Processing indices}
+Desc {Holding keyword indices}
Package {doctools::toc 1.2}
See __doctools
Platform *
Desc {doctoc - Processing tables of contents}
+Package {doctools 1.5.6}
+See __doctools
+Platform *
+Desc {doctools - Processing documents}
+
Package {doctools::changelog 1.1}
See __doctools
Platform *
Desc {Processing text in Emacs ChangeLog format}
@@ -935,26 +935,21 @@
Package {doctools::cvs 1}
See __doctools
Platform *
Desc {Processing text in 'cvs log' format}
-Package {doctools 1.5.6}
-See __doctools
-Platform *
-Desc {doctools - Processing documents}
-
#
# #################
# ######################
# Module "doctools2base"
# [1] | "doctools::text" (0.1)
# [2] | "doctools::html" (0.1)
-# [3] | "doctools::html::cssdefaults" (0.1)
-# [4] | "doctools::tcl::parse" (0.1)
-# [5] | "doctools::msgcat" (0.1)
-# [6] | "doctools::nroff::man_macros" (0.1)
+# [3] | "doctools::tcl::parse" (0.1)
+# [4] | "doctools::html::cssdefaults" (0.1)
+# [5] | "doctools::nroff::man_macros" (0.1)
+# [6] | "doctools::msgcat" (0.1)
# -------+
Package {__doctools2base 0.0}
Platform *
Desc {Documentation tools}
@@ -976,30 +971,30 @@
Package {doctools::html 0.1}
See __doctools2base
Platform *
Desc {Tcllib package}
-Package {doctools::html::cssdefaults 0.1}
-See __doctools2base
-Platform *
-Desc {Default CSS style for HTML export plugins}
-
Package {doctools::tcl::parse 0.1}
See __doctools2base
Platform *
Desc {Processing text in 'subst -novariables' format}
-Package {doctools::msgcat 0.1}
+Package {doctools::html::cssdefaults 0.1}
See __doctools2base
Platform *
-Desc {Message catalog management for the various document parsers}
+Desc {Default CSS style for HTML export plugins}
Package {doctools::nroff::man_macros 0.1}
See __doctools2base
Platform *
Desc {Default CSS style for NROFF export plugins}
+Package {doctools::msgcat 0.1}
+See __doctools2base
+Platform *
+Desc {Message catalog management for the various document parsers}
+
#
# ######################
# #####################
# Module "doctools2idx"
@@ -1006,22 +1001,22 @@
# [1] | "doctools::idx::import::json" (0.1)
# [2] | "doctools::idx::structure" (0.1)
# [3] | "doctools::idx::export::nroff" (0.3)
# [4] | "doctools::idx::import::docidx" (0.1)
# [5] | "doctools::idx::export" (0.2.1)
-# [6] | "doctools::idx::export::html" (0.2)
-# [7] | "doctools::msgcat::idx::fr" (0.1)
-# [8] | "doctools::idx::parse" (0.1)
-# [9] | "doctools::msgcat::idx::de" (0.1)
-# [10] | "doctools::idx" (2)
-# [11] | "doctools::msgcat::idx::c" (0.1)
-# [12] | "doctools::msgcat::idx::en" (0.1)
+# [6] | "doctools::idx::parse" (0.1)
+# [7] | "doctools::idx::export::html" (0.2)
+# [8] | "doctools::msgcat::idx::fr" (0.1)
+# [9] | "doctools::idx" (2)
+# [10] | "doctools::msgcat::idx::de" (0.1)
+# [11] | "doctools::msgcat::idx::en" (0.1)
+# [12] | "doctools::msgcat::idx::c" (0.1)
# [13] | "doctools::idx::export::json" (0.1)
# [14] | "doctools::idx::export::docidx" (0.1)
# [15] | "doctools::idx::export::wiki" (0.2)
-# [16] | "doctools::idx::export::text" (0.2)
-# [17] | "doctools::idx::import" (0.2.1)
+# [16] | "doctools::idx::import" (0.2.1)
+# [17] | "doctools::idx::export::text" (0.2)
# -------+
Package {__doctools2idx 0.0}
Platform *
Desc {Documentation tools}
@@ -1069,10 +1064,15 @@
Package {doctools::idx::export 0.2.1}
See __doctools2idx
Platform *
Desc {Exporting keyword indices}
+Package {doctools::idx::parse 0.1}
+See __doctools2idx
+Platform *
+Desc {Parsing text in docidx format}
+
Package {doctools::idx::export::html 0.2}
See __doctools2idx
Platform *
Desc {HTML export plugin}
@@ -1079,35 +1079,30 @@
Package {doctools::msgcat::idx::fr 0.1}
See __doctools2idx
Platform *
Desc {Message catalog for the docidx parser (FR)}
-Package {doctools::idx::parse 0.1}
+Package {doctools::idx 2}
See __doctools2idx
Platform *
-Desc {Parsing text in docidx format}
+Desc {Holding keyword indices}
Package {doctools::msgcat::idx::de 0.1}
See __doctools2idx
Platform *
Desc {Message catalog for the docidx parser (DE)}
-Package {doctools::idx 2}
+Package {doctools::msgcat::idx::en 0.1}
See __doctools2idx
Platform *
-Desc {docidx - Processing indices}
+Desc {Message catalog for the docidx parser (EN)}
Package {doctools::msgcat::idx::c 0.1}
See __doctools2idx
Platform *
Desc {Message catalog for the docidx parser (C)}
-Package {doctools::msgcat::idx::en 0.1}
-See __doctools2idx
-Platform *
-Desc {Message catalog for the docidx parser (EN)}
-
Package {doctools::idx::export::json 0.1}
See __doctools2idx
Platform *
Desc {JSON export plugin}
@@ -1118,44 +1113,44 @@
Package {doctools::idx::export::wiki 0.2}
See __doctools2idx
Platform *
Desc {wiki export plugin}
+
+Package {doctools::idx::import 0.2.1}
+See __doctools2idx
+Platform *
+Desc {Importing keyword indices}
Package {doctools::idx::export::text 0.2}
See __doctools2idx
Platform *
Desc {plain text export plugin}
-Package {doctools::idx::import 0.2.1}
-See __doctools2idx
-Platform *
-Desc {Importing keyword indices}
-
#
# #####################
# #####################
# Module "doctools2toc"
# [1] | "doctools::toc::export::html" (0.1)
# [2] | "doctools::msgcat::toc::fr" (0.1)
-# [3] | "doctools::msgcat::toc::de" (0.1)
-# [4] | "doctools::toc" (2)
+# [3] | "doctools::toc" (2)
+# [4] | "doctools::msgcat::toc::de" (0.1)
# [5] | "doctools::msgcat::toc::en" (0.1)
# [6] | "doctools::toc::export::json" (0.1)
# [7] | "doctools::toc::structure" (0.1)
# [8] | "doctools::toc::export::nroff" (0.2)
# [9] | "doctools::toc::export::wiki" (0.1)
-# [10] | "doctools::toc::import::doctoc" (0.1)
-# [11] | "doctools::toc::export::text" (0.1)
-# [12] | "doctools::toc::import" (0.2.1)
-# [13] | "doctools::toc::parse" (0.1)
+# [10] | "doctools::toc::import" (0.2.1)
+# [11] | "doctools::toc::parse" (0.1)
+# [12] | "doctools::toc::import::doctoc" (0.1)
+# [13] | "doctools::toc::export::text" (0.1)
# [14] | "doctools::msgcat::toc::c" (0.1)
# [15] | "dict" (1)
# [16] | "doctools::toc::import::json" (0.1)
-# [17] | "doctools::toc::export" (0.2.1)
-# [18] | "doctools::toc::export::doctoc" (0.1)
+# [17] | "doctools::toc::export::doctoc" (0.1)
+# [18] | "doctools::toc::export" (0.2.1)
# -------+
Package {__doctools2toc 0.0}
Platform *
Desc {Documentation tools}
@@ -1188,20 +1183,20 @@
Package {doctools::msgcat::toc::fr 0.1}
See __doctools2toc
Platform *
Desc {Message catalog for the doctoc parser (FR)}
+Package {doctools::toc 2}
+See __doctools2toc
+Platform *
+Desc {doctoc - Processing tables of contents}
+
Package {doctools::msgcat::toc::de 0.1}
See __doctools2toc
Platform *
Desc {Message catalog for the doctoc parser (DE)}
-Package {doctools::toc 2}
-See __doctools2toc
-Platform *
-Desc {doctoc - Processing tables of contents}
-
Package {doctools::msgcat::toc::en 0.1}
See __doctools2toc
Platform *
Desc {Message catalog for the doctoc parser (EN)}
@@ -1223,10 +1218,20 @@
Package {doctools::toc::export::wiki 0.1}
See __doctools2toc
Platform *
Desc {wiki export plugin}
+Package {doctools::toc::import 0.2.1}
+See __doctools2toc
+Platform *
+Desc {Importing keyword indices}
+
+Package {doctools::toc::parse 0.1}
+See __doctools2toc
+Platform *
+Desc {Parsing text in doctoc format}
+
Package {doctools::toc::import::doctoc 0.1}
See __doctools2toc
Platform *
Desc {doctoc import plugin}
@@ -1233,20 +1238,10 @@
Package {doctools::toc::export::text 0.1}
See __doctools2toc
Platform *
Desc {plain text export plugin}
-Package {doctools::toc::import 0.2.1}
-See __doctools2toc
-Platform *
-Desc {Importing keyword indices}
-
-Package {doctools::toc::parse 0.1}
-See __doctools2toc
-Platform *
-Desc {Parsing text in doctoc format}
-
Package {doctools::msgcat::toc::c 0.1}
See __doctools2toc
Platform *
Desc {Message catalog for the doctoc parser (C)}
@@ -1257,21 +1252,21 @@
Package {doctools::toc::import::json 0.1}
See __doctools2toc
Platform *
Desc {JSON import plugin}
+
+Package {doctools::toc::export::doctoc 0.1}
+See __doctools2toc
+Platform *
+Desc {doctoc export plugin}
Package {doctools::toc::export 0.2.1}
See __doctools2toc
Platform *
Desc {Exporting tables of contents}
-Package {doctools::toc::export::doctoc 0.1}
-See __doctools2toc
-Platform *
-Desc {doctoc export plugin}
-
#
# #####################
# ################
# Module "dtplite"
@@ -1306,18 +1301,18 @@
# #################
# Module "fileutil"
# [1] | "fileutil::multi::op" (0.5.3)
# [2] | "fileutil::multi" (0.1)
# [3] | "fileutil::paths" (1)
-# [4] | "fileutil::decode" (0.2.1)
-# [5] | "fileutil" (1.16)
-# [6] | "fileutil::traverse" (0.6)
+# [4] | "fileutil" (1.16.1)
+# [5] | "fileutil::traverse" (0.6)
+# [6] | "fileutil::decode" (0.2.1)
# -------+
Package {__fileutil 0.0}
Platform *
-Desc {file utilities, Parser generator tools}
+Desc {file utilities}
Hidden
Base @TAP_DIR@/fileutil
Path decode.tcl
Path fileutil.tcl
Path multi.tcl
@@ -1339,24 +1334,24 @@
Package {fileutil::paths 1}
See __fileutil
Platform *
Desc {Manage search path pools}
-Package {fileutil::decode 0.2.1}
+Package {fileutil 1.16.1}
See __fileutil
Platform *
-Desc {Tcllib package}
-
-Package {fileutil 1.16}
-See __fileutil
-Platform *
-Desc {page plugin manager}
+Desc {Procedures implementing some file utilities}
Package {fileutil::traverse 0.6}
See __fileutil
Platform *
Desc {Iterative directory traversal}
+
+Package {fileutil::decode 0.2.1}
+See __fileutil
+Platform *
+Desc {Tcllib package}
#
# #################
# ############
@@ -1402,14 +1397,14 @@
#
# #############
# ################
# Module "fumagic"
-# [1] | "fileutil::magic::cgen" (1.2.0)
-# [2] | "fileutil::magic::rt" (2.0)
-# [3] | "fileutil::magic::filetype" (2.0)
-# [4] | "fileutil::magic::cfront" (1.2.0)
+# [1] | "fileutil::magic::cgen" (1.3.0)
+# [2] | "fileutil::magic::filetype" (2.0.1)
+# [3] | "fileutil::magic::rt" (3.0)
+# [4] | "fileutil::magic::cfront" (1.3.0)
# -------+
Package {__fumagic 0.0}
Platform *
Desc {Tcl Web Server, file utilities}
@@ -1419,39 +1414,39 @@
Path cgen.tcl
Path filetypes.tcl
Path pkgIndex.tcl
Path rtcore.tcl
-Package {fileutil::magic::cgen 1.2.0}
+Package {fileutil::magic::cgen 1.3.0}
See __fumagic
Platform *
Desc {Generator core for compiler of magic(5) files}
-Package {fileutil::magic::rt 2.0}
+Package {fileutil::magic::filetype 2.0.1}
+See __fumagic
+Platform *
+Desc {A TclOO and coroutine based web server}
+
+Package {fileutil::magic::rt 3.0}
See __fumagic
Platform *
Desc {Runtime core for file type recognition engines written in pure Tcl}
-Package {fileutil::magic::filetype 2.0}
-See __fumagic
-Platform *
-Desc {A TclOO and coroutine based web server}
-
-Package {fileutil::magic::cfront 1.2.0}
+Package {fileutil::magic::cfront 1.3.0}
See __fumagic
Platform *
Desc {Generator core for compiler of magic(5) files}
#
# ################
# ##################
# Module "generator"
-# [1] | "generator" (0.1)
+# [1] | "generator" (0.2)
# -------+
-Package {generator 0.1}
+Package {generator 0.2}
Platform *
Desc {Procedures for creating and using generators.}
Base @TAP_DIR@/generator
Path generator.tcl
Path pkgIndex.tcl
@@ -1475,12 +1470,12 @@
# ############
# #######################
# Module "grammar_aycock"
# [1] | "grammar::aycock::debug" (1.0)
-# [2] | "grammar::aycock" (1.0)
-# [3] | "grammar::aycock::runtime" (1.0)
+# [2] | "grammar::aycock::runtime" (1.0)
+# [3] | "grammar::aycock" (1.0)
# -------+
Package {__grammar_aycock 0.0}
Platform *
Desc {Aycock-Horspool-Earley parser generator for Tcl}
@@ -1493,21 +1488,21 @@
Package {grammar::aycock::debug 1.0}
See __grammar_aycock
Platform *
Desc {Tcllib package}
+
+Package {grammar::aycock::runtime 1.0}
+See __grammar_aycock
+Platform *
+Desc {Tcllib package}
Package {grammar::aycock 1.0}
See __grammar_aycock
Platform *
Desc {Aycock-Horspool-Earley parser generator for Tcl}
-Package {grammar::aycock::runtime 1.0}
-See __grammar_aycock
-Platform *
-Desc {Tcllib package}
-
#
# #######################
# ###################
# Module "grammar_fa"
@@ -1628,68 +1623,23 @@
#
# ####################
# #############
# Module "hook"
-# [1] | "hook" (0.1)
+# [1] | "hook" (0.2)
# -------+
-Package {hook 0.1}
+Package {hook 0.2}
Platform *
Desc {Hooks}
Base @TAP_DIR@/hook
Path hook.tcl
Path pkgIndex.tcl
#
# #############
-# #############
-# Module "http"
-# [1] | "autoproxy" (1.7)
-# -------+
-
-Package {autoproxy 1.7}
-Platform *
-Desc {Automatic HTTP proxy usage and authentication}
-Base @TAP_DIR@/http
-Path autoproxy.tcl
-Path pkgIndex.tcl
-
-#
-# #############
-
-# ##############
-# Module "httpd"
-# [1] | "httpd" (4.3.4)
-# -------+
-
-Package {httpd 4.3.4}
-Platform *
-Desc {Tcllib package}
-Base @TAP_DIR@/httpd
-Path httpd.tcl
-Path pkgIndex.tcl
-
-#
-# ##############
-
-# #################
-# Module "httpwget"
-# [1] | "http::wget" (0.1)
-# -------+
-
-Package {http::wget 0.1}
-Platform *
-Desc {Tcllib package}
-Base @TAP_DIR@/httpwget
-Path pkgIndex.tcl
-Path wget.tcl
-
-#
-# #################
-
# #############
# Module "html"
# [1] | "html" (1.5)
# -------+
@@ -1716,10 +1666,55 @@
Path pkgIndex.tcl
#
# ##################
+# #############
+# Module "http"
+# [1] | "autoproxy" (1.7)
+# -------+
+
+Package {autoproxy 1.7}
+Platform *
+Desc {Automatic HTTP proxy usage and authentication}
+Base @TAP_DIR@/http
+Path autoproxy.tcl
+Path pkgIndex.tcl
+
+#
+# #############
+
+# ##############
+# Module "httpd"
+# [1] | "httpd" (4.3.5)
+# -------+
+
+Package {httpd 4.3.5}
+Platform *
+Desc {Tcllib package}
+Base @TAP_DIR@/httpd
+Path httpd.tcl
+Path pkgIndex.tcl
+
+#
+# ##############
+
+# #################
+# Module "httpwget"
+# [1] | "http::wget" (0.1)
+# -------+
+
+Package {http::wget 0.1}
+Platform *
+Desc {Tcllib package}
+Base @TAP_DIR@/httpwget
+Path pkgIndex.tcl
+Path wget.tcl
+
+#
+# #################
+
# ##############
# Module "ident"
# [1] | "ident" (0.42)
# -------+
@@ -1748,14 +1743,14 @@
#
# ##############
# ################
# Module "inifile"
-# [1] | "inifile" (0.3.1)
+# [1] | "inifile" (0.3.2)
# -------+
-Package {inifile 0.3.1}
+Package {inifile 0.3.2}
Platform *
Desc {Parsing of Windows INI files}
Base @TAP_DIR@/inifile
Path ini.tcl
Path pkgIndex.tcl
@@ -1798,12 +1793,12 @@
#
# ###############
# ############
# Module "irc"
-# [1] | "picoirc" (0.5.2)
-# [2] | "irc" (0.6.2)
+# [1] | "picoirc" (0.13.0)
+# [2] | "irc" (0.7.0)
# -------+
Package {__irc 0.0}
Platform *
Desc {Low Level Tcl IRC Interface, Simple embeddable IRC interface}
@@ -1811,16 +1806,16 @@
Base @TAP_DIR@/irc
Path irc.tcl
Path picoirc.tcl
Path pkgIndex.tcl
-Package {picoirc 0.5.2}
+Package {picoirc 0.13.0}
See __irc
Platform *
Desc {Small and simple embeddable IRC client.}
-Package {irc 0.6.2}
+Package {irc 0.7.0}
See __irc
Platform *
Desc {Create IRC connection and interface.}
#
@@ -1856,11 +1851,11 @@
#
# #############
# #############
# Module "json"
-# [1] | "json::write" (1.0.3)
+# [1] | "json::write" (1.0.4)
# [2] | "json" (1.3.4)
# -------+
Package {__json 0.0}
Platform *
@@ -1871,11 +1866,11 @@
Path json_tcl.tcl
Path json_write.tcl
Path jsonc.tcl
Path pkgIndex.tcl
-Package {json::write 1.0.3}
+Package {json::write 1.0.4}
See __json
Platform *
Desc {JSON generation}
Package {json 1.3.4}
@@ -1916,12 +1911,12 @@
#
# ################
# #############
# Module "ldap"
-# [1] | "ldapx" (1.1)
-# [2] | "ldap" (1.9.2)
+# [1] | "ldapx" (1.2)
+# [2] | "ldap" (1.10.1)
# -------+
Package {__ldap 0.0}
Platform *
Desc {LDAP client, LDAP extended object interface}
@@ -1929,16 +1924,16 @@
Base @TAP_DIR@/ldap
Path ldap.tcl
Path ldapx.tcl
Path pkgIndex.tcl
-Package {ldapx 1.1}
+Package {ldapx 1.2}
See __ldap
Platform *
Desc {LDAP extended object interface}
-Package {ldap 1.9.2}
+Package {ldap 1.10.1}
See __ldap
Platform *
Desc {LDAP client}
#
@@ -1985,31 +1980,16 @@
Desc {Collection of predefined appenders for logger}
#
# ############
-# #################
-# Module "markdown"
-# [1] | "Markdown" (1.1.1)
-# -------+
-
-Package {Markdown 1.1.1}
-Platform *
-Desc {A TclOO and coroutine based web server}
-Base @TAP_DIR@/markdown
-Path markdown.tcl
-Path pkgIndex.tcl
-
-#
-# #################
-
# ############
# Module "map"
# [1] | "map::geocode::nominatim" (0.1)
# [2] | "map::slippy::fetcher" (0.4)
-# [3] | "map::slippy" (0.5)
-# [4] | "map::slippy::cache" (0.2)
+# [3] | "map::slippy::cache" (0.2)
+# [4] | "map::slippy" (0.5)
# -------+
Package {__map 0.0}
Platform *
Desc {Mapping utilities}
@@ -2029,20 +2009,20 @@
Package {map::slippy::fetcher 0.4}
See __map
Platform *
Desc {Accessing a server providing tiles for slippy-based maps}
+Package {map::slippy::cache 0.2}
+See __map
+Platform *
+Desc {Management of a tile cache in the local filesystem}
+
Package {map::slippy 0.5}
See __map
Platform *
Desc {Common code for slippy based map packages}
-Package {map::slippy::cache 0.2}
-See __map
-Platform *
-Desc {Management of a tile cache in the local filesystem}
-
#
# ############
# ################
# Module "mapproj"
@@ -2057,61 +2037,86 @@
Path pkgIndex.tcl
#
# ################
+# #################
+# Module "markdown"
+# [1] | "Markdown" (1.2.2)
+# -------+
+
+Package {Markdown 1.2.2}
+Platform *
+Desc {A TclOO and coroutine based web server}
+Base @TAP_DIR@/markdown
+Path markdown.tcl
+Path pkgIndex.tcl
+
+#
+# #################
+
# #############
# Module "math"
-# [1] | "math::numtheory" (1.1.1)
-# [2] | "math::statistics" (1.5.0)
-# [3] | "math::rationalfunctions" (1.0.1)
-# [4] | "math::quasirandom" (1.0)
-# [5] | "math::fourier" (1.0.2)
-# [6] | "math::PCA" (1.0)
-# [7] | "math" (1.2.5)
-# [8] | "math::complexnumbers" (1.0.2)
+# [1] | "math::rationalfunctions" (1.0.1)
+# [2] | "math::numtheory" (1.1.3)
+# [3] | "math::statistics" (1.5.0)
+# [4] | "math::complexnumbers" (1.0.2)
+# [5] | "math::quasirandom" (1.0)
+# [6] | "math" (1.2.5)
+# [7] | "math::PCA" (1.0)
+# [8] | "math::fourier" (1.0.2)
# [9] | "math::roman" (1.0)
# [10] | "math::exact" (1.0.1)
-# [11] | "math::trig" (1.0)
-# [12] | "math::interpolate" (1.1.2)
-# [13] | "math::fuzzy" (0.2.1)
-# [14] | "math::linearalgebra" (1.1.6)
-# [15] | "math::optimize" (1.0.1)
-# [16] | "math::special" (0.4.0)
-# [17] | "math::calculus::symdiff" (1.0.1)
-# [18] | "math::bignum" (3.1.1)
-# [19] | "math::calculus" (0.8.2)
-# [20] | "math::geometry" (1.3.1)
-# [21] | "math::constants" (1.0.2)
-# [22] | "math::polynomials" (1.0.1)
-# [23] | "math::decimal" (1.0.3)
-# [24] | "math::bigfloat" (1.2.2)
-# [25] | "math::bigfloat" (2.0.2)
-# [26] | "math::machineparameters" (0.1)
+# [11] | "math::combinatorics" (2.0)
+# [12] | "math::trig" (1.0)
+# [13] | "math::interpolate" (1.1.2)
+# [14] | "math::figurate" (1.0)
+# [15] | "math::changepoint" (0.1)
+# [16] | "math::fuzzy" (0.2.1)
+# [17] | "math::optimize" (1.0.1)
+# [18] | "math::filters" (0.1)
+# [19] | "math::linearalgebra" (1.1.6)
+# [20] | "math::special" (0.5.2)
+# [21] | "math::bignum" (3.1.1)
+# [22] | "math::calculus::symdiff" (1.0.1)
+# [23] | "math::geometry" (1.4.1)
+# [24] | "math::calculus" (0.8.2)
+# [25] | "math::constants" (1.0.2)
+# [26] | "math::probopt" (1.0)
+# [27] | "math::decimal" (1.0.4)
+# [28] | "math::polynomials" (1.0.1)
+# [29] | "math::bigfloat" (1.2.3)
+# [30] | "math::bigfloat" (2.0.3)
+# [31] | "math::machineparameters" (0.1)
# -------+
Package {__math 0.0}
Platform *
-Desc {Principal Components Analysis, Tcl Decimal Arithmetic Library, tclrep, Math, Tcl Math Library, Symbolic differentiation for Tcl}
+Desc {Principal Components Analysis, Tcl Decimal Arithmetic Library, tclrep, Tcl Math Library, Math, Symbolic differentiation for Tcl}
Hidden
Base @TAP_DIR@/math
Path bessel.tcl
Path bigfloat.tcl
Path bigfloat2.tcl
Path bignum.tcl
Path calculus.tcl
+Path changepoint.tcl
Path classic_polyns.tcl
Path combinatorics.tcl
+Path combinatoricsExt.tcl
Path constants.tcl
Path decimal.tcl
Path elliptic.tcl
Path exact.tcl
Path exponential.tcl
+Path figurate.tcl
+Path filtergen.tcl
Path fourier.tcl
Path fuzzy.tcl
Path geometry.tcl
Path geometry_circle.tcl
+Path geometry_ext.tcl
Path interpolate.tcl
Path kruskal.tcl
Path linalg.tcl
Path liststat.tcl
Path machineparameters.tcl
@@ -2124,10 +2129,15 @@
Path pdf_stat.tcl
Path pkgIndex.tcl
Path plotstat.tcl
Path polynomials.tcl
Path primes.tcl
+Path probopt.tcl
+Path probopt_diffev.tcl
+Path probopt_lipo.tcl
+Path probopt_pso.tcl
+Path probopt_sce.tcl
Path qcomplex.tcl
Path quasirandom.tcl
Path rational_funcs.tcl
Path romannumerals.tcl
Path special.tcl
@@ -2138,49 +2148,49 @@
Path symdiff.tcl
Path tclIndex
Path trig.tcl
Path wilcoxon.tcl
-Package {math::numtheory 1.1.1}
+Package {math::rationalfunctions 1.0.1}
+See __math
+Platform *
+Desc {Polynomial functions}
+
+Package {math::numtheory 1.1.3}
See __math
Platform *
Desc {Number Theory}
Package {math::statistics 1.5.0}
See __math
Platform *
Desc {Basic statistical functions and procedures}
-Package {math::rationalfunctions 1.0.1}
+Package {math::complexnumbers 1.0.2}
See __math
Platform *
-Desc {Polynomial functions}
+Desc {Straightforward complex number package}
Package {math::quasirandom 1.0}
See __math
Platform *
Desc {Quasi-random points for integration and Monte Carlo type methods}
-Package {math::fourier 1.0.2}
+Package {math 1.2.5}
See __math
Platform *
-Desc {Discrete and fast fourier transforms}
+Desc {Tcl Math Library}
Package {math::PCA 1.0}
See __math
Platform *
Desc {Tcllib package}
-Package {math 1.2.5}
+Package {math::fourier 1.0.2}
See __math
Platform *
-Desc {Combinatorial functions in the Tcl Math Library}
-
-Package {math::complexnumbers 1.0.2}
-See __math
-Platform *
-Desc {Straightforward complex number package}
+Desc {Discrete and fast fourier transforms}
Package {math::roman 1.0}
See __math
Platform *
Desc {Tools for creating and manipulating roman numerals}
@@ -2188,10 +2198,15 @@
Package {math::exact 1.0.1}
See __math
Platform *
Desc {Exact Real Arithmetic}
+Package {math::combinatorics 2.0}
+See __math
+Platform *
+Desc {Combinatorial functions in the Tcl Math Library}
+
Package {math::trig 1.0}
See __math
Platform *
Desc {Trigonometric anf hyperbolic functions}
@@ -2198,71 +2213,91 @@
Package {math::interpolate 1.1.2}
See __math
Platform *
Desc {Interpolation routines}
+Package {math::figurate 1.0}
+See __math
+Platform *
+Desc {Evaluate figurate numbers}
+
+Package {math::changepoint 0.1}
+See __math
+Platform *
+Desc {Change point detection methods}
+
Package {math::fuzzy 0.2.1}
See __math
Platform *
Desc {Fuzzy comparison of floating-point numbers}
-Package {math::linearalgebra 1.1.6}
-See __math
-Platform *
-Desc {Package for Principal Component Analysis}
-
Package {math::optimize 1.0.1}
See __math
Platform *
Desc {Optimisation routines}
-Package {math::special 0.4.0}
+Package {math::filters 0.1}
+See __math
+Platform *
+Desc {Digital filters}
+
+Package {math::linearalgebra 1.1.6}
+See __math
+Platform *
+Desc {Package for Principal Component Analysis}
+
+Package {math::special 0.5.2}
See __math
Platform *
Desc {Special mathematical functions}
-Package {math::calculus::symdiff 1.0.1}
-See __math
-Platform *
-Desc {Symbolic differentiation for Tcl}
-
Package {math::bignum 3.1.1}
See __math
Platform *
Desc {Arbitrary precision integer numbers}
-Package {math::calculus 0.8.2}
+Package {math::calculus::symdiff 1.0.1}
See __math
Platform *
-Desc {Romberg integration}
+Desc {Symbolic differentiation for Tcl}
-Package {math::geometry 1.3.1}
+Package {math::geometry 1.4.1}
See __math
Platform *
Desc {Geometrical computations}
+Package {math::calculus 0.8.2}
+See __math
+Platform *
+Desc {Integration and ordinary differential equations}
+
Package {math::constants 1.0.2}
See __math
Platform *
Desc {Mathematical and numerical constants}
+Package {math::probopt 1.0}
+See __math
+Platform *
+Desc {Probabilistic optimisation methods}
+
+Package {math::decimal 1.0.4}
+See __math
+Platform *
+Desc {General decimal arithmetic}
+
Package {math::polynomials 1.0.1}
See __math
Platform *
Desc {Polynomial functions}
-Package {math::decimal 1.0.3}
-See __math
-Platform *
-Desc {General decimal arithmetic}
-
-Package {math::bigfloat 1.2.2}
+Package {math::bigfloat 1.2.3}
See __math
Platform *
Desc {Arbitrary precision floating-point numbers}
-Package {math::bigfloat 2.0.2}
+Package {math::bigfloat 2.0.3}
See __math
Platform *
Desc {Arbitrary precision floating-point numbers}
Package {math::machineparameters 0.1}
@@ -2289,12 +2324,12 @@
#
# ############
# ############
# Module "md5"
-# [1] | "md5" (1.4.4)
-# [2] | "md5" (2.0.7)
+# [1] | "md5" (1.4.5)
+# [2] | "md5" (2.0.8)
# -------+
Package {__md5 0.0}
Platform *
Desc {MD5 Message-Digest Algorithm}
@@ -2303,16 +2338,16 @@
Path md5.tcl
Path md5c.tcl
Path md5x.tcl
Path pkgIndex.tcl
-Package {md5 1.4.4}
+Package {md5 1.4.5}
See __md5
Platform *
Desc {MD5 Message-Digest Algorithm}
-Package {md5 2.0.7}
+Package {md5 2.0.8}
See __md5
Platform *
Desc {MD5 Message-Digest Algorithm}
#
@@ -2334,12 +2369,12 @@
#
# #################
# #############
# Module "mime"
-# [1] | "smtp" (1.5)
-# [2] | "mime" (1.6.2)
+# [1] | "mime" (1.7.0)
+# [2] | "smtp" (1.5.1)
# -------+
Package {__mime 0.0}
Platform *
Desc {Tcl Web Server, smtp client}
@@ -2347,22 +2382,37 @@
Base @TAP_DIR@/mime
Path mime.tcl
Path pkgIndex.tcl
Path smtp.tcl
-Package {smtp 1.5}
-See __mime
-Platform *
-Desc {Client-side tcl implementation of the smtp protocol}
-
-Package {mime 1.6.2}
+Package {mime 1.7.0}
See __mime
Platform *
Desc {A TclOO and coroutine based web server}
+Package {smtp 1.5.1}
+See __mime
+Platform *
+Desc {Client-side tcl implementation of the smtp protocol}
+
#
# #############
+
+# ##############
+# Module "mkdoc"
+# [1] | "mkdoc" (0.7.0)
+# -------+
+
+Package {mkdoc 0.7.0}
+Platform *
+Desc {Extracts and optionally converts Markdown comments in source code to HTML}
+Base @TAP_DIR@/mkdoc
+Path mkdoc.tcl
+Path pkgIndex.tcl
+
+#
+# ##############
# ####################
# Module "multiplexer"
# [1] | "multiplexer" (0.2)
# -------+
@@ -2377,14 +2427,14 @@
#
# ####################
# ###################
# Module "namespacex"
-# [1] | "namespacex" (0.2)
+# [1] | "namespacex" (0.3)
# -------+
-Package {namespacex 0.2}
+Package {namespacex 0.3}
Platform *
Desc {Namespace utility commands}
Base @TAP_DIR@/namespacex
Path namespacex.tcl
Path pkgIndex.tcl
@@ -2597,49 +2647,49 @@
#
# ############
# #############
# Module "page"
-# [1] | "page::gen::peg::hb" (0.1)
+# [1] | "page::gen::peg::mecpu" (0.1)
# [2] | "page::gen::peg::ser" (0.1)
# [3] | "page::gen::peg::me" (0.1)
-# [4] | "page::gen::peg::mecpu" (0.1)
-# [5] | "page::reader::ser" (0.1)
-# [6] | "page::compiler::peg::mecpu" (0.1.1)
+# [4] | "page::gen::peg::hb" (0.1)
+# [5] | "page::compiler::peg::mecpu" (0.1.1)
+# [6] | "page::reader::ser" (0.1)
# [7] | "page::analysis::peg::minimize" (0.1)
-# [8] | "page::writer::mecpu" (0.1.1)
-# [9] | "page::transform::realizable" (0.1)
-# [10] | "page::writer::ser" (0.1)
-# [11] | "page::reader::peg" (0.1)
-# [12] | "page::parse::peg" (0.1)
-# [13] | "page::analysis::peg::realizable" (0.1)
-# [14] | "page::parse::pegser" (0.1)
+# [8] | "page::analysis::peg::realizable" (0.1)
+# [9] | "page::reader::peg" (0.1)
+# [10] | "page::transform::realizable" (0.1)
+# [11] | "page::writer::ser" (0.1)
+# [12] | "page::writer::mecpu" (0.1.1)
+# [13] | "page::parse::peg" (0.1)
+# [14] | "page::writer::peg" (0.1)
# [15] | "page::pluginmgr" (0.2)
-# [16] | "page::analysis::peg::emodes" (0.1)
-# [17] | "page::writer::peg" (0.1)
+# [16] | "page::parse::pegser" (0.1)
+# [17] | "page::analysis::peg::emodes" (0.1)
# [18] | "page::util::peg" (0.1)
# [19] | "page::util::norm::peg" (0.1)
-# [20] | "page::transform::reachable" (0.1)
-# [21] | "page::analysis::peg::reachable" (0.1)
+# [20] | "page::analysis::peg::reachable" (0.1)
+# [21] | "page::transform::reachable" (0.1)
# [22] | "page::gen::tree::text" (0.1)
# [23] | "page::util::quote" (0.1)
# [24] | "page::writer::tpc" (0.1)
# [25] | "@PKG@" (0.1)
# [26] | "page::writer::tree" (0.1)
-# [27] | "page::reader::treeser" (0.1)
-# [28] | "page::reader::hb" (0.1)
-# [29] | "page::parse::lemon" (0.1)
-# [30] | "page::reader::lemon" (0.1)
-# [31] | "page::transform::mecpu" (0.1)
-# [32] | "page::util::flow" (0.1)
+# [27] | "page::reader::hb" (0.1)
+# [28] | "page::reader::treeser" (0.1)
+# [29] | "page::util::flow" (0.1)
+# [30] | "page::transform::mecpu" (0.1)
+# [31] | "page::reader::lemon" (0.1)
+# [32] | "page::parse::lemon" (0.1)
# [33] | "page::gen::peg::cpkg" (0.1)
-# [34] | "page::writer::me" (0.1)
-# [35] | "page::writer::identity" (0.1)
-# [36] | "page::writer::hb" (0.1)
+# [34] | "page::writer::identity" (0.1)
+# [35] | "page::writer::hb" (0.1)
+# [36] | "page::writer::me" (0.1)
# [37] | "page::writer::null" (0.1)
-# [38] | "page::gen::peg::canon" (0.1)
-# [39] | "page::util::norm::lemon" (0.1)
+# [38] | "page::util::norm::lemon" (0.1)
+# [39] | "page::gen::peg::canon" (0.1)
# [40] | "page::parse::peghb" (0.1)
# [41] | "page::config::peg" (0.1)
# -------+
Package {__page 0.0}
@@ -2691,11 +2741,11 @@
Path util_norm_lemon.tcl
Path util_norm_peg.tcl
Path util_peg.tcl
Path util_quote.tcl
-Package {page::gen::peg::hb 0.1}
+Package {page::gen::peg::mecpu 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::gen::peg::ser 0.1}
@@ -2706,31 +2756,36 @@
Package {page::gen::peg::me 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::gen::peg::mecpu 0.1}
-See __page
-Platform *
-Desc {Tcllib package}
-
-Package {page::reader::ser 0.1}
+Package {page::gen::peg::hb 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::compiler::peg::mecpu 0.1.1}
See __page
Platform *
Desc {Tcllib package}
+
+Package {page::reader::ser 0.1}
+See __page
+Platform *
+Desc {Tcllib package}
Package {page::analysis::peg::minimize 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::writer::mecpu 0.1.1}
+Package {page::analysis::peg::realizable 0.1}
+See __page
+Platform *
+Desc {Tcllib package}
+
+Package {page::reader::peg 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::transform::realizable 0.1}
@@ -2741,41 +2796,36 @@
Package {page::writer::ser 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::reader::peg 0.1}
+Package {page::writer::mecpu 0.1.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::parse::peg 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::analysis::peg::realizable 0.1}
-See __page
-Platform *
-Desc {Tcllib package}
-
-Package {page::parse::pegser 0.1}
+Package {page::writer::peg 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::pluginmgr 0.2}
See __page
Platform *
Desc {page plugin manager}
-Package {page::analysis::peg::emodes 0.1}
+Package {page::parse::pegser 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::writer::peg 0.1}
+Package {page::analysis::peg::emodes 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::util::peg 0.1}
@@ -2786,17 +2836,17 @@
Package {page::util::norm::peg 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::transform::reachable 0.1}
-See __page
-Platform *
-Desc {Tcllib package}
-
Package {page::analysis::peg::reachable 0.1}
See __page
+Platform *
+Desc {Tcllib package}
+
+Package {page::transform::reachable 0.1}
+See __page
Platform *
Desc {Tcllib package}
Package {page::gen::tree::text 0.1}
See __page
@@ -2821,48 +2871,43 @@
Package {page::writer::tree 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::reader::treeser 0.1}
-See __page
-Platform *
-Desc {Tcllib package}
-
Package {page::reader::hb 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::parse::lemon 0.1}
+Package {page::reader::treeser 0.1}
+See __page
+Platform *
+Desc {Tcllib package}
+
+Package {page::util::flow 0.1}
+See __page
+Platform *
+Desc {page dataflow/treewalker utility}
+
+Package {page::transform::mecpu 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::reader::lemon 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::transform::mecpu 0.1}
+Package {page::parse::lemon 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::util::flow 0.1}
-See __page
-Platform *
-Desc {page dataflow/treewalker utility}
-
Package {page::gen::peg::cpkg 0.1}
See __page
Platform *
-Desc {Tcllib package}
-
-Package {page::writer::me 0.1}
-See __page
-Platform *
Desc {Tcllib package}
Package {page::writer::identity 0.1}
See __page
Platform *
@@ -2871,22 +2916,27 @@
Package {page::writer::hb 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::writer::null 0.1}
+Package {page::writer::me 0.1}
See __page
Platform *
Desc {Tcllib package}
-Package {page::gen::peg::canon 0.1}
+Package {page::writer::null 0.1}
See __page
Platform *
Desc {Tcllib package}
Package {page::util::norm::lemon 0.1}
See __page
+Platform *
+Desc {Tcllib package}
+
+Package {page::gen::peg::canon 0.1}
+See __page
Platform *
Desc {Tcllib package}
Package {page::parse::peghb 0.1}
See __page
@@ -2901,14 +2951,14 @@
#
# #############
# ############
# Module "pki"
-# [1] | "pki" (0.10)
+# [1] | "pki" (0.20)
# -------+
-Package {pki 0.10}
+Package {pki 0.20}
Platform *
Desc {Implementation of the public key cipher}
Base @TAP_DIR@/pki
Path pkgIndex.tcl
Path pki.tcl
@@ -2946,14 +2996,14 @@
#
# ############
# #############
# Module "pop3"
-# [1] | "pop3" (1.9)
+# [1] | "pop3" (1.10)
# -------+
-Package {pop3 1.9}
+Package {pop3 1.10}
Platform *
Desc {Tcl client for POP3 email protocol}
Base @TAP_DIR@/pop3
Path pkgIndex.tcl
Path pop3.tcl
@@ -3023,12 +3073,12 @@
#
# ################
# ###################
# Module "processman"
-# [1] | "odie::processman" (0.5)
-# [2] | "processman" (0.5)
+# [1] | "odie::processman" (0.6)
+# [2] | "processman" (0.6)
# -------+
Package {__processman 0.0}
Platform *
Desc {processman}
@@ -3035,29 +3085,29 @@
Hidden
Base @TAP_DIR@/processman
Path pkgIndex.tcl
Path processman.tcl
-Package {odie::processman 0.5}
+Package {odie::processman 0.6}
See __processman
Platform *
Desc {Tcllib package}
-Package {processman 0.5}
+Package {processman 0.6}
See __processman
Platform *
Desc {Tool for automating the period callback of commands}
#
# ###################
# #################
# Module "profiler"
-# [1] | "profiler" (0.5)
+# [1] | "profiler" (0.6)
# -------+
-Package {profiler 0.5}
+Package {profiler 0.6}
Platform *
Desc {Tcl source code profiler}
Base @TAP_DIR@/profiler
Path pkgIndex.tcl
Path profiler.tcl
@@ -3065,48 +3115,48 @@
#
# #################
# ###########
# Module "pt"
-# [1] | "pt::rde::critcl" (1.3.4)
-# [2] | "pt::peg::to::param" (1.0.1)
-# [3] | "pt::peg::export::json" (1)
-# [4] | "pt::tclparam::configuration::snit" (1.0.2)
+# [1] | "pt::peg::to::param" (1.0.1)
+# [2] | "pt::peg::export::json" (1)
+# [3] | "pt::rde::critcl" (1.3.4)
+# [4] | "pt::peg::export::peg" (1)
# [5] | "pt::peg::from::json" (1)
-# [6] | "pt::peg::export::peg" (1)
+# [6] | "pt::tclparam::configuration::snit" (1.0.2)
# [7] | "pt::peg::to::cparam" (1.1.3)
-# [8] | "pt::peg::import" (1.0.1)
-# [9] | "pt::peg::to::peg" (1.0.2)
-# [10] | "pt::parse::peg" (1.0.1)
-# [11] | "pt::peg::import::peg" (1)
-# [12] | "pt::rde" (1.1)
+# [8] | "pt::peg::import::peg" (1)
+# [9] | "pt::rde" (1.1)
+# [10] | "pt::peg::import" (1.0.1)
+# [11] | "pt::parse::peg" (1.0.1)
+# [12] | "pt::peg::to::peg" (1.0.2)
# [13] | "pt::peg::from::peg" (1.0.3)
-# [14] | "pt::cparam::configuration::critcl" (1.0.2)
-# [15] | "pt::tclparam::configuration::tcloo" (1.0.4)
-# [16] | "pt::parse::peg_tcl" (1.0.1)
+# [14] | "pt::parse::peg_tcl" (1.0.1)
+# [15] | "pt::cparam::configuration::critcl" (1.0.2)
+# [16] | "pt::tclparam::configuration::tcloo" (1.0.4)
# [17] | "pt::util" (1.1)
# [18] | "pt::peg::op" (1.1.0)
-# [19] | "pt::ast" (1.1)
-# [20] | "pt::pe::op" (1.0.1)
-# [21] | "pt::peg::import::json" (1)
-# [22] | "pt::peg::to::json" (1)
+# [19] | "pt::pe::op" (1.0.1)
+# [20] | "pt::ast" (1.1)
+# [21] | "pt::peg::to::json" (1)
+# [22] | "pt::peg::import::json" (1)
# [23] | "pt::peg::export::container" (1)
-# [24] | "pt::peg::export" (1.0.1)
-# [25] | "pt::peg::to::container" (1)
+# [24] | "pt::tclparam::configuration::nx" (1.0.1)
+# [25] | "pt::peg::interp" (1.0.1)
# [26] | "pt::pgen" (1.1)
-# [27] | "pt::tclparam::configuration::nx" (1.0.1)
-# [28] | "pt::peg::interp" (1.0.1)
-# [29] | "pt::peg::container" (1)
-# [30] | "pt::peg::container::peg" (1)
-# [31] | "pt::peg::to::tclparam" (1.0.3)
-# [32] | "text::write" (1)
-# [33] | "pt::peg" (1)
+# [27] | "pt::peg::export" (1.0.1)
+# [28] | "pt::peg::to::container" (1)
+# [29] | "pt::peg::to::tclparam" (1.0.3)
+# [30] | "pt::peg::container" (1)
+# [31] | "pt::peg::container::peg" (1)
+# [32] | "pt::peg" (1)
+# [33] | "text::write" (1)
# [34] | "pt::rde::nx" (.1.1)
# [35] | "pt::rde::oo" (1.1)
# [36] | "pt::pe" (1.0.2)
-# [37] | "char" (1.0.1)
-# [38] | "pt::cparam::configuration::tea" (0.1)
+# [37] | "pt::cparam::configuration::tea" (0.1)
+# [38] | "char" (1.0.2)
# -------+
Package {__pt 0.0}
Platform *
Desc {Parser Tools}
@@ -3169,15 +3219,10 @@
Path rde_critcl/tc.h
Path rde_critcl/util.c
Path rde_critcl/util.h
Path text_write.tcl
-Package {pt::rde::critcl 1.3.4}
-See __pt
-Platform *
-Desc {Tcllib package}
-
Package {pt::peg::to::param 1.0.1}
See __pt
Platform *
Desc {PEG Conversion. Write PARAM format}
@@ -3184,45 +3229,35 @@
Package {pt::peg::export::json 1}
See __pt
Platform *
Desc {PEG Export Plugin. Write JSON format}
-Package {pt::tclparam::configuration::snit 1.0.2}
+Package {pt::rde::critcl 1.3.4}
See __pt
Platform *
-Desc {Tcl/PARAM, Canned configuration, Snit}
-
-Package {pt::peg::from::json 1}
-See __pt
-Platform *
-Desc {PEG Conversion. Read JSON format}
+Desc {Tcllib package}
Package {pt::peg::export::peg 1}
See __pt
Platform *
Desc {PEG Export Plugin. Write PEG format}
+Package {pt::peg::from::json 1}
+See __pt
+Platform *
+Desc {PEG Conversion. Read JSON format}
+
+Package {pt::tclparam::configuration::snit 1.0.2}
+See __pt
+Platform *
+Desc {Tcl/PARAM, Canned configuration, Snit}
+
Package {pt::peg::to::cparam 1.1.3}
See __pt
Platform *
Desc {PEG Conversion. Write CPARAM format}
-Package {pt::peg::import 1.0.1}
-See __pt
-Platform *
-Desc {PEG Import}
-
-Package {pt::peg::to::peg 1.0.2}
-See __pt
-Platform *
-Desc {PEG Conversion. Write PEG format}
-
-Package {pt::parse::peg 1.0.1}
-See __pt
-Platform *
-Desc {Parser Tools PEG Parser}
-
Package {pt::peg::import::peg 1}
See __pt
Platform *
Desc {PEG Import Plugin. Read PEG format}
@@ -3229,14 +3264,34 @@
Package {pt::rde 1.1}
See __pt
Platform *
Desc {Parsing Runtime Support, PARAM based}
+Package {pt::peg::import 1.0.1}
+See __pt
+Platform *
+Desc {PEG Import}
+
+Package {pt::parse::peg 1.0.1}
+See __pt
+Platform *
+Desc {Parser Tools PEG Parser}
+
+Package {pt::peg::to::peg 1.0.2}
+See __pt
+Platform *
+Desc {PEG Conversion. Write PEG format}
+
Package {pt::peg::from::peg 1.0.3}
See __pt
Platform *
Desc {PEG Conversion. Read PEG format}
+
+Package {pt::parse::peg_tcl 1.0.1}
+See __pt
+Platform *
+Desc {Tcllib package}
Package {pt::cparam::configuration::critcl 1.0.2}
See __pt
Platform *
Desc {C/PARAM, Canned configuration, Critcl}
@@ -3244,15 +3299,10 @@
Package {pt::tclparam::configuration::tcloo 1.0.4}
See __pt
Platform *
Desc {Tcl/PARAM, Canned configuration, Tcloo}
-Package {pt::parse::peg_tcl 1.0.1}
-See __pt
-Platform *
-Desc {Tcllib package}
-
Package {pt::util 1.1}
See __pt
Platform *
Desc {Tcllib package}
@@ -3259,50 +3309,35 @@
Package {pt::peg::op 1.1.0}
See __pt
Platform *
Desc {Parser Tools PE Grammar Utility Operations}
-Package {pt::ast 1.1}
-See __pt
-Platform *
-Desc {General utilities}
-
Package {pt::pe::op 1.0.1}
See __pt
Platform *
Desc {Parsing Expression Utilities}
-Package {pt::peg::import::json 1}
+Package {pt::ast 1.1}
See __pt
Platform *
-Desc {PEG Import Plugin. Read JSON format}
+Desc {General utilities}
Package {pt::peg::to::json 1}
See __pt
Platform *
Desc {PEG Conversion. Write JSON format}
+Package {pt::peg::import::json 1}
+See __pt
+Platform *
+Desc {PEG Import Plugin. Read JSON format}
+
Package {pt::peg::export::container 1}
See __pt
Platform *
Desc {PEG Export Plugin. Write CONTAINER format}
-Package {pt::peg::export 1.0.1}
-See __pt
-Platform *
-Desc {PEG Export}
-
-Package {pt::peg::to::container 1}
-See __pt
-Platform *
-Desc {PEG Conversion. Write CONTAINER format}
-
-Package {pt::pgen 1.1}
-See __pt
-Platform *
-Desc {Parser Generator}
-
Package {pt::tclparam::configuration::nx 1.0.1}
See __pt
Platform *
Desc {Tcl/PARAM, Canned configuration, NX}
@@ -3309,10 +3344,30 @@
Package {pt::peg::interp 1.0.1}
See __pt
Platform *
Desc {Interpreter for parsing expression grammars}
+Package {pt::pgen 1.1}
+See __pt
+Platform *
+Desc {Parser Generator}
+
+Package {pt::peg::export 1.0.1}
+See __pt
+Platform *
+Desc {PEG Export}
+
+Package {pt::peg::to::container 1}
+See __pt
+Platform *
+Desc {PEG Conversion. Write CONTAINER format}
+
+Package {pt::peg::to::tclparam 1.0.3}
+See __pt
+Platform *
+Desc {PEG Conversion. Write TCLPARAM format}
+
Package {pt::peg::container 1}
See __pt
Platform *
Desc {PEG Storage}
@@ -3319,25 +3374,20 @@
Package {pt::peg::container::peg 1}
See __pt
Platform *
Desc {PEG Storage. Canned PEG grammar specification}
-Package {pt::peg::to::tclparam 1.0.3}
+Package {pt::peg 1}
See __pt
Platform *
-Desc {PEG Conversion. Write TCLPARAM format}
+Desc {Parsing Expression Grammar Serialization}
Package {text::write 1}
See __pt
Platform *
Desc {Tcllib package}
-Package {pt::peg 1}
-See __pt
-Platform *
-Desc {Parsing Expression Grammar Serialization}
-
Package {pt::rde::nx .1.1}
See __pt
Platform *
Desc {Tcllib package}
@@ -3349,20 +3399,20 @@
Package {pt::pe 1.0.2}
See __pt
Platform *
Desc {Parsing Expression Serialization}
-Package {char 1.0.1}
-See __pt
-Platform *
-Desc {Tcllib package}
-
Package {pt::cparam::configuration::tea 0.1}
See __pt
Platform *
Desc {C/PARAM, Canned configuration, TEA}
+Package {char 1.0.2}
+See __pt
+Platform *
+Desc {Tcllib package}
+
#
# ###########
# ############
# Module "rc4"
@@ -3410,14 +3460,14 @@
#
# ###############
# #############
# Module "rest"
-# [1] | "rest" (1.3.1)
+# [1] | "rest" (1.5)
# -------+
-Package {rest 1.3.1}
+Package {rest 1.5}
Platform *
Desc {define REST web APIs and call them inline or asychronously}
Base @TAP_DIR@/rest
Path pkgIndex.tcl
Path rest.tcl
@@ -3425,12 +3475,12 @@
#
# #############
# ###############
# Module "ripemd"
-# [1] | "ripemd128" (1.0.5)
-# [2] | "ripemd160" (1.0.5)
+# [1] | "ripemd160" (1.0.5)
+# [2] | "ripemd128" (1.0.5)
# -------+
Package {__ripemd 0.0}
Platform *
Desc {RIPEMD Message-Digest Algorithm}
@@ -3438,27 +3488,27 @@
Base @TAP_DIR@/ripemd
Path pkgIndex.tcl
Path ripemd128.tcl
Path ripemd160.tcl
+Package {ripemd160 1.0.5}
+See __ripemd
+Platform *
+Desc {RIPEMD-160 Message-Digest Algorithm}
+
Package {ripemd128 1.0.5}
See __ripemd
Platform *
Desc {RIPEMD-128 Message-Digest Algorithm}
-Package {ripemd160 1.0.5}
-See __ripemd
-Platform *
-Desc {RIPEMD-160 Message-Digest Algorithm}
-
#
# ###############
# #############
# Module "sasl"
-# [1] | "SASL::XGoogleToken" (1.0.1)
-# [2] | "SASL::SCRAM" (0.1)
+# [1] | "SASL::SCRAM" (0.1)
+# [2] | "SASL::XGoogleToken" (1.0.1)
# [3] | "SASL::NTLM" (1.1.2)
# [4] | "SASL" (1.3.3)
# -------+
Package {__sasl 0.0}
@@ -3470,20 +3520,20 @@
Path ntlm.tcl
Path pkgIndex.tcl
Path sasl.tcl
Path scram.tcl
+Package {SASL::SCRAM 0.1}
+See __sasl
+Platform *
+Desc {Implementation of SASL SCRAM mechanism for Tcl}
+
Package {SASL::XGoogleToken 1.0.1}
See __sasl
Platform *
Desc {Implementation of SASL NTLM mechanism for Tcl}
-Package {SASL::SCRAM 0.1}
-See __sasl
-Platform *
-Desc {Implementation of SASL SCRAM mechanism for Tcl}
-
Package {SASL::NTLM 1.1.2}
See __sasl
Platform *
Desc {Implementation of SASL NTLM mechanism for Tcl}
@@ -3502,29 +3552,33 @@
# [3] | "sha256" (1.0.4)
# -------+
Package {__sha1 0.0}
Platform *
-Desc {SHA-x Message-Digest Algorithm}
+Desc {SHA-x Message-Digest Algorithm, Standardized OO Framework for development}
Hidden
Base @TAP_DIR@/sha1
Path pkgIndex.tcl
+Path sha1.c
+Path sha1.h
Path sha1.tcl
Path sha1c.tcl
Path sha1v1.tcl
+Path sha256.c
+Path sha256.h
Path sha256.tcl
Path sha256c.tcl
Package {sha1 1.1.1}
See __sha1
Platform *
-Desc {SHA1 Message-Digest Algorithm}
+Desc {TclOO Library (TOOL) Framework}
Package {sha1 2.0.4}
See __sha1
Platform *
-Desc {SHA1 Message-Digest Algorithm}
+Desc {TclOO Library (TOOL) Framework}
Package {sha256 1.0.4}
See __sha1
Platform *
Desc {SHA256 Message-Digest Algorithm}
@@ -3533,12 +3587,12 @@
# #############
# ###################
# Module "simulation"
# [1] | "simulation::montecarlo" (0.1)
-# [2] | "simulation::annealing" (0.2)
-# [3] | "simulation::random" (0.4.0)
+# [2] | "simulation::random" (0.4.0)
+# [3] | "simulation::annealing" (0.2)
# -------+
Package {__simulation 0.0}
Platform *
Desc {Tcl Simulation Tools}
@@ -3552,20 +3606,20 @@
Package {simulation::montecarlo 0.1}
See __simulation
Platform *
Desc {Monte Carlo simulations}
+Package {simulation::random 0.4.0}
+See __simulation
+Platform *
+Desc {Pseudo-random number generators}
+
Package {simulation::annealing 0.2}
See __simulation
Platform *
Desc {Simulated annealing}
-Package {simulation::random 0.4.0}
-See __simulation
-Platform *
-Desc {Pseudo-random number generators}
-
#
# ###################
# ##############
# Module "smtpd"
@@ -3588,11 +3642,11 @@
# [2] | "snit" (2.3.2)
# -------+
Package {__snit 0.0}
Platform *
-Desc {Parser generator tools}
+Desc {Snit's Not Incr Tcl, OO system}
Hidden
Base @TAP_DIR@/snit
Path main1.tcl
Path main1_83.tcl
Path main2.tcl
@@ -3603,16 +3657,16 @@
Path validate.tcl
Package {snit 1.4.2}
See __snit
Platform *
-Desc {page character quoting utilities}
+Desc {Snit's Not Incr Tcl}
Package {snit 2.3.2}
See __snit
Platform *
-Desc {page character quoting utilities}
+Desc {Snit's Not Incr Tcl}
#
# #############
# ################
@@ -3660,12 +3714,12 @@
#
# ###############
# ###############
# Module "string"
-# [1] | "string::token" (1)
-# [2] | "string::token::shell" (1.2)
+# [1] | "string::token::shell" (1.2)
+# [2] | "string::token" (1)
# -------+
Package {__string 0.0}
Platform *
Desc {Text and string utilities}
@@ -3673,20 +3727,20 @@
Base @TAP_DIR@/string
Path pkgIndex.tcl
Path token.tcl
Path token_shell.tcl
+Package {string::token::shell 1.2}
+See __string
+Platform *
+Desc {Parsing of shell command line}
+
Package {string::token 1}
See __string
Platform *
Desc {Regex based iterative lexing}
-Package {string::token::shell 1.2}
-See __string
-Platform *
-Desc {Parsing of shell command line}
-
#
# ###############
# ###################
# Module "stringprep"
@@ -3742,17 +3796,18 @@
# [8] | "struct" (2.1)
# [9] | "struct::set" (2.2.3)
# [10] | "struct::queue" (1.4.5)
# [11] | "struct::map" (1)
# [12] | "struct::prioqueue" (1.4)
-# [13] | "struct::disjointset" (1.1)
-# [14] | "struct::pool" (1.2.3)
-# [15] | "struct::list" (1.8.4)
-# [16] | "struct::graph::op" (0.11.3)
-# [17] | "struct::matrix" (1.2.2)
-# [18] | "struct::matrix" (2.0.4)
-# [19] | "struct::stack" (1.5.3)
+# [13] | "struct::list::test" (1.8.4)
+# [14] | "struct::disjointset" (1.1)
+# [15] | "struct::pool" (1.2.3)
+# [16] | "struct::list" (1.8.5)
+# [17] | "struct::graph::op" (0.11.3)
+# [18] | "struct::matrix" (1.2.2)
+# [19] | "struct::matrix" (2.0.4)
+# [20] | "struct::stack" (1.5.3)
# -------+
Package {__struct 0.0}
Platform *
Desc {Tcl Data Structures}
@@ -3763,10 +3818,11 @@
Path graph1.tcl
Path graph_c.tcl
Path graph_tcl.tcl
Path graphops.tcl
Path list.tcl
+Path list.test.tcl
Path map.tcl
Path matrix.tcl
Path matrix1.tcl
Path pkgIndex.tcl
Path pool.tcl
@@ -3848,10 +3904,15 @@
Package {struct::prioqueue 1.4}
See __struct
Platform *
Desc {Create and manipulate prioqueue objects}
+
+Package {struct::list::test 1.8.4}
+See __struct
+Platform *
+Desc {Tcllib package}
Package {struct::disjointset 1.1}
See __struct
Platform *
Desc {Disjoint set data structure}
@@ -3859,11 +3920,11 @@
Package {struct::pool 1.2.3}
See __struct
Platform *
Desc {Create and manipulate pool objects (of discrete items)}
-Package {struct::list 1.8.4}
+Package {struct::list 1.8.5}
See __struct
Platform *
Desc {Procedures for manipulating lists}
Package {struct::graph::op 0.11.3}
@@ -3932,22 +3993,22 @@
#
# ##############
# #############
# Module "term"
-# [1] | "term::ansi::ctrl::unix" (0.1.1)
-# [2] | "term::receive::bind" (0.1)
+# [1] | "term::receive::bind" (0.1)
+# [2] | "term::ansi::ctrl::unix" (0.1.1)
# [3] | "term::ansi::code::attr" (0.1)
# [4] | "term::interact::menu" (0.1)
# [5] | "term" (0.1)
# [6] | "term::interact::pager" (0.1)
# [7] | "term::ansi::send" (0.2)
-# [8] | "term::ansi::code" (0.2)
-# [9] | "term::send" (0.1)
-# [10] | "term::ansi::code::macros" (0.1)
-# [11] | "term::ansi::code::ctrl" (0.2)
-# [12] | "term::receive" (0.1)
+# [8] | "term::send" (0.1)
+# [9] | "term::ansi::code" (0.2)
+# [10] | "term::receive" (0.1)
+# [11] | "term::ansi::code::macros" (0.1)
+# [12] | "term::ansi::code::ctrl" (0.3)
# -------+
Package {__term 0.0}
Platform *
Desc {Terminal control}
@@ -3965,20 +4026,20 @@
Path pkgIndex.tcl
Path receive.tcl
Path send.tcl
Path term.tcl
+Package {term::receive::bind 0.1}
+See __term
+Platform *
+Desc {Keyboard dispatch from terminals}
+
Package {term::ansi::ctrl::unix 0.1.1}
See __term
Platform *
Desc {Control operations and queries}
-Package {term::receive::bind 0.1}
-See __term
-Platform *
-Desc {Keyboard dispatch from terminals}
-
Package {term::ansi::code::attr 0.1}
See __term
Platform *
Desc {ANSI attribute sequences}
@@ -4000,50 +4061,50 @@
Package {term::ansi::send 0.2}
See __term
Platform *
Desc {Output of ANSI control sequences to terminals}
+Package {term::send 0.1}
+See __term
+Platform *
+Desc {General output to terminals}
+
Package {term::ansi::code 0.2}
See __term
Platform *
Desc {Helper for control sequences}
-Package {term::send 0.1}
+Package {term::receive 0.1}
See __term
Platform *
-Desc {General output to terminals}
+Desc {General input from terminals}
Package {term::ansi::code::macros 0.1}
See __term
Platform *
Desc {Macro sequences}
-Package {term::ansi::code::ctrl 0.2}
+Package {term::ansi::code::ctrl 0.3}
See __term
Platform *
Desc {ANSI control sequences}
-Package {term::receive 0.1}
-See __term
-Platform *
-Desc {General input from terminals}
-
#
# #############
# #################
# Module "textutil"
# [1] | "textutil::repeat" (0.7)
# [2] | "textutil::wcswidth" (35.1)
# [3] | "textutil::expander" (1.3.1)
-# [4] | "textutil::tabify" (0.7)
-# [5] | "textutil::string" (0.8)
+# [4] | "textutil::string" (0.8)
+# [5] | "textutil::tabify" (0.7)
# [6] | "textutil::adjust" (0.7.3)
-# [7] | "textutil::trim" (0.7)
-# [8] | "textutil" (0.9)
-# [9] | "textutil::split" (0.8)
-# [10] | "textutil::patch" (0.1)
+# [7] | "textutil" (0.9)
+# [8] | "textutil::trim" (0.7)
+# [9] | "textutil::patch" (0.1)
+# [10] | "textutil::split" (0.8)
# -------+
Package {__textutil 0.0}
Platform *
Desc {Text and string utilities, macro processing, Text and string utilities, Markdown to HTML Converter}
@@ -4077,57 +4138,57 @@
Package {textutil::expander 1.3.1}
See __textutil
Platform *
Desc {Procedures to process templates and expand text.}
+Package {textutil::string 0.8}
+See __textutil
+Platform *
+Desc {Procedures to manipulate texts and strings.}
+
Package {textutil::tabify 0.7}
See __textutil
Platform *
Desc {Procedures to (un)tabify strings}
-Package {textutil::string 0.8}
-See __textutil
-Platform *
-Desc {Procedures to manipulate texts and strings.}
-
Package {textutil::adjust 0.7.3}
See __textutil
Platform *
Desc {Procedures to adjust, indent, and undent paragraphs}
-Package {textutil::trim 0.7}
-See __textutil
-Platform *
-Desc {Procedures to trim strings}
-
Package {textutil 0.9}
See __textutil
Platform *
Desc {Converts Markdown text to HTML}
-Package {textutil::split 0.8}
+Package {textutil::trim 0.7}
See __textutil
Platform *
-Desc {Procedures to split texts}
+Desc {Procedures to trim strings}
Package {textutil::patch 0.1}
See __textutil
Platform *
Desc {Application of uni-diff patches to directory trees}
+Package {textutil::split 0.8}
+See __textutil
+Platform *
+Desc {Procedures to split texts}
+
#
# #################
# ############
# Module "tie"
-# [1] | "tie::std::growfile" (1.0)
-# [2] | "tie::std::array" (1.0)
-# [3] | "tie::std::file" (1.0.4)
-# [4] | "tie::std::dsource" (1.0)
-# [5] | "tie::std::rarray" (1.0.1)
-# [6] | "tie" (1.1)
-# [7] | "tie::std::log" (1.0)
+# [1] | "tie::std::growfile" (1.1)
+# [2] | "tie::std::array" (1.1)
+# [3] | "tie::std::file" (1.1)
+# [4] | "tie" (1.2)
+# [5] | "tie::std::dsource" (1.1)
+# [6] | "tie::std::rarray" (1.1)
+# [7] | "tie::std::log" (1.1)
# -------+
Package {__tie 0.0}
Platform *
Desc {Tcl Data Structures}
@@ -4140,41 +4201,41 @@
Path tie_file.tcl
Path tie_growfile.tcl
Path tie_log.tcl
Path tie_rarray.tcl
-Package {tie::std::growfile 1.0}
-See __tie
-Platform *
-Desc {Array persistence, standard data sources}
-
-Package {tie::std::array 1.0}
-See __tie
-Platform *
-Desc {Array persistence, standard data sources}
-
-Package {tie::std::file 1.0.4}
-See __tie
-Platform *
-Desc {Array persistence, standard data sources}
-
-Package {tie::std::dsource 1.0}
-See __tie
-Platform *
-Desc {Array persistence, standard data sources}
-
-Package {tie::std::rarray 1.0.1}
-See __tie
-Platform *
-Desc {Array persistence, standard data sources}
-
-Package {tie 1.1}
-See __tie
-Platform *
-Desc {Array persistence}
-
-Package {tie::std::log 1.0}
+Package {tie::std::growfile 1.1}
+See __tie
+Platform *
+Desc {Array persistence, standard data sources}
+
+Package {tie::std::array 1.1}
+See __tie
+Platform *
+Desc {Array persistence, standard data sources}
+
+Package {tie::std::file 1.1}
+See __tie
+Platform *
+Desc {Array persistence, standard data sources}
+
+Package {tie 1.2}
+See __tie
+Platform *
+Desc {Array persistence}
+
+Package {tie::std::dsource 1.1}
+See __tie
+Platform *
+Desc {Array persistence, standard data sources}
+
+Package {tie::std::rarray 1.1}
+See __tie
+Platform *
+Desc {Array persistence, standard data sources}
+
+Package {tie::std::log 1.1}
See __tie
Platform *
Desc {Array persistence, standard data sources}
#
@@ -4400,21 +4461,21 @@
# [2] | "uri::urn" (1.0.3)
# -------+
Package {__uri 0.0}
Platform *
-Desc {Tcl Web Server, Tcl Uniform Resource Identifier Management}
+Desc {Tcl Uniform Resource Identifier Management}
Hidden
Base @TAP_DIR@/uri
Path pkgIndex.tcl
Path uri.tcl
Path urn-scheme.tcl
Package {uri 1.2.7}
See __uri
Platform *
-Desc {A TclOO and coroutine based web server}
+Desc {URI utilities}
Package {uri::urn 1.0.3}
See __uri
Platform *
Desc {URI utilities, URN scheme}
@@ -4437,17 +4498,17 @@
#
# #############
# ################
# Module "valtype"
-# [1] | "valtype::creditcard::mastercard" (1)
-# [2] | "valtype::usnpi" (1)
+# [1] | "valtype::usnpi" (1)
+# [2] | "valtype::creditcard::mastercard" (1)
# [3] | "valtype::creditcard::discover" (1)
# [4] | "valtype::common" (1)
-# [5] | "valtype::imei" (1)
+# [5] | "valtype::creditcard::visa" (1)
# [6] | "valtype::isbn" (1)
-# [7] | "valtype::creditcard::visa" (1)
+# [7] | "valtype::imei" (1)
# [8] | "valtype::creditcard::amex" (1)
# [9] | "valtype::luhn" (1)
# [10] | "valtype::gs1::ean13" (1)
# [11] | "valtype::iban" (1.7)
# [12] | "valtype::luhn5" (1)
@@ -4472,20 +4533,20 @@
Path pkgIndex.tcl
Path usnpi.tcl
Path valtype.tcl
Path verhoeff.tcl
+Package {valtype::usnpi 1}
+See __valtype
+Platform *
+Desc {Validation for USNPI}
+
Package {valtype::creditcard::mastercard 1}
See __valtype
Platform *
Desc {Validation for Mastercard creditcard number}
-Package {valtype::usnpi 1}
-See __valtype
-Platform *
-Desc {Validation for USNPI}
-
Package {valtype::creditcard::discover 1}
See __valtype
Platform *
Desc {Validation for Discover creditcard number}
@@ -4492,24 +4553,24 @@
Package {valtype::common 1}
See __valtype
Platform *
Desc {Validation, common code}
-Package {valtype::imei 1}
+Package {valtype::creditcard::visa 1}
See __valtype
Platform *
-Desc {Validation for IMEI}
+Desc {Validation for VISA creditcard number}
Package {valtype::isbn 1}
See __valtype
Platform *
Desc {Validation for ISBN}
-Package {valtype::creditcard::visa 1}
+Package {valtype::imei 1}
See __valtype
Platform *
-Desc {Validation for VISA creditcard number}
+Desc {Validation for IMEI}
Package {valtype::creditcard::amex 1}
See __valtype
Platform *
Desc {Validation for AMEX creditcard number}
@@ -4545,20 +4606,20 @@
# #########################
# Module "virtchannel_base"
# [1] | "tcl::chan::std" (1.0.1)
# [2] | "tcl::chan::fifo" (1)
# [3] | "tcl::chan::cat" (1.0.3)
-# [4] | "tcl::chan::halfpipe" (1.0.1)
-# [5] | "tcl::chan::random" (1)
-# [6] | "tcl::chan::memchan" (1.0.4)
-# [7] | "tcl::chan::null" (1)
-# [8] | "tcl::chan::nullzero" (1)
+# [4] | "tcl::chan::halfpipe" (1.0.2)
+# [5] | "tcl::chan::memchan" (1.0.4)
+# [6] | "tcl::chan::random" (1)
+# [7] | "tcl::chan::nullzero" (1)
+# [8] | "tcl::chan::null" (1)
# [9] | "tcl::chan::facade" (1.0.1)
# [10] | "tcl::randomseed" (1)
# [11] | "tcl::chan::textwindow" (1)
-# [12] | "tcl::chan::fifo2" (1)
-# [13] | "tcl::chan::variable" (1.0.4)
+# [12] | "tcl::chan::variable" (1.0.4)
+# [13] | "tcl::chan::fifo2" (1)
# [14] | "tcl::chan::string" (1.0.3)
# [15] | "tcl::chan::zero" (1)
# -------+
Package {__virtchannel_base 0.0}
@@ -4596,34 +4657,34 @@
Package {tcl::chan::cat 1.0.3}
See __virtchannel_base
Platform *
Desc {Concatenation channel}
-Package {tcl::chan::halfpipe 1.0.1}
+Package {tcl::chan::halfpipe 1.0.2}
See __virtchannel_base
Platform *
Desc {In-memory channel, half of a fifo2}
-Package {tcl::chan::random 1}
-See __virtchannel_base
-Platform *
-Desc {Random channel}
-
Package {tcl::chan::memchan 1.0.4}
See __virtchannel_base
Platform *
Desc {In-memory channel}
-Package {tcl::chan::null 1}
+Package {tcl::chan::random 1}
See __virtchannel_base
Platform *
-Desc {Null channel}
+Desc {Random channel}
Package {tcl::chan::nullzero 1}
See __virtchannel_base
Platform *
Desc {Null/Zero channel combination}
+
+Package {tcl::chan::null 1}
+See __virtchannel_base
+Platform *
+Desc {Null channel}
Package {tcl::chan::facade 1.0.1}
See __virtchannel_base
Platform *
Desc {Facade channel}
@@ -4636,20 +4697,20 @@
Package {tcl::chan::textwindow 1}
See __virtchannel_base
Platform *
Desc {Textwindow channel}
+Package {tcl::chan::variable 1.0.4}
+See __virtchannel_base
+Platform *
+Desc {In-memory channel using variable for storage}
+
Package {tcl::chan::fifo2 1}
See __virtchannel_base
Platform *
Desc {In-memory interconnected fifo channels}
-Package {tcl::chan::variable 1.0.4}
-See __virtchannel_base
-Platform *
-Desc {In-memory channel using variable for storage}
-
Package {tcl::chan::string 1.0.3}
See __virtchannel_base
Platform *
Desc {Read-only in-memory channel}
@@ -4697,18 +4758,18 @@
# #########################
# ##############################
# Module "virtchannel_transform"
# [1] | "tcl::transform::zlib" (1.0.1)
-# [2] | "tcl::transform::limitsize" (1)
-# [3] | "tcl::transform::identity" (1)
+# [2] | "tcl::transform::identity" (1)
+# [3] | "tcl::transform::limitsize" (1)
# [4] | "tcl::transform::otp" (1)
# [5] | "tcl::transform::base64" (1)
# [6] | "tcl::transform::crc32" (1)
# [7] | "tcl::transform::rot" (1)
-# [8] | "tcl::transform::adler32" (1)
-# [9] | "tcl::transform::hex" (1)
+# [8] | "tcl::transform::hex" (1)
+# [9] | "tcl::transform::adler32" (1)
# [10] | "tcl::transform::spacer" (1)
# [11] | "tcl::transform::observe" (1)
# [12] | "tcl::transform::counter" (1)
# -------+
@@ -4733,21 +4794,21 @@
Package {tcl::transform::zlib 1.0.1}
See __virtchannel_transform
Platform *
Desc {zlib (de)compression}
+
+Package {tcl::transform::identity 1}
+See __virtchannel_transform
+Platform *
+Desc {Identity transformation}
Package {tcl::transform::limitsize 1}
See __virtchannel_transform
Platform *
Desc {limiting input}
-Package {tcl::transform::identity 1}
-See __virtchannel_transform
-Platform *
-Desc {Identity transformation}
-
Package {tcl::transform::otp 1}
See __virtchannel_transform
Platform *
Desc {Encryption via one-time pad}
@@ -4764,20 +4825,20 @@
Package {tcl::transform::rot 1}
See __virtchannel_transform
Platform *
Desc {rot-encryption}
+Package {tcl::transform::hex 1}
+See __virtchannel_transform
+Platform *
+Desc {Hexadecimal encoding transformation}
+
Package {tcl::transform::adler32 1}
See __virtchannel_transform
Platform *
Desc {Adler32 transformation}
-Package {tcl::transform::hex 1}
-See __virtchannel_transform
-Platform *
-Desc {Hexadecimal encoding transformation}
-
Package {tcl::transform::spacer 1}
See __virtchannel_transform
Platform *
Desc {Space insertation and removal}
@@ -4794,16 +4855,16 @@
#
# ##############################
# ##################
# Module "websocket"
-# [1] | "websocket" (1.4.1)
+# [1] | "websocket" (1.4.2)
# -------+
-Package {websocket 1.4.1}
+Package {websocket 1.4.2}
Platform *
-Desc {A TclOO and coroutine based web server}
+Desc {Tcl implementation of the websocket protocol}
Base @TAP_DIR@/websocket
Path pkgIndex.tcl
Path websocket.tcl
#
@@ -4838,11 +4899,11 @@
# ############
# #############
# Module "yaml"
# [1] | "huddle::json" (0.1)
-# [2] | "huddle" (0.3)
+# [2] | "huddle" (0.4)
# [3] | "yaml" (0.4.1)
# -------+
Package {__yaml 0.0}
Platform *
@@ -4858,11 +4919,11 @@
Package {huddle::json 0.1}
See __yaml
Platform *
Desc {Tcllib package}
-Package {huddle 0.3}
+Package {huddle 0.4}
See __yaml
Platform *
Desc {Create and manipulate huddle object}
Package {yaml 0.4.1}
@@ -4875,11 +4936,11 @@
# ############
# Module "zip"
# [1] | "zipfile::encode" (0.4)
# [2] | "zipfile::mkzip" (1.2.1)
-# [3] | "zipfile::decode" (0.7.1)
+# [3] | "zipfile::decode" (0.9)
# -------+
Package {__zip 0.0}
Platform *
Desc {Zip archive creation, Zip archive handling}
@@ -4898,11 +4959,11 @@
Package {zipfile::mkzip 1.2.1}
See __zip
Platform *
Desc {Build a zip archive}
-Package {zipfile::decode 0.7.1}
+Package {zipfile::decode 0.9}
See __zip
Platform *
Desc {Access to zip archives}
#
Index: tcllib.yml
==================================================================
--- tcllib.yml
+++ tcllib.yml
@@ -1,7 +1,7 @@
dist_id: tcllib
-version: 1.20
+version: 1.21
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.
@@ -15,6 +15,6 @@
- Library/Mail
- Library/Cryptography
- Library/Math
license: BSD
owner_id: AndreasKupries
-wrapped_content: tcllib-1.20/
+wrapped_content: tcllib-1.21/