小编Sau*_*nda的帖子

直接从 git 存储库安装 Haskell 包?

stack允许使用该stack.yaml文件将 git 存储库定义为包。是否可以直接通过命令行执行以下操作:

stack install --resolver=lts-12.1 git@github.com:saurabhnanda/some-repo.git
Run Code Online (Sandbox Code Playgroud)

用例:安装我在docker构建过程中编写的命令行工具。我想避免克隆 repo然后构建它。这有简写吗?

haskell haskell-stack

7
推荐指数
1
解决办法
221
查看次数

如何正确设置 docker 的交换/内存限制?

我运行了一个 docker 容器,并-m 1800m收到了与内存交换功能等相关的警告(我忘记了确切的警告,因为我现在没有看到它)。这是我在互联网上发现的类似警告:

警告:您的内核不支持内存交换功能,内存交换被丢弃。

经过一番谷歌搜索后,我找到了check-config脚本来检查我的系统/内核是否设置为正确运行 Docker。大多数内容被报告为“绿色”,但以下内容被报告为“红色”:

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: missing <===== 

- CONFIG_RT_GROUP_SCHED: missing <=====

  - "zfs":
    - /dev/zfs: missing <==== 
    - zfs command: missing <==== 
    - zpool command: missing <==== 
Run Code Online (Sandbox Code Playgroud)

更多谷歌搜索让我找到了这篇文章。我按照那里给出的说明进行操作,并将以下参数附加到 grub 配置/命令行后重新启动了内核:

cgroup_enable=memory swapaccount=1
Run Code Online (Sandbox Code Playgroud)

现在,当我运行 docker 命令时,-m 1800m我没有看到该警告,这很好。然而check-config脚本仍然以红色显示相同的内容!这很令人困惑。check-config脚本没有报告正确的事情吗?我的系统仍然没有正确设置吗?docker 命令是否仅显示一次警告?

在将服务器部署到生产环境之前,如何确保已正确设置?

docker

6
推荐指数
0
解决办法
1712
查看次数

构建haddocks时如何排除依赖关系?

有没有办法为特定的包构建 haddock 文档?我正在尝试单独为我的包/应用程序构建 haddocks,但以下命令似乎也为所有依赖项执行此操作:

stack haddock webservice
Run Code Online (Sandbox Code Playgroud)

webservice我的包/应用程序的名称在哪里)

haskell haddock haskell-stack

6
推荐指数
1
解决办法
470
查看次数

如何使用Yesod-Persistent记录语法

以下为什么不工作?我有点知道,有很多去引擎盖下和User类型可能不真的有email,createdAtupdatedAt领域.什么是不使用位置参数实例化对象的最佳方法,这很容易失控?

share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
User
  email String
  createdAt UTCTime Maybe default=CURRENT_TIME
  updatedAt UTCTime Maybe default=CURRENT_TIME
  deriving Show
]]

main :: IO ()
main = runSqlite ":memory:" $ do
  runMigration migrateAll
  u <- insert $ User {email="saurabhnanda@gmail.com" createdAt=Nothing updatedAt=Nothing}
Run Code Online (Sandbox Code Playgroud)

编译错误:

trysql.hs:38:23:
    ‘email’ is not a (visible) field of constructor ‘User’

trysql.hs:38:55:
    ‘createdAt’ is not a (visible) field of constructor ‘User’

trysql.hs:38:74:
    ‘updatedAt’ is not a (visible) field of constructor ‘User’
Run Code Online (Sandbox Code Playgroud)

haskell yesod

5
推荐指数
1
解决办法
136
查看次数

如何为具有类型族的记录派生实例

这是我正在尝试但无法编译的内容:

{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE FlexibleInstances #-}

import Data.Text as T
import Data.Int (Int64)

type family Incoming validationResult baseType
type instance Incoming Validated baseType = baseType
type instance Incoming ValidationErrors baseType = Either [T.Text] baseType

data Validated
data ValidationErrors

data Tag = Tag {unTag :: T.Text} deriving (Eq, Show)

data NewTag f = NewTag
  {
    ntClientId :: Incoming f Int64
  , ntTag :: Incoming f Tag
  }

deriving instance (Show baseType) => Show (Incoming …
Run Code Online (Sandbox Code Playgroud)

haskell type-families deriving

5
推荐指数
1
解决办法
641
查看次数

如何在使用堆栈构建时显示进度条?

当堆栈正在构建项目的大型组件时,有什么方法可以在终端上显示进度条?目前,该Progress n/m显示仅在封装级别起作用。如果可能的话,我正在寻找包+模块级别的东西。

haskell haskell-stack

5
推荐指数
0
解决办法
129
查看次数

通过 gcloud 命令行工具触发特定 git 提交的构建

我遇到的所有示例都采用以下格式:

gcloud container builds submit --config cloudbuild.yaml .
Run Code Online (Sandbox Code Playgroud)

手册页说明如下:

 [SOURCE]
    The source directory on local disk or tarball in Google Cloud Storage
    or disk to use for this build. If source is a local directory this
    command skips files specified in the .gcloudignore file (see $ gcloud
    topic gcloudignore for more information).
Run Code Online (Sandbox Code Playgroud)

现在,我本地磁盘上的源目录非常大,并且花费了大量时间将源代码从我的本地机器传输到 Google 构建服务器/云。是否有以下可能?如何?

  • 提供一个 git/github URL 而不是本地源目录
  • 我的 git-repo 也顺便反映在 Google Source Repository 中,因为我为我的 repo 设置了构建触发器。我可以提供 Google 镜像的存储库的 URL 吗?

google-cloud-platform google-kubernetes-engine google-container-registry

5
推荐指数
1
解决办法
1192
查看次数

使用"foreign"作为变量/绑定名称时的行为不一致

我正在尝试从源代码编译Elm编译器并遇到一个奇怪的问题.我已stack build成功通过成功构建它.但是,当我尝试stack ghci在许多foreign已被用作变量/绑定名称的地方失败时.例如:

/Users/saurabhnanda/projects/compiler/builder/src/File/Compile.hs:142:50: error:
    parse error on input ‘foreign’
    |
142 | makeImports project (Plan.Info _ _ _ clean dirty foreign) =
    |                                                  ^^^^^^^
Failed, 141 modules loaded.
Run Code Online (Sandbox Code Playgroud)

它似乎foreign确实是一个保留的关键字.是什么解释了这种行为,即工作stack build但是抛出一个解析错误stack ghci

haskell elm

5
推荐指数
1
解决办法
149
查看次数

如何为带有幻像类型变量的新类型定义MonadUnliftIO实例?

相关问题- 派生MonadThrow,MonadCatch,MonadBaseControl,MonadUnliftIO等是否安全?-我在那里启动,这- DeriveAnyClass并且GeneralizedNewtypeDeriving 让代码编译,但没有打扰看不祥的警告。现在,我正在运行重构的代码,它会引发运行时错误:

No instance nor default method for class operation >>=
Run Code Online (Sandbox Code Playgroud)

因此,我DeriveAnyClass仅删除并保留GeneralizedNewtypeDeriving了以下编译错误:

{-# LANGUAGE DataKinds, GADTs, ScopedTypeVariables, TypeFamilies, AllowAmbiguousTypes, RankNTypes, StandaloneDeriving, UndecidableInstances #-}

newtype AuthM (fs :: [FeatureFlag]) auth m a =
  AuthM (ReaderT (Auth auth) m a)
  deriving (Functor, Applicative, Monad, MonadReader (Auth auth), MonadIO, MonadThrow, MonadCatch, MonadMask, MonadUnliftIO)


--     • Couldn't match representation of type ‘m (Control.Monad.IO.Unlift.UnliftIO
--                                                   (AuthM fs auth m))’
--                                with that of ‘m (Control.Monad.IO.Unlift.UnliftIO
-- …
Run Code Online (Sandbox Code Playgroud)

haskell monad-transformers deriving newtype

5
推荐指数
1
解决办法
114
查看次数

在大型 Pandoc 中高效搜索单个元素

除非我遗漏了一些东西,否则似乎只有两种方法可以“遍历”Pandoc数据结构:

  1. 手动模式匹配BlockInline构造函数
  2. 通过Walkabletype-class和相关的效用函数

使用Walkable类型类,是否有一种有效的方法来搜索第一个匹配元素(最好以广度优先的方式),并在找到后立即停止遍历?在我看来,无论如何,围绕Walkable类型类的所有函数都将遍历整个数据结构。

如果没有,我想唯一的方法是对BlockInline构造函数进行模式匹配并自行构建。

haskell pandoc

5
推荐指数
1
解决办法
117
查看次数