Thanks for your helpful reply, Stamatis. I moved away from that area of work 
and can no longer reproduce the problem but I will try the steps you suggest if 
it recurs. I am forever grateful for searchable mail archives so that problems 
+ solutions are permanently on file.

Julian


> On Jul 15, 2022, at 1:06 AM, Stamatis Zampetakis <[email protected]> wrote:
> 
> Hello,
> 
> I was suspecting the remote build cache in S3 [1] but I guess this is
> covered by the --no-build-cache argument so since you tried it probably
> it's not the case.
> 
> Nevertheless worth trying setting  s3.build.cache=false just in case they
> are handled differently (cannot check right now).
> 
> Best,
> Stamatis
> 
> 
> [1]
> https://github.com/apache/calcite/blob/94dc303ed0a5ccd4e4f972abf7a41f155cbe5546/gradle.properties#L22
> 
> On Fri, Jul 15, 2022, 3:25 AM Julian Hyde <[email protected]> wrote:
> 
>> As you may know, we use the FMPP templating engine and the JavaCC
>> parser generator to generate the parser. Steps are as follows:
>> 
>> 1. The source file is core/src/main/codegen/templates/Parser.jj.
>> 2. FMPP generates /core/build/fmpp/fmppMain/javacc/Parser.jj and also
>> babel/build/fmpp/fmppMain/javacc/Parser.jj
>> 3. JavaCC converts these to
>> 
>> core/build/javacc/javaCCMain/org/apache/calcite/sql/parser/impl/SqlParserImpl.java
>> and
>> babel/build/javacc/javaCCMain/org/apache/calcite/sql/parser/babel/SqlBabelParserImpl.java
>> 4. Javac compiles these .java files
>> 
>> The problem is that the babel/build/fmpp/fmppMain/javacc/Parser.jj
>> seems to be generated from core/src/main/codegen/templates/Parser.jj
>> as it was a few days ago. Hence I get an error:
>> 
>> $ ./gradlew clean test
>> 
>>> Configure project :
>> Building Apache Calcite 1.31.0-SNAPSHOT
>> 
>>> Task :linq4j:jandexMain
>> Could not load entry 744885c2058d06968876b159ce2a1453 from remote
>> build cache: Bucket 'calcite-gradle-cache' not found
>> 
>>> Task :babel:javaCCMain FAILED
>> Could not load entry 3d3a41847fa27348c04b50b437780c7a from remote
>> build cache: Bucket 'calcite-gradle-cache' not found
>> Java Compiler Compiler Version 4.0 (Parser Generator)
>> (type "javacc" with no arguments for help)
>> Reading from file
>> /Users/julianhyde/dev/calcite.2/babel/build/fmpp/fmppMain/javacc/Parser.jj
>> . . .
>> Warning: Output directory
>> 
>> "/Users/julianhyde/dev/calcite.2/babel/build/javacc/javaCCMain/org/apache/calcite/sql/parser/babel"
>> does not exist. Creating the directory.
>> Note: UNICODE_INPUT option is specified. Please make sure you create
>> the parser/lexer using a Reader with the correct character encoding.
>> Warning: Lookahead adequacy checking not being performed since option
>> LOOKAHEAD is more than 1.  Set option FORCE_LA_CHECK to true to force
>> checking.
>> Error: Line 1323, Column 5: Non-terminal AddExpression2b has not been
>> defined.
>> Detected 1 errors and 2 warnings.
>> 
>> The error is 'incorrect' - the latest version of Parser.jj does
>> contain AddExpression2b, but somehow the generated Parser.jj does not
>> contain it.
>> 
>> Has anyone else seen this stateful behavior from FMPP? Any ideas where
>> the state might reside? I have tried clearing my gradle cache,
>> rebooting my machine, killing gradle daemons, running gradle with the
>> --no-build-cache flag, but no luck.
>> 
>> Julian
>> 

Reply via email to