Skip to content

Commit d1f325e

Browse files
committed
Rename Undefined to NFDataX
We didn't like the name `Undefined` because: 1. We were creating unknown values, not undefined values 2. Also, not the entire value is unkown, just the leafs 3. It also traverses data-structures, without touching unknown values (which throw XExceptions) We went through multiple alternatives: `Unknown`, `Spine`, `SpineX`, `LeafX`, `ClashData`, etc. all somewhat horrible. Ultimately we decided to call it `NFDataX`, because it has some `NFData`-like functionality.
1 parent 9e2e423 commit d1f325e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+295
-295
lines changed

clash-cosim/src/Clash/CoSim/Types.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module Clash.CoSim.Types where
1414
import Data.Data (Data, Typeable)
1515

1616
import Clash.Prelude (BitPack, BitSize, KnownNat)
17-
import Clash.XException (Undefined)
17+
import Clash.XException (NFDataX)
1818

1919
-- | Settings passed to the simulator. Does not affect synthetization.
2020
data CoSimSettings = CoSimSettings
@@ -45,7 +45,7 @@ defaultSettings = CoSimSettings
4545
-- can be simultated.
4646
type ClashType a = ( BitPack a
4747
, KnownNat (BitSize a)
48-
, Undefined a
48+
, NFDataX a
4949
)
5050

5151
-- | Supported simulators

clash-cosim/tests/test.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ tests = testGroup "Inline verilog"
2828
-- "normal" Haskell types.
2929
bin
3030
:: forall t a
31-
. (t ~ Signal System a, Undefined a)
31+
. (t ~ Signal System a, NFDataX a)
3232
=> (t -> t -> t)
3333
-> a
3434
-> a

clash-prelude/clash-prelude.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ test-suite unittests
323323
Clash.Tests.DerivingDataRepr
324324
Clash.Tests.DerivingDataReprTypes
325325
Clash.Tests.Signal
326-
Clash.Tests.Undefined
326+
Clash.Tests.NFDataX
327327

328328

329329
benchmark benchmark-clash-prelude

clash-prelude/src/Clash/Examples.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ data RxReg
195195
, _rx_d1 :: Bit
196196
, _rx_d2 :: Bit
197197
, _rx_busy :: Bool
198-
} deriving (Generic, Undefined)
198+
} deriving (Generic, NFDataX)
199199

200200
makeLenses ''RxReg
201201

@@ -207,7 +207,7 @@ data TxReg
207207
, _tx_out :: Bit
208208
, _tx_cnt :: Unsigned 4
209209
}
210-
deriving (Generic, Undefined)
210+
deriving (Generic, NFDataX)
211211

212212
makeLenses ''TxReg
213213

clash-prelude/src/Clash/Explicit/BlockRam.hs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ import Clash.Sized.Index (Index)
424424
import Clash.Sized.Vector (Vec, replicate, toList, iterateI)
425425
import qualified Clash.Sized.Vector as CV
426426
import Clash.XException
427-
(maybeIsX, seqX, Undefined, deepErrorX, defaultSeqX, errorX)
427+
(maybeIsX, seqX, NFDataX, deepErrorX, defaultSeqX, errorX)
428428

429429
{- $setup
430430
>>> import Clash.Explicit.Prelude as C
@@ -442,7 +442,7 @@ data Reg
442442
| RegC
443443
| RegD
444444
| RegE
445-
deriving (Eq,Show,Enum,C.Generic,Undefined)
445+
deriving (Eq,Show,Enum,C.Generic,NFDataX)
446446
:}
447447
448448
>>> :{
@@ -719,7 +719,7 @@ fromJustX (Just x) = x
719719
blockRam
720720
:: ( KnownDomain dom
721721
, HasCallStack
722-
, Undefined a
722+
, NFDataX a
723723
, Enum addr )
724724
=> Clock dom
725725
-- ^ 'Clock' to synchronize to
@@ -765,7 +765,7 @@ blockRam = \clk gen content rd wrM ->
765765
blockRamPow2
766766
:: ( KnownDomain dom
767767
, HasCallStack
768-
, Undefined a
768+
, NFDataX a
769769
, KnownNat n )
770770
=> Clock dom
771771
-- ^ 'Clock' to synchronize to
@@ -798,7 +798,7 @@ blockRamU
798798
:: forall n dom a r addr
799799
. ( KnownDomain dom
800800
, HasCallStack
801-
, Undefined a
801+
, NFDataX a
802802
, Enum addr
803803
, 1 <= n )
804804
=> Clock dom
@@ -855,7 +855,7 @@ blockRamU#
855855
:: forall n dom a
856856
. ( KnownDomain dom
857857
, HasCallStack
858-
, Undefined a )
858+
, NFDataX a )
859859
=> Clock dom
860860
-- ^ 'Clock' to synchronize to
861861
-> Enable dom
@@ -889,7 +889,7 @@ blockRam1
889889
:: forall n dom a r addr
890890
. ( KnownDomain dom
891891
, HasCallStack
892-
, Undefined a
892+
, NFDataX a
893893
, Enum addr
894894
, 1 <= n )
895895
=> Clock dom
@@ -946,7 +946,7 @@ blockRam1#
946946
:: forall n dom a
947947
. ( KnownDomain dom
948948
, HasCallStack
949-
, Undefined a )
949+
, NFDataX a )
950950
=> Clock dom
951951
-- ^ 'Clock' to synchronize to
952952
-> Enable dom
@@ -975,7 +975,7 @@ blockRam1# clk en n a =
975975
blockRam#
976976
:: ( KnownDomain dom
977977
, HasCallStack
978-
, Undefined a )
978+
, NFDataX a )
979979
=> Clock dom
980980
-- ^ 'Clock' to synchronize to
981981
-> Enable dom
@@ -1022,7 +1022,7 @@ blockRam# (Clock _) gen content rd wen =
10221022
-- | Create read-after-write blockRAM from a read-before-write one
10231023
readNew
10241024
:: ( KnownDomain dom
1025-
, Undefined a
1025+
, NFDataX a
10261026
, Eq addr )
10271027
=> Clock dom
10281028
-> Reset dom

clash-prelude/src/Clash/Explicit/DDR.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ import Clash.Signal.Internal
5656
-- [(X,X),((-1),(-2)),((-3),2),(3,4),(5,6)]
5757
ddrIn
5858
:: ( HasCallStack
59-
, Undefined a
59+
, NFDataX a
6060
, KnownConfiguration fast ('DomainConfiguration fast fPeriod edge reset init polarity)
6161
, KnownConfiguration slow ('DomainConfiguration slow (2*fPeriod) edge reset init polarity) )
6262
=> Clock slow
@@ -79,7 +79,7 @@ ddrIn clk rst en (i0,i1,i2) =
7979
ddrIn#
8080
:: forall a slow fast fPeriod polarity edge reset init
8181
. ( HasCallStack
82-
, Undefined a
82+
, NFDataX a
8383
, KnownConfiguration fast ('DomainConfiguration fast fPeriod edge reset init polarity)
8484
, KnownConfiguration slow ('DomainConfiguration slow (2*fPeriod) edge reset init polarity) )
8585
=> Clock slow
@@ -142,7 +142,7 @@ ddrIn# (Clock _) (unsafeToHighPolarity -> hRst) (fromEnable -> ena) i0 i1 i2 =
142142
-- [-1,-1,-1,2,3,4,5]
143143
ddrOut
144144
:: ( HasCallStack
145-
, Undefined a
145+
, NFDataX a
146146
, KnownConfiguration fast ('DomainConfiguration fast fPeriod edge reset init polarity)
147147
, KnownConfiguration slow ('DomainConfiguration slow (2*fPeriod) edge reset init polarity) )
148148
=> Clock slow
@@ -160,7 +160,7 @@ ddrOut clk rst en i0 =
160160

161161
ddrOut#
162162
:: ( HasCallStack
163-
, Undefined a
163+
, NFDataX a
164164
, KnownConfiguration fast ('DomainConfiguration fast fPeriod edge reset init polarity)
165165
, KnownConfiguration slow ('DomainConfiguration slow (2*fPeriod) edge reset init polarity) )
166166
=> Clock slow

clash-prelude/src/Clash/Explicit/Mealy.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ where
2323

2424
import Clash.Explicit.Signal
2525
(KnownDomain, Bundle (..), Clock, Reset, Signal, Enable, register)
26-
import Clash.XException (Undefined)
26+
import Clash.XException (NFDataX)
2727

2828
{- $setup
2929
>>> :set -XDataKinds -XTypeApplications
@@ -85,7 +85,7 @@ let macT s (x,y) = (s',s)
8585
-- @
8686
mealy
8787
:: ( KnownDomain dom
88-
, Undefined s )
88+
, NFDataX s )
8989
=> Clock dom
9090
-- ^ 'Clock' to synchronize to
9191
-> Reset dom
@@ -132,7 +132,7 @@ mealy clk rst en f iS =
132132
-- @
133133
mealyB
134134
:: ( KnownDomain dom
135-
, Undefined s
135+
, NFDataX s
136136
, Bundle i
137137
, Bundle o )
138138
=> Clock dom

clash-prelude/src/Clash/Explicit/Moore.hs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ where
2525

2626
import Clash.Explicit.Signal
2727
(KnownDomain, Bundle (..), Clock, Reset, Signal, Enable, register)
28-
import Clash.XException (Undefined)
28+
import Clash.XException (NFDataX)
2929

3030
{- $setup
3131
>>> :set -XDataKinds -XTypeApplications
@@ -77,7 +77,7 @@ import Clash.XException (Undefined)
7777
-- @
7878
moore
7979
:: ( KnownDomain dom
80-
, Undefined s )
80+
, NFDataX s )
8181
=> Clock dom
8282
-- ^ 'Clock' to synchronize to
8383
-> Reset dom
@@ -101,7 +101,7 @@ moore clk rst en ft fo iS =
101101
-- a moore machine without any output logic
102102
medvedev
103103
:: ( KnownDomain dom
104-
, Undefined s )
104+
, NFDataX s )
105105
=> Clock dom
106106
-> Reset dom
107107
-> Enable dom
@@ -140,7 +140,7 @@ medvedev clk rst en tr st = moore clk rst en tr id st
140140
-- @
141141
mooreB
142142
:: ( KnownDomain dom
143-
, Undefined s
143+
, NFDataX s
144144
, Bundle i
145145
, Bundle o )
146146
=> Clock dom
@@ -163,7 +163,7 @@ mooreB clk rst en ft fo iS i = unbundle (moore clk rst en ft fo iS (bundle i))
163163
-- | A version of 'medvedev' that does automatic 'Bundle'ing
164164
medvedevB
165165
:: ( KnownDomain dom
166-
, Undefined s
166+
, NFDataX s
167167
, Bundle i
168168
, Bundle s )
169169
=> Clock dom

clash-prelude/src/Clash/Explicit/Prelude.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ import Clash.XException
198198
window
199199
:: ( KnownNat n
200200
, KnownDomain dom
201-
, Undefined a
201+
, NFDataX a
202202
, Default a
203203
)
204204
=> Clock dom
@@ -236,7 +236,7 @@ window clk rst en x = res
236236
-- ...
237237
windowD
238238
:: ( KnownNat n
239-
, Undefined a
239+
, NFDataX a
240240
, Default a
241241
, KnownDomain dom )
242242
=> Clock dom

clash-prelude/src/Clash/Explicit/Prelude/Safe.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ import Clash.XException
165165
-- ...
166166
registerB
167167
:: ( KnownDomain dom
168-
, Undefined a
168+
, NFDataX a
169169
, Bundle a )
170170
=> Clock dom
171171
-> Reset dom
@@ -180,7 +180,7 @@ registerB clk rst en i =
180180
-- | Give a pulse when the 'Signal' goes from 'minBound' to 'maxBound'
181181
isRising
182182
:: ( KnownDomain dom
183-
, Undefined a
183+
, NFDataX a
184184
, Bounded a
185185
, Eq a )
186186
=> Clock dom
@@ -198,7 +198,7 @@ isRising clk rst en is s = liftA2 edgeDetect prev s
198198
-- | Give a pulse when the 'Signal' goes from 'maxBound' to 'minBound'
199199
isFalling
200200
:: ( KnownDomain dom
201-
, Undefined a
201+
, NFDataX a
202202
, Bounded a
203203
, Eq a )
204204
=> Clock dom

0 commit comments

Comments
 (0)