#1334 TCL8.3.1 does not look at Registry for the root path

obsolete: 8.3.1
Don Porter

OriginalBugID: 5896 Bug
Version: 8.3.1
SubmitDate: '2000-06-13'
LastModified: '2000-10-25'
Severity: SER
Status: UnAssn
Submitter: techsupp
OS: All
OSVersion: WinNT 4,0 SP 5
FixedDate: '2000-10-25'
ClosedDate: '2000-10-25'

Scott Si


After installing TCL/TK 8.3.1 (the binary was downloaded from Scriptics web site) and moved the directories tcl8.3/library and tk8.3/library to a different location so that they fall into the directory structure of our product, and then pointing the Registry entry /H_KEY_LOCAL_MACHINE/Scriptices/Tcl/8.3/Root to the new location, both tclsh83 and wish83 failed to start. The error message was "could not find a usabled init.tcl".

The same directory structure of our product worked fine with Tcl/Tk 8.0. One of the reasons we did not upgrade to Tcl8.1 or Tcl8.2 was that they lacked the registry support. From the README file of Tcl8.3, it seems the registry support is back, but it still does not work.

Could you please fix it ASAP? We need it for our costumers.


    • labels: 104246 --> 104681
    • labels: 104681 --> 38. Init - Library - Autoload
  • Don Porter
    Don Porter

    • assigned_to: nobody --> dgp
    • status: open --> closed-wont-fix
  • Don Porter
    Don Porter

    Logged In: YES

    The win/README file in Tcl 8.3.3 has been updated to
    stop claiming that the registry is consulted in the
    search for init.tcl. That feature was removed in
    Tcl 8.1.

    Tcl's DLLs and its script library are meant to be installed
    so that init.tcl is found at path ..\lib\tcl8.3\init.tcl
    relative to the file tcl83.dll (modify version numbers as
    necessary). If you move files after installation such that
    this is no longer true, you've broken your Tcl installation.
    Don't do that.

    If you are embedding the Tcl library in another application,
    you can force the Tcl library to look for its init.tcl file
    in a particular directory. After Tcl_CreateInterp() but
    before Tcl_Init(), set the variable ::tcl_library in the
    interp to the name of the directory where you want init.tcl
    to be found when you call Tcl_Init().