View · Search · Index
No registered users in community xowiki
in last 10 minutes

Re: [Xotcl] How to build XOTcl 1.6.8 so that it works with both Tcl 8.5 and 8.6?

From: Yusuke Yamasaki <tm9233yy_at_gmail.com>
Date: Wed, 15 Oct 2014 19:13:25 +0900

Hello Gustaf,

It worked. Thank you!
Currently I'm using Tcl 8.5. But the main purpose of upgrading XOTcl
to 1.6.8 is to migrate to Tcl 8.6.
So I think it's better to use the exclusive one for Tcl 8.6 when I
leave Tcl 8.5 completely.

Regards,
Yusuke
---
Yusuke Yamasaki <tm9233yy_at_gmail.com>
2014-10-15 4:32 GMT+09:00 Gustaf Neumann <neumann_at_wu.ac.at>:
> Dear Yusuke,
>
> building XOTcl binaries with Tcl 8.5, that work with Tcl 8.6 is actually not
> quite simple,
> since when XOTcl is compiled under Tcl 8.5 uses the Tcl function
> TclObjInterpProcCore(),
> which was unfortunately removed from Tcl in 8.6. The commit entry, which
> deleted the
> stub entry in Tcl 8.6 says:
>
>     "Used to be needed for TclOO-extension; unneeded now that TclOO is in
> the core
>     and NRE-enabled"
>
> Therefore, when one loads the binary from Tcl 8.5 into Tcl 8.6, this symbol
> cannot be
> resolved. See as well the discussion in [1].
>
> However, to address this problem, i've added a new configure
> option "--enable-forward-compat86", which allows to build binaries of XOTcl
> with 8.5, that do not use TclObjInterpProcCore(), and can therefore be
> loaded into Tcl 8.6 as well. You can get this version currently just from
> git
>
>   git clone git://alice.wu.ac.at/nsf
>   cd nsf
>   git branch xotcl1 origin/xotcl1
>   git checkout xotcl1
>
> Use "--enable-forward-compat86" only in cases, where you need the forward
> compatibility. One will get better performance under Tcl 8.5 or Tcl 8.6 by
> compiling
> exclusively for these versions.
>
> best regards
> -gustaf neumann
>
> [1] https://next-scripting.org/list/1207.html
>
>
>
> Am 14.10.14 07:05, schrieb Yusuke Yamasaki:
>
> Hello,
>
> Because the teapot repository has up to XOTcl 1.6.7 for Windows,
> I tried to build 1.6.8 for myself. The easiest way was to use Msys/MinGW.
>
> ./configure --enable-threads --prefix=/c/bin/tcl8.5.16 \
> --with-tcl=/c/src/tcl8.5.16/win --with-tk=/c/src/tk8.5.16/win \
> --with-actiweb=no --with-xotclsh=no --with-xowish=no \
> --without-expat --without-gdbm \
> --with-tclinclude=/c/bin/tcl8.5.16/include \
> --with-tkinclude=/c/bin/tcl8.5.16/include
> make
> make install
>
> However it only works with either 8.5 or 8.6 depending on the version
> which I specified by --with-tcl option. Though I don't have deep
> understanding of the stub mechanism, I know it is a key to make a
> generic version of a C extension. I think XOTcl has -DUSE_TCL_STUBS=1
> by default configuration according to config.log.
>
> Is there anything wrong with my build procedure?
>
> Windows 7 Professional SP1 64bit
> Tcl/Tk 8.5.16
> ---
> Yusuke Yamasaki <tm9233yy_at_gmail.com>
> _______________________________________________
> Xotcl mailing list
> Xotcl_at_alice.wu-wien.ac.at
> http://alice.wu-wien.ac.at/mailman/listinfo/xotcl
>
>
>
> --
> Univ.Prof. Dr. Gustaf Neumann
> WU Vienna
> Institute of Information Systems and New Media
> Welthandelsplatz 1, A-1020 Vienna, Austria