2 ms·
Why you're saying is that you don't mean "stable", you mean "bug-free". You listed them as two separate points originally - there is a difference between them,
by jahewson 12y ago
Why you're saying is that you don't mean "stable", you mean "bug-free". You listed them as two separate points originally - there is a difference between them, conflating stable to mean bug-free isn't useful.
You did literally claim that TeX was "bug free". It's entirely unremarkable that with no new features added to TeX in 26 years that eventually most of the bugs have been fixed - and theres been at least one bug almost every year since 1977. If anything, the lesson here is that TeX almost certainly still contains bugs.
TeX's slowness can be measured by measuring how much time TeX spends making I/O syscalls. You can pass debugging arguments to TeX so that it will log more information about which phase of the processing it is at - TeX spends very little time typesetting and most of its time reading and writing auxiliary files. Because a document with cross-references must be re typeset 3 times, and most of TeX's running time doesn't consist of typesetting, we can be fairly sure that TeX is almost 3 times slower than it needs to be in this case.
The I/O situation is difficult if not impossible to resolve without completely rebuilding and redesigning the TeX program the ground up - it's a macro processing system, and it has many thousands of lines of macros which need to be processed for even a simple document. When TeX was designed it was impossible to do most of this in-memory, so the entire design of TeX is built around processing streams of data with as little state as possible. TeX processes one page at a time, and all its global state is based on that assumption - certainly not low-hanging fruit.
d) Pascal is a great little language, once popular for teaching students. But TeX is written in WEB, which adds a fairly complex macro layer which is then utilised by Knuth in a very non-linear manner (with respect to the code - the narrative is linear). But it's not just the language which makes TeX tricy to read - it's how it was used, the entire program is one giant global state which is manipulated by a handful of giant functions which perform most of their logic using GOTOs - that was normal for the 1970s but it's unquestioably very difficult to wrap ones head around. At least with git I can skim through the source code and understand it's structure as a piece of code - even if the meaning is still difficult to comprehend.
- taeric 12y agoStable in that it is stable. Not only bug free, but not constantly shifting under your feet. I don't know of a better word than stable for this. And I do feel that "bug free" is a necessary condition for it. Just as I would feel that a foundation for a house is only stable if it is not moving and free of defects. I claimed that TeX is literally bug free today. If you feel this is not the case, find a bug. I did not claim that TeX originated bug free. At least, I did not intend to make that claim. Apologies if it read that way. We can not be certain that TeX is 3 times slower than it needs to be in that case. In that nobody has produced a system that is 3 times faster. Seriously, I am a fan of incremental compiles and multipass processing of documents. I am also more and more a fan of empirical results. Claims that things should be better, without any hard evidence, bother me. And I think we just have to agree to disagree regarding WEB. I have found TeX far more understandable because of WEB than many other pieces of software. Specifically, the linear narrative is far more of an aid to understanding than any of the newer abstractions that are promoted elsewhere. Sure, the code is rather nonlinear. Outside of almost academically simple programs, I have seen few pieces of software where this is not the case.