I am distributing an application and I would like it to be a locked script. But when I lock the script, it doesn't work.
The error messages make me suspect that an object has not been destroyed properly. I use a 'connxactn' class that extends my 'sockmux' class. I am thinking that the code in connxactn destroy =: 3 : 0 destroy_sockmux_ f. '' ) which should destroy the sockmux when the connxactn is destroyed, is not working properly because of a reluctance of the interpreter to disclose destroy_sockmux_ when the script is locked. Is this a known problem? Even if it is, I don't understand why my application doesn't work. I distribute a loader file as a locked script. When that file runs, it connects to a server and pulls down the big unlocked application. The locked script does not create any of the objects that seem to be causing the trouble, and it seems to run fine. The trouble comes when it starts the big unlocked application. The big application includes the same socket library that the loader uses, so when the big app is loaded it overwrites names that had been loaded by the locked file. None of these names would be executing at the time they were reloaded, so I would think they should be overwritten with non-locked versions that would not exhibit any anomalies of disclosure. The only connection between the locked and the unlocked code is that the locked script is running while it calls the initialization code for the unlocked app. None of the reloaded verbs is suspended, though. To repeat: if the loader script is not locked, all is well. If it is locked, the big unlocked script fails. Henry Rich ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
