Hi Heiko, Heiko Oberdiek wrote:
What is the result of \ifprimitive, it is \iftrue/\iffalse or an expansion text "true"/"some error message"?
as in \iftrue/\iffalse: it is a 'real' \if test .
\executeprimitive <csname>
What about \executeprimitive itself?
\def\executeprimitive{Hello World} \executeprimitive\executeprimitive\relax
Is the result two "Hello World" or "\relax"?
This result is Hello WorldHello World\relax Without the \def line, you would get only: \relax (the first \executeprimitive executes the second which executes the internal version of \relax)
\ifinternal <csname> \executeinternal <csname> \exposeinternal <csname> \obscureinternal <csname>
It needs some thinking. First thoughts: * It looks like a first step to a real namespace implementation, a (perhaps read-only) internal namespace, namespaces for extensions, and user/package macros. Why not going further then?
TeX's current internal structure does not allow a clean solution, so if we want true namespaces in TeX, we probably have to start thinking about a successor to pdftex. Otherwise, we would need to redesign the whole symbol table / token handling while trying to remain 100% compatible. That sounds like a nightmare to me. These last 4 primitives I proposed are an attempt to come up with something that works next month (as opposed to next year), but you are right that it probably needs more thinking, anyway. Taco