filenames.tex /size: 4606 b    last modification: 2020-07-01 14:35
1% language=uk
2
3\usemodule[article-basic]
4\usemodule[abbreviations-logos]
5
6\setupheader[state=high]
7
8\starttext
9
10\starttitle[title=Filenames]
11
12The \CONTEXT\ distribution follows a rather strict organisation. Originally
13all files that implemented macros had names using the pattern:
14
15\starttabulate[|Tw(10em)||]
16\FL
17\NC xxxx-xxx.tex \NC \TEX\ file \NC \NR
18\NC mp-xxxx.mp   \NC \METAPOST\ file \NC \NR
19\LL
20\stoptabulate
21
22You can still find files that conform to these patterns but the organization
23evolved. The \type {tex} suffix is now normally used just for documents.
24
25Styles and modules can have names of any length, and can be recognized by their
26prefix:
27
28\starttabulate[|Tw(10em)||]
29\FL
30\NC s-aaaa.tex   \NC style (rendering related) \NC \NR
31\NC m-aaaaaa.tex \NC module (functionality related) \NC \NR
32\NC x-aaaaa.tex  \NC xml module (functionality related) \NC \NR
33\LL
34\stoptabulate
35
36\CONTEXT\ \MKII, the frozen version for \PDFTEX\ and \XETEX, uses names like:
37
38\starttabulate[|Tw(10em)||]
39\FL
40\NC context.mkii  \NC the main \TEX\ file \NC \NR
41\NC cont-xx.mkii  \NC an interface specific \TEX\ file \NC \NR
42\NC xxxx-xxx.mkii \NC \TEX\ file \NC \NR
43\ML
44\NC mp-xxxx.mpii  \NC \METAPOST\ file \NC \NR
45\NC metafun.mpii  \NC the main \METAFUN\ file \NC \NR
46\LL
47\stoptabulate
48
49\CONTEXT\ \MKIV, the current version, has files with names like:
50
51\starttabulate[|Tw(10em)||]
52\FL
53\NC context.mkiv  \NC the main \TEX\ file \NC \NR
54\NC cont-xx.mkiv  \NC an interface specific \TEX\ file \NC \NR
55\NC xxxx-xxx.mkiv \NC \TEX\ file \NC \NR
56\NC xxxx-xxx.mkvi \NC \TEX\ file with named parameters \NC \NR
57\NC xxxx-xxx.mkix \NC file with \LMX\ template \NC \NR
58\NC xxxx-xxx.mkxi \NC file with \LMX\ template with named parameters \NC \NR
59\NC xxxx-xxx.lua  \NC a file with \LUA\ code \NC \NR
60\NC xxxx-xxx.lfg  \NC so called font goodie \LUA\ files \NC \NR
61\ML
62\NC metafun.mpiv  \NC the main \METAFUN\ file \NC \NR
63\NC minifun.mpiv  \NC a subset of \METAFUN\ \NC \NR
64\NC mp-xxxx.mpiv  \NC \METAPOST\ file \NC \NR
65\LL
66\stoptabulate
67
68There are more suffixes used, like \type {tua} and \type {tuc} for multipass
69jobdata, and \type {log} for log files. In the cache tree you can run into \type
70{luv}, \type {lui}, \type {luj} and \type {lum} for startup data,
71\type {tma} for \LUA\ cache files, \type {tmb} for \LUAJITTEX\ bytecode, \type
72{tmc} for \LUATEX {bytecode} and \type {tmd} for \LUAMETATEX\ bytecode, but you
73can forget about them.
74
75There can be files with \type {-imp-} in the name: these relate to other files with
76a similar name.
77
78The follow up on \MKIV\ is called \LMTX\ (or MkXL?) and is compatible with \MKIV: it uses,
79at least now, mostly the same code. But, as it depends on \LUAMETATEX\ it also
80has some different internals. Therefore you will find some additional files:
81
82\starttabulate[|Tw(10em)||]
83\FL
84\NC context.mkxl  \NC the main \TEX\ file \NC \NR
85\NC cont-xx.mkxl  \NC an interface specific \TEX\ file \NC \NR
86\NC xxxx-xxx.mkxl \NC \TEX\ file \NC \NR
87\NC xxxx-xxx.mklx \NC \TEX\ file with named parameters \NC \NR
88\ML
89\NC metafun.mpxl  \NC the main \METAFUN\ file \NC \NR
90\NC minifun.mpxl  \NC a subset of \METAFUN\ \NC \NR
91\NC mp-xxxx.mpxl  \NC \METAPOST\ file \NC \NR
92\LL
93\stoptabulate
94
95This means that a file \type {xxxx-xxx} can be present with any of the \type
96{mk..} suffixes. In the standard distribution the \MKII\ and \MKIV\ files have
97their own path (directory), and \LMTX\ only ships what it needs.
98
99This somewhat complicated setup is needed in order to support both \LUATEX\ and
100\LUAMETATEX\ system. The more \LUAMETATEX\ diverges from \LUATEX, the more the
101codebase will be split so eventually we might end up with \MKII, \MKIV\ and \LMTX\
102as more or less independent versions. We try to share the \LUA\ code as much as
103possible, also because some components are generic.
104
105The name pattern \type {xxxx-} groups the files in categories. These are also
106referred to from the interface definitions. Examples of categories are \type
107{syst} for system modules that define various low level support macros and
108mechanisms. The user interface is handled by modules in the \type {mult}
109namespace. The \type {supp} modules layer on top of that and provide more
110helpers. The \type {font} and \type {type} modules deal with fonts, \type {lang}
111handles language support. The \type {strc} modules implement structural
112components, \type {tabl} does tables and \type {page} handles the layout.
113Specialized categories like \type {mlib}, \type {meta} and \type {grph} are for
114graphics, and \type {publ} is used for the publication (bibliography) subsystem.
115Just to give you an idea.
116
117\stoptitle
118
119\stoptext
120