Size: 2831
Comment: Remark added regarding a SALT bug
|
Size: 1400
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 3: | Line 3: |
= User Command "ScriptManager" = | = User Command "Latest" = /!\ This page is under construction |
Line 5: | Line 8: |
`ScriptManager` (ScriptManager) is a utility useful to manage scripts in a workspace. | |
Line 7: | Line 9: |
Obviously it makes sense to make `ScriptManager` available as a User Command. | This User Command prints the fully qualified names of functions and operators together with time stamps and the user name to the session, sorted by time stamp (oldest first). |
Line 9: | Line 11: |
This page offers a small class script `ScriptManager_UC.dyalog` which is designed to do exactly that. | Note that fns/opr in scripted namespaces are '''execluded'''. In the context of a command latest they don't offer real value since they all get the same time stamp when the script gets fixed. This is more often misleading than useful. |
Line 11: | Line 13: |
== Assumptions == In order to make `ScriptManager` available as a user command the script `ScriptManager_UC.dyalog` ("UC" for User Command) attached to this page must go somewhere where Dyalog is able to find it. There are to options: |
The following is a sample session taken in the workspace "wtutor95" every Dyalog installation is coming with. |
Line 14: | Line 15: |
* Move it into `Salt\Spice` inside the Dyalog installation folder. That's where the Dyalog User Commands are located. * Create a particular folder for your own User Commands. |
An empty vector means ALL fns/opr: {{{ ]q←Latest ⍬ ⍴q 1 111 }}} |
Line 17: | Line 22: |
Although the first option is certainly easier, it's actually the second one which is recommended. There are a couple of reasons: | A positive integer n is treated as "report n fns/opr changed most recently: {{{ ]Latest2 6 #.DRAG 2000.08.14 11:09:27 Dyadic #.DOCKACCEPT 2000.08.15 10:17:15 Dyadic #.MAKE_Tutor 2003.03.17 13:54:39 Dyadic #.SET_TAB_STOPS 2003.03.17 13:54:59 Dyadic #.BMPDIR 2003.03.17 13:55:10 Dyadic #.TOPIC 2003.03.17 14:17:31 Dyadic |
Line 19: | Line 32: |
* Messing Dyalog scripts with your scripts is not a good idea. * When a new version of Dyalog arrives you are in trouble. * Having a separate folder for your own User Commands allows you to overwrite a Dyalog User Command with an improved version you are not going to loose in case of an update or a new version. To make your own User Command folder work you have to do a couple of things: 1. Add the folder to the SALT search path. 1. Create another folder which is going to host the "real thing". A recommended name is "!UserCommandCode". 1. Copy the script `ScriptManager_UC.dyalog` from the ScriptManager page into that folder. 1. Create a registry entry pointing to that new folder with the name `HKEY_CURRENT_USER\Software\Dyalog\Dyalog APL/W 12.1 Unicode\SALT\CodeFolder` Note that the script attached to this page only deals with one issue: find the real work horse and call it, see below. In order to achieve that the script `ScriptManager_UC.dyalog` reads the `HKEY_CURRENT_USER\Software\Dyalog\Dyalog APL/W 12.1 Unicode\SALT\CodeFolder` from the Windows registry. It then tries to load the "real" `ScriptManager` script from that folder. Note that not only our examples given on this page but also the code in `ScriptManager_UC.dyalog` all refer to version 12.1 Unicode of Dyalog. If your are using a different version of Dyalog of course you must change the script, otherwise it's not going to work. == Problem with SALT == When you get a "Target namespace not found" error reported by SALT but crashing `ScriptManager` than you are using an outdated version of SALT. Ask Dyalog for a better version of SALT where this bug got fixed. |
}}} |
Line 42: | Line 36: |
[[attachment:ScriptManager_UC.zip | Download]] the script. | [[attachment:Latest2.zip | Download]] the script and the workspace. |
Line 45: | Line 39: |
The script is version 1.0.0 from 2011-08-04 | The script is version 1.0.0 from 2012-03-05 |
Line 49: | Line 43: |
-- KaiJaeger <<DateTime(2011-08-04T20:13:42Z)>> | -- KaiJaeger <<DateTime(2012-03-05T14:37:53Z)>> |
Contents
User Command "Latest"
This page is under construction
Overview
This User Command prints the fully qualified names of functions and operators together with time stamps and the user name to the session, sorted by time stamp (oldest first).
Note that fns/opr in scripted namespaces are execluded. In the context of a command latest they don't offer real value since they all get the same time stamp when the script gets fixed. This is more often misleading than useful.
The following is a sample session taken in the workspace "wtutor95" every Dyalog installation is coming with.
An empty vector means ALL fns/opr:
]q←Latest ⍬ ⍴q 1 111
A positive integer n is treated as "report n fns/opr changed most recently:
]Latest2 6 #.DRAG 2000.08.14 11:09:27 Dyadic #.DOCKACCEPT 2000.08.15 10:17:15 Dyadic #.MAKE_Tutor 2003.03.17 13:54:39 Dyadic #.SET_TAB_STOPS 2003.03.17 13:54:59 Dyadic #.BMPDIR 2003.03.17 13:55:10 Dyadic #.TOPIC 2003.03.17 14:17:31 Dyadic
Download
Download the script and the workspace.
Version
The script is version 1.0.0 from 2012-03-05
Author: KaiJaeger
-- KaiJaeger 2012-03-05 14:37:53