Haskell 更改GHC Monad中的目录
查看ghc软件包文档,我发现此功能:Haskell 更改GHC Monad中的目录,haskell,ghc,ghci,Haskell,Ghc,Ghci,查看ghc软件包文档,我发现此功能: workingDirectoryChanged::GhcMonad m=>m() 通知GHC工作目录已更改。GHC将刷新其模块位置缓存,因为它可能不再有效 注意:在更改工作目录之前,请确保在同一会话中运行的所有线程都已停止。如果更改工作目录,还应卸载当前程序(将目标设置为空,然后是加载) 我需要在更改目录时运行加载的代码和编译表达式。有什么办法/解决办法吗 我能想到的一个解决方案是使用单独的目录,并在调用解释器时将workdir设置为该目录,然后恢复旧的pw
workingDirectoryChanged::GhcMonad m=>m()
通知GHC工作目录已更改。GHC将刷新其模块位置缓存,因为它可能不再有效
注意:在更改工作目录之前,请确保在同一会话中运行的所有线程都已停止。如果更改工作目录,还应卸载当前程序(将目标设置为空,然后是加载)
我需要在更改目录时运行加载的代码和编译表达式。有什么办法/解决办法吗
我能想到的一个解决方案是使用单独的目录,并在调用解释器时将workdir设置为该目录,然后恢复旧的pwd,但我不确定它是否有效,或者这是否是最佳解决方案。也许您应该使用更高级的解决方案,如hint?“我需要在更改目录时运行加载的代码和编译表达式。”-您应该提供一些您希望在这里实现的内容的上下文;细节将决定你如何完成它。@arrowd hint使用GHC Monad,同样的规则应该适用,它们不能满足(我想这是一个罕见的用例)@user2407038我正在将haskell运行时嵌入zsh模块,它将加载和解释haskell代码这是非常广泛的;您希望嵌入什么Haskell代码,以及如何从zsh使用它?换句话说,是否有一个最小的示例,说明您希望编译
x
、更改目录、编译y
,但由于上述限制(其中x和y是具体的程序)而无法工作?(作为一个潜在的解决方案,将x
和y
放入包中,并具有第三个模块z
,该模块依赖于x
和y
,通过构建系统,例如cabal)。也许您应该使用更高级的模块,比如hint?“我需要在更改目录时运行加载的代码和编译表达式。”-您应该提供一些您希望在这里实现的内容的上下文;细节将决定你如何完成它。@arrowd hint使用GHC Monad,同样的规则应该适用,它们不能满足(我想这是一个罕见的用例)@user2407038我正在将haskell运行时嵌入zsh模块,它将加载和解释haskell代码这是非常广泛的;您希望嵌入什么Haskell代码,以及如何从zsh使用它?换句话说,是否有一个最小的示例,说明您希望编译x
、更改目录、编译y
,但由于上述限制(其中x和y是具体的程序)而无法工作?(作为一种可能的解决方案,将x
和y
放入包中,并具有第三个模块z
,该模块依赖于x
和y
,通过构建系统,例如阴谋集团)。