Donald G Porter | 26 Jun 17:55

Tcl/Tk 8.6a1 RELEASED


Tcl/Tk 8.6a1 Release Announcement
June 25, 2008

The Tcl Core Team is pleased to announce the 8.6a1 releases of the Tcl
dynamic language and the Tk toolkit.  This is the first alpha release
of Tcl/Tk 8.6.  More details can be found below.  We would like to
express our gratitude to all those who submit bug reports and patches.
This information is invaluable in enabling us to identify and eliminate
problems in the core.

Where to get the new releases:
------------------------------

Tcl/Tk 8.6a1 sources are freely available as open source from the
Tcl Developer Xchange web site at:

         http://www.tcl.tk/software/tcltk/8.6.html

This web page also contains additional information about the releases,
including new features and notes about installing and compiling the
releases.  Sources are always available from the Tcl SourceForge
project's file distribution area:

         http://sourceforge.net/project/showfiles.php?group_id=10894

Binaries for most major platforms are available from:

         http://www.activestate.com/Tcl

(Continue reading)

Rene Zaumseil | 1 Jul 11:25

Re: Tcl/Tk 8.6a1 RELEASED

Hi,

my first try to build kit executables with the new 8.6a1 release failed 
because of:

  undefined reference to `Tcl_InitStubs'
  undefined reference to `tclStubsPtr'

Then I found the following in the release notes:

    * C code compiled with USE_TCL_STUBS now must be linked against a
      stub library.  The Tcl shared library no longer exports variables
      used in the stub interface.  Analogous changes also made to Tk.
      *** POTENTIAL INCOMPATILITY ***

My link command for 8.5 was:
  gcc -pipe -O2 -fomit-frame-pointer -Wall -Wno-implicit-int  pwb.o rechan.o
  zlib.o kitInit.o tclAppInit.o\
  /home/rene/kbs/buildLinux/lib/libtk8.6.a /home/rene/kbs/buildLinux/lib/libtcl8.6.a\
  /home/rene/kbs/buildLinux/lib/libz.a /home/rene/kbs/buildLinux/lib/vfs1.3/libvfs1.3.a\
  /home/rene/kbs/buildLinux/lib/vqtcl4.1/libvqtcl4.1.a\
  /home/rene/kbs/buildLinux/lib/thread2.6.5/libthread2.6.5.a -o kbskit8.5-cli\
  -ldl  -lpthread -lieee -lm

Inserting of 'libtclstub8.6.a' for 8.6 does not solve the problem.

With 'nm' I got the following:

'libtcl*.a':
85:         U tclStubs
(Continue reading)

Joe English | 1 Jul 19:13

Re: Tcl/Tk 8.6a1 RELEASED


Rene Zaumseil wrote:
>
> my first try to build kit executables with the new 8.6a1 release failed
> because of:
>
>   undefined reference to `Tcl_InitStubs'
>   undefined reference to `tclStubsPtr'
>
> Then I found the following in the release notes:
>
>     * C code compiled with USE_TCL_STUBS now must be linked against a
>       stub library.  The Tcl shared library no longer exports variables
>       used in the stub interface.  Analogous changes also made to Tk.
>       *** POTENTIAL INCOMPATILITY ***
>
> My link command for 8.5 was:
>  [... below ...]

> Inserting of 'libtclstub8.6.a' for 8.6 does not solve the problem.

What error message do you get in this case?

Note that for kit executables you must generally link
against the stub library *in addition* to the main library,
not instead of it.

Also the order is important: the tcl stub library must be listed
after any extension libraries that use Tcl (including Tk!) if they
were compiled with -DUSE_TCL_STUBS.
(Continue reading)

Rene Zaumseil | 2 Jul 11:40

Re: Tcl/Tk 8.6a1 RELEASED

Joe English wrote:

>> Inserting of 'libtclstub8.6.a' for 8.6 does not solve the problem.

> What error message do you get in this case?

The same as before.

> Note that for kit executables you must generally link
> against the stub library *in addition* to the main library,
> not instead of it.
Until and including 8.5.3 I do not need the libtclstub* library.
See my first posting.

> Also the order is important: the tcl stub library must be listed
> after any extension libraries that use Tcl (including Tk!) if they
> were compiled with -DUSE_TCL_STUBS.

> libtk will depend either on libtclstub or libtcl, depending
> on how it was compiled.  libtkstub depends on libtclstub.
> libtcl depends only on system libraries.

> If you put libtk, libtkstub, libtcl, and libtclstub towards the
> end of the link line -- after extension libraries but before
> system libraries like libm, libdl, libX11, etc. -- in that order,
> it should link correctly no matter how things were compiled.

The link stage is successfull. But I get a segmentation fault in
loading the first extension (vlerq) in the first line of:

(Continue reading)

Joe English | 2 Jul 17:54

Re: Tcl/Tk 8.6a1 RELEASED


Rene Zaumseil wrote:
> Joe English wrote:
> > [...]
> > Note that for kit executables you must generally link
> > against the stub library *in addition* to the main library,
> > not instead of it.
>
> Until and including 8.5.3 I do not need the libtclstub* library.

The new rules are: code compiled with -DUSE_TCL_STUBS
must link against libtclstub.  Code compiled without
-DUSE_TCL_STUBS must link against libtcl.  If you have
some code compiled with and some code compiled without
in the same executable, then you must link against both
libraries.

(Those are actually the old rules, too, although things
would sometimes still link anyway even if they were not
followed.)

> > If you put libtk, libtkstub, libtcl, and libtclstub towards the
> > end of the link line -- after extension libraries but before
> > system libraries like libm, libdl, libX11, etc. -- in that order,
> > it should link correctly no matter how things were compiled.
>
> The link stage is successfull. But I get a segmentation fault in
> loading the first extension (vlerq) in the first line of:
>
> DLLEXPORT int Vlerq_Init (Tcl_Interp *interp) {
(Continue reading)

Rene Zaumseil | 2 Jul 20:29

Re: Tcl/Tk 8.6a1 RELEASED

Joe English wrote:

> Change this to:

>    DLLEXPORT int Vlerq_Init (Tcl_Interp *interp)
>    {
>        if (Tcl_InitStubs(interp, TCL_VERSION, 0) == NULL) {
>            return TCL_ERROR;
>        }
>        [... rest of extension initialization ...]
>    }

> and it will work properly whether compiled with
> or without -DUSE_TCL_STUBS.  (Tcl_InitStubs() is
> a macro; if stubs are disabled, it just does some
> error checking and other than that is a no-op.)
Thanks a lot. That's it!

rene

-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
Rene Zaumseil | 4 Jul 09:23

Re: Tcl/Tk 8.6a1 RELEASED

Hi,

I could successfull build tclkits under linux and solaris. For windows I need 
to patch the following locations.

1. Tk static build failed with missing symbols.

I need to build and install tcl with --enable-shared and then with 
--disable-shared and copied the tcl library:

	cp <builddir>/lib/libtclstub86.a <builddir>/lib/libtclstub86s.a 

and patched the tk-8.6/win/Makefile.in line 599:

	$(CC) $(CFLAGS) $(WISH_OBJS) $(TCL_LIB_FILE) $(TK_LIB_FILE) $(LIBS) \

to

	$(CC) $(CFLAGS) $(WISH_OBJS) $(TCL_LIB_FILE) $(TK_LIB_FILE) 
$(TCL_STUB_LIB_FILE) $(LIBS) \

Anyone occuring the same experience in building a static wish?
I build with msys under WindowsXP.

2. To build extensions with use of internal header files I need to patch line 
25 from tcl-8.6/generic/tclPort.h from

#   include "../win/tclWinPort.h"

to
(Continue reading)


Gmane