[ 
https://issues.apache.org/jira/browse/GROOVY-11359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17839174#comment-17839174
 ] 

Adrien Guichard edited comment on GROOVY-11359 at 4/20/24 2:29 AM:
-------------------------------------------------------------------

To keep you informed, here is what has been done regarding how the compiler 
generate the method:
 * I used {*}{{expect}}{*}, for the first time. This tool allow script 
automation. I attached the script, the syntax is not complex and things can get 
improved iteratively.
 * Then, I traced all methods via {{jdb}} AFTER reaching 
{{AsmClassGenerator.visitStdMethod}} (see expect file)

Then, I indent the output of the previous commands, with a Groovy script.

The output file is huge, even for simple class code. So, I use grep / awk to 
format around expected symbols..

This process is arch and "brute force", but I am a little blind on what I am 
supposed to find. Nevertheless, it is fun in some ways.. Hope to find my error 
soon.

Regards 


was (Author: adrienguichard):
To keep you informed, here is what has been done regarding how the compiler 
generate the method:
 * I used {{{}expect{}}}, for the first time. This tool allow script 
automation. I attached the script, the syntax is not complex and things can get 
improved iteratively.
 * Then, I traced all methods via {{jdb}} AFTER reaching 
{{AsmClassGenerator.visitStdMethod}} (see expect file)

Then, I indent the output of the previous commands, with a Groovy script.

The output file is huge, even for simple class code. So, I use grep / awk to 
format around expected symbols..

This process is arch and "brute force", but I am a little blind on what I am 
supposed to find. Nevertheless, it is fun in some ways.. Hope to find my error 
soon.

Regards 

> ASTTransformation cause "General error during instruction selection"
> --------------------------------------------------------------------
>
>                 Key: GROOVY-11359
>                 URL: https://issues.apache.org/jira/browse/GROOVY-11359
>             Project: Groovy
>          Issue Type: Bug
>          Components: Compiler
>    Affects Versions: 3.0.21
>         Environment: $ java -fullversion
> openjdk full version "17.0.10+7"
> $ uname -a
> Linux auoHome 6.6.26-1-MANJARO #1 SMP PREEMPT_DYNAMIC Wed Apr 10 20:11:08 UTC 
> 2024 x86_64 GNU/Linux
>            Reporter: Adrien Guichard
>            Priority: Major
>             Fix For: 3.0.11
>
>         Attachments: expect.ex, indent.groovy, testcase-asttransform-ko.tar.gz
>
>
> When assembling the *Grails* project, I do obtain the following stacktrace:
>  java.lang.ArrayIndexOutOfBoundsException: size==0
> at 
> org.codehaus.groovy.classgen.asm.OperandStack.ensureStackNotEmpty(OperandStack.java:279)
> at 
> org.codehaus.groovy.classgen.asm.OperandStack.replace(OperandStack.java:271)
> at 
> org.codehaus.groovy.classgen.AsmClassGenerator.visitCastExpression(AsmClassGenerator.java:815)
> at org.codehaus.groovy.ast.expr.CastExpression.visit(CastExpression.java:90)
> at 
> org.codehaus.groovy.classgen.asm.StatementWriter.writeReturn(StatementWriter.java:615)
> [. . .]
> Tell me if you need a more complete stacktrace. I try to work around this 
> bug, changing the AST, without success. The error looks the same {*}each 
> time{*}.
> To reproduce:
> $ tar xvfz testcase-asttransform-ko.tar.gz
> $ cd groovyInfra
> $ ./gradlew publishMavenPublicationToMavenLocal
> $ cd ..
> $ cd t620g
> $ ./gradlew assemble
> => BROKEN HERE
> Thanks for your help !



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to