Share

Tcl

Tracker: Bugs

9 error with [interp create] in embedded build on Mac - ID: 2569449
Last Update: Settings changed ( das )

An embedded build of Tcl/Tk on the Mac (Intel) will fail on this command:

% interp create
Can't find a usable init.tcl in the following directories:
/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts /
Users/Torsten/Tcl/distrib/mac-builds/8.5.6/Applications/Utilities/

This is true for tclsh and wish in the Tcl/Tk versions 8.5.6 and the
current development version of 8.6. It worked inall 8.5.x versions until
and including 8.5.5

The embedded build was done using the procedure from the README:

export ver="8.5.6"
export dest="8.5.6"

make -C tcl${ver}/macosx/ embedded BUILD_DIR="/Users/Torsten/Tcl/
distrib/mac-builds/${dest}/" INSTALL_ROOT="/Users/Torsten/Tcl/distrib/
mac-builds/${dest}/"

make -C tk${ver}/macosx/ embedded BUILD_DIR="/Users/Torsten/Tcl/
distrib/mac-builds/${dest}/" INSTALL_ROOT="/Users/Torsten/Tcl/distrib/
mac-builds/${dest}/"

make -C tcl${ver}/macosx/ install-embedded INSTALL_ROOT="/Users/
Torsten/Tcl/distrib/mac-builds/${dest}/" BUILD_DIR="/Users/Torsten/Tcl/
distrib/mac-builds/${dest}/"

make -C tk${ver}/macosx/ install-embedded INSTALL_ROOT="/Users/Torsten/
Tcl/distrib/mac-builds/${dest}/" BUILD_DIR="/Users/Torsten/Tcl/distrib/
mac-builds/${dest}/"


Torsten Berg ( treincke ) - 2009-02-05 19:23

9

Closed

Fixed

Daniel A. Steffen

50. Embedding Support

obsolete: 8.5.6

Public


Comments ( 9 )

Date: 2009-10-05 02:42
Sender: dasProject Admin

Committed to HEAD, core-8-5-branch and core-8-4-branch.



Date: 2009-10-05 02:17
Sender: dasProject Admin

bug in 10.4 appears to extend to any CFRelease() of a CFBundle, once that
has occurred, any subsequent attempt to recreate a bundle for that location
fails. Adapted attached patch to bypass CFRelease() of bundle returned from
CFBundleCreate() on 10.4 and earlier.


Date: 2009-09-17 19:10
Sender: dasProject Admin

this appears to be due to a bug in 10.4 CoreFoundation with CFBundle
reference counting (CFRetain()ing and then CFRelease()ing a bundleRef
obtained from CFBundleGetBundleWithIdentifier() results in that bundle
being released and becoming unavailable for the lifetime of the process),
the issue is not present on 10.5 or 10.6.

patch attached that works around this bug and should fix the problem.


Date: 2009-02-06 22:08
Sender: dasProject Admin

ok, that sounds familiar, I had a similar bug once when a CFBundle owned by
CF was over-CFReleased, sounds like I'm doing this here, will look into it,
thanks.


Date: 2009-02-06 21:18
Sender: cc_benny

I have the same problem with my builds. I can't see an error in
our code.

Adding debug output shows that only the first call for the same
parameter succeeds, after that the routine does not find the
bundle any more (bundleRef is always NULL). Removing the
CFRelease(versionedBundleRef) fixes the problem.

At least in my environment (OS 10.4.11) I always get back the
same reference-counted object so at least here the memory leak
would not be a real problem. For now I just removed both the
CFRelease and the CFRetain in my sandbox.


Date: 2009-02-05 22:38
Sender: dasProject Admin

that change looks fine, only the CF leak is fixed and some extra NULLity
checks added, nothing else changed, so I strongly doubt that this is the
cause of the problem at hand...
no time to look into it further ATM unfortunately


Date: 2009-02-05 22:16
Sender: dasProject Admin

that commit was supposed to be a pure leak fix, no functionality change:

http://fisheye.categorifiedcoder.info/changelog/Tcl/tcl/macosx?cs=MAIN:das:20081207162844

looking over it now to check for any new bugs...


Date: 2009-02-05 21:59
Sender: dgpProject Admin


I'm guessing the 2008-12-07 commit to
tclMacOSXBundle.c is to blame. Nothing
in the ChangeLog about it das?


Date: 2009-02-05 21:37
Sender: dgpProject Admin


Where is the init.tcl file for Tcl 8.5.6 installed?

Has the answer changed since release 8.5.5 ?

Has the set of directories on the search path changed
since release 8.5.5 ?


Attached File ( 1 )

Filename Description Download
2569449.diff patch against core-8-5-branch Download

Changes ( 11 )

Field Old Value Date By
close_date - 2009-10-05 02:42 das
resolution_id None 2009-10-05 02:42 das
status_id Open 2009-10-05 02:42 das
File Deleted 345347: 2009-10-05 02:31 das
File Added 345348: 2569449.diff 2009-10-05 02:31 das
File Deleted 343385: 2009-10-05 02:13 das
File Added 345347: 2569449.diff 2009-10-05 02:13 das
File Added 343385: 2569449.diff 2009-09-17 19:14 das
priority 8 2009-09-17 19:10 das
priority 5 2009-02-06 22:08 das
assigned_to dgp 2009-02-05 21:37 dgp