cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
  • Instantly extract effect sizes, F-ratios, and FDR-adjusted p-values from your models with the Calculate Effects Sizes extension, available now in the JMP Marketplace!
  • New to JMP? Join us Sept. 23-24 for the Early User Edition of Discovery Summit, tailor-made for new users. Register now for free!
  • Your voice matters! Tell us how you prefer to receive JMP updates, so we can tailor our communication to your needs. Take short survey.

Discussions

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

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