Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Win10: tcl 8.6.6->8.6.7: package require msgcat fails when starpack installed in c:\programs(x86)\me

124 views
Skip to first unread message

Harald Oehlmann

unread,
Dec 12, 2017, 8:09:40 AM12/12/17
to
Dear folks,

I use Ashoks twapi starkits, compact them with upx and add my scripts
with sdx.

This works perfect.

Now, I made the transition from tcl 8.6.6 to tcl 8.6.7 with the
following phenomenon:

when the starkit is located in a user folder, say c:\temp\, it starts as
normal.
In contrast, when it is installed by an install script (inno setup) to
c:\program files(x86)\myapp, I get a startup error "package msgcat" not
found.
I tried to debug the interpreter and opened a console. The console
accepts around 6 characters and then stalls. It is very slow.

Does anybody has a clue what might go wrong here?
Does anybody has an idea of a test?

Thank you all,
Harald

rene

unread,
Dec 12, 2017, 11:22:06 AM12/12/17
to
Hi Harald,

I suspected the whitespace in the dir path.
I started my app, with 8.6.7 but my own kit and it works.
So may be some other issue.


rene

Ashok

unread,
Dec 12, 2017, 12:03:21 PM12/12/17
to
If you copy the original starpack (8.6.7) without upx and without your
sdx addition, into that same directory, does it start up normally?

Harald Oehlmann

unread,
Dec 13, 2017, 9:41:04 AM12/13/17
to
I copied tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe to
C:\Program Files (x86)\ScanLink
started it and typed "package require msgcat".
can't find package msgcat

Then I tried folder: "c:\test\a b" -> package not found.
Then I tried folder c:\test -> package found

So, yes, René, something with the space in the path...

It worked with 8.6.6

% set auto_path
{C:/test/a b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8.6}
{C:/test/a b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib} {C:/test/a
b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tk8.6} {C:/test/a
b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tk8.6/ttk}

Is the same also for 8.6.6

Continue to look.

Thanks,
Harald

Harald Oehlmann

unread,
Dec 13, 2017, 9:44:54 AM12/13/17
to
I now copied a whole tcl 8.6.7 wish86.exe tree into the folder with a
space. There is no problem, msgcat is found.

So, it looks like a starkit problem.
In my path "c:\test\a b\" there is no unicode special, just a space...

Thanks,
Harald

Harald Oehlmann

unread,
Dec 19, 2017, 3:10:49 AM12/19/17
to
Hi folks,

I do a follow-up on my own post, sorry.
I try to proceed with the issue.

So, what happens:
Folder: "c:\test\a b" (with a space)

Take Ashoks x86 gui starkits for tcl 8.6.6 and 8.6.7 and put them in
this folder:
https://sourceforge.net/projects/twapi/files/Tcl%20binaries/Tclkits%20with%20TWAPI/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/download

https://sourceforge.net/projects/twapi/files/Tcl%20binaries/Tclkits%20with%20TWAPI/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/download

Start the kits:
Type:
package require msgcat

The 8.6.6 starpack returns on this command:
1.6.0
while the 8.6.7 returns:
can't find package msgcat

Then I tried BAWT:
http://www.bawt.tcl3d.org/download/Tcl-BI/SetupTcl-8.6.7-x86.exe
Install it somewhere and copy bin\tclkit-win32-tk.exe to "c:\test\a b".
-> returns 1.6.1
So BAWT works.

Unfortunately, it sems only to be Ashoks magic starpack...

Do others have the same experience ?
Any ideas?

Thank you all,
Harald

Ashok

unread,
Dec 19, 2017, 10:19:28 PM12/19/17
to
I've found the problem. The older tclkits (all, not just mine) used to
look up tm module paths outside of the tclkit itself which was
inconsistent with normal package loading which only looked within the
kit so as to be independent of other Tcl installs, environment settings
etc. To fix this, I modified the kitgen procedure to reset the path and
do a

tcl::tm::roots [file join [info nameofexecutable] lib]

That line should really be

tcl::tm::roots [list [file join [info nameofexecutable] lib]]

I was somewhat misled by the documentation which reads

tcl::tm::roots ?path...?

which I interpreted as meaning each path was to be provided as a
separate argument. A better synopsis might be

tcl::tm::roots ?paths?

In any case, I'll upload fixed kits some time later today or tomorrow.

BAWT works because it is probably still using the older kitgen code.

/Ashok

Harald Oehlmann

unread,
Dec 20, 2017, 2:49:44 AM12/20/17
to
Ashok,

thank you, that is great news !
No hurry, this part of the world is now going in a big winter sleep ;-)

I have only checked the auto_path to be identical. Of cause, msgcat is a
tclmodule....

Find the man page: "tm"
-> ::tcl::tm::path list

8.6.6:
join [::tcl::tm::path list] \n
C:/test/lib/tcl8/site-tcl
C:/test/lib/tcl8/8.0
C:/test/lib/tcl8/8.1
C:/test/lib/tcl8/8.2
C:/test/lib/tcl8/8.3
C:/test/lib/tcl8/8.4
C:/test/lib/tcl8/8.5
C:/test/lib/tcl8/8.6
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/site-tcl
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.0
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.1
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.2
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.3
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.4
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.5
C:/test/a b/tclkit-gui-8_6_6-twapi-4_1_27-x86-max.exe/lib/tcl8/8.6

8.6.7:
join [::tcl::tm::path list] \n
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/site-tcl
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.0
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.1
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.2
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.3
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.4
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.5
C:/test/a b/b/tclkit-gui-8_6_7-twapi-4_2_12-x86-max.exe/lib/tcl8/8.6
C:/test/a/tcl8/site-tcl
C:/test/a/tcl8/8.0
C:/test/a/tcl8/8.1
C:/test/a/tcl8/8.2
C:/test/a/tcl8/8.3
C:/test/a/tcl8/8.4
C:/test/a/tcl8/8.5
C:/test/a/tcl8/8.6

O.k., all mixed up.

Thanks,
Harald

Ashok

unread,
Dec 24, 2017, 6:16:57 AM12/24/17
to
The newly released 8.6.8 based kits have fixed this issue.

Harald Oehlmann

unread,
Jan 8, 2018, 5:01:02 AM1/8/18
to
Am 24.12.2017 um 12:16 schrieb Ashok:
> The newly released 8.6.8 based kits have fixed this issue.
great !
0 new messages