summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/mult-fst.mkiv
blob: 11558b557c67005f43e0d9f42f0e0643f68e95d3 (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
%D \module
%D   [       file=mult-fst,
%D        version=2006.08.16,
%D          title=\CONTEXT\ Multilingual Macros,
%D       subtitle=Speed Up,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

% And so, after a few years of keeping this potentially dangerous
% speedup in cont-exp, we now move it to the kernel: the next
% patch is 30\% faster on main interface (seconds) (9->7 sec on
% 1 million calls). Another speed up is still under testing.

\unprotect

\startinterface english

    \def\dosetvalue   #1#2{\@EA\def \csname#1#2\endcsname}
    \def\dosetevalue  #1#2{\@EA\edef\csname#1#2\endcsname}
    \def\dosetgvalue  #1#2{\@EA\gdef\csname#1#2\endcsname}
    \def\dosetxvalue  #1#2{\@EA\gdef\csname#1#2\endcsname}
    \def\docopyvalue#1#2#3{\@EA\def \csname#1#3\@EA\endcsname\@EA{\csname#2#3\endcsname}}

    \def\setinterfaceconstant#1#2%
      {\ctxlua{interfaces.setconstant("#1","#2")}%
       \setvalue{\c!prefix!#1}{#1}}

    \def\setinterfacevariable#1#2%
      {\ctxlua{interfaces.setvariable("#1","#2")}%
       \setvalue{\v!prefix!#1}{#2}}

    \def\interfaced#1{#1}

\stopinterface

\protect \endinput