cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Don’t miss your chance to experience Discovery Summit Europe at our best available rate! Early bird registration through 31 Oct.
  • Graph Builder Toolbar streamlines interactive graphing. Creates shortcuts on Report and GraphBuilder Helpers toolbars. Download and install the extension.
  • JMP will suspend normal business operations for our Rest and Recharge Day on Friday, October 2, 2026.
    Regular business hours will resume on Monday, October 5, 2026.

Discussions

Solve problems, and share tips and tricks with other JMP users.
Choose Language Hide Translation Bar
djhanson
Level VI

names default to here - errors with JSL encryption

Hi, I have a "names default to here(1)" in a main JSL script that does some later "include" on some downstream JSL scripts.  Some of these downstream JSL's are encrypted for view only.

When I run the main JSL script, it errors out:
"Name Unresolved: <encrypted>{13} in access or evaluation of '<encrypted>' , "<encrypted>" /*###*/"

Is this a bug? (JMP 14.3.0)
Why should it quit on an encrypted script?  I certainly don't want to unencrypt the other JSL scripts on account of using this command.  Else, is there a way around this perhaps?  I have 100's of globals so was hoping to avoid a specific name space for each one.

thanks!  DJ

1 REPLY 1
txnelson
Super User

Re: names default to here - errors with JSL encryption

This is just a guess, but what you may be running into could be a scoping error.  When one uses

Names Default To Here( 1 );

JMP literally creates a names space called Here and converts all unscoped variables from 

     

Variable Name = 1;

to

   

Here:Variable Name = 1;

The scoping issue can come up with a grandfathered scoping syntax.

JSL that previously did not have the Names Default to Here(1) specified, the following assignment statements were equivalent

Y=1;
::Y=9;
Show(Y, ::Y);

.The results of this JSL is:

Y = 9;
Y = 9;

 However, with the Names Default to Here(1) specified

Names Default To Here( 1 );
Y = 1;
::Y = 9;
Show( Y, ::Y, here:Y );

gives the results

Y = 1;
Y = 9;
here:Y = 1;

All of my rambling on this topic leads me to a guess that somewhere is your encrypted code, a double colon, "::" scoping has been specified, and then referenced without the double colon being specified.  With the Names Default to Here(1) specified, the reference with out the double colon will produce a variable name that JSL has not seen before, and will throw an exception error.

Jim

Recommended Articles