packages feed

language-ats 1.7.8.0 → 1.7.9.0

raw patch · 8 files changed

+72/−4 lines, 8 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Language.ATS: DoubleLit :: Double -> Expression a
+ Language.ATS: DoubleTok :: AlexPosn -> Double -> Token

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # language-ats +# 1.7.9.0++  * Support float literals as something other than double literals+ # 1.7.8.0    * Add support for unsigned hexadecimal literals
language-ats.cabal view
@@ -1,6 +1,6 @@ cabal-version:   1.18 name:            language-ats-version:         1.7.8.0+version:         1.7.9.0 license:         BSD3 license-file:    LICENSE copyright:       Copyright: (c) 2018-2019 Vanessa McHale
src/Language/ATS/Lexer.x view
@@ -53,7 +53,8 @@  -- Floats @decimals = $digit+-@float = @decimals \. @decimals ("f" | "")+@float = @decimals \. @decimals "f"+@double = @decimals \. @decimals  -- Strings @string = \" ($printable # [\"\\] | @escape_str | $esc_char | \\ \n | \n)* \"@@ -281,7 +282,8 @@     <0> @integer                 { tok (\p s -> alex $ IntTok p (read s)) } -- FIXME shouldn't fail silenty on overflow     <0> "0x" $hex+               { tok (\p s -> alex $ HexIntTok p (drop 2 s)) }     <0> "0x" $hex+ u             { tok (\p s -> alex $ HexUintTok p (drop 2 (init s))) }-    <0> @float                   { tok (\p s -> alex $ FloatTok p (read s)) }+    <0> @float                   { tok (\p s -> alex $ FloatTok p (read (init s))) }+    <0> @double                  { tok (\p s -> alex $ DoubleTok p (read s)) }     <0> @char_lit                { tok (\p s -> alex $ CharTok p (toChar s)) }     <0> @string                  { tok (\p s -> alex $ StringTok p s) } @@ -434,6 +436,7 @@            | HexIntTok AlexPosn String            | HexUintTok AlexPosn String            | FloatTok AlexPosn Float+           | DoubleTok AlexPosn Double            | CharTok AlexPosn Char            | StringTok AlexPosn String            | Special AlexPosn String@@ -565,6 +568,7 @@     pretty (HexIntTok _ hi) = "0x" <> text hi     pretty (HexUintTok _ hi) = "0x" <> text hi <> "u"     pretty (FloatTok _ x) = pretty x+    pretty (DoubleTok _ x) = pretty x     pretty (CharTok _ c) = squotes (pretty c)     pretty (StringTok _ s) = text s     pretty (Special _ s) = text s@@ -600,6 +604,7 @@ token_posn (Keyword p _) = p token_posn (IntTok p _) = p token_posn (FloatTok p _) = p+token_posn (DoubleTok p _) = p token_posn (StringTok p _) = p token_posn (Special p _) = p token_posn (CBlockLex p _) = p
src/Language/ATS/Parser.y view
@@ -153,6 +153,7 @@     hexLit { HexIntTok _ $$ }     hexULit { HexUintTok _ $$ }     floatLit { FloatTok _ $$ }+    doubleLit { DoubleTok _ $$ }     specialIdentifier { $$@SpecialIdentifier{} }     foldAt { Identifier $$ "fold@" }     identifier { $$@Identifier{} }@@ -350,6 +351,7 @@         | hexLit { HexLit $1 }         | hexULit { HexUintLit $1 }         | floatLit { FloatLit $1 }+        | doubleLit { DoubleLit $1 }         | string { StringLit $1 }         | charLit { CharLit $1 }         | doubleParens { VoidLiteral $1 }
src/Language/ATS/PrettyPrint.hs view
@@ -139,7 +139,8 @@         a (HexUintLitF hi)              = "0x" <> text hi <> "u"         a (LambdaF _ lt p e)            = prettyLam "lam" p lt e         a (LinearLambdaF _ lt p e)      = prettyLam "llam" p lt e-        a (FloatLitF f)                 = pretty f+        a (FloatLitF f)                 = pretty f <> "f"+        a (DoubleLitF f)                = pretty f         a (StringLitF s)                = text s -- FIXME escape indentation in multi-line strings.         a (ParenExprF _ e)              = parens e         a (UnaryF op e) = pretty op <> pretty e
src/Language/ATS/Types.hs view
@@ -361,6 +361,7 @@                        }                   | UintLit Natural -- ^ E.g. @1000u@                   | FloatLit Float+                  | DoubleLit Double                   | IntLit Integer                   | HexLit String                   | HexUintLit String@@ -415,6 +416,7 @@                      | IfF x x (Maybe x)                      | UintLitF Natural                      | FloatLitF Float+                     | DoubleLitF Double                      | IntLitF Integer                      | HexLitF String                      | HexUintLitF String
+ test/data/spec.dats view
@@ -0,0 +1,27 @@+#include "share/atspre_staload.hats"++staload "SATS/futhark.sats"+staload "SATS/futhark-arr.sats"+staload "SATS/futhark-stats.sats"+staload "SATS/futhark-linalg.sats"++implement main0 () =+  {+    val arr0 = $arrpsz{float} (1.0f, 2.0f, 3.0f)+    var arr1 = $arrpsz{float} (1.0f, 2.0f, 3.0f)+    val ctx_cfg = futhark_context_config_new()+    val ctx = futhark_context_new(ctx_cfg)+    val fut_arr0 = futhark_new_f32_1d(ctx, arr0, 3)+    val fut_arr1 = futhark_new_f32_1d(ctx, arr1, 3)+    var ret: float+    val _ = futhark_entry_mean_f32(ctx, ret, fut_arr0)+    val () = println!(ret)+    val _ = futhark_entry_dotprod_f32(ctx, ret, fut_arr0, fut_arr1)+    val () = println!(ret)+    val _ = futhark_free_f32_1d(ctx, fut_arr0)+    val _ = futhark_free_f32_1d(ctx, fut_arr1)+    val () = futhark_context_free(ctx)+    val () = futhark_context_config_free(ctx_cfg)+    val () = arrayptr_free (arr0)+    val () = arrayptr_free (arr1)+  }
+ test/data/spec.out view
@@ -0,0 +1,27 @@+#include "share/atspre_staload.hats"++staload "SATS/futhark.sats"+staload "SATS/futhark-arr.sats"+staload "SATS/futhark-stats.sats"+staload "SATS/futhark-linalg.sats"++implement main0 () =+  {+    val arr0 = $arrpsz{float}(1.0f, 2.0f, 3.0f)+    var arr1 = $arrpsz{float}(1.0f, 2.0f, 3.0f)+    val ctx_cfg = futhark_context_config_new()+    val ctx = futhark_context_new(ctx_cfg)+    val fut_arr0 = futhark_new_f32_1d(ctx, arr0, 3)+    val fut_arr1 = futhark_new_f32_1d(ctx, arr1, 3)+    var ret: float+    val _ = futhark_entry_mean_f32(ctx, ret, fut_arr0)+    val () = println!(ret)+    val _ = futhark_entry_dotprod_f32(ctx, ret, fut_arr0, fut_arr1)+    val () = println!(ret)+    val _ = futhark_free_f32_1d(ctx, fut_arr0)+    val _ = futhark_free_f32_1d(ctx, fut_arr1)+    val () = futhark_context_free(ctx)+    val () = futhark_context_config_free(ctx_cfg)+    val () = arrayptr_free(arr0)+    val () = arrayptr_free(arr1)+  }