Changeset 14486 for src/Pugs/Prim.hs

Show
Ignore:
Timestamp:
10/24/06 17:18:47 (2 years ago)
Author:
audreyt
Message:

* Pugs.Prim: Rename "atomically" to "contend" and "retry" to "defer".

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Pugs/Prim.hs

    r14480 r14486  
    106106op0 "chomp"   = const $ return (VList []) 
    107107op0 "fork"    = const $ opPerl5 "fork" [] 
     108op0 "defer"   = const $ do 
     109    env <- ask 
     110    if envAtomic env then guardSTM retry else fail "Cannot call &defer outside a contend block." 
    108111op0 other = const $ fail ("Unimplemented listOp: " ++ other) 
    109112 
     
    289292op1 "Pugs::Internals::eval_haskell" = op1EvalHaskell 
    290293op1 "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 [] 
     294op1 "contend" = \v -> do 
     295    env <- ask 
     296    guardSTM . runEvalSTM env . evalExp $ App (Val v) Nothing [] 
    296297op1 "try" = \v -> do 
    297298    sub <- fromVal v 
     
    19021903\\n   Any       pre     try     safe   (Code)\ 
    19031904\\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   ()\ 
    19051907\\n   Any       pre     Pugs::Internals::eval_perl6    safe   (Str)\ 
    19061908\\n   Any       pre     evalfile     unsafe (Str)\