[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Feature request: Fix cascading error messages
From: |
Christopher Heckman |
Subject: |
Re: Feature request: Fix cascading error messages |
Date: |
Mon, 28 Mar 2022 17:34:30 -0700 |
On Mon, Mar 28, 2022 at 4:58 PM David Kastrup <dak@gnu.org> wrote:
>
> Christopher Heckman <christopher.heckman@asu.edu> writes:
>
> > I have a request concerning Lilypond that has bothered me for a while,
> > but which I haven't seen any one else complain about. It is the
> > cascade of error messages you get when you leave out a right-brace or
> > some other symbol.
> >
> > Maybe this could be added as an option to lilypond?
> >
> > lilypond --cascade-level=N file.ly
> >
> > which, for any given line, prints the first N error messages, and
> > after that a message saying that further error messages have been
> > suppressed. A default value for N might be 3 or 4.
> >
> > What does everyone think?
>
> The problems from followup errors do not magically disappear because
> they are not reported. The only thing that would make sense is better
> error recovery (which is pretty hard but can partly be achieved by
> inserting "error" productions matching typical error scenarios into the
> grammar: that causes a more targeted recovery and is arguably
> underutilised in LilyPond's grammar) but not pretending to be fine.
>
I'm not saying that LilyPond should say that everything is fine, just
that it not report every single error for a line. If you have 8 or 9
errors on one line, there's something wrong a basic level.
For instance, suppose I misspell markuplist on line 94. The next few
errors look like
SyntacticStructuresInMusic.ly:94:1: error: unknown escaped string: `\markuplst'
\markuplst {
SyntacticStructuresInMusic.ly:94:12: error: syntax error, unexpected
'{', expecting '.' or '='
\markuplst
{
SyntacticStructuresInMusic.ly:100:1: error: unknown escaped string:
`\new-chapter'
\new-chapter { Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:1: error: string outside of text
script or \lyricmode
\new-chapter { Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:16: error: not a note name: Chapter
\new-chapter {
Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:27: error: not a note name: The
\new-chapter { Chapter 1.
The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:31: error: not a note name: Basic
\new-chapter { Chapter 1. The
Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:37: error: not a note name: Syntactic
\new-chapter { Chapter 1. The Basic
Syntactic Structure }
SyntacticStructuresInMusic.ly:100:47: error: not a note name: Structure
\new-chapter { Chapter 1. The Basic Syntactic
Structure }
SyntacticStructuresInMusic.ly:102:1: error: unknown escaped string: `\flushpar'
\flushpar {
SyntacticStructuresInMusic.ly:102:1: error: string outside of text
script or \lyricmode
--- (If you're upset that this is looks illegible in an email, then
you understand my point; it doesn't look much nicer in a Terminal set
to 108 characters wide.)
What I'm saying is that the errors for line 100 should look like the
following instead (when N = 4) ---
SyntacticStructuresInMusic.ly:100:1: error: unknown escaped string:
`\new-chapter'
\new-chapter { Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:1: error: string outside of text
script or \lyricmode
\new-chapter { Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:16: error: not a note name: Chapter
\new-chapter {
Chapter 1. The Basic Syntactic Structure }
SyntacticStructuresInMusic.ly:100:27: error: not a note name: The
\new-chapter { Chapter 1.
The Basic Syntactic Structure }
Warning: Lilypond has possibly suppressed further error messages for line 100.
SyntacticStructuresInMusic.ly:102:1: error: unknown escaped string: `\flushpar'
\flushpar {
--- and so on.
> The problem with the followup errors is that there is no way that
> LilyPond can actually be sure that they are followup errors.
>
True, but if you have a cascade of errors on a particular line, you
definitely need to fix what's causing the cascade. Once you've done
this, and you re-run Lilypond, it will now report only the errors that
aren't followups.
--- Christopher Heckman
> Good heuristics for error recovery productions in the grammar are tricky
> to do, and since they are only relevant for erroneous input, they tend
> not to be assigned a high priority.
>
> On the other hand, I found excellent error recovery to be of high
> importance when the normal workflow was sucking a stack of punch cards
> through the reader and then checking your output shelf hours later for a
> stack of line printer paper with the results of your compilation (and
> hopefully execution, possibly accompanied by a post mortem dump listing
> the COMPASS assembly instructions running into problems).
>
> I rarely find myself working an error log off sequentially these days
> rather than just restarting compilation after fixing a limited set of
> problems.
>
> --
> David Kastrup
- Feature request: Fix cascading error messages, Christopher Heckman, 2022/03/28
- Re: Feature request: Fix cascading error messages, David Santamauro, 2022/03/28
- Re: Feature request: Fix cascading error messages, David Kastrup, 2022/03/28
- Re: Feature request: Fix cascading error messages,
Christopher Heckman <=
- Re: Feature request: Fix cascading error messages, Martín Rincón Botero, 2022/03/29
- Re: Feature request: Fix cascading error messages, Jean Abou Samra, 2022/03/29
- Re: Feature request: Fix cascading error messages, Christian, 2022/03/29
- Re: Feature request: Fix cascading error messages, Werner LEMBERG, 2022/03/29
- Re: Feature request: Fix cascading error messages, Jean Abou Samra, 2022/03/29
- Re: Feature request: Fix cascading error messages, Martín Rincón Botero, 2022/03/29
- Re: Feature request: Fix cascading error messages, Werner LEMBERG, 2022/03/29
- Re: Feature request: Fix cascading error messages, Martín Rincón Botero, 2022/03/29
- Re: Feature request: Fix cascading error messages, Martín Rincón Botero, 2022/03/29
- Re: Feature request: Fix cascading error messages, David Kastrup, 2022/03/29