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

Reply via email to