summaryrefslogtreecommitdiff
path: root/doc/context/sources/general/manuals/onandon/onandon-speed-000.tex
blob: f48af866d76dc03e002356ad872b27866ba8fda7 (plain)
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
% \startenvironment onandon-speed-000

% \dontcomplain

\edef\sapolsky{\ignorespaces\cldloadfile{sapolsky}\removeunwantedspaces}

\startluacode

    function document.ResetSample(title)
        document.elapsed = {
            title = title,
            times = { },
        }
    end

    function document.RegisterSample(bodyfont,elapsed)
        table.insert(document.elapsed.times, {
            bodyfont = bodyfont,
            elapsed  = elapsed
        })
    end

    function document.SaveSample()
        if LUATEXENGINE == "luajittex" then
            table.save(tex.jobname.."-jit.lua",document.elapsed)
        else
            table.save(tex.jobname..".lua",document.elapsed)
        end
    end

    function document.ShowSample(filename)
     -- context.typefile(filename..".tex")
        local elapsed    = table.load(file.nameonly(filename)..".lua")
        local elapsedjit = table.load(file.nameonly(filename).."-jit.lua")
        if elapsed and elapsedjit then
            context.testpage { 6 }
            context.starttabulate { "|l|l|lp|" }
            context.HL()
            context.NC() context.formatted.rlap("\\bf %s",elapsed.title)
            context.NC()
            context.NC()
            context.NC() context.NR()
            context.HL()
            local times    = elapsed.times
            local timesjit = elapsedjit.times
            for j=1,#times do
                local t    = times[j]
                local tjit = timesjit[j]
                context.NC() context(t.bodyfont)
                context.NC() context(t.elapsed)
                context.NC() context(tjit.elapsed)
                context.NC() context.NR()
            end
            context.HL()
            context.stoptabulate()
        end
    end

    function document.SampleTitle(filename)
        local elapsed = table.load(filename..".lua")
        if elapsed then
            context(elapsed.title)
        end
    end
\stopluacode

\appendtoks
    \ctxlua{document.SaveSample()}%
\to \everystoptext

\def\SampleCount{1000}
\def\SampleCount{100}

\unexpanded\def\RegisterSample#1%
  {\ctxlua{document.RegisterSample("#1","\elapsedtime")}}

\unexpanded\def\ProcessSample#1%
  {\page
   \ctxlua{document.ResetSample("#1")}%
   \resettimer \Sample {modern}      \RegisterSample {modern}
   \resettimer \Sample {pagella}     \RegisterSample {pagella}
   \resettimer \Sample {termes}      \RegisterSample {termes}
   \resettimer \Sample {cambria}     \RegisterSample {cambria}
   \resettimer \Sample {dejavu}      \RegisterSample {dejavu}
   \resettimer \Sample {ebgaramond}  \RegisterSample {ebgaramond}
   \resettimer \Sample {lucidaot}    \RegisterSample {lucidaot}
   \page }

\unexpanded\def\ProcessBaselineSample#1%
  {\page
   \ctxlua{document.ResetSample("#1")}%
   \resettimer \Sample {baseline} \RegisterSample {baseline}
   \page }

\unexpanded\def\Sample#1%
  {\setupbodyfont[#1]}

\unexpanded\def\ShowSample#1%
  {\ctxlua{document.ShowSample("#1")}}

\unexpanded\def\SampleTitle#1%
  {\ctxlua{document.SampleTitle("#1.lua")}}

\continueifinputfile{onandon-speed-000.tex}

\starttext

\ProcessSample{bodyfont}

\setbox\scratchbox\vbox{\hsize1pt\tttf\sapolsky} \getnoflines{\htdp\scratchbox}

\writestatus{!!!!!!}{noflines : \the\noflines}

\stoptext

% \stopenvironment