This file is indexed.

/usr/share/gap/lib/reread.g is in gap-libs 4r7p5-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
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#############################################################################
##
#W  reread.g                   GAP Library                       Steve Linton
##
##
#Y  Copyright (C)  1996,  Lehrstuhl D für Mathematik,  RWTH Aachen,  Germany
#Y  (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland
#Y  Copyright (C) 2002 The GAP Group
##
##  This file contains the Reread function and its relatives
##  RereadLib, etc.
##
##  Seems rather little for a file by itself, but I can see no other
##  natural home
##


#############################################################################
##
##  <#GAPDoc Label="Reread">
##
##  <ManSection>
##  <Func Name="Reread" Arg='name-file'/>
##  <Var Name="REREADING"/>
##
##  <Description>
##  In general, it is not possible to read the same &GAP; library file
##  twice, or to read a compiled version after reading a &GAP; version,
##  because crucial global variables are made read-only
##  (see <Ref Sect="More About Global Variables"/>)
##  and filters and methods are added to global tables.
##  <P/>
##  A partial solution to this problem is provided by the function
##  <Ref Func="Reread"/> (and related functions <C>RereadLib</C> etc.).
##  <C>Reread( <A>name-file</A> )</C> sets the global variable
##  <Ref Var="REREADING"/> to <K>true</K>,
##  reads the file named by <A>name-file</A> and then resets
##  <Ref Var="REREADING"/>.
##  Various system functions behave differently when <Ref Var="REREADING"/>
##  is set to <K>true</K>.
##  In particular, assignment to read-only global variables is permitted,
##  calls to <Ref Func="NewRepresentation"/>
##  and <Ref Func="NewInfoClass"/> with parameters identical to those
##  of an existing representation or info class will return the existing
##  object, and methods installed with
##  <Ref Func="InstallMethod"/> may sometimes displace
##  existing methods.
##  <P/>
##  This function may not entirely produce the intended results,
##  especially if what has changed is the super-representation of a
##  representation or the requirements of a method. In these cases, it is
##  necessary to restart &GAP; to read the modified file.
##  <P/>
##  An additional use of <Ref Func="Reread"/> is to load the compiled version
##  of a file for which the &GAP; language version had previously been read
##  (or perhaps was included in a saved workspace).
##  See <Ref Label="Kernel modules"/> and
##  <Ref Sect="Saving and Loading a Workspace"/> for more information.
##  <P/>
##  It is not advisable to use <Ref Func="Reread"/> programmatically.
##  For example, if a file that contains calls to <Ref Func="Reread"/>
##  is read with <Ref Func="Reread"/> then <Ref Var="REREADING"/> may be
##  reset too early.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
BindGlobal("Reread",
        function(arg)
    local res;
    MakeReadWriteGlobal("REREADING");
    REREADING := true;
    MakeReadOnlyGlobal("REREADING");
    if LEN_LIST(arg) > 1 then
        res := CallFuncList( Read, arg );
    else
        CallFuncList( Read, arg );
    fi;
    MakeReadWriteGlobal("REREADING");
    REREADING := false;
    MakeReadOnlyGlobal("REREADING");
    if LEN_LIST(arg) > 1 then
        return res;
    fi;
end);


BindGlobal("RereadAndCheckFunc", 
        function( arg )
    local func;
    func := CallFuncList(ReadAndCheckFunc, arg);
    return function( arg )
        local res;
        MakeReadWriteGlobal("REREADING");
        REREADING := true;
        MakeReadOnlyGlobal("REREADING");
        if LEN_LIST(arg) > 1 then
            res := CallFuncList(func,arg);
        else
            CallFuncList(func,arg);
        fi;
        MakeReadWriteGlobal("REREADING");
        REREADING := false;
        MakeReadOnlyGlobal("REREADING");
        if LEN_LIST(arg) > 1 then
            return res;
        fi;
    end;
end);

#############################################################################
##
#F  RereadLib( <name> ) . . . . . . . . . . . . . . . . . . . . . library files
##
BIND_GLOBAL("RereadLib",RereadAndCheckFunc("lib"));


#############################################################################
##
#F  RereadGrp( <name> ) . . . . . . . . . . . . . . . . . . group library files
##
BIND_GLOBAL("RereadGrp",RereadAndCheckFunc("grp"));


#############################################################################
##
#F  RereadSmall( <name> ) . . . . . . . . . . . . .  small groups library files
##
BIND_GLOBAL("RereadSmall",RereadAndCheckFunc("small"));


#############################################################################
##
#F  RereadPrim( <name> )  . . . . . . . . . primitive perm groups library files
##
BIND_GLOBAL("RereadPrim",RereadAndCheckFunc("prim"));


#############################################################################
##
#F  RereadTrans( <name> ) . . . . . . . .  transitive perm groups library files
##
BIND_GLOBAL("RereadTrans",RereadAndCheckFunc("trans"));
    

#############################################################################
##
#E