on master help sign in
Support the RTS function idris_time in executor
commitb0e53f810c9e4aee88ded1bd8046a1a8cd264ba5 authorDavid Raymond Christiansen <david@davidchristiansen.dk> dateTue 19 Aug 2014, 17:40 (12 years ago) parentb7316b7
1 file changed+5
src/Idris/Core/Execute.hs+5
src/Idris/Core/Execute.hs+5
@@ -27,6 +27,7 @@ import Control.Monad hiding (forM)
2727import Data.Maybe
2828import Data.Bits
2929import Data.Traversable (forM)
30+import Data.Time.Clock.POSIX (getPOSIXTime)
3031import qualified Data.Map as M
3132
3233#ifdef IDRIS_FFI
@@ -252,6 +253,10 @@ execApp env ctxt (EP _ fp _) (_:fn:_:handle:_:rest)
252253 "The argument to idris_readStr should be a handle, but it was " ++
253254 show handle ++
254255 ". Are all cases covered?"
256+execApp env ctxt (EP _ fp _) (_:fn:rest)
257+ | fp == mkfprim,
258+ Just (FFun "idris_time" _ _) <- foreignFromTT fn
259+ = do execIO $ fmap (ioWrap . EConstant . I . round) getPOSIXTime
255260execApp env ctxt (EP _ fp _) (_:fn:fileStr:modeStr:rest)
256261 | fp == mkfprim,
257262 Just (FFun "fileOpen" _ _) <- foreignFromTT fn