@@ -179,18 +179,18 @@ import Dhall.Import.Types
179
179
import Dhall.Parser (Parser (.. ), ParseError (.. ), Src (.. ), SourcedException (.. ))
180
180
import Lens.Family.State.Strict (zoom )
181
181
182
- import qualified Codec.CBOR.Encoding as Encoding
183
- import qualified Codec.CBOR.Write as Write
182
+ import qualified Codec.CBOR.Encoding as Encoding
183
+ import qualified Codec.CBOR.Write as Write
184
184
import qualified Codec.Serialise
185
- import qualified Control.Monad.Trans.Maybe as Maybe
186
- import qualified Control.Monad.Trans.State.Strict as State
185
+ import qualified Control.Monad.Trans.Maybe as Maybe
186
+ import qualified Control.Monad.Trans.State.Strict as State
187
187
import qualified Data.ByteString
188
188
import qualified Data.ByteString.Lazy
189
189
import qualified Data.CaseInsensitive
190
190
import qualified Data.Foldable
191
- import qualified Data.List.NonEmpty as NonEmpty
191
+ import qualified Data.List.NonEmpty as NonEmpty
192
192
import qualified Data.Text.Encoding
193
- import qualified Data.Text as Text
193
+ import qualified Data.Text as Text
194
194
import qualified Data.Text.IO
195
195
import qualified Dhall.Binary
196
196
import qualified Dhall.Core
@@ -199,11 +199,12 @@ import qualified Dhall.Map
199
199
import qualified Dhall.Parser
200
200
import qualified Dhall.Pretty.Internal
201
201
import qualified Dhall.TypeCheck
202
+ import qualified System.AtomicWrite.Writer.ByteString.Binary as AtomicWrite.Binary
202
203
import qualified System.Environment
203
204
import qualified System.Info
204
205
import qualified System.IO
205
- import qualified System.Directory as Directory
206
- import qualified System.FilePath as FilePath
206
+ import qualified System.Directory as Directory
207
+ import qualified System.FilePath as FilePath
207
208
import qualified Text.Megaparsec
208
209
import qualified Text.Parser.Combinators
209
210
import qualified Text.Parser.Token
@@ -554,7 +555,7 @@ writeToSemanticCache :: Dhall.Crypto.SHA256Digest -> Data.ByteString.ByteString
554
555
writeToSemanticCache hash bytes = do
555
556
_ <- Maybe. runMaybeT $ do
556
557
cacheFile <- getCacheFile " dhall" hash
557
- liftIO (Data.ByteString. writeFile cacheFile bytes)
558
+ liftIO (AtomicWrite.Binary. atomicWriteFile cacheFile bytes)
558
559
return ()
559
560
560
561
-- Check the "semi-semantic" disk cache, otherwise typecheck and normalise from
@@ -669,7 +670,7 @@ writeToSemisemanticCache :: Dhall.Crypto.SHA256Digest -> Data.ByteString.ByteStr
669
670
writeToSemisemanticCache semisemanticHash bytes = do
670
671
_ <- Maybe. runMaybeT $ do
671
672
cacheFile <- getCacheFile " dhall-haskell" semisemanticHash
672
- liftIO (Data.ByteString. writeFile cacheFile bytes)
673
+ liftIO (AtomicWrite.Binary. atomicWriteFile cacheFile bytes)
673
674
return ()
674
675
675
676
-- Fetch source code directly from disk/network
0 commit comments