Skip to content

Commit

Permalink
Make
Browse files Browse the repository at this point in the history
  • Loading branch information
aplteam committed Jul 10, 2019
1 parent 97cee0d commit 3a32d2a
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 30 deletions.
4 changes: 3 additions & 1 deletion APLSource/Fire-1/GUI-7/CreateOptions-41.aplf
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@
,'Caption' '&Ignore references'
,'Style' 'Check'
,'Posn'(75 10)
,'State'##.G.IgnoreRefs
,'State' 0 ##.G.IgnoreRefs
,'Attach'(4'Top' 'Left')
,'TipObj'n.TipObj
,'Active' 0
,'Visible' 0
msg'Without ticking this refs are treated exactly like the originals'
,'Tip'(Split msg)
n.IgnoreRefs'IgnoreRefs'rf.⎕WC
Expand Down
4 changes: 3 additions & 1 deletion APLSource/Fire-1/GUI-7/CreateOptions_QNL-1c041.aplf
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@
,'Caption' '&Ignore references'
,'Style' 'Check'
,'Posn'(75 10)
,'State'##.G.IgnoreRefs2
,'State' 0 ##.G.IgnoreRefs2
,'Attach'(4'Top' 'Left')
,'Active' 0
,'Visible' 0
,'TipObj'n.TipObj
msg'Without ticking this refs are treated exactly like the originals'
,'Tip'(Split msg)
Expand Down
2 changes: 0 additions & 2 deletions APLSource/Fire-1/ListNamespaceTree-2011.aplf
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
1: Returns a list of references with all (always!) named namespaces in "ref"
and optionally (depending on G.Instances) also instances of forms, sockets
etc. but NOT classes.
Note that instances of classes can also be scanned but by ticking the
"Class instances" option in the "Object types" group.
2: Return abnomalies
Semi-global ∆buffer is used to to collect results while running recursively
type{(0<⎕NC ): 1}'type'
Expand Down
11 changes: 6 additions & 5 deletions APLSource/Fire-1/RemoveClones-41.aplf
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
RemoveClones{
0=(n.Tab1n.IgnoreRefs2.##.##.##.TabObj)G.(IgnoreRefs IgnoreRefs2):
Remove all references pointing elsewhere: we don't want objects to appear twice,
or in a different place than specified in G.LookIn
list
(G.LookIn)'#' '⎕SE':list
names¨list[;0]
b1names¨G.LookIn
b2(0=¨names)(G.LookIn,'.'){¨()¨}names
(b1b2)list
b1names¨G.LookIn Get rid of those who live elsewhere
b2(0=¨names)(G.LookIn,'.'){¨()¨}names When not empty then they must live in G.LookIn
b3names,¨'#' '⎕SE' Make exceptions for root objects, or will loose scripts
(b3b1b2)list
}
2 changes: 1 addition & 1 deletion APLSource/Fire-1/Version-1.aplf
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
rVersion
See also `History`
r(1¯1⎕NPARTS⎕THIS)'7.2.0.99' '2019-07-09'
r(1¯1⎕NPARTS⎕THIS)'7.2.0.101' '2019-07-10'
1 change: 1 addition & 0 deletions APLSource/TestCases-11/Assert-1.aplf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Assert{'' (,1),:r1 ⎕ML3 ⎕SIGNAL 1(),11}
10 changes: 10 additions & 0 deletions APLSource/TestCases-11/Test_SearchQNL_005-3821.aplf
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
RTest_SearchQNL_005(stopFlag batchFlag);n;n2;⎕TRAP;buffer;search
Search for "QAN" in #.TicToc with a ref pointing to a non-existing script.
⎕TRAP(999 'C' '. ⍝ Deliberate error')(0 'N')

:If 1
This test case is not activce because we have not allowed the user (yet?!)
to un-tick the "Ugnore references" check box. The reason is that the user
is probably not interested in references ever.
R∆Inactive
:Return
:EndIf


R∆Failed

Preconditions
Expand Down
5 changes: 3 additions & 2 deletions APLSource/TestCases-11/Test_acre4_002-1.aplf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
RTest_acre4_002(stopFlag batchFlag);n;n2;oldPath;⎕TRAP;openAcreProjects;acreTestProjectName;changeFilesFolder;acreTestProjectFolder
RTest_acre4_002(stopFlag batchFlag);n;n2;oldPath;⎕TRAP;openAcreProjects;acreTestProjectName;changeFilesFolder;acreTestProjectFolder;more;en;rc
Check whether acre 4 reacts correctly when an object is deleted by Fire and there are self-refs around.
⎕TRAP(999 'C' '. ⍝ Deliberate error')(0 'N')

Expand Down Expand Up @@ -29,7 +29,8 @@
#.FireAcreTest.MyForm.⎕FX'r←Universe' 'r←''Includes world'''
{}#.FireAcreTest.⎕NEW #.FireAcreTest.MyClass
acreTestProjectName'FireAcreTestTemp'
#.FilesAndDirs.RmDir'..\',acreTestProjectName
(rc en more)#.FilesAndDirs.RmDir'.\',acreTestProjectName
more Assert 0=rc
{}⎕SE.UCMD'acre.CreateProject ',acreTestProjectName,' #.FireAcreTest -casecod=''on'' -keephistory=''on'''

1 #._Fire.Fire.Run 0
Expand Down
17 changes: 8 additions & 9 deletions Docs/ReadMe.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[parm]:toc = 3
[parm]:numberHeaders = 2 3 4
[parm]:collapsibleTOC = 1

[parm]:saveHTML = 0


# Fire
Expand Down Expand Up @@ -51,9 +51,9 @@ Fire also overcomes a couple of problems that Dyalog's built-in Search tool is s

Since version 7.1.0 Fire comes with its own installer. Just double-click it and your are done. It does not require admin rights.

The installer installs Fire into `%USERPROFILE%\Documents\MyUCMDs` which translates to `C:\Users\{userid}\Documents\MyUCMDs` with a default Windows installation. This folder, it it exists, is scanned by Dyalog for user commands.
The installer installs Fire into `%USERPROFILE%\Documents\MyUCMDs` which translates to `C:\Users\{userid}\Documents\MyUCMDs` with a default Windows installation. This folder, if it exists, is scanned by Dyalog for user commands.

However, if you have used Fire before version 7.1 then you might have installed it somewhere different. If this is the case then your are advised to remove Fire from that folder.
However, if you have used Fire before version 7.1 then you might have installed it somewhere different. If this is the case then your are advised to remove Fire from that folder before running the installer.

Note that installing into `%USERPROFILE%` means that you have to install it separately for every user who wants to use Fire.

Expand All @@ -66,9 +66,8 @@ After having installed Fire you can start it by executing:
~~~

The User Command checks whether Fire is already available in `⎕SE`. If that is not the case then it is copied into `⎕SE`. From now on it is started directly from `⎕SE` which you might find significantly faster than loading it into `⎕SE` first depending on where Fire is copied from in your environment.
Of course you can make that change persistent by saving your session.

However, when a new version of Fire comes along you need a way to load this new version. This can be achieved by specifying an optional parameter:
Of course you can make that change persistent by saving your session. However, when a new version of Fire comes along you need a way to load this new version. This can be achieved by specifying an optional parameter:

~~~
]Fire -fl
Expand All @@ -91,6 +90,7 @@ However, when a new version of Fire comes along you need a way to load this new
1. Class instances.
1. GUI instances which have `KeepOnClose←0`.
1. Ghostly namespaces.
1. References


## Ghostly namespaces
Expand Down Expand Up @@ -124,7 +124,7 @@ This statement does not throw an error, so somehow it was successful. Referencin
~~~
However, `⎕IO` **must** be a private property of the class, so it can **never** be set or even referenced directly: you cannot specify anywhere an "Access Public" statement for `⎕IO`.

But since we managed to execute these statements successfully (`⎕FX 'code'` and `⎕IO←0`) the question is where they have been executed. Well, in the ghostly namespace which exists together with the class script, sharing the same name.
But since we managed to execute these statements successfully (`⎕FX 'Hello'` and `⎕IO←0`) the question is where they have been executed. Well, in the ghostly namespace which exists together with the class script, sharing the same name.

Even if Fire would show the function `Hello` in the hit list there is another anomaly: executing `Test.⎕ed 'Hello'` doesn't allow you to edit it. That means that Fire does not have the means to allow you editing the code.

Expand Down Expand Up @@ -193,12 +193,11 @@ By the way, if for any reason you want to know whether there is code somewhere i

Note that code that exists in a ghostly namespace associated with an external object (Like an Excel workbook) is not reported; Fire cares about APL objects only.


## Deleting stuff

The "Replace" dialog has a check box "Delete lines/items with hits". That seems to be easy enough: any lines that carry the search string are going to be deleted. However, there are details you need to be aware of:

1. The first and the last line of any script is never deleted, no matter whether they carry a hit or not.
1. The first and the last line of any script is never deleted, no matter whether they carry a hit or not. It should be obvious why that is.

1. The first line of any function or operator is never deleted, no matter whether they carry a hit or not. However, be aware of 6.

Expand All @@ -221,7 +220,7 @@ Avoiding `⎕DQ` works well in many circumstances but it might cause problems wh

### Editing

When you edit one or more APL objects from Fire you can double-click another APL object in an Edit window successfully. You can also go to the session and add another Edit window to those which are already open. However, you are advised to use this feature with care.
When you edit one or more APL objects from Fire you can double-click another APL object in an Edit window successfully. You can also go to the session and add another Edit window to those which are already open. However, you are advised to use this with care.


### Report hits
Expand Down
12 changes: 6 additions & 6 deletions Docs/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Release Notes
[parm]:saveHTML = 0

## 7.2.0
# Release Notes 7.2

This release introduces the new option "Ignore references".
This release changes the way Fire processes references pointing to namespaces.

The reason for introducing this feature is that when you search for, say, `Foo` in a namespace `#.Goo` and there is a reference in `#.Goo` that points to a namespace `#.MyUtils` which contains a function `Foo` then this function would be reported as a hit although it lives in `#.MyUtils` rather than `#.Goo`.
Before 7.2 when the search was restricted to a particular namespace then if that namespace contained references pointing elsewhere they would be listed.

Strictly speaking this is correct, but it is also unlikely to be the expected result. After all you've restricted the search for stuff within the namespace `#.Goo`!
That is almost never what you want to happen: the purpose to restrict the search to a particular namespace is to ignore stuff that lives elsewhere. From now on that's what Fire does.

With the new feature you can tell Fire to ignore such references. Because by default the check box is ticked the result is now most likely to be what you expect to see.
Note that this does not affect the result of the search list when you do **not** restrict the search to a particular namespace. So Fire's behaviour does not change when "Start looking here:" contains either a `#` or `⎕SE`.
3 changes: 2 additions & 1 deletion Docs/UsefulRegExes.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[parm]:toc = 2
[parm]:toc = 2
[parm]:saveHTML = 0

# Useful regular expressions

Expand Down
Binary file modified Fire.dws
Binary file not shown.
2 changes: 1 addition & 1 deletion Fire.iss
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; This script is best executed by Fire's "Make" utility.

#define MyAppVersion "7.2.0.99"
#define MyAppVersion "7.2.0.101"
#define MyAppName "Fire"
#define MyAppExeName "Fire.dws"
#define MyAppPublisher "APL Team Ltd"
Expand Down
2 changes: 1 addition & 1 deletion publish.config
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<tool name="Fire"> <version>7.1.4</version> <date>2019-06-12</date> <main>Fire</main> <container>#._Fire</container> <files> <file>Fire_UC.dyalog</file> <file>ReadMe.html</file> <file>HowToInstall.html</file> <file>UsefulRegExes.html</file> </files> <ignoreForNow> <file>conga30ssl32.dll</file> <file>conga30_32.dll</file> <file>conga30ssl64.dll</file> <file>conga30_64.dll</file> </ignoreForNow> <needs> <script>APLTreeUtils</script> <script>FilesAndDirs</script> <script>OS</script> <script>WinReg</script> <script development="true">Tester</script> <script>GitHubAPIv3</script> </needs> <ignoreForNow> <ws copy="Rumba">Rumba</ws> </ignoreForNow> <scriptOnly>0</scriptOnly> <wsid>Fire</wsid> <autoload>1</autoload> <buildid>99</buildid></tool>
<tool name="Fire"> <version>7.2.0</version> <date>2019-07-10</date> <main>Fire</main> <container>#._Fire</container> <files> <file>Fire_UC.dyalog</file> <file>ReadMe.html</file> <file>HowToInstall.html</file> <file>UsefulRegExes.html</file> </files> <ignoreForNow> <file>conga30ssl32.dll</file> <file>conga30_32.dll</file> <file>conga30ssl64.dll</file> <file>conga30_64.dll</file> </ignoreForNow> <needs> <script>APLTreeUtils</script> <script>FilesAndDirs</script> <script>OS</script> <script>WinReg</script> <script development="true">Tester</script> <script>GitHubAPIv3</script> </needs> <ignoreForNow> <ws copy="Rumba">Rumba</ws> </ignoreForNow> <scriptOnly>0</scriptOnly> <wsid>Fire</wsid> <autoload>1</autoload> <buildid>101</buildid></tool>
Expand Down

0 comments on commit 3a32d2a

Please sign in to comment.