Opened 9 years ago

Closed 9 years ago

#601 closed bug (fixed)

make_grammar not called

Reported by: anonymous Owned by: somebody
Priority: minor Milestone: 3-2-0 and higher
Component: dontKnow Version: 3-1-6
Keywords: Cc:

Description

after a change to grammar.y grammar.cc is not re-created using make. Furthermore, it appears that grammar.cc is hand-edited afterwards as there are changes not induced by me.

(I'm trying to allow 0xn bigintmats)

Change History (5)

comment:1 Changed 9 years ago by hannes

Resolution: duplicate
Status: newclosed

the distributed sources are grammar.cc, grammar.h grammar.y and make_grammar is simply a reminder, and should not be call by a regular make

comment:2 Changed 9 years ago by Oleksandr

Resolution: duplicate
Status: closedreopened

I can see the following problem here: it is not clear what to do with grammar.y after a manual change of grammar.cc and grammar.h, which happens sometime... personally i try to keep them in sync, which means doing *exactly* the same changes twice :(

Therefore i suggest that we reconsider this outdated approach given that autotools support .y/.yy/.l/.ll directly out of the box even if that will require some update for newer flex/bison (or yacc/lex) versions.

Last edited 9 years ago by Oleksandr (previous) (diff)

comment:3 Changed 9 years ago by hannes

We already discussed that (and decided against it). Let me recall the main points:

  • it would require to make grammar.y compatible with every bison version (which is a lot of work)
  • it would add another program to the prerequisites of Singular (which is a bad thing(TM))

grammar.cc/grammar.h should be generated with make_grammar from grammar.y, but that should not be done automatically by make. We used to have a special make-target for that, but that is lost because of the use of autotools.

comment:4 in reply to:  3 Changed 9 years ago by Oleksandr

Replying to hannes:

We already discussed that (and decided against it). Let me recall the main points:

  • it would require to make grammar.y compatible with every bison version (which is a lot of work)
  • it would add another program to the prerequisites of Singular (which is a bad thing(TM))

grammar.cc/grammar.h should be generated with make_grammar from grammar.y, but that should not be done automatically by make. We used to have a special make-target for that, but that is lost because of the use of autotools.

Yes, it is lost and you are the only one who is able to regenerate grammar... Which version of bison do you use for that? Could you please add it to the repo (sources)? Then it would make sense to recover that lost make-target as our bison then could be built and used while generating the official source-tarball...

Note that it will not necessary be distributed with the official source-tarball.

Last edited 9 years ago by Oleksandr (previous) (diff)

comment:5 Changed 9 years ago by hannes

Resolution: fixed
Status: reopenedclosed

grammar.cc and grammar.y are now in sync (diff. were only line numbers). To change the grammar(for spielwiese): edit grammar.y and call make_grammar. Bison versions known to work: 1.875d (mamawutz), 2.4.3. Bison version which do not work: 2.1, 2.2 (Forgot the result with 2.3)

Note: See TracTickets for help on using tickets.