Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Args'
- data Args
- data RefNums = RN {}
- data MLit
- data GInstr comb
- = UPrim1 !UPrim1 !Int
- | UPrim2 !UPrim2 !Int !Int
- | BPrim1 !BPrim1 !Int
- | BPrim2 !BPrim2 !Int !Int
- | ForeignCall !Bool !Word64 !Args
- | SetDyn !Word64 !Int
- | Capture !Word64
- | Name !(GRef comb) !Args
- | Info !String
- | Pack !Reference !Word64 !Args
- | Unpack !(Maybe Reference) !Int
- | Lit !MLit
- | BLit !Reference !Word64 !MLit
- | Print !Int
- | Reset !(EnumSet Word64)
- | Fork !Int
- | Atomically !Int
- | Seq !Args
- | TryForce !Int
- type Instr = GInstr CombIx
- type RInstr = GInstr RComb
- data GSection comb where
- App !Bool !(GRef comb) !Args
- Call !Bool !comb !Args
- Jump !Int !Args
- Match !Int !(GBranch comb)
- Yield !Args
- Ins !(GInstr comb) !(GSection comb)
- Let !(GSection comb) !comb
- Die String
- Exit
- DMatch !(Maybe Reference) !Int !(GBranch comb)
- NMatch !(Maybe Reference) !Int !(GBranch comb)
- RMatch !Int !(GSection comb) !(EnumMap Word64 (GBranch comb))
- pattern MatchT :: Int -> GSection comb -> Map Text (GSection comb) -> GSection comb
- pattern MatchW :: Int -> GSection comb -> EnumMap Word64 (GSection comb) -> GSection comb
- type RSection = GSection RComb
- type Section = GSection CombIx
- data GComb comb = Lam !Int !Int !Int !Int !(GSection comb)
- type Comb = GComb CombIx
- data RComb = RComb {}
- pattern RCombIx :: CombIx -> RComb
- pattern RCombRef :: Reference -> RComb
- rCombToComb :: RComb -> Comb
- type GCombs comb = EnumMap Word64 (GComb comb)
- type Combs = GCombs CombIx
- type RCombs = GCombs RComb
- data CombIx = CIx !Reference !Word64 !Word64
- data GRef comb
- type RRef = GRef RComb
- type Ref = GRef CombIx
- data UPrim1
- data UPrim2
- data BPrim1
- data BPrim2
- data GBranch comb
- type Branch = GBranch CombIx
- type RBranch = GBranch RComb
- bcount :: Args -> Int
- ucount :: Args -> Int
- emitCombs :: Var v => RefNums -> Reference -> Word64 -> SuperGroup v -> EnumMap Word64 Comb
- emitComb :: Var v => RefNums -> Reference -> Word64 -> RCtx v -> (Word64, SuperNormal v) -> EnumMap Word64 Comb
- resolveCombs :: Maybe (EnumMap Word64 RCombs) -> EnumMap Word64 Combs -> EnumMap Word64 RCombs
- emptyRNs :: RefNums
- argsToLists :: Args -> ([Int], [Int])
- combRef :: CombIx -> Reference
- rCombRef :: RComb -> Reference
- combDeps :: Comb -> [Word64]
- combTypes :: Comb -> [Word64]
- prettyCombs :: Word64 -> EnumMap Word64 Comb -> ShowS
- prettyComb :: Word64 -> Word64 -> Comb -> ShowS
Documentation
ZArgs | |
UArg1 !Int | |
UArg2 !Int !Int | |
BArg1 !Int | |
BArg2 !Int !Int | |
DArg2 !Int !Int | |
UArgR !Int !Int | |
BArgR !Int !Int | |
DArgR !Int !Int !Int !Int | |
BArgN !(PrimArray Int) | |
UArgN !(PrimArray Int) | |
DArgN !(PrimArray Int) !(PrimArray Int) | |
DArgV !Int !Int |
UPrim1 !UPrim1 !Int | |
UPrim2 !UPrim2 !Int !Int | |
BPrim1 !BPrim1 !Int | |
BPrim2 !BPrim2 !Int !Int | |
ForeignCall !Bool !Word64 !Args | |
SetDyn !Word64 !Int | |
Capture !Word64 | |
Name !(GRef comb) !Args | |
Info !String | |
Pack !Reference !Word64 !Args | |
Unpack !(Maybe Reference) !Int | |
Lit !MLit | |
BLit !Reference !Word64 !MLit | |
Print !Int | |
Reset !(EnumSet Word64) | |
Fork !Int | |
Atomically !Int | |
Seq !Args | |
TryForce !Int |
Instances
Foldable GInstr Source # | |
Defined in Unison.Runtime.MCode fold :: Monoid m => GInstr m -> m # foldMap :: Monoid m => (a -> m) -> GInstr a -> m # foldMap' :: Monoid m => (a -> m) -> GInstr a -> m # foldr :: (a -> b -> b) -> b -> GInstr a -> b # foldr' :: (a -> b -> b) -> b -> GInstr a -> b # foldl :: (b -> a -> b) -> b -> GInstr a -> b # foldl' :: (b -> a -> b) -> b -> GInstr a -> b # foldr1 :: (a -> a -> a) -> GInstr a -> a # foldl1 :: (a -> a -> a) -> GInstr a -> a # elem :: Eq a => a -> GInstr a -> Bool # maximum :: Ord a => GInstr a -> a # minimum :: Ord a => GInstr a -> a # | |
Traversable GInstr Source # | |
Functor GInstr Source # | |
Show comb => Show (GInstr comb) Source # | |
Eq comb => Eq (GInstr comb) Source # | |
Ord comb => Ord (GInstr comb) Source # | |
Defined in Unison.Runtime.MCode |
App !Bool !(GRef comb) !Args | |
Call !Bool !comb !Args | |
Jump !Int !Args | |
Match !Int !(GBranch comb) | |
Yield !Args | |
Ins !(GInstr comb) !(GSection comb) | |
Let !(GSection comb) !comb | |
Die String | |
Exit | |
DMatch !(Maybe Reference) !Int !(GBranch comb) | |
NMatch !(Maybe Reference) !Int !(GBranch comb) | |
RMatch !Int !(GSection comb) !(EnumMap Word64 (GBranch comb)) |
pattern MatchT :: Int -> GSection comb -> Map Text (GSection comb) -> GSection comb | |
pattern MatchW :: Int -> GSection comb -> EnumMap Word64 (GSection comb) -> GSection comb |
Instances
Foldable GSection Source # | |
Defined in Unison.Runtime.MCode fold :: Monoid m => GSection m -> m # foldMap :: Monoid m => (a -> m) -> GSection a -> m # foldMap' :: Monoid m => (a -> m) -> GSection a -> m # foldr :: (a -> b -> b) -> b -> GSection a -> b # foldr' :: (a -> b -> b) -> b -> GSection a -> b # foldl :: (b -> a -> b) -> b -> GSection a -> b # foldl' :: (b -> a -> b) -> b -> GSection a -> b # foldr1 :: (a -> a -> a) -> GSection a -> a # foldl1 :: (a -> a -> a) -> GSection a -> a # elem :: Eq a => a -> GSection a -> Bool # maximum :: Ord a => GSection a -> a # minimum :: Ord a => GSection a -> a # | |
Traversable GSection Source # | |
Functor GSection Source # | |
Show comb => Show (GSection comb) Source # | |
Eq comb => Eq (GSection comb) Source # | |
Ord comb => Ord (GSection comb) Source # | |
Defined in Unison.Runtime.MCode compare :: GSection comb -> GSection comb -> Ordering # (<) :: GSection comb -> GSection comb -> Bool # (<=) :: GSection comb -> GSection comb -> Bool # (>) :: GSection comb -> GSection comb -> Bool # (>=) :: GSection comb -> GSection comb -> Bool # |
Instances
Foldable GComb Source # | |
Defined in Unison.Runtime.MCode fold :: Monoid m => GComb m -> m # foldMap :: Monoid m => (a -> m) -> GComb a -> m # foldMap' :: Monoid m => (a -> m) -> GComb a -> m # foldr :: (a -> b -> b) -> b -> GComb a -> b # foldr' :: (a -> b -> b) -> b -> GComb a -> b # foldl :: (b -> a -> b) -> b -> GComb a -> b # foldl' :: (b -> a -> b) -> b -> GComb a -> b # foldr1 :: (a -> a -> a) -> GComb a -> a # foldl1 :: (a -> a -> a) -> GComb a -> a # elem :: Eq a => a -> GComb a -> Bool # maximum :: Ord a => GComb a -> a # minimum :: Ord a => GComb a -> a # | |
Traversable GComb Source # | |
Functor GComb Source # | |
Show comb => Show (GComb comb) Source # | |
Eq comb => Eq (GComb comb) Source # | |
Ord comb => Ord (GComb comb) Source # | |
The fixed point of a GComb where all references to a Comb are themselves Combs.
Instances
Show RComb Source # | RCombs can be infinitely recursive so we show the CombIx instead. |
Eq RComb Source # | |
Ord RComb Source # | |
ForeignConvention (Ticket RClosure) Source # | |
ForeignConvention (TVar RClosure) Source # | |
ForeignConvention (IORef RClosure) Source # | |
ForeignConvention (MVar RClosure) Source # | |
ForeignConvention (Array RClosure) Source # | |
ForeignConvention (Promise RClosure) Source # | |
ForeignConvention (MutableArray s RClosure) Source # | |
rCombToComb :: RComb -> Comb Source #
Convert an RComb to a Comb by forgetting the sections and keeping only the CombIx.
type GCombs comb = EnumMap Word64 (GComb comb) Source #
Map of combinators, parameterized by comb reference type
Instances
Foldable GRef Source # | |
Defined in Unison.Runtime.MCode fold :: Monoid m => GRef m -> m # foldMap :: Monoid m => (a -> m) -> GRef a -> m # foldMap' :: Monoid m => (a -> m) -> GRef a -> m # foldr :: (a -> b -> b) -> b -> GRef a -> b # foldr' :: (a -> b -> b) -> b -> GRef a -> b # foldl :: (b -> a -> b) -> b -> GRef a -> b # foldl' :: (b -> a -> b) -> b -> GRef a -> b # foldr1 :: (a -> a -> a) -> GRef a -> a # foldl1 :: (a -> a -> a) -> GRef a -> a # elem :: Eq a => a -> GRef a -> Bool # maximum :: Ord a => GRef a -> a # | |
Traversable GRef Source # | |
Functor GRef Source # | |
Show comb => Show (GRef comb) Source # | |
Eq comb => Eq (GRef comb) Source # | |
Ord comb => Ord (GRef comb) Source # | |
Defined in Unison.Runtime.MCode |
DECI | |
INCI | |
NEGI | |
SGNI | |
LZRO | |
TZRO | |
COMN | |
POPC | |
ABSF | |
EXPF | |
LOGF | |
SQRT | |
COSF | |
ACOS | |
COSH | |
ACSH | |
SINF | |
ASIN | |
SINH | |
ASNH | |
TANF | |
ATAN | |
TANH | |
ATNH | |
ITOF | |
NTOF | |
CEIL | |
FLOR | |
TRNF | |
RNDF |
ADDI | |
SUBI | |
MULI | |
DIVI | |
MODI | |
DIVN | |
MODN | |
SHLI | |
SHRI | |
SHRN | |
POWI | |
EQLI | |
LEQI | |
LEQN | |
ANDN | |
IORN | |
XORN | |
EQLF | |
LEQF | |
ADDF | |
SUBF | |
MULF | |
DIVF | |
ATN2 | |
POWF | |
LOGB | |
MAXF | |
MINF |
SIZT | |
USNC | |
UCNS | |
ITOT | |
NTOT | |
FTOT | |
TTOI | |
TTON | |
TTOF | |
PAKT | |
UPKT | |
VWLS | |
VWRS | |
SIZS | |
PAKB | |
UPKB | |
SIZB | |
FLTB | |
MISS | |
CACH | |
LKUP | |
LOAD | |
CVLD | |
VALU | |
TLTT | |
DBTX | |
SDBL |
EQLU | |
CMPU | |
DRPT | |
CATT | |
TAKT | |
IXOT | |
EQLT | |
LEQT | |
LEST | |
DRPS | |
CATS | |
TAKS | |
CONS | |
SNOC | |
IDXS | |
SPLL | |
SPLR | |
TAKB | |
DRPB | |
IDXB | |
CATB | |
IXOB | |
THRO | |
TRCE | |
SDBX | |
SDBV |
Test1 !Word64 !(GSection comb) !(GSection comb) | |
Test2 !Word64 !(GSection comb) !Word64 !(GSection comb) !(GSection comb) | |
TestW !(GSection comb) !(EnumMap Word64 (GSection comb)) | |
TestT !(GSection comb) !(Map Text (GSection comb)) |
Instances
Foldable GBranch Source # | |
Defined in Unison.Runtime.MCode fold :: Monoid m => GBranch m -> m # foldMap :: Monoid m => (a -> m) -> GBranch a -> m # foldMap' :: Monoid m => (a -> m) -> GBranch a -> m # foldr :: (a -> b -> b) -> b -> GBranch a -> b # foldr' :: (a -> b -> b) -> b -> GBranch a -> b # foldl :: (b -> a -> b) -> b -> GBranch a -> b # foldl' :: (b -> a -> b) -> b -> GBranch a -> b # foldr1 :: (a -> a -> a) -> GBranch a -> a # foldl1 :: (a -> a -> a) -> GBranch a -> a # elem :: Eq a => a -> GBranch a -> Bool # maximum :: Ord a => GBranch a -> a # minimum :: Ord a => GBranch a -> a # | |
Traversable GBranch Source # | |
Functor GBranch Source # | |
Show comb => Show (GBranch comb) Source # | |
Eq comb => Eq (GBranch comb) Source # | |
Ord comb => Ord (GBranch comb) Source # | |
Defined in Unison.Runtime.MCode |
emitCombs :: Var v => RefNums -> Reference -> Word64 -> SuperGroup v -> EnumMap Word64 Comb Source #
emitComb :: Var v => RefNums -> Reference -> Word64 -> RCtx v -> (Word64, SuperNormal v) -> EnumMap Word64 Comb Source #