diff options
Diffstat (limited to 'tex/context/base/mult-fst.tex')
-rw-r--r-- | tex/context/base/mult-fst.tex | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tex/context/base/mult-fst.tex b/tex/context/base/mult-fst.tex new file mode 100644 index 000000000..c237f5743 --- /dev/null +++ b/tex/context/base/mult-fst.tex @@ -0,0 +1,53 @@ +%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}} + + \ifx\ctxlua\undefined + + \def\setinterfaceconstant#1#2% + {\setvalue{\c!prefix!#1}{#1}} + + \def\setinterfacevariable#1#2% + {\setvalue{\v!prefix!#1}{#2}} + + \else + + \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}} + + \fi + + \def\interfaced#1{#1} + +\stopinterface + +\protect \endinput |