@@ -119,6 +119,7 @@ import Unison.Prelude
119119import Unison.PrettyPrintEnv (PrettyPrintEnv , termName )
120120import Unison.Reference (Id , Reference , Reference' (Builtin , DerivedId ), toShortHash )
121121import Unison.ReferentPrime qualified as Rfn
122+ import Unison.Runtime.ANF.POp (POp (.. ))
122123import Unison.Runtime.Array qualified as PA
123124import Unison.Runtime.Foreign.Function.Type (ForeignFunc (.. ))
124125import Unison.Runtime.InternalError (internalBug )
@@ -1468,176 +1469,6 @@ litRef (C _) = Ty.charRef
14681469litRef (LM _) = Ty. termLinkRef
14691470litRef (LY _) = Ty. typeLinkRef
14701471
1471- -- Note: Enum/Bounded instances should only be used for things like
1472- -- getting a list of all ops. Using auto-generated numberings for
1473- -- serialization, for instance, could cause observable changes to
1474- -- formats that we want to control and version.
1475- data POp
1476- = -- Int
1477- ADDI -- +
1478- | SUBI -- -
1479- | MULI
1480- | DIVI -- /
1481- | SGNI -- sgn
1482- | NEGI -- neg
1483- | MODI -- mod
1484- | POWI -- pow
1485- | SHLI -- shiftl
1486- | SHRI -- shiftr
1487- | ANDI -- and
1488- | IORI -- or
1489- | XORI -- xor
1490- | COMI -- complement
1491- | INCI -- inc
1492- | DECI -- dec
1493- | LEQI -- <=
1494- | LESI -- <
1495- | EQLI -- ==
1496- | NEQI -- !=
1497- | TRNC -- truncate0
1498- -- Nat
1499- | ADDN -- +
1500- | SUBN -- -
1501- | DRPN -- drop
1502- | MULN
1503- | DIVN -- /
1504- | MODN -- mod
1505- | TZRO -- trailingZeros
1506- | LZRO -- leadingZeros
1507- | POPC -- popCount
1508- | POWN -- pow
1509- | SHLN -- shiftl
1510- | SHRN -- shiftr
1511- | ANDN -- and
1512- | IORN -- or
1513- | XORN -- xor
1514- | COMN -- complement
1515- | INCN -- inc
1516- | DECN -- dec
1517- | LEQN -- <=
1518- | LESN -- <
1519- | EQLN -- ==
1520- | NEQN -- !=
1521- -- Float
1522- | ADDF -- +
1523- | SUBF -- -
1524- | MULF
1525- | DIVF -- /
1526- | MINF -- min
1527- | MAXF -- max
1528- | LEQF -- <=
1529- | LESF -- <
1530- | EQLF -- ==
1531- | NEQF -- !=
1532- | POWF -- pow
1533- | EXPF -- exp
1534- | SQRT -- sqrt
1535- | LOGF -- log
1536- | LOGB -- logBase
1537- | ABSF -- abs
1538- | CEIL -- ceil
1539- | FLOR -- floor
1540- | TRNF -- truncate
1541- | RNDF -- round
1542- -- Trig
1543- | COSF -- cos
1544- | ACOS -- acos
1545- | COSH -- cosh
1546- | ACSH -- acosh
1547- | SINF -- sin
1548- | ASIN -- asin
1549- | SINH -- sinh
1550- | ASNH -- asinh
1551- | TANF -- tan
1552- | ATAN -- atan
1553- | TANH -- tanh
1554- | ATNH -- atanh
1555- | ATN2 -- atan2
1556- -- Text
1557- | CATT -- ++
1558- | TAKT -- take
1559- | DRPT -- drop
1560- | SIZT -- size
1561- | IXOT -- indexOf
1562- | UCNS -- uncons
1563- | USNC -- unsnoc
1564- | EQLT -- ==
1565- | LEQT -- <=
1566- | PAKT -- pack
1567- | UPKT -- unpack
1568- -- Sequence
1569- | CATS -- ++
1570- | TAKS -- take
1571- | DRPS -- drop
1572- | SIZS -- size
1573- | CONS -- cons
1574- | SNOC -- snoc
1575- | IDXS -- at
1576- | BLDS -- build
1577- | VWLS -- viewl
1578- | VWRS -- viewr
1579- | SPLL -- splitl
1580- | SPLR -- splitr
1581- -- Bytes
1582- | PAKB -- pack
1583- | UPKB -- unpack
1584- | TAKB -- take
1585- | DRPB -- drop
1586- | IXOB -- indexOf
1587- | IDXB -- index
1588- | SIZB -- size
1589- | FLTB -- flatten
1590- | CATB -- append
1591- -- Conversion
1592- | ITOF -- intToFloat
1593- | NTOF -- natToFloat
1594- | ITOT -- intToText
1595- | NTOT -- natToText
1596- | TTOI -- textToInt
1597- | TTON -- textToNat
1598- | TTOF -- textToFloat
1599- | FTOT -- floatToText
1600- | CAST -- runtime type cast for unboxed values.
1601- | -- Concurrency
1602- FORK -- fork
1603- | -- Universal operations
1604- EQLU -- ==
1605- | CMPU -- compare
1606- | LEQU -- <=
1607- | LESU -- <
1608- | EROR -- error
1609- | -- Code
1610- MISS -- isMissing
1611- | CACH -- cache_
1612- | LKUP -- lookup
1613- | LOAD -- load
1614- | CVLD -- validate
1615- | SDBX -- sandbox
1616- | VALU -- value
1617- | TLTT -- Term.Link.toText
1618- -- Debug
1619- | PRNT -- print
1620- | INFO -- info
1621- | TRCE -- trace
1622- | DBTX -- debugText
1623- | -- STM
1624- ATOM -- atomically
1625- | TFRC -- try force
1626- | SDBL -- sandbox link list
1627- | SDBV -- sandbox check for Values
1628- -- Refs
1629- | REFN -- Ref.new
1630- | REFR -- Ref.read
1631- | REFW -- Ref.write
1632- | RCAS -- Ref.cas
1633- | RRFC -- Ref.readForCas
1634- | TIKR -- Ref.Ticket.read
1635- -- Bools
1636- | NOTB -- not
1637- | ANDB -- and
1638- | IORB -- or
1639- deriving (Show , Eq , Ord , Enum , Bounded )
1640-
16411472type ANormal ref = ABTN. Term (ANormalF ref )
16421473
16431474type Cte v = CTE v (ANormal Reference v )
0 commit comments