BBEdit vs. Prebinding #

BBEdit (7.1.2) is annoyingly slow to launch. It seems to finish launching, but then it just sits there doing nothing for a while (Calculator.app has a similar problem, but I don't think it's related since it gives the rainbow beachball cursor while BBEdit uses an internal black and white spinner cursor). Then I noticed the following messages appearing in the console:

Mar 24 22:28:35 localhost /usr/libexec/fix_prebinding: /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit could not be launched prebound.
Mar 24 22:28:35 localhost /usr/libexec/fix_prebinding: /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit couldn't be prebound in the past, and probably can't be prebound now.
Mar 24 22:28:35 localhost /usr/libexec/fix_prebinding: 2004-03-24 22:28:35 -0500: prebinding for BBEdit done.
Mar 24 22:30:35 localhost /usr/libexec/fix_prebinding: fix_prebinding quitting for now.

Although prebinding fails every time, the message doesn't elaborate. However, Apple provides the update_prebinding tool that can be used to prebind one executable/library at a time. Running it on BBEdit (specifically the executable in Contents/MacOS/BBEdit) with the -verbose flag makes it spit out the following:

2004-03-24 23:14:21.290 update_prebinding[1599] Start of update_prebinding
2004-03-24 23:14:21.297 update_prebinding[1599] Prebinding files (0/1 complete)
2004-03-24 23:14:21.321 update_prebinding[1599] Will check and redo_prebinding on /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit
2004-03-24 23:14:21.404 update_prebinding[1599] redo_prebinding on /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit:redoing the prebinding can't be done because file has a resource fork or type/creator: /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit.
2004-03-24 23:14:21.405 update_prebinding[1599] update_prebinding done. (100/100 complete)
2004-03-24 23:14:21.407 update_prebinding[1599] Update_prebinding done.
2004-03-24 23:14:21.407 update_prebinding[1599] 0 files successfully prebound, 1 files unsuccessfully prebound.

Checking the file shows that it does indeed have a type ('****') and a creator ('R*ch'). I don't see why this should affect prebinding, but perhaps it's Apple/Avie's way of getting back at those developers that persist using HFS type/creators when The One True Way is clearly to use filename extensions. In any case, removing that data (in my case with Resorcerer, though these scripts by John Gruber would most likely work too) fixes the problem. Attempting to prebind again results in these success messages:

2004-03-24 23:20:16.588 update_prebinding[1608] Start of update_prebinding
2004-03-24 23:20:16.594 update_prebinding[1608] Prebinding files (0/1 complete)
2004-03-24 23:20:16.647 update_prebinding[1608] Will check and redo_prebinding on /Applications/Text/BBEdit 7.1/BBEdit.app/Contents/MacOS/BBEdit
2004-03-24 23:20:18.560 update_prebinding[1608] update_prebinding done. (100/100 complete)
2004-03-24 23:20:18.562 update_prebinding[1608] Update_prebinding done.
2004-03-24 23:20:18.564 update_prebinding[1608] 1 files successfully prebound, 0 files unsuccessfully prebound.

Although BBEdit now launches somewhat faster (one bounce on a 1 Ghz TiBook), it still sits there for a while with its black and white beachball wait cursor. My new hypothesis is that its doing its version check (though why this can't be done asynchronously I don't understand).

Post a Comment