On Sat, Aug 10, 2002 at 03:40:19PM -0400, Boris Veytsman wrote: > However, there is a big difference between TeX programs and, say, C or > Perl programs. The innards of the C compiler or Perl interpreters are > hidden from the user program. You cannot patch your compiler or > interpreter DURING the run. TeX is different by design. You can patch > it from the program it runs. Everything defined in plain.tex, cmr10.mf > (or latex.ltx and article.sty) can go under knife from > foo.tex. Therefore you obviously CAN patch the sources during the > build and CAN distribute both the built files AND patches.
That is silly. You can definitely modify the behaviour of the C compiler through the C preprocessor. You can do it in C++ with templates. Perl allows you to fiddle with its symbol table (typeglobs) so that you can redefine the language on the fly. You can even change the behaviour of already compiled programs under UNIX with LD_PRELOAD. But Frank has already (sensibly) admitted that this is not free enough. Just because it's the "accepted" way doesn't mean that it is free enough. For instance, many Windows programmers will re-write their Windows system DLL libraries in order to get functionality they need.and Due to the way Windows loads libraries, the system DLLs can be overloaded; but this does not make Windows system libraries more "free" than if the library loader did not have this feature. Simon