instrumentation; pool initialization
authorClaus Gittinger <cg@exept.de>
Thu, 31 May 2012 11:08:39 +0200
changeset 11528 b88d072a2d8b
parent 11527 e36173071529
child 11529 3d943384d373
instrumentation; pool initialization
Tools__NewSystemBrowser.st
--- a/Tools__NewSystemBrowser.st	Tue May 29 11:22:48 2012 +0200
+++ b/Tools__NewSystemBrowser.st	Thu May 31 11:08:39 2012 +0200
@@ -6232,82 +6232,9 @@
 !
 
 categoryMenu
-    "This resource specification was automatically generated
-     by the MenuEditor of ST/X."
-
-    "Do not manually edit this!! If it is corrupted,
-     the MenuEditor may not be able to read the specification."
-
-    "
-     MenuEditor new openOnClass:Tools::NewSystemBrowser andSelector:#categoryMenu
-     (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenu)) startUp
-    "
-
-    <resource: #menu>
-
-    ^ 
-     #(Menu
-        (
-         (MenuItem
-            label: 'FileOutAndRepositorySlice'
-            translateLabel: true
-            submenuChannel: categoryMenuFileOutAndRepositorySlice
-            isMenuSlice: true
-          )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            label: 'DocumentationSlice'
-            translateLabel: true
-            submenuChannel: categoryMenuDocumentationSlice
-            isMenuSlice: true
-          )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            label: 'SpawnSlice'
-            translateLabel: true
-            submenuChannel: categoryMenuSpawnSlice
-            isMenuSlice: true
-          )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            label: 'NewAndRenameSlice'
-            nameKey: NewAndRenameSlice
-            translateLabel: true
-            submenuChannel: categoryMenuNewAndRenameSlice
-            isMenuSlice: true
-          )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            label: 'Static Analysis (Lint)'
-            translateLabel: true
-            submenuChannel: categoryCheckMenu
-            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
-          )
-         (MenuItem
-            label: 'Special'
-            translateLabel: true
-            submenuChannel: categorySpecialMenu
-          )
-         (MenuItem
-            label: '-'
-          )
-         (MenuItem
-            label: 'Update'
-            itemValue: categoryMenuUpdate
-            translateLabel: true
-          )
-         )
-        nil
-        nil
-      )
+    ^ self categoryMenuWithoutFind
+
+    "Modified: / 31-05-2012 / 09:19:08 / cg"
 !
 
 categoryMenuDocumentationSlice
@@ -6629,6 +6556,24 @@
             translateLabel: true
             submenuChannel: categoryCheckMenu
           )
+        (MenuItem
+            label: 'Debug'
+            translateLabel: true
+            submenu: 
+           (Menu
+              (
+         (MenuItem
+            enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Classes with Instrumentation'
+            itemValue: categoryMenuRecompileInstrumented
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+               )
+              nil
+              nil
+            )
+          )
          (MenuItem
             label: 'Special'
             translateLabel: true
@@ -6646,6 +6591,108 @@
         nil
         nil
       )
+
+    "Modified: / 31-05-2012 / 09:20:05 / cg"
+!
+
+categoryMenuWithoutFind
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+
+    "
+     MenuEditor new openOnClass:Tools::NewSystemBrowser andSelector:#categoryMenu
+     (Menu new fromLiteralArrayEncoding:(Tools::NewSystemBrowser categoryMenu)) startUp
+    "
+
+    <resource: #menu>
+
+    ^ 
+     #(Menu
+        (
+         (MenuItem
+            label: 'FileOutAndRepositorySlice'
+            translateLabel: true
+            submenuChannel: categoryMenuFileOutAndRepositorySlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'DocumentationSlice'
+            translateLabel: true
+            submenuChannel: categoryMenuDocumentationSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'SpawnSlice'
+            translateLabel: true
+            submenuChannel: categoryMenuSpawnSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'NewAndRenameSlice'
+            nameKey: NewAndRenameSlice
+            translateLabel: true
+            submenuChannel: categoryMenuNewAndRenameSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Static Analysis (Lint)'
+            translateLabel: true
+            submenuChannel: categoryCheckMenu
+            labelImage: (ResourceRetriever ToolbarIconLibrary lint16x16Icon 'Static Analysis (Lint)')
+          )
+         (MenuItem
+            label: 'Debug'
+            translateLabel: true
+            submenu: 
+           (Menu
+              (
+         (MenuItem
+            enabled: hasCategorySelectedAndInstrumentingCompilerExistsHolder
+            label: 'Recompile all Classes with Instrumentation'
+            itemValue: categoryMenuRecompileInstrumented
+            translateLabel: true
+            showBusyCursorWhilePerforming: true
+          )
+               )
+              nil
+              nil
+            )
+          )
+         (MenuItem
+            label: 'Special'
+            translateLabel: true
+            submenuChannel: categorySpecialMenu
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: categoryMenuUpdate
+            translateLabel: true
+          )
+         )
+        nil
+        nil
+      )
+
+    "Created: / 31-05-2012 / 09:18:50 / cg"
 !
 
 categorySpecialMenu
@@ -9381,13 +9428,13 @@
             translateLabel: true
           )
          (MenuItem
-            label: 'Enable Coverage Recording in all Processes'
+            label: 'Enable Global Coverage Recording (in all Processes)'
             itemValue: debugMenuEnableGlobalCoverageRecording
             translateLabel: true
             isVisible: globalCoverageRecordingIsDisabled
           )
          (MenuItem
-            label: 'Disable Coverage Recording in all Processes'
+            label: 'Disable Global Coverage Recording (in all Processes)'
             itemValue: debugMenuDisableGlobalCoverageRecording
             translateLabel: true
             isVisible: globalCoverageRecordingIsEnabled
@@ -9397,7 +9444,7 @@
         nil
       )
 
-    "Modified: / 28-02-2012 / 11:31:30 / cg"
+    "Modified: / 31-05-2012 / 10:25:37 / cg"
 !
 
 methodListMenu
@@ -19385,6 +19432,12 @@
     ^ [ self hasCategorySelected and:[self canFileOutXML] ]
 !
 
+hasCategorySelectedAndInstrumentingCompilerExistsHolder
+    ^ [ self hasCategorySelected and:[ self instrumentingCompilerExists] ]
+
+    "Created: / 31-05-2012 / 09:20:44 / cg"
+!
+
 hasCategorySelectedAndSourceCodeManager
     ^ self hasCategorySelected and:[self hasSourceCodeManager]
 
@@ -25071,6 +25124,14 @@
     "Modified: / 25.2.2000 / 00:50:48 / cg"
 !
 
+categoryMenuRecompileInstrumented
+    self selectedCategoryClassesDo:[:eachClass |
+        self recompileClassWithInstrumentation:eachClass
+    ].
+
+    "Created: / 31-05-2012 / 09:15:44 / cg"
+!
+
 categoryMenuRemove
     |box txt answer selectedCategories classes count categories includesBuiltIn
      affectedSubClasses classesToReallyRemove|
@@ -28700,7 +28761,9 @@
     "/ check if the class has a repository container - warn about this if so
     currentClass isPrivate ifFalse:[
         currentClass revision notNil ifTrue:[
-            (self confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold))
+            (Dialog 
+                confirm:(resources string:'Remove the (old) source container for ''%1'' in the repository ?' with:oldSym allBold)
+                initialAnswer:false)
             ifTrue:[
                 SourceCodeManagerUtilities
                         removeSourceContainerForClass:currentClass
@@ -28792,7 +28855,7 @@
         ]
     ].
 
-    "Modified: / 15-08-2010 / 11:54:23 / cg"
+    "Modified: / 30-05-2012 / 09:47:53 / cg"
 !
 
 classMenuRewrite
@@ -29813,13 +29876,19 @@
         ].
 
     self showCoverageInformation value ifFalse:[
-        (Dialog confirm:'Turn on coverage display now ?') ifTrue:[
+        true "(Dialog confirm:(resources string:'Turn on coverage display now ?'))" ifTrue:[
             self showCoverageInformation value:true
         ].
     ].
+    self globalCoverageRecordingIsEnabled value ifFalse:[
+        (Dialog confirm:(resources stringWithCRs:'Coverage recording can be done either during a single test-run, or globally for every process.\Currently, global recording is disabled, which means that recording will only be done during a special recording test-run (in the Testrunner tool).\\Do you want to enable global coverage recording now?'))
+        ifTrue:[
+            self debugMenuEnableGlobalCoverageRecording
+        ].
+    ].
 
     "Created: / 10-08-2010 / 14:36:45 / cg"
-    "Modified: / 30-09-2011 / 12:46:34 / cg"
+    "Modified: / 31-05-2012 / 10:36:42 / cg"
 !
 
 recompileMethodWithInstrumentation:aMethod
@@ -44439,11 +44508,26 @@
     "show an enterbox for instVar/classVar to search for.
      Then open a new browser or add a buffer showing methods referring/modifying to that var"
 
-    |box b varNames varNameList openHow classes|
+    |box b allNames varNames varNameList openHow classes copyOfClasses |
 
     openHow := #newBuffer.
 
-    box := self enterBoxForVariableSearch:boxTitle.
+    allNames := Set new.
+    self selectedClasses value do:[:eachClass |
+        (varType == #classVarNames or:[ varType == #poolVarNames ]) ifTrue:[
+            allNames addAll:(eachClass allClassVarNames).
+        ] ifFalse:[
+            (varType == #instVarNames) ifTrue:[
+                allNames addAll:(eachClass allInstVarNames).
+            ] ifFalse:[
+                self halt
+            ]
+        ].
+    ].
+    allNames := allNames asOrderedCollection sort.
+    allNames isEmpty ifTrue:[ allNames := nil ].
+
+    box := self enterBoxForVariableSearch:boxTitle list:allNames.
     box action:[:enteredString | varNames := enteredString].
 
     b := Button label:(resources string:'Browser').
@@ -44466,11 +44550,24 @@
 
     classes := self classesToSearchForVariable.
 
+    varType == #poolVarNames ifTrue:[
+        "/ also check classes which refer to that pool
+        copyOfClasses := IdentitySet withAll:classes.
+        Smalltalk allClassesDo:[:someOtherClass |
+            (someOtherClass sharedPools includesAny:copyOfClasses) ifTrue:[
+self halt.
+                classes add:someOtherClass.
+            ]
+        ].
+    ].
+
     self
         browseVarRefsToAny:varNameList
         classes:classes
         variables:varType access:accessType all:browseAll
         title:browserTitle in:openHow
+
+    "Modified: / 29-05-2012 / 12:18:40 / cg"
 !
 
 browseVarRefsToAny:varNameList classes:classesIn variables:varType access:accessType all:browseAll title:browserTitle in:openHow
@@ -44745,12 +44842,14 @@
 
 variablesMenuBrowseAllClassVarMods
     "show an enterbox for classVar to search for.
-     Then open a new browser or add a buffer showing all methods modifying to that var"
+     Then open a new browser or add a buffer showing all methods modifying that var"
 
     self
         browseVarRefsOrModsWithTitle:'All writers of class variable %1'
         boxTitle:'Class variable to browse all writers:'
         variables:#classVarNames access:#write all:true
+
+    "Modified (comment): / 29-05-2012 / 12:13:48 / cg"
 !
 
 variablesMenuBrowseAllClassVarReads
@@ -44775,12 +44874,14 @@
 
 variablesMenuBrowseAllInstVarMods
     "show an enterbox for instVar to search for.
-     Then open a new browser or add a buffer showing all methods modifying to that var"
+     Then open a new browser or add a buffer showing all methods modifying that var"
 
     self
         browseVarRefsOrModsWithTitle:'All writers of instance variable %1'
         boxTitle:'Instance variable to browse all writers:'
         variables:#instVarNames access:#write all:true
+
+    "Modified (comment): / 29-05-2012 / 12:13:52 / cg"
 !
 
 variablesMenuBrowseAllInstVarOrClassInstVarMods
@@ -44838,12 +44939,14 @@
 
 variablesMenuBrowseClassInstVarMods
     "show an enterbox for classInstVar to search for.
-     Then open a new browser or add a buffer showing methods modifying to that var"
+     Then open a new browser or add a buffer showing methods modifying that var"
 
     self
         browseVarRefsOrModsWithTitle:'writers of class-instance variable %1'
         boxTitle:'class-instance variable to browse writers:'
         variables:#classInstVarNames access:#write all:false
+
+    "Modified (comment): / 29-05-2012 / 12:13:56 / cg"
 !
 
 variablesMenuBrowseClassInstVarReads
@@ -44868,12 +44971,14 @@
 
 variablesMenuBrowseClassVarMods
     "show an enterbox for classVar to search for.
-     Then open a new browser or add a buffer showing methods modifying to that var"
+     Then open a new browser or add a buffer showing methods modifying that var"
 
     self
         browseVarRefsOrModsWithTitle:'writers of class variable %1'
         boxTitle:'class variable to browse writers:'
         variables:#classVarNames access:#write all:false
+
+    "Modified (comment): / 29-05-2012 / 12:14:01 / cg"
 !
 
 variablesMenuBrowseClassVarReads
@@ -44898,12 +45003,14 @@
 
 variablesMenuBrowseInstVarMods
     "show an enterbox for instVar to search for.
-     Then open a new browser or add a buffer showing methods modifying to that var"
+     Then open a new browser or add a buffer showing methods modifying that var"
 
     self
         browseVarRefsOrModsWithTitle:'writers of instance variable %1'
         boxTitle:'instance variable to browse writers:'
         variables:#instVarNames access:#write all:false
+
+    "Modified (comment): / 29-05-2012 / 12:14:05 / cg"
 !
 
 variablesMenuBrowseInstVarReads
@@ -44926,6 +45033,42 @@
         variables:#instVarNames access:#readOrWrite all:false
 !
 
+variablesMenuBrowsePoolVarMods
+    "show an enterbox for poolVar to search for.
+     Then open a new browser or add a buffer showing methods modifying that var"
+
+    self
+        browseVarRefsOrModsWithTitle:'writers of pool variable %1'
+        boxTitle:'pool variable to browse writers:'
+        variables:#poolVarNames access:#write all:false
+
+    "Created: / 29-05-2012 / 12:13:06 / cg"
+!
+
+variablesMenuBrowsePoolVarReads
+    "show an enterbox for poolVar to search for.
+     Then open a new browser or add a buffer showing methods reading that var"
+
+    self
+        browseVarRefsOrModsWithTitle:'readers of pool variable %1'
+        boxTitle:'pool variable to browse readers:'
+        variables:#poolVarNames access:#read all:false
+
+    "Created: / 29-05-2012 / 12:13:34 / cg"
+!
+
+variablesMenuBrowsePoolVarRefs
+    "show an enterbox for poolVar to search for.
+     Then open a new browser or add a buffer showing methods referring to that var"
+
+    self
+        browseVarRefsOrModsWithTitle:'references to pool variable %1'
+        boxTitle:'pool variable to browse references to:'
+        variables:#poolVarNames access:#readOrWrite all:false
+
+    "Created: / 29-05-2012 / 12:14:39 / cg"
+!
+
 variablesMenuCopySelectedName
     "copy selected variable name(s) to clipboard"
 
@@ -50245,9 +50388,15 @@
 !
 
 enterBoxForVariableSearch:title
+    ^ self enterBoxForVariableSearch:title list:nil
+
+    "Modified: / 29-05-2012 / 11:59:35 / cg"
+!
+
+enterBoxForVariableSearch:title list:listOrNil
     |box sel selectedVariables|
 
-    box := self enterBoxForCodeSelectionTitle:title okText:'Add Buffer'.
+    box := self enterBoxForCodeSelectionTitle:title withList:listOrNil okText:'Add Buffer'.
 
     self codeView hasSelection ifTrue:[
         sel := self selectionInCodeView.
@@ -50266,6 +50415,8 @@
     ].
 
     ^ box
+
+    "Created: / 29-05-2012 / 11:59:21 / cg"
 !
 
 enterBoxTitle:title okText:okText label:label
@@ -56571,11 +56722,11 @@
 !NewSystemBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1745 2012-05-29 09:22:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1746 2012-05-31 09:08:39 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1745 2012-05-29 09:22:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.1746 2012-05-31 09:08:39 cg Exp $'
 !
 
 version_SVN