小编jbe*_*man的帖子

将git post-commit挂钩应用于所有当前和未来的repos

我写了一个Git post-commit钩子,它工作正常.但是,我想添加此钩子以应用于我正在处理的所有当前(和将来)git存储库.我尝试将钩子添加到我~/.git/hooks/而不是项目目录中的hooks目录中,但是,这似乎不起作用.

有没有办法创建将应用于我的系统上的所有存储库的全局Git挂钩(无需将它们复制到每个项目目录中)?如果没有,那么最好的解决方案是什么 - 也许是一个git-init模板?

git hook githooks

266
推荐指数
4
解决办法
7万
查看次数

我的阴谋包是FUBAR; 我怎样才能清除它们并重新开始?

~/.cabal/config在新机器上安装一堆软件包之前,我忘了启用构建库来进行性能分析,而现在--reinstall world尝试修复这种情况已经让一切都破坏了(自然).

我认为这是更好地利用我的时间来清除一切.我该怎么做?

haskell cabal

63
推荐指数
2
解决办法
1万
查看次数

如何在新的cabal 1.17沙箱中使用GHCi?

我一直在试用cabal head,它支持类似于cabal-dev的沙箱.但是,目前还没有支持cabal-dev ghci等效的,并且显然没有为下一个版本提供支持.

我是否可以使用一些咒语来解决这个问题并得到类似的东西cabal-dev ghci

haskell cabal

39
推荐指数
1
解决办法
6723
查看次数

我在哪里可以了解#ifdef?

我看到这经常用于使模块与GHC和Hugs兼容,但谷歌并没有帮助我更多地了解它.

我可以在条件中加入什么?我可以根据正在使用的"基础"版本来制作模块的一部分吗?

编辑3/2017:这是一个很好的资源:https://guide.aelve.com/haskell/cpp-vww0qd72

haskell ghc c-preprocessor

35
推荐指数
3
解决办法
8500
查看次数

简单的Haskell循环

我刚刚开始学习Haskell,但是现在没有循环是无限令人沮丧的.我想出了如何为函数编写循环.然而,我的问题是我想在迭代循环时输出一些结果.似乎我必须使用debug来执行这个简单的任务.

所以现在我只想了解如何在主结构中打印10次字符串的示例.

换句话说,我想这样做10次:

main = do  
    putStrLn "a string" 
Run Code Online (Sandbox Code Playgroud)

谢谢.我觉得这对我的任务非常有启发性.

io haskell loops

33
推荐指数
2
解决办法
5万
查看次数

使用raphael.js或其他一些js库缩放和平移svg图像

我需要一个小脚本,它将在一个具有2个功能的帧中显示SVG(矢量图像);

  1. 可以平移图像(使用光标移动以查看svg图像的不同部分)与谷歌地图相似.

  2. SVG图像也可以放大和缩小到谷歌地图,除了不需要加载新图像,因为图像是矢量.

对于一个类似的脚本我已经看到适用于普通图像格式请参见http://jibbering.com/routeplanner/

javascript svg raphael

24
推荐指数
3
解决办法
3万
查看次数

随着分配更多盒装数组,代码变得更慢

编辑: 事实证明,一般情况下(不仅仅是数组/参考操作)减慢了更多阵列的创建速度,所以我猜这可能只是测量增加的GC时间,可能不像我想的那么奇怪.但我真的很想知道(并学习如何找出)这里发生了什么,以及是否有一些方法可以在创建大量小数组的代码中缓解这种影响.原始问题如下.


在调查库中的一些奇怪的基准测试结果时,我偶然发现了一些我不理解的行为,尽管它可能非常明显.似乎许多操作(创建新的MutableArray,读取或修改IORef)所花费的时间与内存中的数组的数量成比例地增加.

这是第一个例子:

module Main
    where 

import Control.Monad
import qualified Data.Primitive as P
import Control.Concurrent
import Data.IORef
import Criterion.Main
import Control.Monad.Primitive(PrimState)

main = do 
  let n = 100000
  allTheArrays <- newIORef []
  defaultMain $
    [ bench "array creation" $ do
         newArr <- P.newArray 64 () :: IO (P.MutableArray (PrimState IO) ())
         atomicModifyIORef'  allTheArrays (\l-> (newArr:l,()))
    ]
Run Code Online (Sandbox Code Playgroud)

我们正在创建一个新数组并将其添加到堆栈中.随着标准越来越多样本和堆栈增长,数组创建需要更多时间,而且这似乎是线性和定期增长的:

慢一点

更奇怪的是,IORef读取和写入都会受到影响,并且我们可以看到atomicModifyIORef'随着更多阵列的GC 而越来越快.

main = do 
  let n = 1000000
  arrs <- replicateM (n) $ …
Run Code Online (Sandbox Code Playgroud)

arrays performance garbage-collection haskell ghc

24
推荐指数
1
解决办法
463
查看次数

如何遍历一个字典?

records = {'foo':foo, 'bar':bar, 'baz':baz}
Run Code Online (Sandbox Code Playgroud)

我想将值更改为0if None.我怎样才能做到这一点?

例如:

records = {'foo':None, 'bar':None, 'baz':1}
Run Code Online (Sandbox Code Playgroud)

我想改变foobar0.最后的决定:

records = {'foo':0, 'bar':0, 'baz':1}
Run Code Online (Sandbox Code Playgroud)

python dictionary

22
推荐指数
4
解决办法
5万
查看次数

是否可以用`unsafeCoerce`来安全地替换所有`coerce'类型检查?

我相信以下内容与一样安全Set.mapMonotonic coerce。即可能发生的最坏情况是,Set如果ab具有不同的Ord实例,我将打破不变式:

coerceSet :: Coercible a b=> Set.Set a -> Set.Set b
coerceSet = unsafeCoerce
Run Code Online (Sandbox Code Playgroud)

那是对的吗?

编辑:有关以下功能的问题Sethttps//github.com/haskell/containers/issues/308

haskell set coerce

22
推荐指数
2
解决办法
212
查看次数

什么是并发程序的"Hello World"?

我正在寻找一些规范,简单的并发问题,适合演示我正在使用的并发计算库的用法.

澄清"并发"的意思:我对利用非确定性通信过程的算法感兴趣,而不是通过将工作分散到多个处理器上来使快速排序等算法运行得更快.就是我使用这个术语的方式.

我知道餐饮哲学家的问题,这是可以接受的,但我想知道是否有更令人信服但同样简单的问题.

language-agnostic algorithm concurrency

21
推荐指数
2
解决办法
1664
查看次数