[NTG-context] change in treating errors

Hans Hagen j.hagen at xs4all.nl
Tue Apr 16 09:07:25 CEST 2019


On 4/16/2019 6:28 AM, Alan Braslau wrote:
> On Mon, 15 Apr 2019 23:11:17 -0400
> Mohammad Hossein Bateni <bateni at gmail.com> wrote:
> 
>> Hi,
>>
>> ConTeXt used to recover better from errors.  Consider the following file:
>>
>> =============
>> \xyz
>> \abc
>>
>> \starttext
>> HELLO
>> \stoptext
>> =============
>>
>> Running  ConTeXt  ver: 2019.03.21 21:39 MKIV beta  fmt: 2019.3.26  int:
>> english/english would catch both "Undefined control sequence" errors before
>> exiting with the message "mtx-context     | fatal error: return code:
>> 256".  (I either press enter to move to the next error, or I use the
>> --nonstopmode option.)

this 'go to next error' instead of 'fix it now' dates from the time when 
a run could take hours and the console (often) was a paper terminal so 
then it made sense to collect a couple of errors and / or go on

for a large macro package like context where an error nearly always will 
lead to a bad output file it makes not much sense ... fix the error and 
rerun ...

>> Now with ConTeXt  ver: 2019.04.13 17:01 MKIV beta  fmt: 2019.4.15  int:
>> english/english, even when I do not supply the --nonstopmode option,
>> ConTeXt exits abnormally with the same error message right after
>> discovering the first undefined control sequence.  The old "?" TeX prompt
>> allowing once to fix the misspellings, etc. does not appear at all.
>>
>> Has some defaults changed?  Is it possible to get the old behavior?
>>
>> Thanks,
>> ~MHB
> 
> I much prefer the new behavior, for the previous prompt was pretty useless and there was little point going on without correcting an earlier error. Furthermore, the model would often leave a furtive process running in the background following a keyboard interrupt (especially on Mac OSX). The new process does not do this.
Indeed and on all platforms tex could end up in a state of 'hanging 
somewhere around in the background' (enforcing some hard manual kill) 
which then also locks files (like the output file).

This is way more robust (and i should have done it sooner). If you don't 
want it you can disable it (but you're on your own then):

\disabledirectives[system.quitonerror]

There are also oler options, like

\enabledirectives[system.showerror]

which could pop up a browser and alike. (I'm actually considering 
dropping the interactive mode completely or maybe replacing it by a lua 
driven one if i need it, which i never do.)

Hans


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


More information about the ntg-context mailing list