[m-rev.] for review: Add news about data representation and float boxing changes

Peter Wang novalazy at gmail.com
Mon Apr 29 12:46:24 AEST 2013


Plus one more, which was disabled on 11.07:

On Mon, 29 Apr 2013 12:36:41 +1000, Peter Wang <novalazy at gmail.com> wrote:
> Add news about data representation and float boxing changes for 13.05.
> 
> NEWS:
> 	As above.
> 
> diff --git a/NEWS b/NEWS
> index c2a434a..9cf86f6 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -68,6 +68,21 @@ Changes to the Mercury compiler:
>        - large numbers of higher order constructs and/or code that uses
>          large hierarchies of type classes

+* We have implemented a type representation optimisation, where a functor
+  with exactly one argument can be represented by a tagged pointer to the
+  argument value, which itself does not require the tag bits.
+

>  
> +* Consecutive enumeration arguments in discriminated union types can now
> +  be packed into a single word to reduce cell sizes, on C back-ends.
> +
> +* Double-precision `float' constructor arguments are now stored in
> +  unboxed form in high-level C grades.
> +
> +* Double-precision `float' constructor arguments are now stored in
> +  unboxed form on 32-bit architectures in the low-level C grade.
> +  This was previously so for 64-bit architectures.
> +
> +* Double-precision float arguments can now be passed via dedicated Mercury
> +  abstract machine registers to avoid boxing, in low-level C grades on
> +  32-bit architectures. Float variables can occupy two words on the
> +  Mercury stack to avoid boxing.
> +
>  Changes to the Mercury debugger:
>  
>  * We have added new capabilities to the "level", "retry" and "finish" mdb
> 



More information about the reviews mailing list