echo T.recache: test re cache in b.c # thanks to ross ridge for this horror awk=${awk-../a.out} echo b >foo1 $awk ' BEGIN { # # Fill up DFA cache with run-time REs that have all been # used twice. # CACHE_SIZE=64 for(i = 0; i < CACHE_SIZE; i++) { for(j = 0; j < 2; j++) { "" ~ i ""; } } # # Now evalutate an expression that uses two run-time REs # that have never been used before. The second RE will # push the first out of the cache while the first RE is # still needed. # x = "a" reg1 = "[Aa]" reg2 = "A" sub(reg1, x ~ reg2 ? "B" : "b", x) print x } ' >foo2 diff foo1 foo2 || echo 'BAD: T.recache' |