Changeset 3526
- Timestamp:
- 05/20/05 20:10:14 (4 years ago)
- svk:copy_cache_prev:
- 5107
- Location:
- src/Pugs
- Files:
-
- 2 modified
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval.hs
r3524 r3526 400 400 munge sub = updateSubPad sub symLast 401 401 runBody elms $ munge sub 402 "gather" -> do 403 let [exp] = exps 404 sub <- fromVal =<< evalExp exp 405 av <- newArray [] 406 symTake <- genSym "@?TAKE" (MkRef av) 407 apply (updateSubPad sub symTake) [] [] 408 fmap VList $ readIVar av 402 409 "loop" -> do 403 410 let [pre, cond, post, body] = case exps of { [_] -> exps'; _ -> exps } -
src/Pugs/Prim.hs
r3524 r3526 28 28 import Pugs.Types 29 29 import Pugs.Pretty 30 import Pugs.Monads31 30 import Text.Printf 32 31 import Pugs.External … … 464 463 op1 "matches" = op1Cast (VList . matchSubPos) 465 464 op1 "gather" = \v -> do 466 av <- newArray []467 465 evl <- asks envEval 468 symTake <- genSym "@?TAKE" (MkRef av) 469 enterLex [symTake] $ evl (App (Val v) [] []) 470 fmap VList $ readIVar av 466 evl (Syn "gather" [Val v]) 471 467 op1 "Thread::yield" = const $ do 472 468 ok <- tryIO False $ do { yield ; return True }
