Changeset 3740 for src/Pugs/Prim.hs
- Timestamp:
- 05/23/05 16:57:32 (4 years ago)
- svk:copy_cache_prev:
- 5329
- Files:
-
- 1 modified
-
src/Pugs/Prim.hs (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim.hs
r3739 r3740 27 27 import Pugs.AST 28 28 import Pugs.Types 29 import Pugs.Monads 29 30 import Pugs.Pretty 30 31 import Text.Printf … … 178 179 Just subVal -> do 179 180 sub <- fromVal subVal 180 evl <- asks envEval181 181 sorted <- (`sortByM` valList) $ \v1 v2 -> do 182 rv <- local (\e -> e{ envContext = cxtItem "Int" }) $ do 183 evl (App (Val sub) [Val v1, Val v2] []) 182 rv <- enterEvalContext (cxtItem "Int") $ App (Val sub) [Val v1, Val v2] [] 184 183 int <- fromVal rv 185 184 return (int <= (0 :: Int)) … … 406 405 tid <- liftIO . (if rtsSupportsBoundThreads then forkOS else forkIO) $ do 407 406 val <- runEvalIO env $ do 408 evl <- asks envEval 409 local (\e -> e{ envContext = CxtVoid }) $ do 410 evl (App (Val code) [] []) 407 enterEvalContext CxtVoid $ App (Val code) [] [] 411 408 liftSTM $ tryPutTMVar lock val 412 409 return () … … 827 824 writeIVar (IHash attrs) named 828 825 uniq <- liftIO $ newUnique 829 return . VObject $ MkObject{ objType = typ, objAttrs = attrs, objId = uniq } 826 let obj = VObject $ MkObject{ objType = typ, objAttrs = attrs, objId = uniq } 827 -- Now start calling BUILD for each of parent classes (if defined) 828 829 return obj 830 830 op3 other = \_ _ _ -> fail ("Unimplemented 3-ary op: " ++ other) 831 831 … … 880 880 = doHyper =<< readRef x' 881 881 | otherwise 882 = do 883 evl <- asks envEval 884 local (\e -> e{ envContext = cxtItemAny }) $ do 885 evl (App (Val $ VCode sub) [Val x] []) 882 = enterEvalContext cxtItemAny $ App (Val $ VCode sub) [Val x] [] 886 883 hyperList [] = return [] 887 884 hyperList (x:xs) = do … … 910 907 = fail "Hyper OP only works on lists" 911 908 where 912 doHyper x y = do 913 evl <- asks envEval 914 local (\e -> e{ envContext = cxtItemAny }) $ do 915 evl (App (Val $ VCode sub) [Val x, Val y] []) 909 doHyper x y = enterEvalContext cxtItemAny $ App (Val $ VCode sub) [Val x, Val y] [] 916 910 hyperLists [] [] = return [] 917 911 hyperLists xs [] = return xs
