ActiveState is pleased to announce the release of Tcl Dev Kit 2.5.
This release further enhances and extends ActiveState's suite of tools
for Tcl development on the HP-UX, Linux, Solaris, and Windows platforms.
Tcl Dev Kit 2.5 is a free update for registered users.
New in Tcl Dev Kit 2.5:
* TclApp - a replacement for ProWrap which generates single-file bundles
(starkits) and executables (starpacks)
* TclSvc - Tcl Service Manager for Windows Services (NT/2000/XP)
* Inspector - runtime Tcl application browser now fully exposed
* Tcl browser plug-in - for Internet Explorer and browsers based on
Netscape plug-in API
For a complete list of changes, click here:
http://aspn.activestate.com/ASPN/Reference/Products/Tcl_Dev_Kit/Release.htm
l
To download Tcl Dev Kit, click here:
http://www.ActiveState.com/Tcl_Dev_Kit/download
For more information, click here:
http://www.ActiveState.com/Tcl_Dev_Kit
Enjoy!
The Tcl Team,
ActiveState
http://www.ActiveState.com
Enjoy!
[[Send Tcl/Tk announcements to tcl-an...@mitchell.org
Announcements archived at http://groups.yahoo.com/group/tcl_announce/
Send administrivia to tcl-announ...@mitchell.org
Tcl/Tk at http://tcl.tk/ ]]
With the good old prowrap I used to create my application with
prowrap -out foo.exe -uses wish84 source/*.tcl source/images/*.gif \
-startup source/foo.tcl
Now I try to do the same from a batch file or cmd-window
with tclapp -> many problems:
1. Errors are not shown, even the -verbose switch doesn't help.
The reason is that tclapp.tcl is interpreted by wish84.exe
without any console.
Workaround, use tclsh:
set KIT=c:\tcl\kit25\bin
%KIT%\tclsh84.exe %KIT\tclapp.tcl ...
2. tclapp doesn't find the -prefix files in it's installation directory.
Therefore I need to specify the complete path:
-base %KIT%\base-tk-win32-ix86.exe
3. Specifying the -startup script became more complicated. Tclapp doesn't find
the source/foo.tcl file. Instead I need to prepend a magic lib/application
or explicitly specify the destination path:
-startup lib/application/source/foo.tcl source/*.tcl
or
-anchor foo -startup foo/source/foo.tcl source/*.tcl
So the complete commandline is (compare this with prowrap):
set KIT=c:\tcl\kit25\bin
%KIT%\tclsh84.exe %KIT%\tclapp.tcl -base %KIT%\base-tk-win32-ix86.exe \
-out foo.exe \
source/*.tcl source/images/*.gif \
-startup lib/application/source/foo.tcl
Couldn't this be made a bit easier or am I missing something ?
BTW, the documented test whether the application is wrapped with
if {[info exists starkit::startup]} {...}
doesn't work, because this variable doesn't exist.
I'm now checking with
if {[info exists starkit::topdir]} {...}
Regards,
Rolf.
Jeff Hobbs schrieb:
> ActiveState releases Tcl Dev Kit 2.5
> ==================================
>
> ActiveState is pleased to announce the release of Tcl Dev Kit 2.5.
>
> This release further enhances and extends ActiveState's suite of tools
> for Tcl development on the HP-UX, Linux, Solaris, and Windows platforms.
>
> Tcl Dev Kit 2.5 is a free update for registered users.
> ...
---------------------------------------------------------------
Rolf Schroedter
German Aerospace Center
Institute of Space Sensor Technology and Planetary Exploration
D-12489 Berlin, Rutherfordstrasse 2
Tel/Fax: (+49) (30) 67055-416/384
Email: Rolf.Sc...@dlr.de
Rolf Schroedter wrote in news:3E6DC6AD...@dlr.de:
> My first experience with "tclapp" is that the commandline
> wrapping became much more complicated (at least for windows).
The intention was not to make things more complicated, although there
is more flexibility in TclApp than prowrap. However, most existing
Tcl Dev Kit .tpj files should automagically be upgraded for use with
TclApp, but I see you are doing the command line version ...
The first place you want to look is in a message posted by Andreas to
the tdk-beta list during the beta period which discusses how to map
the command line options from prowrap to TclApp:
http://aspn.activestate.com/ASPN/Mail/Message/tdk-beta/1515568
You will find a "Converting Prowrap to TclApp" section along these
lines in the Tcl Dev Kit TclApp docs as well.
> With the good old prowrap I used to create my application with
> prowrap -out foo.exe -uses wish84 source/*.tcl
> source/images/*.gif \
> -startup source/foo.tcl
>
> Now I try to do the same from a batch file or cmd-window
> with tclapp -> many problems:
>
> 1. Errors are not shown, even the -verbose switch doesn't help.
> The reason is that tclapp.tcl is interpreted by wish84.exe
> without any console.
> Workaround, use tclsh:
> set KIT=c:\tcl\kit25\bin
> %KIT%\tclsh84.exe %KIT\tclapp.tcl ...
OK, there was an error message, but it was suppressed because of
stdout/stderr versus windows console issues. We can show error dialogs
instead, or you could try piping to 'cat' or 'type' to see if this solves
the problem too. When you run under the UI, this output is captured for
you in the text window.
> 2. tclapp doesn't find the -prefix files in it's installation
> directory.
> Therefore I need to specify the complete path:
> -base %KIT%\base-tk-win32-ix86.exe
YM '-prefix' again here. The option -executable (now -prefix) always
required a path, prowrap was just hiding this fact because of -uses,
which used predefined configurations stored in the application, and the
tcl code inside of these knew where the various stubs were, relative to
prowrap.
So this is a direct result of us abolishing '-uses'. The more general
-config we have now can't do this, it always accesses files in the native
filesystem.
I am not sure if we can make this simpler again, but we will consider
this. Perhaps automatically looking next to our own base executable
(which is were we default install the base kits).
> 3. Specifying the -startup script became more complicated. Tclapp
> doesn't find
> the source/foo.tcl file. Instead I need to prepend a magic
> lib/application or explicitly specify the destination path:
> -startup lib/application/source/foo.tcl source/*.tcl
> or
> -anchor foo -startup foo/source/foo.tcl source/*.tcl
True. The change comes from the fact that listed files now go
into /lib/application by default, instead of / as in prowrap.
The only way I currently see to avoid the magic /lib/application, or
-anchor foo is to redefine the semantics of -startup. Currently it takes
a "path inside of the archive", i.e. "destination path", like prowrap.
We could take a "source path" instead, then -anchor, -relativeto, etc.
would apply as usual, and transform this into the correct path needed
later. This would mean that the relocation using /lib/application would
be done automatically.
But it also means that -startup takes a completely different type of path
for tclapp than for prowrap.
> So the complete commandline is (compare this with prowrap):
> set KIT=c:\tcl\kit25\bin
> %KIT%\tclsh84.exe %KIT%\tclapp.tcl -base
> %KIT%\base-tk-win32-ix86.exe \
> -out foo.exe \
> source/*.tcl source/images/*.gif \
> -startup lib/application/source/foo.tcl
>
> Couldn't this be made a bit easier or am I missing something ?
To be honest, I don't use the command line anymore, I always build with
the UI. This is also how we oriented things in the upgrade. While you
do have the command line conversion guide in the docs, we focused on
making sure that project files for prowrap would work with TclApp. I
tested this on several projects to my satisfaction. The nice thing is
that you only need to use the UI once, and then
tclapp -config myapp.tpj
will build the app in a batch mode, without using the UI.
We will further evaluate your input though, to see if there are places
that could be improved or tweaked to make transition easier.
> BTW, the documented test whether the application is wrapped with
> if {[info exists starkit::startup]} {...}
> doesn't work, because this variable doesn't exist.
> I'm now checking with
> if {[info exists starkit::topdir]} {...}
Hmmm, we'll have to double-check the docs on this point. I've used
topdir myself. It may be something that was valid and changed without us
updating the docs, or was just a mistake in the first place.
--
Jeff Hobbs The Tcl Guy
Senior Developer http://www.ActiveState.com/
Tcl Support and Productivity Solutions