gpt4 book ai didi

haskell - 嵌入文件更改后的 Cabal 重建

转载 作者:行者123 更新时间:2023-12-02 16:47:03 26 4
gpt4 key购买 nike

我正在使用file-embed如此封装:

import qualified Data.ByteString as B
import qualified Data.ByteString.Internal as B (w2c)
import qualified Data.FileEmbed as E

initWindow = do
b <- Gtk.builderNew
let glade = map B.w2c $ B.unpack $ $(E.embedFile "window.glade") in
Gtk.builderAddFromString b glade
...

即使只有林间空地文件发生变化,是否也可以让 cabal 重建此文件?

最佳答案

GHC 7.4/7.6 中将/已经添加对此的支持。问题是编译器还不允许 TemplateHaskell 拼接添加文件依赖项。请参阅this ticket了解更多信息。

此更改生效后,您可以使用以下代码创建新的 embedFile' 函数:

import Data.FileEmbed

import Language.Haskell.TH.Syntax
import Language.Haskell.TH.Lib

embedFile' :: FilePath -> Q Exp
embedFile' path = do
qAddDependentFile path
embedFile path

这必须位于与使用 TH 函数的单独模块中。

关于haskell - 嵌入文件更改后的 Cabal 重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8570555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com