Changeset 14486 for src/Pugs/Prim.hs
- Timestamp:
- 10/24/06 17:18:47 (2 years ago)
- Files:
-
- 1 modified
-
src/Pugs/Prim.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Prim.hs
r14480 r14486 106 106 op0 "chomp" = const $ return (VList []) 107 107 op0 "fork" = const $ opPerl5 "fork" [] 108 op0 "defer" = const $ do 109 env <- ask 110 if envAtomic env then guardSTM retry else fail "Cannot call &defer outside a contend block." 108 111 op0 other = const $ fail ("Unimplemented listOp: " ++ other) 109 112 … … 289 292 op1 "Pugs::Internals::eval_haskell" = op1EvalHaskell 290 293 op1 "Pugs::Internals::eval_yaml" = evalYaml 291 op1 "atomically" = \v -> do 292 genSymPrim "&retry" (const $ guardSTM retry) $ \symRetry -> do 293 enterLex [symRetry] $ do 294 env <- ask 295 guardSTM . runEvalSTM env . evalExp $ App (Val v) Nothing [] 294 op1 "contend" = \v -> do 295 env <- ask 296 guardSTM . runEvalSTM env . evalExp $ App (Val v) Nothing [] 296 297 op1 "try" = \v -> do 297 298 sub <- fromVal v … … 1902 1903 \\n Any pre try safe (Code)\ 1903 1904 \\n Any pre lazy safe (Code)\ 1904 \\n Any pre atomically safe (Code)\ 1905 \\n Any pre contend safe (Code)\ 1906 \\n Void pre defer safe ()\ 1905 1907 \\n Any pre Pugs::Internals::eval_perl6 safe (Str)\ 1906 1908 \\n Any pre evalfile unsafe (Str)\
