This file is indexed.

/usr/share/gnu-smalltalk/unsupported/Profile.st is in gnu-smalltalk-common 3.2.4-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Bag subclass: #IdentityBag
       instanceVariableNames: ''
       classVariableNames: ''
       poolDictionaries: ''
       category: ''

!IdentityBag methodsFor: 'private'!

dictionaryClass
    ^IdentityDictionary! !


!BlockClosure methodsFor: 'profiling'!

profile
    | s profProcess workProcess results |
    s := Semaphore new.
    results := IdentityBag new.
    workProcess := self newProcess.
    profProcess := [
	workProcess resume.
        [
	    (Delay forMilliseconds: 5) wait.
	    workProcess isTerminated
	] whileFalse: [
	    results add: workProcess suspendedContext method.
	].
	s signal
    ] forkAt: Processor highIOPriority.
    s wait.
    ^results sortedByCount
! !

[
    | n c hash |

    n := 20000.

    hash := LookupTable new: n * 2.
    1 to: n do: [ :each |
        hash at: (each printString: 16) put: 1
    ].

    c := 0.
    n to: 1 by: -1 do: [ :each |
	(hash includesKey: each printString) ifTrue: [ c := c + 1]
    ].
] profile do: [ :each | each printNl ]!