There are quite some applications in LaTeX, that are based on
the possibility to redefine a primitive command, e.g.
\shipout is redefined in various packages (atbegshi, everyshi,
pdftex.def for background color, ...).
  Another application is debugging, e.g. \special is a candidate,
that can be redefined to print its contents to the .log file
additionally.
  All these wouldn't be possible, if \(pdf)primitive was used.

i assume that if the core engine uses \primitive\shipout that it doe with a purpose; actually the core should provide a proper way to overload its behaviour then; i woul dnot be surprised that when packages overload primitives, that when users load several in (an arbitrary) order, problems show up anyway

As example, you got lucky with \formatname: LaTeX uses \fmtname,
quite close already, I would say.

normally when choosing a new name, a scan on the tex live tree is done

The point is that there is software written at a time with
a known set of command names from the engines.
Now the engines evolve further and introduces new command names.
This can lead to name clashes, because the engine developer
cannot know all software that is based on the engine to avoid them.
Prefixing helps to reduce the probability of such name clashes.
With reserved prefixes they can even be avoided.

as said ... latex can start with a truckload of

\let\reservedlatexprefixsomethingnew=\somethingnew

or even \luatexprimitivesomethingnew=\somethingnew if it wants.

this can be done even for older ones; that keeps the engine clean and puts the burden on the macro package (as it should)

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------

Reply via email to