Google
 

Trailing-Edge - PDP-10 Archives - mit_emacs_170_teco_1220 - emacs/cache.elib
There are no other files named cache.elib in the archive.
PW[0 +8+fq(+4)[1
0fo10f"g+q1'
+fq()+4u1
fq1"l 0'
,q1:m(q1+4(]1]0))-VV`Zk4x=%
-qDQQ-9kvJoT&%Z-$):#;H%X$Dk$m}"x%""($Y6F#VW$
f#pt"Y"9%.#'#
*%B6m@MG'& Cache Autoload& Cache Macro Get& Cache Modeline Hacker& Cache Real-Time Interrupt& Cache Set Mode Line Hook& Enable or Disable Cache& Hit Ratio& Kill CACHE Library& Maybe Sweep Cache& Setup CACHE Library& Verbose Cache Macro GetCache Kill LibrariesCache Load LibraryDisable CacheEnable CacheList CachePurge CacheSweep CacheWhat Hit Ratio~DIRECTORY~~DOC~ & Cache Autoload~DOC~ & Cache Macro Get!~DOC~ & Cache Modeline Hacker%~DOC~ & Cache Real-Time Interrupt$~DOC~ & Cache Set Mode Line Hook#~DOC~ & Enable or Disable Cache~DOC~ & Hit Ratio~DOC~ & Kill CACHE Library~DOC~ & Maybe Sweep Cache~DOC~ & Setup CACHE Library#~DOC~ & Verbose Cache Macro Get~DOC~ Cache Kill Libraries~DOC~ Cache Load Library~DOC~ Disable Cache~DOC~ Enable Cache~DOC~ List Cache~DOC~ Purge Cache~DOC~ Sweep Cache~DOC~ What Hit Ratio~DOC~ ~FILENAME~~FILENAME~
~INVERT~	CACHE0fo..qCACHE Loaded-11674316237"n
1m.CCache Enabled* Non-zero enables caching;  Zero disables
0m.CCache Verbose Mode* Echo-area typage control -- zero=none, pos=some, neg=lots
300m.CCache Sweep Interval* Seconds between auto-sweeps of the cache
0m.CCache Normalized IntervalJust $Cache Sweep Interval$ in terms of fsUpTime$
0m.CCache Show Hit Ratio* Non-zero puts hit ratio in mode line
0m.CCache Cumulative HitsDecaying total of hits
0m.CCache Cumulative MissesDecaying total of misses
0m.CCache Next Sweep TimeIn terms of fsUpTime
11674316237m.vCACHE Loaded'
[0[1
4*5fsQVector u.Z
3 u:.Z(0)
:i* u:.Z(1)
0 u:.Z(2)
0 u:.Z(3)
0 uCache Cumulative Hits
0 uCache Cumulative Misses
:@i*|!* Non-zero enables caching;  Zero disables!
:m(m.m& Enable or Disable Cache)
| u:..q(:fo..qCache Enabled+2)
:@i*|!* Seconds between auto-sweeps of the cache!
fsMachine"E
30'"# 1000'*()uCache Normalized Interval
| u:..q(:fo..qCache Sweep Interval+2)
:@i*|!* Echo-area typage control -- zero=none, pos=some, neg=lots!
"L m.m& Verbose Cache Macro Get u.M'
"# m.m& Cache Macro Get u.M'
q.M m.vMM & Macro Getw
| u:..q(:fo..qCache Verbose Mode+2)
:@i*|!* Non-zero puts hit ratio in mode line!
:m(m.m& Cache Modeline Hacker)
| u:..q(:fo..qCache Show Hit Ratio+2)
m.mLoad Library m.vMM Pre-Cache Load Libraryw
m.mCache Load Library m.vMM Load Libraryw
q.A m.vMM & Pre-Cache Autoloadw
m.m& Cache Autoload m.vMM & Autoload u.A
m.mKill Libraries m.vMM Pre-Cache Kill Librariesw
m.mCache Kill Libraries m.vMM Kill Librariesw
q.M m.vPre-Cache q.Mw
qCache Verbose Mode"L
m.m& Verbose Cache Macro Get'"# m.m& Cache Macro Get'(
)m.vMM & Macro Get u.M
qCache Enabledm(m.m& Enable or Disable Cache)
qCache Show Hit Ratiom(m.m& Cache Modeline Hacker)
qCache Sweep IntervaluCache Sweep Interval
0fo..qCACHE Setup Hookf"N u0 m0 '
fsClkMacrof"Ew :i*' m.vMM & Pre-Cache Clock Macrow
m.m& Cache Real-Time Interrupt fsClkMacrow
fsClkInterval"E 4*3600fsClkIntervalw '
0T[1
m.mKill Variable
0[Cache Show Hit Ratio
0[Cache Enabled
0fo..qCACHE Kill Hookf"N [0 m0 '"#w
m.m& Pre-Cache Clock MacrofsClkMacrow
mKMM & Pre-Cache Clock Macro '
qPre-Cache q.M m.vMM & Macro Get u.M
mKPre-Cache q.Mw
qMM Pre-Cache Kill Libraries m.vMM Kill Librariesw
mKMM Pre-Cache Kill Librariesw
qMM & Pre-Cache Autoload m.vMM & Autoload u.A
mKMM & Pre-Cache Autoloadw
qMM Pre-Cache Load Library m.vMM Load Libraryw
mKMM Pre-Cache Load Libraryw
:i:..q(:fo..qCache Enabled+2)* Non-zero enables caching;  Zero disables
 :i:..q(:fo..qCache Sweep Interval+2)* Seconds between auto-sweeps of the cache
 :i:..q(:fo..qCache Verbose Mode+2)* Echo-area typage control -- zero=none, pos=some, neg=lots
 :i:..q(:fo..qCache Show Hit Ratio+2)* Non-zero puts hit ratio in mode line
 q.ZfsBKill 0u.Z
0-1uCache Enabled
00uCache Enabled
0mf"Nw 3'u:.Z(0)
fsModeChange"E qCache Show Hit Ratio"N 1fsModeChangew ''
"N 1,':m(m.mPurge Cache)6q:.Z(0)"E 0'
[0[1
qCache Verbose Mode"N
fq.Z-20/15:\u1
!<! @ft[Sweep 1-> '
q.Z[..O
30:j"Ezj'
< .-z;
.fsWord"E -10c 15d 10:c;'
"# 0,.fsWordw 15:c;' >
fsUpTime+qCache Normalized IntervaluCache Next Sweep Time
20.f?
qCache Verbose Mode"N
fq.Z-20/15:\u1
@ft1] 0fsEchoActivew'
0V[1
qCache Verbose Mode"N
fq.Z-20/15:\u1
!<! @ft[Purge 1-> '
q.Z[..O
20,zk
fsUpTime+qCache Normalized IntervaluCache Next Sweep Time
"E 1f?'
qCache Verbose Mode"N
@ft0] 0fsEchoActivew '
%:I*[0
"E 0FO..QMM 0F"N 'w
q:.Z(0)"N @:fo.Z0F"G u0
q:.Z(%0)( %:.Z(%0)w%:.Z(2)w )'w''
fs:EJPage*12000.+400000000000.[1
"N U1'
Q0,Q1M(Q1+4)U1
"E Q1"N
q:.Z(0)"N
<0:g0-32:@;1,fq0:g0u0>
q.Z[..O
:@fo.Z0,0*5j
1f[NoQuit
.(15,0i)j
q0,.fsWordw 5c
q1,.fsWordw 5c
1,.fsWordw
%:.Z(3)w'
q1''
"#
Q1"L +FQ()+4-Q1"L 0U1''
Q1F"L ''
"N 0'
:I*0  Undefined or ambiguous macro nameFSERRR:I*[0
"E 0FO..QMM 0F"N '
q:.Z(0)"N @:fo.Z0F"G u0
@ft. 0fsEchoActivew
q:.Z(%0)( %:.Z(%0)w%:.Z(2)w )'w''
fs:EJPage*12000.+400000000000.[1
"N U1'
Q0,Q1M(Q1+4)U1
"E Q1"N
q:.Z(0)"N
<0:g0-32:@;1,fq0:g0u0>
q.Z[..O
:@fo.Z0,0*5j
1f[NoQuit
.(15,0i)j
q0,.fsWordw 5c
q1,.fsWordw 5c
1,.fsWordw
@ft+ 0fsEchoActivew
%:.Z(3)w'
q1''
"#
Q1"L +FQ()+4-Q1"L 0U1''
Q1F"L ''
"N 0'
:I*0  Undefined or ambiguous macro nameFSERRGq:.Z(0)"N
1,m(m.mPurge Cache)w'
f:m(m.mPre-Cache Load Library)90[Cache Enabled
f:m(m.mPre-Cache Kill Libraries)NfsQPPtr( :i*( :i*[2 )[1 )[0 :i*[3
q:.Z(0)"N
1,m(m.m& Get Library Pointer)1"E
@:i3\@fn|1,m(m.mPurge Cache)|\''
@:i3|3 fm(m.m& Pre-Cache Autoload)12:|
f:m(q3(q0fsQPUnwindw))h[1
q:.Z(0)"N
5*3600/(fsClkInterval) u1
q1-2:"G 2u1'
qCache Cumulative Hits*(q1-1)+q:.Z(2)+(q1/2)/q1(
) uCache Cumulative Hits 0u:.Z(2)
qCache Cumulative Misses*(q1-1)+q:.Z(3)+(q1/2)/q1(
) uCache Cumulative Misses 0u:.Z(3)
fsModeChangeqCache Show Hit Ratio fsModeChangew
m(m.m& Maybe Sweep Cache)w'
f:m(m.m& Pre-Cache Clock Macro)Mq:.Z(0)"N
fsUpTime-qCache Next Sweep Time"G
:m(m.mSweep Cache)''
:( 1:< q:.Z(0)"N i H/R= m(m.m& Hit Ratio)\ i% ' >w )+[1
f[BBind gSet Mode Line Hook bj
m.m& Cache Set Mode Line Hook u1
"N
:s1"N '
zj g1 '
"#
:s1"E '
fkd '
hxSet Mode Line Hook
1fsModeChangew
q:.Z(0)"E -1'
[0[1[2
q:.Z(2)+qCache Cumulative Hitsu1
q:.Z(3)+qCache Cumulative Missesu2
q1+q2f"Ew 1'u0
q1*100/q0"q:.Z(0)"E ft[Cache is disabled]
 0 '
[0[1[2[3[f
m.m& Maybe Flush Output uf
fq.Z-20/15 u2
q.Z[..O fsZ+fsGapLen+39u1 ]..O
q2:\u3 ftCache contains 3 entries, 
4u3 q2< fq:.Z(q3)+4+q1u1 q3+3u3 >
q1+4/5:\u3 ftoccupying 3 words (including the gap).

q1+(q2/2)/q2+4/5:\u3 ft(Approx 3 words per entry)

Hits	Contents

4u3 q2< 3,q:.Z(q3+2):\u0 q:.Z(q3)u1 ft0	1
 q3+3u3 mfw0; >
ftDone.

 0$[1
m(m.m& Hit Ratio)u1
q1"L @ft
[Cache is disabled] '
"# q1:\u1 @ft
Hit Ratio = 1% '
qCache Show Hit Ratio"N
1fsModeChangew '
0fsEchoActivew
0KHack to improve speed of M.M-lookups.
Bugs/features to JPERSHING@BBNA.S (Describe this for library information.)

This library maintains a cache of pointers to functions in libraries,
to avoid redundant (and expensive) searches.  The cache lives in
q-register .Z as a binary-searched table.  To avoid creating thousands
of entries, the cache is swept regularly from the clock interrupt.

This library should be loaded AFTER any personal setup has been
completed, to make sure that the personal setup doesn't smash anything
required by this library.  Note that this library only destroys
q-register .M (& Macro Get), although it intercepts calls to other
functions in a benign way.  Also, we snarf q-register .Z for the cache
itself.  The cache is enabled by default when the library is loaded,
although this is controlled by the zeroishness of Cache Enabled.

Various options may be hacked with M-X Alter OptionsCache.
This object file was compressed on 7:34pm  Tuesday, 21 October 1980
by JPERSHING on BBNA from the following source libraries:

   PS:<JPERSHING>CACHE.IVORY.105,	10/21/80 19:34:17/S Try to separate our tentacles from EMACS.?C Defunct: Cache is controlled by variable Cache Enabled.?C Defunct: Cache is controlled by variable Cache Enabled.#S VarMacro for Cache Enabled.:C Eliminate entries which have not been used recently.)C Eliminate all entries in the cache.5S M.M: returns macro for given name (string arg).5S M.M: returns macro for given name (string arg).7C Purge cache, then call MM Pre-Cache Load Library;C Disable cache, then call MM Pre-Cache Kill Libraries6S Call MM & Pre-Cache Autoload, then purge cache.)S Maybe sweep cache some of the time.)S Sweep cache if it has been a while.(S See option Cache Show Hit Ratio.'S Add or remove our mode line hook.2S Returns current hit-ratio (as a percentage).)C Print sizeof and contents of cache.0C Type current cache hit-ratio in echo area.}& Setup CACHE Library
& Kill CACHE Library
Enable Cache
Disable Cache
& Enable or Disable Cache
Sweep Cache
Purge Cache
& Cache Macro Get
& Verbose Cache Macro Get
Cache Load Library
Cache Kill Libraries
& Cache Autoload
& Cache Real-Time Interrupt
& Maybe Sweep Cache
& Cache Set Mode Line Hook
& Cache Modeline Hacker
& Hit Ratio
List Cache
What Hit Ratio
\+8+fq(+4)[2 0[3
< %3,-q2f2u3 q3&1@; q3"l 0' >
f[BBind q3-1*5,q3*5g2 q:..o(0)+q2