@@ -119,6 +119,7 @@ import Unison.Prelude
119
119
import Unison.PrettyPrintEnv (PrettyPrintEnv , termName )
120
120
import Unison.Reference (Id , Reference , Reference' (Builtin , DerivedId ), toShortHash )
121
121
import Unison.ReferentPrime qualified as Rfn
122
+ import Unison.Runtime.ANF.POp (POp (.. ))
122
123
import Unison.Runtime.Array qualified as PA
123
124
import Unison.Runtime.Foreign.Function.Type (ForeignFunc (.. ))
124
125
import Unison.Runtime.InternalError (internalBug )
@@ -1468,176 +1469,6 @@ litRef (C _) = Ty.charRef
1468
1469
litRef (LM _) = Ty. termLinkRef
1469
1470
litRef (LY _) = Ty. typeLinkRef
1470
1471
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
-
1641
1472
type ANormal ref = ABTN. Term (ANormalF ref )
1642
1473
1643
1474
type Cte v = CTE v (ANormal Reference v )
0 commit comments