maybe, what you have overlooked in my patch was that there is a "return" in:
if {![info exists success]} { #puts stderr "Cannot locate the XOTcl library on your system!" return }
BTW, ::xotcl::lib is always set at this point. Before the method "check_library_path", xotcl.c sets it to the compiled-in default. the auto_path should only be changed if we learn in check_library_path that we want to change it (and not to the compiled-in default). The code below does not work, because you use the wrong package name:
% package require XOTcl 1.0 % namespace import ::xotcl::* % package require package can't find package package % package require xotcl::package 0.91
the C findXOTcl searches for the xotcl .so/.dll and is not related to the "check_library_path" method. Its only used in the xotclAppInit.c fake shell, not in xotcl.c
I would still propose the patch from yesterday.
--uwe
On Monday 12 May 2003 22:14, Gustaf Neumann wrote:
On Monday 12 May 2003 20:04, Uwe Zdun wrote:
Looking through this code again, the ::xotcl::lib is not really used in XOTcl's code anymore ...
hmm? The line after the error message says: set ::auto_path [concat $::xotcl::lib $::auto_path] if the variable is not set, you get the error message there. it is certainly possible to set a default value, say from the configure prefix....
The more sensible change is to use the patch below, which will be ok, when you load xotcl via xotclsh, but will not find xotcl packages, when xotcl is loaded via tclsh; try:
tclsh package require XOTcl namespace import ::xotcl::* package require package
Currenty, xotcl does a patch checking in C (findXOTcl.c) and in tcl (predefined.xotcl). my hope was rather to get rid of the c-code... The background of this code is as follows:
- tcl searches the libraries in auto_path and the subdirs of that.
- with xotcl i would like the get one more level to organize the xotcl packages more nicely.
- therefore the xotcl library is added to the auto_path.
We would not need the library, when we assemble a large tclIndex.tcl file in the xotcl directory. Maybe that is the better way... we will check this more carefully...
best regards -gustaf
-- predefined.xotcl~ 2003-04-24 22:49:14.000000000 +0200 +++ predefined.xotcl 2003-05-12 21:48:20.000000000 +0200 @@ -357,12 +357,9 @@ } }
- if {![info exists success]} {
puts stderr "Cannot locate the XOTcl library on your system!"
return 0
- if {[info exists ::xotcl::lib]} {
}set ::auto_path [concat $::xotcl::lib $::auto_path]
#puts stderr "[info exists success] <$::xotcl::lib>"
set ::auto_path [concat $::xotcl::lib $::auto_path]
# # and forget all "xotcl::" packages in Tcl's packageTable so that they