Tcl Source Code

Check-in [0386db909a]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to tclconference@googlegroups.com
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Enable CI builds with Travis.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-5-branch
Files: files | file ages | folders
SHA3-256:0386db909a43de8458d52be54a00012a63b2034e585f2fa3fa9a800d0246a58b
User & Date: dkf 2018-10-23 11:14:13
References
2018-10-27
19:36
(temporary) backout [0386db909a]: Enable CI builds with Travis. This enables everything else to merg... check-in: 817887d230 user: jan.nijtmans tags: core-8-5-branch
Context
2018-10-27
19:52
put back Travis CI build. All merge-marks of previous commit change done. check-in: 552539f02d user: jan.nijtmans tags: core-8-5-branch
19:36
(temporary) backout [0386db909a]: Enable CI builds with Travis. This enables everything else to merg... check-in: 817887d230 user: jan.nijtmans tags: core-8-5-branch
2018-10-24
21:22
Backport "registry" version 1.3.3, so all active branches now have the same registry version. (this... check-in: e4761eb0a8 user: jan.nijtmans tags: core-8-5-branch
2018-10-23
11:14
Enable CI builds with Travis. check-in: 0386db909a user: dkf tags: core-8-5-branch
2018-10-22
13:11
Expand the build matrix Closed-Leaf check-in: e8f9027ec2 user: dkf tags: travis-8.5
2018-10-17
19:51
Fix test-cases running on Windows 10: [string index $tcl_platform(osVersion) 0] doesn't give the c... check-in: a8a42c2118 user: jan.nijtmans tags: core-8-5-branch
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Added .travis.yml.

            1  +dist: trusty
            2  +sudo: false
            3  +language: c
            4  +matrix:
            5  +  include:
            6  +    - os: linux
            7  +      compiler: clang
            8  +      env:
            9  +        - MATRIX_EVAL="" BUILD_DIR=unix
           10  +    - os: linux
           11  +      compiler: clang
           12  +      env:
           13  +        - MATRIX_EVAL="" BUILD_DIR=unix CFGOPT=--disable-shared
           14  +    - os: linux
           15  +      compiler: gcc
           16  +      env:
           17  +        - MATRIX_EVAL="" BUILD_DIR=unix
           18  +    - os: linux
           19  +      compiler: gcc
           20  +      env:
           21  +        - MATRIX_EVAL="" BUILD_DIR=unix CFGOPT=--disable-shared
           22  +    - os: linux
           23  +      compiler: gcc
           24  +      addons:
           25  +        apt:
           26  +          sources:
           27  +            - ubuntu-toolchain-r-test
           28  +          packages:
           29  +            - g++-4.9
           30  +      env:
           31  +        - MATRIX_EVAL="CC=gcc-4.9" BUILD_DIR=unix
           32  +    - os: linux
           33  +      compiler: gcc
           34  +      addons:
           35  +        apt:
           36  +          sources:
           37  +            - ubuntu-toolchain-r-test
           38  +          packages:
           39  +            - g++-5
           40  +      env:
           41  +        - MATRIX_EVAL="CC=gcc-5" BUILD_DIR=unix
           42  +    - os: linux
           43  +      compiler: gcc
           44  +      addons:
           45  +        apt:
           46  +          sources:
           47  +            - ubuntu-toolchain-r-test
           48  +          packages:
           49  +            - g++-6
           50  +      env:
           51  +        - MATRIX_EVAL="CC=gcc-6" BUILD_DIR=unix
           52  +    - os: linux
           53  +      compiler: gcc
           54  +      addons:
           55  +        apt:
           56  +          sources:
           57  +            - ubuntu-toolchain-r-test
           58  +          packages:
           59  +            - g++-7
           60  +      env:
           61  +        - MATRIX_EVAL="CC=gcc-7" BUILD_DIR=unix
           62  +    - os: osx
           63  +      osx_image: xcode8
           64  +      env:
           65  +        - MATRIX_EVAL="" BUILD_DIR=unix
           66  +    - os: osx
           67  +      osx_image: xcode8
           68  +      env:
           69  +        - MATRIX_EVAL="" BUILD_DIR=macosx NO_DIRECT_CONFIGURE=1
           70  +    - os: osx
           71  +      osx_image: xcode9
           72  +      env:
           73  +        - MATRIX_EVAL="" BUILD_DIR=macosx NO_DIRECT_CONFIGURE=1
           74  +    - os: osx
           75  +      osx_image: xcode10
           76  +      env:
           77  +        - MATRIX_EVAL="" BUILD_DIR=macosx NO_DIRECT_CONFIGURE=1
           78  +### C builds not currently supported on Windows instances
           79  +#    - os: windows
           80  +#      env:
           81  +#        - MATRIX_EVAL="" BUILD_DIR=win
           82  +
           83  +before_install:
           84  +  - eval "${MATRIX_EVAL}"
           85  +  - export ERROR_ON_FAILURES=1
           86  +  - cd ${BUILD_DIR}
           87  +install:
           88  +  - test -n "$NO_DIRECT_CONFIGURE" || ./configure ${CFGOPT}
           89  +script:
           90  +  - make
           91  +  - make test

Deleted README.

     1         -README:  Tcl
     2         -    This is the Tcl 8.5.19 source distribution.
     3         -	http://sourceforge.net/projects/tcl/files/Tcl/
     4         -    You can get any source release of Tcl from the URL above.
     5         -
     6         -Contents
     7         ---------
     8         -    1. Introduction
     9         -    2. Documentation
    10         -    3. Compiling and installing Tcl
    11         -    4. Development tools
    12         -    5. Tcl newsgroup
    13         -    6. The Tcler's Wiki
    14         -    7. Mailing lists
    15         -    8. Support and Training
    16         -    9. Tracking Development
    17         -    10. Thank You
    18         -
    19         -1. Introduction
    20         ----------------
    21         -Tcl provides a powerful platform for creating integration applications that
    22         -tie together diverse applications, protocols, devices, and frameworks.
    23         -When paired with the Tk toolkit, Tcl provides the fastest and most powerful
    24         -way to create GUI applications that run on PCs, Unix, and Mac OS X.
    25         -Tcl can also be used for a variety of web-related tasks and for creating
    26         -powerful command languages for applications.
    27         -
    28         -Tcl is maintained, enhanced, and distributed freely by the Tcl community.
    29         -Source code development and tracking of bug reports and feature requests
    30         -takes place at:
    31         -
    32         -	http://core.tcl.tk/
    33         -
    34         -Tcl/Tk release and mailing list services are hosted by SourceForge:
    35         -
    36         -	http://sourceforge.net/projects/tcl/
    37         -
    38         -with the Tcl Developer Xchange hosted at:
    39         -
    40         -	http://www.tcl.tk/
    41         -
    42         -Tcl is a freely available open source package.  You can do virtually
    43         -anything you like with it, such as modifying it, redistributing it,
    44         -and selling it either in whole or in part.  See the file
    45         -"license.terms" for complete information.
    46         -
    47         -2. Documentation
    48         -----------------
    49         -
    50         -Extensive documentation is available at our website.
    51         -The home page for this release, including new features, is
    52         -	http://www.tcl.tk/software/tcltk/8.5.html
    53         -
    54         -Detailed release notes can be found at the file distributions page
    55         -by clicking on the relevant version.
    56         -	http://sourceforge.net/projects/tcl/files/Tcl/
    57         -
    58         -Information about Tcl itself can be found at
    59         -	http://www.tcl.tk/about/
    60         -
    61         -There have been many Tcl books on the market.  Many are mentioned in the Wiki:
    62         -	http://wiki.tcl.tk/_/ref?N=25206
    63         -
    64         -To view the complete set of reference manual entries for Tcl 8.5 online,
    65         -visit the URL:
    66         -	http://www.tcl.tk/man/tcl8.5/
    67         -
    68         -2a. Unix Documentation
    69         -----------------------
    70         -
    71         -The "doc" subdirectory in this release contains a complete set of
    72         -reference manual entries for Tcl.  Files with extension ".1" are for
    73         -programs (for example, tclsh.1); files with extension ".3" are for C
    74         -library procedures; and files with extension ".n" describe Tcl
    75         -commands.  The file "doc/Tcl.n" gives a quick summary of the Tcl
    76         -language syntax.  To print any of the man pages on Unix, cd to the
    77         -"doc" directory and invoke your favorite variant of troff using the
    78         -normal -man macros, for example
    79         -
    80         -		ditroff -man Tcl.n
    81         -
    82         -to print Tcl.n.  If Tcl has been installed correctly and your "man" program
    83         -supports it, you should be able to access the Tcl manual entries using the
    84         -normal "man" mechanisms, such as
    85         -
    86         -		man Tcl
    87         -
    88         -2b. Windows Documentation
    89         --------------------------
    90         -
    91         -The "doc" subdirectory in this release contains a complete set of Windows
    92         -help files for Tcl.  Once you install this Tcl release, a shortcut to the
    93         -Windows help Tcl documentation will appear in the "Start" menu:
    94         -
    95         -	Start | Programs | Tcl | Tcl Help
    96         -
    97         -3. Compiling and installing Tcl
    98         --------------------------------
    99         -
   100         -There are brief notes in the unix/README, win/README, and macosx/README about
   101         -compiling on these different platforms.  There is additional information
   102         -about building Tcl from sources at
   103         -
   104         -	http://www.tcl.tk/doc/howto/compile.html
   105         -
   106         -4. Development tools
   107         ----------------------------
   108         -
   109         -ActiveState produces a high quality set of commercial quality development
   110         -tools that is available to accelerate your Tcl application development.
   111         -Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
   112         -static code checker, single-file wrapping utility, bytecode compiler and
   113         -more.  More information can be found at
   114         -
   115         -	http://www.ActiveState.com/Tcl
   116         -
   117         -5. Tcl newsgroup
   118         -----------------
   119         -
   120         -There is a USENET news group, "comp.lang.tcl", intended for the exchange of
   121         -information about Tcl, Tk, and related applications.  The newsgroup is a
   122         -great place to ask general information questions.  For bug reports, please
   123         -see the "Support and bug fixes" section below.
   124         -
   125         -6. Tcl'ers Wiki
   126         ----------------
   127         -
   128         -A Wiki-based open community site covering all aspects of Tcl/Tk is at:
   129         -
   130         -	http://wiki.tcl.tk/
   131         -
   132         -It is dedicated to the Tcl programming language and its extensions.  A
   133         -wealth of useful information can be found there.  It contains code
   134         -snippets, references to papers, books, and FAQs, as well as pointers to
   135         -development tools, extensions, and applications.  You can also recommend
   136         -additional URLs by editing the wiki yourself.
   137         -
   138         -7. Mailing lists
   139         -----------------
   140         -
   141         -Several mailing lists are hosted at SourceForge to discuss development or
   142         -use issues (like Macintosh and Windows topics).  For more information and
   143         -to subscribe, visit:
   144         -
   145         -	http://sourceforge.net/projects/tcl/
   146         -
   147         -and go to the Mailing Lists page.
   148         -
   149         -8. Support and Training
   150         -------------------------
   151         -
   152         -We are very interested in receiving bug reports, patches, and suggestions
   153         -for improvements.  We prefer that you send this information to us as
   154         -tickets entered into our tracker at:
   155         -
   156         -	http://core.tcl.tk/tcl/reportlist
   157         -
   158         -We will log and follow-up on each bug, although we cannot promise a
   159         -specific turn-around time.  Enhancements may take longer and may not happen
   160         -at all unless there is widespread support for them (we're trying to
   161         -slow the rate at which Tcl/Tk turns into a kitchen sink).  It's very
   162         -difficult to make incompatible changes to Tcl/Tk at this point, due to
   163         -the size of the installed base.
   164         -
   165         -The Tcl community is too large for us to provide much individual support
   166         -for users.  If you need help we suggest that you post questions to
   167         -comp.lang.tcl.  We read the newsgroup and will attempt to answer esoteric
   168         -questions for which no one else is likely to know the answer.  In addition,
   169         -see the following Web site for links to other organizations that offer
   170         -Tcl/Tk training:
   171         -
   172         -	http://wiki.tcl.tk/training
   173         -
   174         -9. Tracking Development
   175         ------------------------
   176         -
   177         -Tcl is developed in public.  To keep an eye on how Tcl is changing, see
   178         -	http://core.tcl.tk/
   179         -
   180         -10. Thank You
   181         --------------
   182         -
   183         -We'd like to express our thanks to the Tcl community for all the
   184         -helpful suggestions, bug reports, and patches we have received.
   185         -Tcl/Tk has improved vastly and will continue to do so with your help.

Added README.md.

            1  +# README:  Tcl
            2  +
            3  +This is the **Tcl 8.5.19** source distribution.
            4  +	
            5  +You can get any source release of Tcl from [our distribution
            6  +site](https://sourceforge.net/projects/tcl/files/Tcl/).
            7  +
            8  +[![Build Status](https://travis-ci.org/tcltk/tcl.svg?branch=core-8-5-branch)](https://travis-ci.org/tcltk/tcl)
            9  +
           10  +## Contents
           11  + 1. [Introduction](#intro)
           12  + 2. [Documentation](#doc)
           13  + 3. [Compiling and installing Tcl](#build)
           14  + 4. [Development tools](#devtools)
           15  + 5. [Tcl newsgroup](#complangtcl)
           16  + 6. [The Tcler's Wiki](#wiki)
           17  + 7. [Mailing lists](#email)
           18  + 8. [Support and Training](#support)
           19  + 9. [Tracking Development](#watch)
           20  + 10. [Thank You](#thanks)
           21  +
           22  +## <a id="intro">1.</a> Introduction
           23  +Tcl provides a powerful platform for creating integration applications that
           24  +tie together diverse applications, protocols, devices, and frameworks.
           25  +When paired with the Tk toolkit, Tcl provides the fastest and most powerful
           26  +way to create GUI applications that run on PCs, Unix, and Mac OS X.
           27  +Tcl can also be used for a variety of web-related tasks and for creating
           28  +powerful command languages for applications.
           29  +
           30  +Tcl is maintained, enhanced, and distributed freely by the Tcl community.
           31  +Source code development and tracking of bug reports and feature requests
           32  +takes place at [core.tcl-lang.org](https://core.tcl-lang.org/).
           33  +Tcl/Tk release and mailing list services are [hosted by
           34  +SourceForge](https://sourceforge.net/projects/tcl/)
           35  +with the Tcl Developer Xchange hosted at
           36  +[www.tcl-lang.org](https://www.tcl-lang.org).
           37  +
           38  +Tcl is a freely available open source package.  You can do virtually
           39  +anything you like with it, such as modifying it, redistributing it,
           40  +and selling it either in whole or in part.  See the file
           41  +`license.terms` for complete information.
           42  +
           43  +## <a id="doc">2.</a> Documentation
           44  +Extensive documentation is available at our website.
           45  +The home page for this release, including new features, is
           46  +[here](https://www.tcl.tk/software/tcltk/8.5.html).
           47  +Detailed release notes can be found at the
           48  +[file distributions page](https://sourceforge.net/projects/tcl/files/Tcl/)
           49  +by clicking on the relevant version.
           50  +
           51  +Information about Tcl itself can be found at the [Developer
           52  +Xchange](https://www.tcl-lang.org/about/).
           53  +There have been many Tcl books on the market.  Many are mentioned in
           54  +[the Wiki](https://wiki.tcl-lang.org/_/ref?N=25206).
           55  +
           56  +The complete set of reference manual entries for Tcl 8.5 is [online,
           57  +here](https://www.tcl-lang.org/man/tcl8.5/).
           58  +
           59  +### <a id="doc.unix">2a.</a> Unix Documentation
           60  +The `doc` subdirectory in this release contains a complete set of
           61  +reference manual entries for Tcl.  Files with extension "`.1`" are for
           62  +programs (for example, `tclsh.1`); files with extension "`.3`" are for C
           63  +library procedures; and files with extension "`.n`" describe Tcl
           64  +commands.  The file "`doc/Tcl.n`" gives a quick summary of the Tcl
           65  +language syntax.  To print any of the man pages on Unix, cd to the
           66  +"doc" directory and invoke your favorite variant of troff using the
           67  +normal -man macros, for example
           68  +
           69  +		groff -man -Tpdf Tcl.n >output.pdf
           70  +
           71  +to print Tcl.n to PDF.  If Tcl has been installed correctly and your "man" program
           72  +supports it, you should be able to access the Tcl manual entries using the
           73  +normal "man" mechanisms, such as
           74  +
           75  +		man Tcl
           76  +
           77  +### <a id="doc.win">2b.</a> Windows Documentation
           78  +The "doc" subdirectory in this release contains a complete set of Windows
           79  +help files for Tcl.  Once you install this Tcl release, a shortcut to the
           80  +Windows help Tcl documentation will appear in the "Start" menu:
           81  +
           82  +		Start | Programs | Tcl | Tcl Help
           83  +
           84  +## <a id="build">3.</a> Compiling and installing Tcl
           85  +There are brief notes in the `unix/README`, `win/README`, and `macosx/README`
           86  +about compiling on these different platforms.  There is additional information
           87  +about building Tcl from sources
           88  +[online](https://www.tcl-lang.org/doc/howto/compile.html).
           89  +
           90  +## <a id="devtools">4.</a> Development tools
           91  +ActiveState produces a high quality set of commercial quality development
           92  +tools that is available to accelerate your Tcl application development.
           93  +Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
           94  +static code checker, single-file wrapping utility, bytecode compiler and
           95  +more.  More information can be found at
           96  +
           97  +	http://www.ActiveState.com/Tcl
           98  +
           99  +## <a id="complangtcl">5.</a> Tcl newsgroup
          100  +There is a USENET news group, "`comp.lang.tcl`", intended for the exchange of
          101  +information about Tcl, Tk, and related applications.  The newsgroup is a
          102  +great place to ask general information questions.  For bug reports, please
          103  +see the "Support and bug fixes" section below.
          104  +
          105  +## <a id="wiki">6.</a> Tcl'ers Wiki
          106  +There is a [wiki-based open community site](https://wiki.tcl-lang.org/)
          107  +covering all aspects of Tcl/Tk.
          108  +
          109  +It is dedicated to the Tcl programming language and its extensions.  A
          110  +wealth of useful information can be found there.  It contains code
          111  +snippets, references to papers, books, and FAQs, as well as pointers to
          112  +development tools, extensions, and applications.  You can also recommend
          113  +additional URLs by editing the wiki yourself.
          114  +
          115  +## <a id="email">7.</a> Mailing lists
          116  +Several mailing lists are hosted at SourceForge to discuss development or use
          117  +issues (like Macintosh and Windows topics).  For more information and to
          118  +subscribe, visit [here](https://sourceforge.net/projects/tcl/) and go to the
          119  +Mailing Lists page.
          120  +
          121  +## <a id="support">8.</a> Support and Training
          122  +We are very interested in receiving bug reports, patches, and suggestions for
          123  +improvements.  We prefer that you send this information to us as tickets
          124  +entered into [our issue tracker](https://core.tcl-lang.org/tcl/reportlist).
          125  +
          126  +We will log and follow-up on each bug, although we cannot promise a
          127  +specific turn-around time.  Enhancements may take longer and may not happen
          128  +at all unless there is widespread support for them (we're trying to
          129  +slow the rate at which Tcl/Tk turns into a kitchen sink).  It's very
          130  +difficult to make incompatible changes to Tcl/Tk at this point, due to
          131  +the size of the installed base.
          132  +
          133  +The Tcl community is too large for us to provide much individual support for
          134  +users.  If you need help we suggest that you post questions to `comp.lang.tcl`
          135  +or ask a question on [Stack
          136  +Overflow](https://stackoverflow.com/questions/tagged/tcl).  We read the
          137  +newsgroup and will attempt to answer esoteric questions for which no one else
          138  +is likely to know the answer.  In addition, see the wiki for [links to other
          139  +organizations](https://wiki.tcl-lang.org/training) that offer Tcl/Tk training.
          140  +
          141  +## <a id="watch">9.</a> Tracking Development
          142  +Tcl is developed in public.  You can keep an eye on how Tcl is changing at
          143  +[core.tcl-lang.org](https://core.tcl-lang.org/).
          144  +
          145  +## <a id="thanks">10.</a> Thank You
          146  +We'd like to express our thanks to the Tcl community for all the
          147  +helpful suggestions, bug reports, and patches we have received.
          148  +Tcl/Tk has improved vastly and will continue to do so with your help.

Changes to library/tcltest/tcltest.tcl.

  2696   2696   #	skip patterns provided.  after sourcing test files, it goes on
  2697   2697   #	to source all.tcl files in matching test subdirectories.
  2698   2698   #
  2699   2699   # Arguments:
  2700   2700   #	shell being tested
  2701   2701   #
  2702   2702   # Results:
  2703         -#	None.
         2703  +#	Whether there were any failures.
  2704   2704   #
  2705   2705   # Side effects:
  2706   2706   #	None.
  2707   2707   
  2708   2708   proc tcltest::runAllTests { {shell ""} } {
  2709   2709       variable testSingleFile
  2710   2710       variable numTestFiles
................................................................................
  2842   2842   	uplevel 1 [list ::source [file join $directory all.tcl]]
  2843   2843   	
  2844   2844   	set endTime [eval $timeCmd]
  2845   2845   	puts [outputChannel] "\n$dir test ended at $endTime"
  2846   2846   	puts [outputChannel] ""
  2847   2847   	puts [outputChannel] [string repeat ~ 44]
  2848   2848       }
  2849         -    return
         2849  +    return [info exists testFileFailures]
  2850   2850   }
  2851   2851   
  2852   2852   #####################################################################
  2853   2853   
  2854   2854   # Test utility procs - not used in tcltest, but may be useful for
  2855   2855   # testing.
  2856   2856   

Changes to tests/all.tcl.

    10     10   # See the file "license.terms" for information on usage and redistribution
    11     11   # of this file, and for a DISCLAIMER OF ALL WARRANTIES.
    12     12   
    13     13   package require Tcl 8.5
    14     14   package require tcltest 2.2
    15     15   namespace import tcltest::*
    16     16   configure {*}$argv -testdir [file dir [info script]]
    17         -runAllTests
           17  +set ErrorOnFailures [info exists env(ERROR_ON_FAILURES)]
           18  +unset -nocomplain env(ERROR_ON_FAILURES)
           19  +if {[runAllTests] && $ErrorOnFailures} {exit 1}