Changeset 5646 for src/Pugs/CodeGen
- Timestamp:
- 07/17/05 21:22:32 (3 years ago)
- Author:
- iblech
- svk:copy_cache_prev:
- 7648
- Message:
-
* Pugs.Compile -- &infix:<
>(foo, bar) is compiled as &infix:< >(foo,
PThunk(bar)) now.
* Pugs.CodeGen?.PIR -- So Pugs.CodeGen?.PIR doesn't have to do this change, as
Pugs.Compile does it now.
* Pugs.Parser -- Filtered out &infix:<,> from list of user-overridable subs, as
else even basic arglists use &infix:<,> if a &infix:<,> is defined (see
comment).
* PIL2JS: Prelude::JS -- Proper support for
, &&, etc.
* PIL2JS: README -- Minor cleanup.
- Files:
- 1 modified
-
src/Pugs/CodeGen/PIR.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/CodeGen/PIR.hs
r5644 r5646 123 123 _ -> trans fun 124 124 -} 125 argsC <- if isLogicalLazy fun 126 then mapM trans (head args : map PThunk (tail args)) 127 else mapM trans args 125 argsC <- mapM trans args 128 126 -- XXX WORKAROUND PARROT BUG (see below) 129 127 pmc <- genLV "app" … … 142 140 return pmc 143 141 -} 144 where145 -- XXX HACK146 isLogicalLazy (PExp (PVar "&infix:or")) = True147 isLogicalLazy (PExp (PVar "&infix:and")) = True148 isLogicalLazy (PExp (PVar "&infix:||")) = True149 isLogicalLazy (PExp (PVar "&infix:&&")) = True150 isLogicalLazy _ = False151 142 trans (PPad SMy pad exps) = do 152 143 valsC <- mapM trans (map snd pad)
Download in other formats:
