ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Errors in source files return success
@ 2021-11-18 18:27 Marco Patzer via ntg-context
  2021-12-15 15:21 ` Marco Patzer via ntg-context
  2021-12-26 13:48 ` Marco Patzer via ntg-context
  0 siblings, 2 replies; 6+ messages in thread
From: Marco Patzer via ntg-context @ 2021-11-18 18:27 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Marco Patzer

Hi!

ConTeXt can detect issues in the sources and report them on the
console with the argument --errors or with \enabledirectives
[logs.errors]. The return value is still “0” (=success) even with
errors present.

Right now I use a script that parses the log file and lets me know
if a run has issues. However, it would be great if context could
return a non-zero value if errors are present. I've found that

  \enabledirectives
    [logs.errors=missing characters]

returns “1” if characters are missing. Lovely!

Undefined control sequences always return 1 (a TeX thing I believe
and not related to the macro package). But undefined control
sequences don't show up on the console as the other errors do if
general output (except errors) is silenced e.g. with

  context --silent --noconsole --nostatistics --errors <file>

The question is, what other directives can be enabled that make
context return a failure? Is there a way to return failure if *any*
error is encountered or do they need to be enabled each
individually? And is there a way to show hard TeX errors as
undefined control sequences as a “possible issue” if output is
silenced?

MWE:

%% enables logging of errors same as --errors AFAIK
\enabledirectives
  [logs.errors]

%% makes context return 1 on missing chars, great!
%% \enabledirectives
%%   [logs.errors=missing characters]

\starttext

%% missing characters
𝒜

%% missing figure
\externalfigure [foo]

%% \end occurred inside a group at level 1
%% ### semi simple group … entered at line
\startalignment [middle]
  foo

%% missing references
See \in{section}[sec:none].

%% undefined control sequence
%% \undefined

\stoptext

Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Errors in source files return success
  2021-11-18 18:27 Errors in source files return success Marco Patzer via ntg-context
@ 2021-12-15 15:21 ` Marco Patzer via ntg-context
  2021-12-15 19:48   ` Hans Hagen via ntg-context
  2021-12-26 13:48 ` Marco Patzer via ntg-context
  1 sibling, 1 reply; 6+ messages in thread
From: Marco Patzer via ntg-context @ 2021-12-15 15:21 UTC (permalink / raw)
  To: Hans Hagen; +Cc: Marco Patzer, Marco Patzer via ntg-context

Hi Hans,

a followup to our conversation in the meeting: here's an MWE
demonstrating that errors aren't passed on to the runner script,
except for "logs.errors=missing characters", which in fact do return
failure, all others do return success.

%% enables logging of errors same as --errors
\enabledirectives
  [logs.errors]

\starttext

%% ### semi simple group … entered at line
\startalignment [middle]
  foo

\stoptext

Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Errors in source files return success
  2021-12-15 15:21 ` Marco Patzer via ntg-context
@ 2021-12-15 19:48   ` Hans Hagen via ntg-context
  2021-12-15 20:16     ` Marco Patzer via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Hans Hagen via ntg-context @ 2021-12-15 19:48 UTC (permalink / raw)
  To: Marco Patzer; +Cc: Hans Hagen, Marco Patzer via ntg-context

On 12/15/2021 4:21 PM, Marco Patzer wrote:
> Hi Hans,
> 
> a followup to our conversation in the meeting: here's an MWE
> demonstrating that errors aren't passed on to the runner script,
> except for "logs.errors=missing characters", which in fact do return
> failure, all others do return success.
> 
> %% enables logging of errors same as --errors
> \enabledirectives
>    [logs.errors]
> 
> \starttext
> 
> %% ### semi simple group … entered at line
> \startalignment [middle]
>    foo
> 
> \stoptext
You can check in the next upload:

- The 'failure' that you saw was actually a real lua error because I 
hadn't adapted some fancy, a very old 'around' 2006 feature, seldom used 
as it's more 'an example of possibilities' code to luametatex yet ... 
fwiw, we still share some lua files between engines.

- Afaiks you should now get return code 1 for other cases (say you give 
\foo without meaning). It's a it tricky as this info has to pass through 
several subsystems.

- The runaway error is actually kind of special (there are a few more) 
where the engine simply quits in confusion and doesn't exit hard as 
error (often because tex could somehow recover). If needed I can 
actually do a real error but it's not entirely compatible then (not that 
i care that much about compatibility in these shady areas.)

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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Errors in source files return success
  2021-12-15 19:48   ` Hans Hagen via ntg-context
@ 2021-12-15 20:16     ` Marco Patzer via ntg-context
  2021-12-15 22:50       ` Hans Hagen via ntg-context
  0 siblings, 1 reply; 6+ messages in thread
From: Marco Patzer via ntg-context @ 2021-12-15 20:16 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Marco Patzer

On Wed, 15 Dec 2021 20:48:29 +0100
Hans Hagen <j.hagen@xs4all.nl> wrote:

> You can check in the next upload:
> 
> - The 'failure' that you saw was actually a real lua error because I 
> hadn't adapted some fancy, a very old 'around' 2006 feature, seldom
> used as it's more 'an example of possibilities' code to luametatex
> yet ... fwiw, we still share some lua files between engines.

Thanks for looking into that. I'll check the next upload.

> - Afaiks you should now get return code 1 for other cases (say you
> give \foo without meaning). It's a it tricky as this info has to pass
> through several subsystems.

Hard TeX errors (like \undefined) already return 1.

> - The runaway error is actually kind of special (there are a few
> more) where the engine simply quits in confusion and doesn't exit
> hard as error (often because tex could somehow recover). If needed I
> can actually do a real error but it's not entirely compatible then
> (not that i care that much about compatibility in these shady areas.)

I'd vote to handle those as hard errors because

  1) Luametatex isn't focused on compatibility.
  2) The user explicitly requested error reporting (by providing --errors).
  3) No one is recovering tex runs these days.

Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Errors in source files return success
  2021-12-15 20:16     ` Marco Patzer via ntg-context
@ 2021-12-15 22:50       ` Hans Hagen via ntg-context
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen via ntg-context @ 2021-12-15 22:50 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Hans Hagen

On 12/15/2021 9:16 PM, Marco Patzer via ntg-context wrote:
> On Wed, 15 Dec 2021 20:48:29 +0100
> Hans Hagen <j.hagen@xs4all.nl> wrote:
> 
>> You can check in the next upload:
>>
>> - The 'failure' that you saw was actually a real lua error because I
>> hadn't adapted some fancy, a very old 'around' 2006 feature, seldom
>> used as it's more 'an example of possibilities' code to luametatex
>> yet ... fwiw, we still share some lua files between engines.
> 
> Thanks for looking into that. I'll check the next upload.
> 
>> - Afaiks you should now get return code 1 for other cases (say you
>> give \foo without meaning). It's a it tricky as this info has to pass
>> through several subsystems.
> 
> Hard TeX errors (like \undefined) already return 1.
> 
>> - The runaway error is actually kind of special (there are a few
>> more) where the engine simply quits in confusion and doesn't exit
>> hard as error (often because tex could somehow recover). If needed I
>> can actually do a real error but it's not entirely compatible then
>> (not that i care that much about compatibility in these shady areas.)
> 
> I'd vote to handle those as hard errors because
> 
>    1) Luametatex isn't focused on compatibility.

ok, but let's first test this ... it's mostly cosmetics (read: come up 
wiht a better error message than the default sometimes unclear tex one)

>    2) The user explicitly requested error reporting (by providing --errors).

>    3) No one is recovering tex runs these days.
indeed, makes no sense (it all dates from (paper) terminals and 
night-time runs .. the good old 300 baud transfer days)

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
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Errors in source files return success
  2021-11-18 18:27 Errors in source files return success Marco Patzer via ntg-context
  2021-12-15 15:21 ` Marco Patzer via ntg-context
@ 2021-12-26 13:48 ` Marco Patzer via ntg-context
  1 sibling, 0 replies; 6+ messages in thread
From: Marco Patzer via ntg-context @ 2021-12-26 13:48 UTC (permalink / raw)
  To: mailing list for ConTeXt users; +Cc: Marco Patzer

On Thu, 18 Nov 2021 19:27:25 +0100
Marco Patzer via ntg-context <ntg-context@ntg.nl> wrote:

> Is there a way to return failure if *any* error is encountered or
> do they need to be enabled each individually?

A solution is to use patterns (supported in the upcoming upload):

  \enabledirectives
    [logs.errors=*]

Alternatively use a compile-time switch:

  context --errors='*' <file>

This will make the return value reflect the presence of an error.
Further reading:

  https://wiki.contextgarden.net/Running_ConTeXt#--errors

Marco
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-12-26 13:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-18 18:27 Errors in source files return success Marco Patzer via ntg-context
2021-12-15 15:21 ` Marco Patzer via ntg-context
2021-12-15 19:48   ` Hans Hagen via ntg-context
2021-12-15 20:16     ` Marco Patzer via ntg-context
2021-12-15 22:50       ` Hans Hagen via ntg-context
2021-12-26 13:48 ` Marco Patzer via ntg-context

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).