Differences between revisions 35 and 36
Revision 35 as of 2017-02-24 20:38:28
Size: 3791
Editor: KaiJaeger
Comment:
Revision 36 as of 2019-05-30 07:50:00
Size: 0
Editor: KaiJaeger
Comment: Retired: does not work on scripts and is probably superfluous with any SCM
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from UserCommands/Latest2
<<TableOfContents>>

= User Command "Latest2" =

== Overview ==

This User Command prints the fully qualified names of functions and operators together with time stamps and the user names 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 from when the script gets fixed. This is more often misleading than useful.

The User Command also ignores Class Instances but investigates the contents of any GUI namespaces if `KeepOnClose` is 1.

The following is a sample session taken in the workspace "CPro" (Causeway) a Dyalog installation is coming with at the time of writing (2012-03).

An empty vector means ALL fns/opr:
{{{
      ]q←Latest2 ⍬
      ⍴q
1832 3
}}}

A positive integer n is treated as "report n fns/opr changed most recently", therefore you get 6 or less objects printed to the session:
{{{
      ]Latest2 6
 #.Class.Initialise 2008.02.22 18:40:42 Adrian
 #.Class.Qualify 2008.02.22 18:52:15 Adrian
 #.Class.PM.Refresh 2008.02.22 19:01:15 Adrian
 #.Class.IL.Refresh 2008.02.22 19:27:25 Adrian
 #.Class.IC.Refresh 2008.02.22 19:42:32 Adrian
 #.CPro.Fns.Exec0 2008.02.22 19:43:40 Adrian
}}}

A negative integer n is treated as "report all fns/opr changed during the nth recent days":
{{{
      ]Latest2 ¯2
 #.CPro.Class.EventNumber 2008.01.24 14:46:02 Adrian
 #.Class.MakeBitmap 2008.02.22 18:37:41 Adrian
 #.Class.Initialise 2008.02.22 18:40:42 Adrian
 #.Class.Qualify 2008.02.22 18:52:15 Adrian
 #.Class.PM.Refresh 2008.02.22 19:01:15 Adrian
 #.Class.IL.Refresh 2008.02.22 19:27:25 Adrian
 #.Class.IC.Refresh 2008.02.22 19:42:32 Adrian
 #.CPro.Fns.Exec0 2008.02.22 19:43:40 Adrian
}}}

Note that you cannot specify the negative value as `-4` rather than `¯4` because Dyalog considers it to be a switch then and refuses to accept that.

For that reason there is also a `-d` switch which means that the integer shall be treated as a day. That way the value can be positive.

By default `Latest` investigates `#`. With the optional switch `-s` one can change that. The following statement returns 6 fns/opr from the namespace `#.Class.IC`:

{{{
      ]Latest2 ¯5 -s=#.Class.IC
 #.Class.IC.Caption 1997.07.31 18:13:06 Adrian
 #.Class.IC.Design 1997.07.31 23:38:26 Adrian
 #.Class.IC.Create 1997.08.01 11:50:52 Adrian
 #.Class.IC.onConfigure 1997.08.01 11:54:51 Adrian
 #.Class.IC.Read 1997.09.01 15:36:54 Adrian
 #.Class.IC.Fns 2008.01.23 12:51:28 Adrian
 #.Class.IC.Refresh 2008.02.22 19:42:32 Adrian
}}}

Occasionally it might be useful to include fns/opr from scripted namespaces as well. This can be achieved with the `-a` switch (for "all").

Let's create a scripted namespace in order to get something to bite into:

{{{
      ⎕fix ':Namespace Foo' '∇r←Hello' 'r←''World''' '∇' ':EndNamespace'
      ]Latest2 3
 #.Class.IL.Refresh 2008.02.22 19:27:25 Adrian
 #.Class.IC.Refresh 2008.02.22 19:42:32 Adrian
 #.CPro.Fns.Exec0 2008.02.22 19:43:40 Adrian
      ]Latest2 3 -a
 #.Class.IC.Refresh 2008.02.22 19:42:32 Adrian
 #.CPro.Fns.Exec0 2008.02.22 19:43:40 Adrian
 #.Foo.Hello 2012.03.05 16:20:35 Kai

}}}


== Download ==

[[attachment:Latest2.zip | Download]] the script and the workspace.

== Version ==
The script is version 1.1.9 from 2017-02-24

Author: KaiJaeger

-- KaiJaeger <<DateTime(2012-03-05T14:37:53Z)>>

----
CategoryDyalogUserCommands