[ 
https://issues.apache.org/jira/browse/DAFFODIL-1714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dave Thompson closed DAFFODIL-1714.
-----------------------------------

Pulled latest updates from incubator-daffodil repository which included 
specified commit, 98874596fdf83ad272053c62af83a0a6b71df3e2.

Verified daffodil successfully builds and executes all sbt tests, including the 
new related tests.

> ULong modulus operator broken
> -----------------------------
>
>                 Key: DAFFODIL-1714
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-1714
>             Project: Daffodil
>          Issue Type: Bug
>          Components: General, Libraries
>    Affects Versions: 2.0.0
>            Reporter: Steve Lawrence
>            Assignee: Dave Thompson
>            Priority: Major
>             Fix For: 2.2.0
>
>
> It appears that the ULong modulus operator is broken. If we run this code:
> {code}
>     for (i <- 0 to 16 ) {
>       val numerator = ULong(i)
>       val denominator = ULong(8)
>       val remainder = numerator % denominator
>       println(i + " % 8 = " + remainder)
>     }
> {code}
> we get the result:
> {code}
> 0 % 8 = 0
> 1 % 8 = 1
> 2 % 8 = 2
> 3 % 8 = 3
> 4 % 8 = 4
> 5 % 8 = 5
> 6 % 8 = 6
> 7 % 8 = 7
> 8 % 8 = 8
> 9 % 8 = 9
> 10 % 8 = 10
> 11 % 8 = 11
> 12 % 8 = 12
> 13 % 8 = 13
> 14 % 8 = 14
> 15 % 8 = 15
> 16 % 8 = 0
> {code}
> Anything % 8 should always be less than 8. But some results are greater than 
> 8. Not sure exactly what is going on, and the generated bytecode is really 
> hard to follow. In fact, I wouldn't be surprised if ULongs are actually 
> slowing things down. The byte code was kindof a mess. We might want to 
> revisit ULongs and how else to support > 4GB files.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to