groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul King <pa...@asert.com.au>
Subject Re: Compiler bug
Date Tue, 17 Apr 2018 02:17:13 GMT
Okay, I can reproduce by adding @CompileStatic to the example I tried
previously and can confirm that 2.4.13 is where the regression started.
Workaround would be to remove @CompileStatic until we can get a fix in
place. If you can raise a bug issue in Jira, that would be great.

Cheers, Paul.

On Fri, Apr 13, 2018 at 8:20 PM, Paul King <paulk@asert.com.au> wrote:

>
> Not sure what happened to the formatting - here it is again:
>
> class QueensBase {
>   int N = 2
>
>   double doFitness(List <Integer> board) {
>     List <Integer> leftDiagonal = new ArrayList(2*N)
>     List <Integer> rightDiagonal = new ArrayList(2*N)
>     double sum = 0.0D
>
>     for ( i in 1 .. 2*N) {
>         leftDiagonal[i] = 0
>         rightDiagonal[i] = 0
>     }
>     for ( i in 1 .. N) {
>         leftDiagonal[i+board[i]-1]++
>         rightDiagonal[N-i+board[i]]++
>     }
>     for ( i in 1 .. ((2*N) - 1)) {
>         int counter = 0
>         if ( leftDiagonal[i] > 1)
>             counter += leftDiagonal[i] - 1
>         if ( rightDiagonal[i] > 1)
>             counter += rightDiagonal[i] - 1
>         sum += counter / (N - Math.abs(i-N))
>     }
>     // target fitness is 0.0
>     // sum can be negative so return absolute value
>     return Math.abs(sum)
>   }
> }
>
> println new QueensBase().doFitness(1..16)
>
>
> On Fri, Apr 13, 2018 at 8:18 PM, Paul King <paulk@asert.com.au> wrote:
>
>> I tried this script:
>>
>> class QueensBase {
>>   int N = 2
>>
>>   double doFitness(List <Integer> board) {
>>     List <Integer> leftDiagonal = new ArrayList(2*N)
>>     List <Integer> rightDiagonal = new ArrayList(2*N)
>>     double sum = 0.0D
>>
>>     for ( i in 1 .. 2*N) {
>>         leftDiagonal[i] = 0
>>         rightDiagonal[i] = 0
>>     }
>>     for ( i in 1 .. N) {
>>         leftDiagonal[i+board[i]-1]++
>>         rightDiagonal[N-i+board[i]]++
>>     }
>>     for ( i in 1 .. ((2*N) - 1)) {
>>         int counter = 0
>>         if ( leftDiagonal[i] > 1)
>>             counter += leftDiagonal[i] - 1
>>         if ( rightDiagonal[i] > 1)
>>             counter += rightDiagonal[i] - 1
>>         sum += counter / (N - Math.abs(i-N))
>>     }
>>     // target fitness is 0.0
>>     // sum can be negative so return absolute value
>>     return Math.abs(sum)
>>   }
>> }
>>
>> println new QueensBase().doFitness(1..16)
>>
>>
>> It worked for me in the Groovy Web Console, Intellij IDEA 2017.3.5
>> pointing to 2.4.15, and the GroovyConsole for 2.4.15 and 2.3.0.
>>
>> Perhaps we need a bigger sample to track down your issue.
>>
>> Cheers, Paul.
>>
>>
>> On Fri, Apr 13, 2018 at 7:39 PM, Kerridge, Jon <J.Kerridge@napier.ac.uk>
>> wrote:
>>
>>> Daniel,
>>>
>>>
>>> Thanks for getting back to me so quickly.
>>>
>>>
>>> I have converted to groovy2.4.15 and the same error occurs.  I
>>> am running under Intellij IDE and had downloaded the sdk bundle.
>>>
>>>
>>> Jon
>>>
>>>
>>>
>>>
>>> Professor Jon Kerridge
>>> School of Computing
>>> Edinburgh Napier University
>>> Merchiston Campus
>>> Edinburgh EH10 5DT
>>>
>>> 0131 455 2777
>>> j.kerridge@napier.ac.uk
>>> http://www.soc.napier.ac.uk/~cs10/
>>>
>>> ------------------------------
>>> *From:* Daniel.Sun <sunlan@apache.org>
>>> *Sent:* 12 April 2018 18:22:39
>>> *To:* dev@groovy.incubator.apache.org
>>> *Subject:* Re: Compiler bug
>>>
>>> Please try Groovy 2.4.15.
>>>
>>> Cheers,
>>> Daniel.Sun
>>>
>>>
>>>
>>> --
>>> Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
>>>
>>> This message and its attachment(s) are intended for the addressee(s)
>>> only and should not be read, copied, disclosed, forwarded or relied upon by
>>> any person other than the intended addressee(s) without the permission of
>>> the sender. If you are not the intended addressee you must not take any
>>> action based on this message and its attachment(s) nor must you copy or
>>> show them to anyone. Please respond to the sender and ensure that this
>>> message and its attachment(s) are deleted.
>>>
>>> It is your responsibility to ensure that this message and its
>>> attachment(s) are scanned for viruses or other defects. Edinburgh Napier
>>> University does not accept liability for any loss or damage which may
>>> result from this message or its attachment(s), or for errors or omissions
>>> arising after it was sent. Email is not a secure medium. Emails entering
>>> Edinburgh Napier University's system are subject to routine monitoring and
>>> filtering by Edinburgh Napier University.
>>>
>>> Edinburgh Napier University is a registered Scottish charity.
>>> Registration number SC018373
>>>
>>
>>
>

Mime
View raw message