{HOME], [DYALOG], and [SALT]

No need to worry about going "off topic" here
Forum rules
This forum is for general chit-chat, not necessarily APL-related. However, it's not for spam or for offensive or illegal comments.
Post Reply
User avatar
ray
Posts: 238
Joined: Wed Feb 24, 2010 12:24 am
Location: Blackwater, Camberley. UK

{HOME], [DYALOG], and [SALT]

Post by ray »

Hi,

I have noticed that under Dyalog 17.0 (under WINDOWS 7 and 10), in some of the file names that occur in the Configuration settings (and hence windows registry) contain what appear to be "shortcuts" for some directory paths.

EG
C:\Users\Ray\Documents\Dyalog APL-64 17.0 Unicode Files\Code;[DYALOG]\Library\Core;[DYALOG]\Library\Conga;[SALT]

and
[SALT]\Spice;[HOME]\Documents\MyUCMDs

Where are these "shortcuts" defined?
Are they part of Windows OS, or Dyalog?

I am assuming these are NOT related to "System operations" (such as "[WSClear]", "[WSLoad]" and "[Off]") that Dyalog also supports.

Thanks for any feedback.

Ray
Ray Cannon
Please excuse any smelling pisstakes.
User avatar
Adam|Dyalog
Posts: 143
Joined: Thu Jun 25, 2015 1:13 pm

Re: {HOME], [DYALOG], and [SALT]

Post by Adam|Dyalog »

These are recognised by SALT whenever a path is given. Any phrase in square brackets is replaced with the environment variable of that (for non-Windows: uppercased) name.

Technical details:
It is ⎕SE.SALTUtils.specialName which does this. You can test it with ⎕SE.SALTUtils.specialName'[home]'
User avatar
ray
Posts: 238
Joined: Wed Feb 24, 2010 12:24 am
Location: Blackwater, Camberley. UK

Re: {HOME], [DYALOG], and [SALT]

Post by ray »

Thanks for this information.
So:

Code: Select all

       ⎕SE.SALTUtils.specialName'[HOME]' 
\Users\Ray

       ⎕SE.SALTUtils.specialName'[DYALOG]'
C:\Program Files\Dyalog\Dyalog APL-64 17.0 Unicode

       ⎕SE.SALTUtils.specialName'[HOME]'
\Users\Ray


Having looked at the code, and I notice that [USER] is also a special name, but does not appear to currently be in use (that is to say, I have not found it in my registry entries).

However when I tried USER it fails:

Code: Select all

         ⎕SE.SALTUtils.specialName'[USER]' 
SYNTAX ERROR: Can't change nameclass on assignment
getEnvir[9] r←{0::⎕AN ⋄ (1↓2⊃'\'∘={⎕ML←1 ⋄ ⍺⊂⍵}⊢)2⊃4070⌶⍬}
             ∧


I believe the problem that line [9] is missing an argument of some sort, EG

Code: Select all

getEnvir[9] r←{0::⎕AN ⋄ (1↓2⊃'\'∘={⎕ML←1 ⋄ ⍺⊂⍵}⊢)2⊃4070⌶⍬}⍬


Without it, line 9 is trying to reassign the variable "r" (already defined on line 4) as as a function.

Code: Select all

      r←{0::⎕AN ⋄ (1↓2⊃'\'∘={⎕ML←1 ⋄ ⍺⊂⍵}⊢)2⊃4070⌶⍬}⍬
      r
Ray
Ray Cannon
Please excuse any smelling pisstakes.
User avatar
Adam|Dyalog
Posts: 143
Joined: Thu Jun 25, 2015 1:13 pm

Re: {HOME], [DYALOG], and [SALT]

Post by Adam|Dyalog »

Thank you for that. I've fixed it and it should become part of the first upcoming patch and eventually make it to https://www.dyalog.com/tools/user-commands.htm as well.
Post Reply