History - current revision = 6.64

Changes vor version 6.64 (01/25/2015)

  1. This version is based on TCL/TK 8.6.3

  2. The 64-bit Windows version has tcllib1.16 included (instead of tcllib1.15).

  3. FreeWrap 6.64 now returns the correct time stamp for a file contained within a wrapped application or within a ZIP archive..

  4. The following additional ttk themes are now installed into freeWrap.

Changes for version 6.63 (04/19/2014)

  1. Wrapping across operating systems has been corrected:

    1. between 32-bit and 64-bit Linux

    2. from Windows to Linux

  2. Temporary file names used by freeWrap during the wrapping process have been modified to prevent possible collision with existing file names. This will prevent the possibility of overwriting of an existing file during wrapping.

  3. The ::freewrap::makeZIP command can now be used more than once. Previously, the first usage of the command worked while subsequent use failed with an error.

  4. Options have been added to the freeWrap command line that allow the user to control the amount of compression performed on the wrapped files. See the freeWrap documentation for details.

  5. The tcllib package included in freeWrap has been updated to version 1.16 and is located at the virtual directory of /tcllib1.16.

  6. The -i option can now be used to change the program icon when performing a cross-wrap with the -w option.

Changes for version 6.62 (01/04/2014)

  1. This version is based on TCL/TK 8.6.1

  2. This version is built with thread support enabled.

Changes for version 6.61 (08/10/2013)

  1. The behavior of wrapped scripts that generate fatal errors has been modified to better replicate the behavior of compiled applications.

  2. The response of freeWrap, when run as a standalone shell, to fatal script errors has been modified to better replicate the behavior of the standard TCLSH and WISH shells.

  3. Corrected a problem where applications containing more than 50 files could not be wrapped.

Changes for version 6.6 (04/25/2013)

  1. This version is based on TCL/TK 8.6.0.

  2. FreeWrap is now distributed as a 64-bit application for Linux. The Windows distribution includes both 32-bit and 64-bit versions.

  3. The freeWrapPLUS variation has been discontinued. The regular freeWrap variation contains any added extensions.

  4. Tkpng is no longer included in freeWrap since the TCL/TK core itself now supports PNG image formats.

  5. SQLite is now included as part of the regular TCL 8.6 distribution and is packaged as such.

  6. BLT is no longer included in freeWrap since BLT does not support TCL/TK 8.6.

  7. TCLLIB (version 1.15) is now included in freeWrap at the virtual directory of /tcllib1.15

  8. TKLIB (version 0.6) is now included in freeWrap at the virtual directory of /tklib0.6

  9. The virtual directory structure has been modified to better reflect the normal TCL/TK directory layout.

Changes for version 6.5 (01/12/2011)

  1. FreeWrap 6.5 is based on TCL/TK 8.5.9

  2. BLT is once again included in freewrapPLUS thanks to BLT code modifications from Peter MacDonald and his WIZE project.

  3. Building freeWrap:

    1. freewrapTCLSH is no longer built with a dependency on the X11 libraries. This dependency was an error that prevented the application from running on systems without a graphics console.On Windows, freeWrap is now built using MinGW/Msys instead of MS Visual C++.

    2. The build process no longer requires an interactive step to enter the encryption key.

    3. FreeWrap is now built with Info-ZIP 2.32 to take advantage of its security-related fixes.

    4. The instructions for building freeWrap have been expanded.

  4. Incorporated a few fixes provided by Pawel Pawlak to properly set up the encoding system. Previously freeWrap forced the default encoding to cp1252.

  5. Added ::freewrap::Nagle command to control whether the Nagle algorithm is active on a specific socket.

Changes for version 6.42 (01/25/2009)

    1. FreeWrap 6.42 is based on TCL/TK 8.5.6

    2. Improved startup time for wrapped WISH applications under Windows. Slow startups were especially noticable when running wrapped applications from network directories, remote shares or from a Web server.

Changes for version 6.41 (02/26/2008)

    1. FreeWrap 6.41 is based on TCL/TK 8.5.1.

    2. The new TCL modules included with TCL 8.5 are now accessible using a [package require] command. Because of this, the [clock format] command now works without generating an error message.

    3. A 32x32 256 bit color icon has been added to Windows versions of freeWrap. This means that the freeWrap -i option can now be used to include your own 32x32 256 bit color icon for your wrapped application.

    4. A few small changes were made to the freeWrap Make files.

Changes for version 6.4 (01/28/2008)

    1. This is the first version of freeWrap based on TCL/TK 8.5.0.

    2. Unlike previous versions, freewrapPLUS 6.4 does not contain the BLT extension since BLT is not yet compatible with TCL/TK 8.5.

    3. The makefile for Windows has been modified to use Microsoft Visual C++ 8.0 Express Edition.

Changes for version 6.32 (01/17/2009)

    1. FreeWrap 6.32 is based on TCL/TK 8.4.19

    2. Improved startup time for wrapped WISH applications under Windows. Slow startups were especially noticable when running wrapped applications from network directories, remote shares or from a Web server.

Changes for version 6.31 (01/01/2008)

    1. Corrected operation of -i option when setting the Windows icon for a wrapped application. Version 6.3 of freeWrap would only replace one icon and leave the TK icon.

Changes for version 6.3 (12/09/2007)

    1. Freewrap 6.3 is based on TCL/TK 8.4.16

    2. Added support for freeWrap program packages. The -p wrapping option can now be used to create a wrapped application without the freeWrap executable component. The freeWrap program package can then be run using freeWrap as a single-file shell (example: freewish myapp.fwp).

    3. Added SQLite as one of the extensions that are included with freewrapPLUS

    4. Added a new variable into the ::freewrap namespace. The ::freewrap::runMode variable indicates whether freeWrap is running as:

Value of variable



an interactive shell


a stand-alone shell running a script


a wrapped executable program

    1. Improved the security of wrapped applications. FreeWrapped applications will detect whether they have been modidied or tampered with and refuse to run. As a result, the -e option is no longer available to create an application that is not encrypted.

    2. FreeWrap is no longer compressed with UPX. Therefore, users will notice an increase in the size of freeWrap and the executables that it produces. This size change should not be significant compared to recent increases in disk drive capacities.

    3. The -i option is now available under operating systems other than Windows so that the Windows application icon may be changed when using the -w (cross-platform generation) option.

    4. The default system encoding for freeWrap has been set to cp1252 and the documentation has been updated with additional words concerning the use of encodings.

Changes for version 6.2 (01/14/2006)

  1. FreeWrap 6.2 is based on TCL/TK 8.4.12.

  2. The freeWrap::getStubSize procedure has been corrected to return the proper stub size. It was returning too small a value.

  3. A new encryption mechanism has been incorporated into freeWrap. All wrapped files are encrypted by default.

  4. The freeWrap documentation has been converted to PDF format.

  5. Expanded the instructions for building freeWrap. See the new PDF documentation file.

Changes for version 6.1 (05/08/2005)

  1. FreeWrap 6.1 is based on TCL/TK 8.4.11.

  2. FreeWrapPlus can now load BLT into slave interpreters. The necessary patch has been applied to the BLT code.

  3. FreeWrap 6.0 did not recognize UNC file paths properly. This problem has been corrected. FILE and GLOB commands that use UNC file paths will now work correctly.

  4. Corrected operation of the (-i) icon change option.

  5. Added -forcewrap command line option to force freeWrap to act as a wrapping program even if it has been renamed.

  6. Added a -debug command line option which opens a console window so the user can see debug messages while wrapping.

  7. Corrected formatting of makeZIP command description in the HTML documentation.

Changes for version 6.0 (01/02/2005)

  1. FreeWrap 6.0 is based on TCL/TK 8.4.8.

  2. Windows versions of freeWrap now contain Winico extension version 0.5. This update allows loading of icons directly from files contained within freeWrapped applications.

  3. FreeWrap was modified to use TCL's newer Virtual File System hooks. This improves access to the files contained in freeWrap's ZIP Virtual File System (ZVFS). Commands such as glob, encoding and file now treat the ZVFS files like normal files.

  4. UPX compression is once again used on the Windows versions. This results in a smaller executable file.

  5. The TkTable extension is now included along with the BLT extension and the resulting application has been named freewrapPLUS.

  6. The ::zvfs::filecopy command has been eliminated. The normal [file copy] command works fine and should now be used instead.

  7. Although the glob command now works properly on ZVFS files the ::zvfs::list command has been maintained since it provides slightly different functionality.

  8. Wrapping more than 64 files at once caused freeWrap to fail at the time of wrapping. This limitation has been removed.

  9. Added a missing semicolon to freeWrap procedures shell_getCmds and shell_getCmd_imp.

  10. Corrected behavior of [info script] command for file paths that include spaces.

  11. The wish console no longer pops-up when first starting a wrapped program.

Changes for version 5.61 (03/06/2004)

  1. Corrected a problem with the freeWrap Make files which could result in improper assembly of the freeWrap program. This problem affected the official version 5.6 release packages. Therefore, the version 5.6 release packages of freeWrap should not be used. Download and use version 5.61 instead.

  2. All TCL encoding files have been included in freeWrap. Prior versions only included cp1250.enc.

  3. FreeWrap 5.61 has been compiled with TCL/TK 8.4.6.

Changes for version 5.6 (02/23/2004)

  1. A new freeWrap command line option has been added to specify the Windows program icon to use for the wrapped application.

  2. A generic ZIP file creation capability has been added with a new ::freewrap::makeZIP command. This command incorporates the capabilities of the Info-ZIP ZIP2.3 program directly into the freeWrap code.

  3. FreeWrap no longer uses a separate ZIP program to do its work. ZIP capabilities have been compiled directly into freeWrap.

  4. The WINICO extension for Windows has been added back into freeWrap.

  5. The ::freewrap::getStubSize command now returns a correct, non-zero value under Linux. This fix also enables the ::freewrap::reconnect command to work under Linux since ::freewrap::reconnect called ::freewrap:getStubSize.

  6. FreeWrap no longer performs source code encryption. This "protection" is rather weak when used in script-wrapping applications. Therefore, this feature has been removed.

  7. You no longer need write permission to script files you will be wrapping.

  8. FreeWrap 5.6 is based on TCL/TK 8.4.4

Changes for version 5.5 (04/13/2003)

  1. The WINICO extension for Windows has been removed.  A similar Windows icon feature was added to the TK "wm iconbitmap" command in TK 8.3.3

  2. Special Makefiles for building static versions of TCL and TK under Windows are no longer included in the freeWrap package. As of TCL/TK 8.4.0 static TCL and TK libraries can be built using the OPTS=static option on the NMAKE command line.

  3. Compiled with newer version of ZLIB library (revision 1.1.4).

  4. FreeWrap 5.5 is based on TCL/TK 8.4.1

Changes for version 5.4 (11/25/2002)

  1. Corrected problems that occurred when storing the executable file in directory paths that included spaces.

  2. The generated executable output file is now placed in the current working directory.

  3. The [info script] command now returns the name of the called script when using freeWrap as a stand-alone TCLSH or WISH.

  4. Due to conflicts with antivirus software, under Windows freeWrap is no longer compressed using UPX or any other EXE compressor.

  5. FreeWrap 5.4 is based on TCL/TK 8.3.5

Changes for version 5.3 (08/19/2002)

  1. Corrected problems that occurred when using spaces or backslashes (\) in the file-to-wrap path.

    This bug fix eliminates the following problems that would sometimes occur when wrapping an application.

o      A blank WISH main window displayed on screen but there was no program generated. 

o      A ZIP file was produced instead of an executable. 

o      The original source file was replaced with an encrypted version. 

o      An executable file was created but it would only display a blank main window and a console window.

Changes for version 5.2 (08/03/2002)

  1. Removed replacement glob command. There were too many bugs in the replacement code.

  2. Fixed ::freewrap::unpack procedure to prevent addition of newline character at end of unpacked file.

  3. Double-clicking on the console window background no longer produces an error condition.

  4. For the BLT version of freeWrap: Added / blt to auto_path variable

  5. FreeWrap can now be built using TCL/TK 8.4.

Changes for version 5.1 (01/27/2002)

  1. ::freewrap ::getStubSize command now returns correct value.

  2. Modified info command to return a value when using the [info script] command for wrapped files. This makes wrapping of TCL package libraries much simpler.

  3. freeWrapBLT will now properly decrypt its wrapped BLT script library.

  4. The Windows versions of freeWrap are now compressed using PEcompact instead of UPX. UPX compressed executables have serious incompatibility problems with some Windows-based anti-virus programs (e.g. Norton, McAfee). This incompatiblity expresses itself in slow listings for directories containing wrapped applications, slow startup of freeWrap and wrapped applications . The Linux versions of freeWrap are still compressed with UPX.

  5. Made minor adjustment to initialization of auto_path variable

Changes for version 5.0 (12/31/2001)

  1. freeWrap 5.0 now compresses all wrapped files into a ZIP Virtual File System (ZVFS) archive attached to your executable. Bottom line: wrapped applications will be smaller.

  2. The file name referencing rules have changed slightly with the adoption of ZVFS for use in freeWrap.

  3. Some ::freewrap:: variables and procedures have been deleted and some new ones added.

  4. Encoding file cp1252.enc is now included as the default encoding for freeWrap.

  5. The freeWrap source code has been restructured to produce a simpler process for building different versions of freeWrap under different operating systems. The MKTCLAPP program is no longer needed.

  6. freeWrap 5.0 is based on TCL/TK release 8.3.4.

  7. "file stat" and "glob" now work on wrapped files.

  8. freeWrap will now complain and exit without producing an executable file if the filename specified with the -f switch cannot be found.

  9. freeWrap will now complain and exit if the executable file already exists and is open/running.

  10. The ZVFS used by freeWrap now preserves the case of file names under both UNIX and Windows.

Changes for version 4.4 (10/11/2000)

  1. freeWrap 4.4 is based on TCL/TK 8.3.2

  2. Added a -w "wrap using" option to specify the file to use as the freeWrap stub. This allows cross-platform creation of wrapped applications without the use of the target computer system.

  3. All extensions compiled into freeWrap ( Blt, winico, dde, registry, Tk) are now statically loaded and are available for loading into TCL interpreters created with the interp command.

  4. Created ::freewrap namespace and moved all existing freewrap variables, commands and procedures into it.

  5. Added some commands to install new file types and associations into the Windows registry.

  6. Added a ::freewrap::shortcut command to create shortcuts under Windows.

  7. Added a ::freewrap::getSpecialDir command to find "Start Menu", "Desktop" and similar directory locations under Windows.

Changes for version 4.3 (07/09/2000)

  1. freeWrap 4.3 is based on TCL/TK 8.3.1.

  2. Fixed a bug introduced by TCL/TK 8.3 that prevented the use of the "\" path separator on the freeWrap command line. Paths on the freeWrap command line can again use either the forward or backward slash character.

Changes for version 4.2 (06/11/2000)

  1. Fixed a fatal bug that occurred when using the _ freewrap_pkgfilecopy procedure.

Changes for version 4.1 (04/03/2000)

  1. freeWrap 4.1 is based on TCL/TK 8.3.0

  2. The Windows version of freeWrap now includes the tcl83pip.dll file from the normal TCL distribution. This file is necessary when running scripts that redirect stdin/stdout through pipes using the exec or open commands.

  3. The BLT version of freeWrap now correctly finds and outputs the postscript headers.

  4. The documentation now describes how to properly wrap and use character encoding files.

  5. The documentation includes an expanded description of referencing wrapped file names.

  6. Added a -b option for wrapping any type of binary file.

  7. freeWrap now operates properly even if it is run through a symbolic link under UNIX.

Changes for version 4.0 (12/06/1999)

  1. freeWrap 4.0 is based on TCL/TK 8.2.2

  2. The freeWrap executable file is now much smaller. It has been compressd with UPX and now fits on a single floppy.

  3. Wrapped file paths can now include spaces.

  4. Wrapped binary files take less room than previous versions of freeWrap.

  5. Added a few features, procedure and variables to support my new application distribution program, freeDelivery .

  6. Added -p command line option to wrap application distribution packages

  7. Pressing the [x] on the root window under Windows95/98/NT now exits the program completely from memory. Several people were confused about Windows' default behavior which closed the root window but kept the program in memory. Programmer's can still intercept the WM_DELETE_WINDOW event themselves using the "wm protocol" command.

Changes for version 3.3 (10/13/1999)

  1. freeWrap 3.3 is based on TCL./TK version 8.2.1

  2. TCL load command now works with stubs -enabled shared libraries.

  3. Using freeWrap's -f option, the list of files to wrap can be retrieved from a text file.

  4. The Windows version now includes the WINICO package to allow setting of toplevel window icons.

Changes for version 3.2 (09/19/1999)

  1. Corrected code so the path to the executing copy of freeWrap is correctly determined. This eliminated the couldn't open " freewrap": no such file or directory error seen at wrap time on some operating systems (e.g. WindowsNT , Irix).

  2. Included a free license statement for freeWrap .

  3. Added _freewrap_patchLevel variable to indicate the freeWrap revision number.

Changes for version 3.1 (08/15/1999)

  1. Corrected improper decryption of additional wrapped files.

  2. Corrected inability to access additional wrapped files under UNIX.

  3. Included BLT library files into freeWrapBLT version.

  4. Corrected handling of line continuations (\ character) under Windows.

  5. The TCL/TK interp command now works correctly under freeWrap.

Changes for version 3.0 (07/26/1999)

  1. Can now wrap multiple scripts together

  2. Can now wrap binary image files into executable. (GIF, PPM, PGM)

  3. Automatic encryption of wrapped files.

  4. freeWrap 3.0 is based on TCL/TK 8.1.1

Hosted by:

This page last updated January 25, 2015

Send comments to