Index: devdoc/parts/b_critcl.inc ================================================================== --- devdoc/parts/b_critcl.inc +++ devdoc/parts/b_critcl.inc @@ -3,24 +3,25 @@ a number of packages also have [term accelerators] associated with them. These are [syscmd critcl]-based C packages whose use will boost the performance of the packages using them. -These accelerators are optional, and they are not installed by -default. +These accelerators are optional, and they are not built by default. +If they are built according to the instructions below then they will +also be installed as well. [para] To build the accelerators the normally optional dependency on [syscmd critcl] becomes required. [para] To build and install Tcllib with the accelerators in a Unix-like environment invoke: [example { ./configure - make critcl # This builds the shared library holding - # the accelerators - make install + make critcl # Builds the shared library and package holding + # the accelerators, tcllibc + make install # Installs all packages, including the new tcllibc. }] [para] The underlying tool is [file sak.tcl] in the toplevel directory of Tcllib and the command [cmd {make critcl}] is just a wrapper around Index: embedded/md/tcllib/files/devdoc/tcllib_installer.md ================================================================== --- embedded/md/tcllib/files/devdoc/tcllib_installer.md +++ embedded/md/tcllib/files/devdoc/tcllib_installer.md @@ -198,23 +198,24 @@ ## Critcl & Accelerators While the majority of Tcllib consists of packages written in pure Tcl a number of packages also have *accelerators* associated with them\. These are __critcl__\-based C packages whose use will boost the performance of the -packages using them\. These accelerators are optional, and they are not installed -by default\. +packages using them\. These accelerators are optional, and they are not built by +default\. If they are built according to the instructions below then they will +also be installed as well\. To build the accelerators the normally optional dependency on __critcl__ becomes required\. To build and install Tcllib with the accelerators in a Unix\-like environment invoke: ./configure - make critcl # This builds the shared library holding - # the accelerators - make install + make critcl # Builds the shared library and package holding + # the accelerators, tcllibc + make install # Installs all packages, including the new tcllibc. The underlying tool is "sak\.tcl" in the toplevel directory of Tcllib and the command __make critcl__ is just a wrapper around ./sak.tcl critcl Index: idoc/man/files/devdoc/tcllib_installer.n ================================================================== --- idoc/man/files/devdoc/tcllib_installer.n +++ idoc/man/files/devdoc/tcllib_installer.n @@ -442,12 +442,13 @@ .SS "CRITCL & ACCELERATORS" While the majority of Tcllib consists of packages written in pure Tcl a number of packages also have \fIaccelerators\fR associated with them\&. These are \fBcritcl\fR-based C packages whose use will boost the performance of the packages using them\&. -These accelerators are optional, and they are not installed by -default\&. +These accelerators are optional, and they are not built by default\&. +If they are built according to the instructions below then they will +also be installed as well\&. .PP To build the accelerators the normally optional dependency on \fBcritcl\fR becomes required\&. .PP To build and install Tcllib with the accelerators in a @@ -454,13 +455,13 @@ Unix-like environment invoke: .CS \&./configure - make critcl # This builds the shared library holding - # the accelerators - make install + make critcl # Builds the shared library and package holding + # the accelerators, tcllibc + make install # Installs all packages, including the new tcllibc\&. .CE .PP The underlying tool is "\fIsak\&.tcl\fR" in the toplevel directory of Tcllib and the command \fBmake critcl\fR is just a wrapper around Index: idoc/www/tcllib/files/devdoc/tcllib_installer.html ================================================================== --- idoc/www/tcllib/files/devdoc/tcllib_installer.html +++ idoc/www/tcllib/files/devdoc/tcllib_installer.html @@ -270,21 +270,22 @@
While the majority of Tcllib consists of packages written in pure Tcl a number of packages also have accelerators associated with them. These are critcl-based C packages whose use will boost the performance of the packages using them. -These accelerators are optional, and they are not installed by -default.
+These accelerators are optional, and they are not built by default. +If they are built according to the instructions below then they will +also be installed as well.To build the accelerators the normally optional dependency on critcl becomes required.
To build and install Tcllib with the accelerators in a Unix-like environment invoke:
./configure - make critcl # This builds the shared library holding - # the accelerators - make install + make critcl # Builds the shared library and package holding + # the accelerators, tcllibc + make install # Installs all packages, including the new tcllibc.
The underlying tool is "sak.tcl" in the toplevel directory of Tcllib and the command make critcl is just a wrapper around
./sak.tcl critcl Index: modules/0compatibility/pkgIndex.tcl ================================================================== --- modules/0compatibility/pkgIndex.tcl +++ modules/0compatibility/pkgIndex.tcl @@ -1,10 +1,10 @@ # Compatibility wrapper for deprecated packages. ## # Stages # [D1] Next Release - Noted deprecated, with redirection wrappers -# [D2] Release After - Wrappers become Boockers, throwing error noting redirection +# [D2] Release After - Wrappers become Blockers, throwing error noting redirection # [D3] Release Beyond - All removed. ## # Currently in deprecation # - D1 doctools::path (doctools2base) # - D1 doctools::config (doctools2base) Index: modules/blowfish/blowfish.tcl ================================================================== --- modules/blowfish/blowfish.tcl +++ modules/blowfish/blowfish.tcl @@ -522,11 +522,12 @@ # If data is not a multiple of 8, state(remainder) will hold # excess bytes for the next round. set pagedlen [expr {([string length $data] / 8) * 8}] set state(remainder) [string range $data $pagedlen end] - set data [string range $data 0 $pagedlen-1] + incr pagedlen -1 + set data [string range $data 0 $pagedlen] } if {![string length $data]} return if {[set code [catch { Index: modules/blowfish/blowfish.test ================================================================== --- modules/blowfish/blowfish.test +++ modules/blowfish/blowfish.test @@ -62,11 +62,12 @@ proc do-chan {data script} { upvar 1 in in msg msg set p [makeBinaryFile $data IN] - set in [open $p rb] + set in [open $p r] + fconfigure $in -translation binary -encoding binary set r [list [catch { uplevel 1 $script } msg] $msg] Index: modules/html/pkgIndex.tcl ================================================================== --- modules/html/pkgIndex.tcl +++ modules/html/pkgIndex.tcl @@ -1,2 +1,2 @@ if {![package vsatisfies [package provide Tcl] 8.2]} {return} -package ifneeded html 1.4.5 [list source [file join $dir html.tcl]] +package ifneeded html 1.5 [list source [file join $dir html.tcl]] Index: modules/log/ChangeLog ================================================================== --- modules/log/ChangeLog +++ modules/log/ChangeLog @@ -1,16 +1,16 @@ 2018-02-20 Harald Oehlmann- * log.tcl: [RFE 19607f927b]: Add command log::logeval + * log.tcl: [RFE 19607f927b]: Add command log::logsubst * log.man: to optimize expensive log message construction. * log.test: Bumped package version to 1.4 2013-02-01 Andreas Kupries * * Released and tagged Tcllib 1.15 ======================== - * + * 2012-07-09 Andreas Kupries * logger.tcl: [Bug 3541628]: Fixed creative writing issue in * logger.man: logger::init. Bumped package to version 0.9.3 Index: modules/log/log.man ================================================================== --- modules/log/log.man +++ modules/log/log.man @@ -1,17 +1,18 @@ +[vset VERSION 1.4] [comment {-*- tcl -*- doctools manpage}] -[manpage_begin log n 1.4] +[manpage_begin log n [vset VERSION]] [keywords log] [keywords {log level}] [keywords message] [keywords {message level}] [copyright {2001-2009 Andreas Kupries }] [moddesc {Logging facility}] [titledesc {Procedures to log messages of libraries and applications.}] [category {Programming tools}] [require Tcl 8] -[require log [opt 1.4]] +[require log [opt [vset VERSION]]] [description] [para] The [package log] package provides commands that allow libraries and Index: modules/math/pkgIndex.tcl ================================================================== --- modules/math/pkgIndex.tcl +++ modules/math/pkgIndex.tcl @@ -16,11 +16,11 @@ 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::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.1 [list source [file join $dir calculus.tcl]] +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]] Index: support/devel/sak/localdoc/localdoc.tcl ================================================================== --- support/devel/sak/localdoc/localdoc.tcl +++ support/devel/sak/localdoc/localdoc.tcl @@ -26,11 +26,12 @@ getpackage doctools::idx doctools/docidx.tcl getpackage dtplite dtplite/dtplite.tcl # Read installation information. Need the list of excluded # modules to suppress them here in the doc generation as well. - global excluded modules apps guide + global excluded modules apps guide distribution + set distribution [pwd] source support/installation/modules.tcl lappend baseconfig -module tcllib foreach e $excluded { puts "Excluding $e ..." Index: support/installation/actions.tcl ================================================================== --- support/installation/actions.tcl +++ support/installation/actions.tcl @@ -5,10 +5,19 @@ # by 'sak' to get the per-module lists of relevant files. The # different purposes are handled through the redefinition of the # commands [xcopy] and [xcopyf] used by the commands here. proc _null {args} {} + +proc _all {module libdir} { + global distribution + xcopy \ + [file join $distribution modules $module] \ + [file join $libdir $module] \ + 1 + return +} proc _tcl {module libdir} { global distribution xcopy \ [file join $distribution modules $module] \ Index: support/installation/modules.tcl ================================================================== --- support/installation/modules.tcl +++ support/installation/modules.tcl @@ -30,10 +30,15 @@ # -------------------------------------------------------------- # @@ Registration START Exclude calendar Exclude exif + +if {[file exists [file join $distribution modules tcllibc]]} { + # name pkg doc example + Module tcllibc _all _null _null +} # name pkg doc example Module 0compatibility _tcl _null _null # Wrapper packages redirecting deprecated/moved packages to their old # implementations. See pkgIndex.tcl for more notes. Index: support/installation/version.tcl ================================================================== --- support/installation/version.tcl +++ support/installation/version.tcl @@ -1,6 +1,6 @@ -package_version 1.19 +package_version 1.20 package_name tcllib dist_exclude config dist_exclude modules/ftp/example dist_exclude modules/ftpd/examples ADDED support/releases/history/README-1.20.md Index: support/releases/history/README-1.20.md ================================================================== --- /dev/null +++ support/releases/history/README-1.20.md @@ -0,0 +1,269 @@ +Overview +======== + +|||||| +|---|---|---|---|---| +|8|new packages|in|7|modules| +|47|changed packages|in|30|modules| +|389|unchanged packages|in|115|modules| +|446|packages, total|in|131|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.20 +================== + +|Module|Package|Version|Comments| +|---|---|---|---| +|clay|clay|0.8.6|| +|fileutil|fileutil::paths|1|Replaces: `doctools::paths`, (pt) `paths`.| +|lazyset|lazyset|1|| +||||| +|math|math::quasirandom|1.0|| +||math::trig|1.0|| +||||| +|practcl|practcl|0.16.3|| +|struct|struct::map|1|Replaces: `doctools::config`, (pt) `configuration`.| +|textutil|textutil::patch|0.1|| +||textutil::wcswidth|35.1|| +||||| + +Deprecations in Tcllib 1.20 +=========================== + +Four packages are stage 1 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|(D1) Redirected to replacements| +|doctools|doctools::config|struct::map|(D1) Redirected to replacements| +|pt|paths|fileutil::paths|(D1) Redirected to replacements| +|pt|configuration|struct::map|(D1) Redirected to replacements| + +Stage 1 (__D1__) means that: + + - The deprecated packages still exist. + - Their implementations have changed and become wrappers around their replacements. + +Future progress: + + - In the release after 1.20 the stage 1 deprecated packages will be + moved to stage 2 (__D2__). In that stage the implementations of the + deprecated packages will stop redirecting to their replacements, + and throw errors instead. IOW starting with stage 2 use of the + deprecated packages will be more strictly blocked. + + - In the release after that all stage 2 deprecated package 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.19 to 1.20 +================================ + +|Module|Package|From 1.19|To 1.20|Comments| +|---|---|---|---|---| +|blowfish|blowfish|1.0.4|1.0.5|B, D, T| +|cache|cache::async|0.3|0.3.1|B, D, T| +|dns|dns|1.4|1.4.1|B, D, T| +|||||| +|doctools|doctools|1.4.21|1.5.6|B| +||doctools::idx|1.0.7|1.1|EF, D, T| +||doctools::toc|1.1.6|1.2|EF, B, D, T| +|||||| +|doctools2idx|doctools::idx::export|0.2|0.2.1|I, D, T| +||doctools::idx::import|0.2|0.2.1|I, D, T| +|||||| +|doctools2toc|doctools::toc::export|0.2|0.2.1|I, D, T| +||doctools::toc::import|0.2|0.2.1|I, D, T| +|||||| +|dtplite|dtplite|1.3|1.3.1|B, D| +|html|html|1.4.4|1.4.5|EF, B, D, T| +|http|autoproxy __(1)__|1.6|1.7|EF, B, D, T| +|httpd|httpd|4.1.0|4.3.4|I, B, D, T| +|||||| +|log|log|1.3|1.4|EF, D, T| +||logger::utils|1.3|1.3.1|B, D, T| +|||||| +|markdown|Markdown|1.1|1.1.1|B, T| +|||||| +|math|math::calculus|0.8.2|0.8.2|D| +||math::interpolate|1.1.1|1.1.2|B| +||math::special __(1)__|0.3|0.4|EF, D, T| +||math::geometry|1.2.3|1.3.1|EF, D, T| +||math::numtheory|1.1|1.1.1|EF, D, T| +||math::statistics __(1)__|1.1.1|1.5|EF, D, T| +|||||| +|mime|mime|1.6|1.6.2|B, D, T| +||smtp|1.4.5|1.5|EF, D, T| +|||||| +|namespacex|namespacex|0.1|0.2|EF, I, B, D, T| +|ncgi|ncgi|1.4.3|1.4.4|B, D, T| +|oauth|oauth|1.0.1|1.0.3|B, D| +|png|png|0.2|0.3|EF, D, T| +|practcl|practcl __(2)__|0.11|0.16.3|EF, I, D| +|profiler|profiler|0.3|0.5|B, D, T| +|||||| +|pt|pt::peg::export|1|1.0.1|I, D, T| +||pt::peg::import|1|1.0.1|I, D, T| +||pt::peg::op|1.0.1|1.1.0|B, I, D| +|||||| +|sha1|sha1|2.0.3|2.0.4|B, D| +||sha256|1.0.3|1.0.4|B, D| +|||||| +|simulation|simulation::random|0.3.1|0.4.0|EF, D, T| +|||||| +|struct|struct::disjointset __(2)__|1.0|1.1|EF, I, D, T| +||struct::graph|2.4.1|2.4.3|B, D, T| +||struct::list|1.8.3|1.8.4|B, D, T| +||struct::matrix|2.0.3|2.0.4|B, D, T +||struct::record|1.2.1|1.2.2|B, D ,T| +|||||| +|textutil|textutil|0.8|0.9|EF, D, T| +|uuid|uuid|1.0.5|1.0.7|B, D, T| +|||||| +|virtchannel_base|tcl::chan::cat|1.0.2|1.0.3|B, D| +||tcl::chan::halfpipe|1|1.0.1|B, T| +|||||| +|zip|zipfile::mkzip|1.2|1.2.1|B, D| +|||||| + +Notes + + 1. Now requires Tcl 8.5+ + 2. Now requires Tcl 8.6+ + +Unchanged +========= + + aes, ascii85, asn, base32, base32::core, base32::hex, base64, + bee, bench, bench::in, bench::out::csv, bench::out::text, + bibtex, calendar, char, cksum, clock::iso8601, + clock::rfc2822, cmdline, comm, control, + coroutine, coroutine::auto, counter, crc16, crc32, cron, csv, + debug, debug::caller, debug::heartbeat, debug::timestamp, defer, + des, dicttool, docstrip, docstrip::util, doctools::toc (v2), + doctools::changelog, doctools::cvs, doctools::idx (v2), + doctools::html, doctools::html::cssdefaults, + doctools::idx::export::docidx, doctools::idx::export::html, + doctools::idx::export::json, doctools::idx::export::nroff, + doctools::idx::export::text, doctools::idx::export::wiki, + doctools::idx::import::docidx, doctools::idx::import::json, + doctools::idx::parse, doctools::idx::structure, + doctools::msgcat, doctools::msgcat::idx::c, + doctools::msgcat::idx::de, doctools::msgcat::idx::en, + doctools::msgcat::idx::fr, doctools::msgcat::toc::c, + doctools::msgcat::toc::de, doctools::msgcat::toc::en, + doctools::msgcat::toc::fr, doctools::nroff::man_macros, + doctools::tcl::parse, doctools::text, + doctools::toc::export::doctoc, doctools::toc::export::html, + doctools::toc::export::json, doctools::toc::export::nroff, + doctools::toc::export::text, doctools::toc::export::wiki, + doctools::toc::import::doctoc, doctools::toc::import::json, + doctools::toc::parse, doctools::toc::structure, exif, fileutil, + fileutil::decode, fileutil::magic::cfront, + fileutil::magic::cgen, fileutil::magic::filetype, + fileutil::magic::rt, fileutil::multi, fileutil::multi::op, + fileutil::traverse, ftp, ftp::geturl, ftpd, generator, gpx, + grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::me::cpu, + grammar::me::cpu::core, grammar::me::cpu::gasm, + grammar::me::tcl, grammar::me::util, grammar::peg, + grammar::peg::interp, hook, htmlparse, http::wget, huddle, + huddle::json, ident, imap4, inifile, interp, + interp::delegate::method, interp::delegate::proc, ip, irc, + javascript, jpeg, json, json::write, lambda, ldap, ldapx, + logger, logger::appender, map::geocode::nominatim, map::slippy, + map::slippy::cache, map::slippy::fetcher, mapproj, + math, math::bigfloat, math::bignum, math::calculus::symdiff, + math::complexnumbers, math::constants, math::decimal, + math::exact, math::fourier, math::fuzzy, + math::linearalgebra, math::machineparameters, math::optimize, + math::PCA, math::polynomials, math::rationalfunctions, + math::roman, md4, md5, md5crypt, multiplexer, + nameserv, nameserv::auto, nameserv::common, nameserv::server, + nettool, nmea, nntp, odie::processman, oo::dialect, oo::meta, + 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, picoirc, pki, pluginmgr, pop3, pop3d, + pop3d::dbox, pop3d::udb, processman, pt::ast, + pt::cparam::configuration::critcl, + pt::cparam::configuration::tea, pt::parse::peg, pt::pe, + pt::pe::op, pt::peg, pt::peg::container, + pt::peg::container::peg, pt::peg::export::container, + pt::peg::export::json, pt::peg::export::peg, + pt::peg::from::json, pt::peg::from::peg, pt::peg::import::json, + pt::peg::import::peg, pt::peg::interp, pt::peg::to::container, + pt::peg::to::cparam, pt::peg::to::json, pt::peg::to::param, + pt::peg::to::peg, pt::peg::to::tclparam, pt::pgen, pt::rde, + pt::rde::nx, pt::rde::oo, pt::tclparam::configuration::nx, + pt::tclparam::configuration::snit, + pt::tclparam::configuration::tcloo, pt::util, rc4, rcs, report, + resolv, rest, ripemd128, ripemd160, S3, SASL, SASL::NTLM, + SASL::SCRAM, SASL::XGoogleToken, simulation::annealing, + simulation::montecarlo, smtpd, snit, soundex, spf, stooop, + string::token, string::token::shell, stringprep, sha1 (v1), + stringprep::data, struct, struct::graph::op, + struct::pool, struct::prioqueue, struct::queue, struct::set, + struct::skiplist, struct::stack, struct::tree, sum, switched, + tar, 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::ctrl, + term::ansi::code::macros, term::ansi::ctrl::unix, + term::ansi::send, term::interact::menu, term::interact::pager, + term::receive, term::receive::bind, term::send, text::write, + textutil::adjust, textutil::expander, textutil::repeat, + textutil::split, textutil::string, textutil::tabify, + textutil::trim, throw, tie, tie::std::array, tie::std::dsource, + tie::std::file, tie::std::growfile, tie::std::log, + tie::std::rarray, tiff, time, tool, 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, valtype::common, + valtype::creditcard::amex, valtype::creditcard::discover, + valtype::creditcard::mastercard, valtype::creditcard::visa, + valtype::gs1::ean13, valtype::iban, valtype::imei, + valtype::isbn, valtype::luhn, valtype::luhn5, valtype::usnpi, + valtype::verhoeff, websocket, wip, xsxp, yaml, yencode, + zipfile::decode, zipfile::encode ADDED support/releases/history/README-1.20.txt Index: support/releases/history/README-1.20.txt ================================================================== --- /dev/null +++ support/releases/history/README-1.20.txt @@ -0,0 +1,268 @@ +Overview +======== + + 8 new packages in 7 modules + 47 changed packages in 30 modules + 389 unchanged packages in 115 modules + 446 packages, total in 131 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.20 +================== + + Module Package Version Comments + ---------- -------------------- ------------- ---------- + clay clay 0.8.6 + fileutil fileutil::paths 1 Replaces: doctools::paths, (pt) paths. + lazyset lazyset 1 + ---------- -------------------- ------------- ---------- + math math::quasirandom 1.0 + math::trig 1.0 + ---------- -------------------- ------------- ---------- + practcl practcl 0.16.3 + struct struct::map 1 Replaces: doctools::config, (pt) configuration. + ---------- -------------------- ------------- ---------- + textutil textutil::patch 0.1 + textutil::wcswidth 35.1 + ---------- -------------------- ------------- ---------- + +Deprecations in Tcllib 1.20 +=========================== + +Four packages are stage 1 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 (D1) Redirected to replacements + doctools doctools::config struct::map (D1) Redirected to replacements + pt paths fileutil::paths (D1) Redirected to replacements + pt configuration struct::map (D1) Redirected to replacements + ------------------ ----------------- ---------------- -------------------------------- + +Stage 1 (D1) means that: + + - The deprecated packages still exist. + - Their implementations have changed and become wrappers around their replacements. + +Future progress: + + - In the release after 1.20 the stage 1 deprecated packages will be + moved to stage 2 (D2). In that stage the implementations of the + deprecated packages will stop redirecting to their replacements, + and throw errors instead. IOW starting with stage 2 use of the + deprecated packages will be more strictly blocked. + + - In the release after that all stage 2 deprecated package 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.19 to 1.20 +================================ + + Module Package From 1.19 To 1.20 Comments + ------------------ ----------------------- ----------- --------- ---------- + blowfish blowfish 1.0.4 1.0.5 B, D, T + cache cache::async 0.3 0.3.1 B, D, T + dns dns 1.4 1.4.1 B, D, T + ------------------ ----------------------- ----------- --------- ---------- + doctools doctools 1.4.21 1.5.6 B + doctools::idx 1.0.7 1.1 EF, D, T + doctools::toc 1.1.6 1.2 EF, B, D, T + ------------------ ----------------------- ----------- --------- ---------- + doctools2idx doctools::idx::export 0.2 0.2.1 I, D, T + doctools::idx::import 0.2 0.2.1 I, D, T + ------------------ ----------------------- ----------- --------- ---------- + doctools2toc doctools::toc::export 0.2 0.2.1 I, D, T + doctools::toc::import 0.2 0.2.1 I, D, T + ------------------ ----------------------- ----------- --------- ---------- + dtplite dtplite 1.3 1.3.1 B, D + html html 1.4.4 1.4.5 EF, B, D, T + http autoproxy (1) 1.6 1.7 EF, B, D, T + httpd httpd 4.1.0 4.3.4 I, B, D, T + ------------------ ----------------------- ----------- --------- ---------- + log log 1.3 1.4 EF, D, T + logger::utils 1.3 1.3.1 B, D, T + ------------------ ----------------------- ----------- --------- ---------- + markdown Markdown 1.1 1.1.1 B, T + ------------------ ----------------------- ----------- --------- ---------- + math math::calculus 0.8.2 0.8.2 D + math::interpolate 1.1.1 1.1.2 B + math::special (1) 0.3 0.4 EF, D, T + math::geometry 1.2.3 1.3.1 EF, D, T, B + math::numtheory 1.1 1.1.1 EF, D, T + math::statistics (1) 1.1.1 1.5 EF, D, T + ------------------ ----------------------- ----------- --------- ---------- + mime mime 1.6 1.6.2 B, D, T + smtp 1.4.5 1.5 EF, D, T + ------------------ ----------------------- ----------- --------- ---------- + namespacex namespacex 0.1 0.2 EF, I, B, D, T + ncgi ncgi 1.4.3 1.4.4 B, D, T + oauth oauth 1.0.1 1.0.3 B, D + png png 0.2 0.3 EF, D, T + practcl practcl (2) 0.11 0.16.3 EF, I, D + profiler profiler 0.3 0.5 B, D, T + ------------------ ----------------------- ----------- --------- ---------- + pt pt::peg::export 1 1.0.1 I, D, T + pt::peg::import 1 1.0.1 I, D, T + pt::peg::op 1.0.1 1.1.0 B, I, D + ------------------ ----------------------- ----------- --------- ---------- + sha1 sha1 2.0.3 2.0.4 B, D + sha256 1.0.3 1.0.4 B, D + ------------------ ----------------------- ----------- --------- ---------- + simulation simulation::random 0.3.1 0.4.0 EF, D, T + ------------------ ----------------------- ----------- --------- ---------- + struct struct::disjointset (2) 1.0 1.1 EF, I, D, T + struct::graph 2.4.1 2.4.3 B, D, T + struct::list 1.8.3 1.8.4 B, D, T + struct::matrix 2.0.3 2.0.4 B, D, T + struct::record 1.2.1 1.2.2 B, D, T + ------------------ ----------------------- ----------- --------- ---------- + textutil textutil 0.8 0.9 EF, D, T + uuid uuid 1.0.5 1.0.7 B, D, T + ------------------ ----------------------- ----------- --------- ---------- + virtchannel_base tcl::chan::cat 1.0.2 1.0.3 B, D + tcl::chan::halfpipe 1 1.0.1 B, T + ------------------ ----------------------- ----------- --------- ---------- + zip zipfile::mkzip 1.2 1.2.1 B, D + ------------------ ----------------------- ----------- --------- ---------- + +Notes +(1) Now requires Tcl 8.5+ +(2) Now requires Tcl 8.6+ + +Unchanged +========= + + aes, ascii85, asn, base32, base32::core, base32::hex, base64, + bee, bench, bench::in, bench::out::csv, bench::out::text, + bibtex, calendar, char, cksum, clock::iso8601, + clock::rfc2822, cmdline, comm, control, + coroutine, coroutine::auto, counter, crc16, crc32, cron, csv, + debug, debug::caller, debug::heartbeat, debug::timestamp, defer, + des, dicttool, docstrip, docstrip::util, doctools::toc (v2), + doctools::changelog, doctools::cvs, doctools::idx (v2), + doctools::html, doctools::html::cssdefaults, + doctools::idx::export::docidx, doctools::idx::export::html, + doctools::idx::export::json, doctools::idx::export::nroff, + doctools::idx::export::text, doctools::idx::export::wiki, + doctools::idx::import::docidx, doctools::idx::import::json, + doctools::idx::parse, doctools::idx::structure, + doctools::msgcat, doctools::msgcat::idx::c, + doctools::msgcat::idx::de, doctools::msgcat::idx::en, + doctools::msgcat::idx::fr, doctools::msgcat::toc::c, + doctools::msgcat::toc::de, doctools::msgcat::toc::en, + doctools::msgcat::toc::fr, doctools::nroff::man_macros, + doctools::tcl::parse, doctools::text, + doctools::toc::export::doctoc, doctools::toc::export::html, + doctools::toc::export::json, doctools::toc::export::nroff, + doctools::toc::export::text, doctools::toc::export::wiki, + doctools::toc::import::doctoc, doctools::toc::import::json, + doctools::toc::parse, doctools::toc::structure, exif, fileutil, + fileutil::decode, fileutil::magic::cfront, + fileutil::magic::cgen, fileutil::magic::filetype, + fileutil::magic::rt, fileutil::multi, fileutil::multi::op, + fileutil::traverse, ftp, ftp::geturl, ftpd, generator, gpx, + grammar::aycock, grammar::aycock::debug, + grammar::aycock::runtime, grammar::fa, grammar::fa::dacceptor, + grammar::fa::dexec, grammar::fa::op, grammar::me::cpu, + grammar::me::cpu::core, grammar::me::cpu::gasm, + grammar::me::tcl, grammar::me::util, grammar::peg, + grammar::peg::interp, hook, htmlparse, http::wget, huddle, + huddle::json, ident, imap4, inifile, interp, + interp::delegate::method, interp::delegate::proc, ip, irc, + javascript, jpeg, json, json::write, lambda, ldap, ldapx, + logger, logger::appender, map::geocode::nominatim, map::slippy, + map::slippy::cache, map::slippy::fetcher, mapproj, + math, math::bigfloat, math::bignum, math::calculus::symdiff, + math::complexnumbers, math::constants, math::decimal, + math::exact, math::fourier, math::fuzzy, + math::linearalgebra, math::machineparameters, math::optimize, + math::PCA, math::polynomials, math::rationalfunctions, + math::roman, md4, md5, md5crypt, multiplexer, + nameserv, nameserv::auto, nameserv::common, nameserv::server, + nettool, nmea, nntp, odie::processman, oo::dialect, oo::meta, + 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, picoirc, pki, pluginmgr, pop3, pop3d, + pop3d::dbox, pop3d::udb, processman, pt::ast, + pt::cparam::configuration::critcl, + pt::cparam::configuration::tea, pt::parse::peg, pt::pe, + pt::pe::op, pt::peg, pt::peg::container, + pt::peg::container::peg, pt::peg::export::container, + pt::peg::export::json, pt::peg::export::peg, + pt::peg::from::json, pt::peg::from::peg, pt::peg::import::json, + pt::peg::import::peg, pt::peg::interp, pt::peg::to::container, + pt::peg::to::cparam, pt::peg::to::json, pt::peg::to::param, + pt::peg::to::peg, pt::peg::to::tclparam, pt::pgen, pt::rde, + pt::rde::nx, pt::rde::oo, pt::tclparam::configuration::nx, + pt::tclparam::configuration::snit, + pt::tclparam::configuration::tcloo, pt::util, rc4, rcs, report, + resolv, rest, ripemd128, ripemd160, S3, SASL, SASL::NTLM, + SASL::SCRAM, SASL::XGoogleToken, simulation::annealing, + simulation::montecarlo, smtpd, snit, soundex, spf, stooop, + string::token, string::token::shell, stringprep, sha1 (v1), + stringprep::data, struct, struct::graph::op, + struct::pool, struct::prioqueue, struct::queue, struct::set, + struct::skiplist, struct::stack, struct::tree, sum, switched, + tar, 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::ctrl, + term::ansi::code::macros, term::ansi::ctrl::unix, + term::ansi::send, term::interact::menu, term::interact::pager, + term::receive, term::receive::bind, term::send, text::write, + textutil::adjust, textutil::expander, textutil::repeat, + textutil::split, textutil::string, textutil::tabify, + textutil::trim, throw, tie, tie::std::array, tie::std::dsource, + tie::std::file, tie::std::growfile, tie::std::log, + tie::std::rarray, tiff, time, tool, 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, valtype::common, + valtype::creditcard::amex, valtype::creditcard::discover, + valtype::creditcard::mastercard, valtype::creditcard::visa, + valtype::gs1::ean13, valtype::iban, valtype::imei, + valtype::isbn, valtype::luhn, valtype::luhn5, valtype::usnpi, + valtype::verhoeff, websocket, wip, xsxp, yaml, yencode, + zipfile::decode, zipfile::encode