我正在开发一个程序,它使用大量IORef的数据类型列表.哪种内存/处理器效率更高的方法:
[IORef Foo]
Run Code Online (Sandbox Code Playgroud)
要么
IORef [Foo]
Run Code Online (Sandbox Code Playgroud)
忽略我使用列表而不是向量或数组的事实.
我为一些测试目的创建了一个额外的分支.
在开始工作之前,我切换回主分支,喝完茶后,我开始添加文件并修改master分支中的其他文件.
只有在我提交之后,我才记得我在主分支中,而在开始更改之前我必须切换到我的第二分支.
如果可以将此提交发送到第二个分支并从主分支中删除它,您能告诉我吗?
谢谢
我正在使用 sbt-native-packager 为我的 Scala Play 2 项目创建 Debian 软件包并将其发布到 Artifactory 存储库。
到目前为止,我能够生成.deb包,但无法将其发布到神器 URL。发布的唯一工件是 debian.changes文件,但不是实际.deb文件。
我最近升级到 Play 2.3.2,它使用 sbt 0.13.5 和 sbt-native-packager 0.7.4。这可能是相关的,因为将 .deb 文件发布到工件确实可以与 sbt-native-packager 0.7.1 一起使用。
我努力尝试理解这个问题,并确实发现在最新版本中我必须添加debianChangelog in Debian := Some(file("src/debian/changelog"))到我的.sbt文件中,但我现在陷入困境。
我的问题很简单,.deb当我这样做时没有发布任何文件debian:publish。仅.changes发布文件:
[info] published atk to http:...:8081/artifactory/atk-snapshots/atk/atk/1.0-SNAPSHOT/atk-1.0-SNAPSHOT.changes
有人知道我应该做什么来解决我的发布问题吗?
我在项目的 .sbt 文件中将以下设置作为导入和版本:
import com.typesafe.sbt.SbtNativePackager._
import com.typesafe.sbt.SbtNativePackager.NativePackagerKeys._
import com.typesafe.sbt.packager.archetypes.ServerLoader.SystemV
import NativePackagerKeys._
name := """atk"""
scalacOptions += "-target:jvm-1.7"
javacOptions ++= Seq("-source", "1.7", "-target", "1.7")
version := …Run Code Online (Sandbox Code Playgroud) 我正在做一些并发和内存可见性的实验,并遇到了这种奇怪的行为(请参阅注释内联):
module Main
where
import Data.IORef
import Control.Concurrent
import System.CPUTime
import System.IO
main = do
hSetBuffering stdout NoBuffering
r <- newIORef False
putStrLn "forking..." -- PRINTED
forkIO $ f r
threadDelay 1000000
putStrLn "writeIORef" -- NEVER PRINTED
writeIORef r True
threadDelay maxBound
f :: IORef Bool -> IO ()
f r = readIORef r >>= \b-> if b then print "NEVER PRINTED" else f r
Run Code Online (Sandbox Code Playgroud)
我希望writeIORef孩子线程可能看不到,但主线程不能简单地(显然)停止.
编译于ghc 7.8.3
cabal exec ghc -- --make -fforce-recomp -O2 -threaded visibility.hs
Run Code Online (Sandbox Code Playgroud)
并运行 …
我有两个我正在努力的功能
共享 - 提交 - A - B - C Feat1
共享 - 提交 - D - E - F Feat2
问题是,为了测试Feat2我也确实需要Feat1,但我仍然希望它们作为单独的分支,因为它们是不同的.有什么好方法可以对Feat2进行更改,然后快速创建第三个分支,这两个分支都在一起,不需要我每次都要销毁它.
共享 - 提交 - Feat1 - Feat2
我在做的是
git checkout feat2
git branch -b combo
git rebase -i feat1
但是当我对feat2进行更新时,我不知道如何合并这些新的更改.
我正在尝试在文件中搜索包含“[]”括号的文本。例如,
list[1];
i[ab1];
Run Code Online (Sandbox Code Playgroud)
我试过了grep -i \[[a-z||1-9]*\] myfile。但它不起作用。这些方括号是特殊字符。我不知道如何逃避那里的特殊含义。任何人都可以提出任何建议吗?
我正在尝试将 getopts 用于 bash 脚本。该脚本可以有标志,所有这些标志都是强制性的,并且需要包含一个值。当应该包含值的强制标志之一为空时,getopts 使用下一个行标志作为其内容。我该如何防止这种情况?
这是我的例子:
#!/bin/bash
while getopts "A:B:" OPTION
do
case $OPTION in
A)
GILIA="$GILIA $OPTARG"
echo GILIA $GILIA
;;
B)
GILIB="$GILIB $OPTARG"
echo GILIB $GILIB
;;
esac
done
Run Code Online (Sandbox Code Playgroud)
当使用两个带有值的标志时:
./test_opt2 -A aaa -B bbb
GILIA aaa
GILIB bbb
Run Code Online (Sandbox Code Playgroud)
当使用“-A”标志为空时:
./test_opt2 -A -B bbb
GILIA -B
Run Code Online (Sandbox Code Playgroud)
我知道这是 getopts 的正常/典型行为,并且我确信有一种方法可以解决这个问题......
有任何想法吗?
我们正在使用Twitter在Algebird中实现HyperLogLog.给定N和我们的系统中的检查,使用HyperLogLog估计逐渐增长的集合的当前大小并测试它是否多于或少于N,我们如何编写测试此检查的集成或系统测试,如果我们调用HyperLogLog的代码是正确的,几乎可以保证通过?被测系统是非确定性的,因为,一方面,它是多线程的.
我的第一个想法是,编写一个对这个用例可靠的集成测试的正确方法是"放弃我们的标准".那么,什么是足够数量的项目(M)发布到端点,以确保HyperLogLog将估计项目的总数超过N,概率,例如,> = 0.999999?
还是有更好的方法?
标准误差界限是可配置的,但这并不直接告诉我们偶尔可能看到的最大误差界限 - 这是我关心的,以避免随机失败的CI构建在主人身上造成浪费的时间和头发-pulling!
我还担心我们在测试中生成随机数据的方式可能不会在相关方面生成均匀分布的随机数据,这可能会对概率计算产生重大影响.
我有这个旧版本的软件包,我想将其安装在 Ubuntu 上。
https://launchpad.net/ubuntu/+source/php5/5.3.10-1ubuntu3.20
Run Code Online (Sandbox Code Playgroud)
如何使用 apt-get 安装它?谢谢
我们需要将JavaDoc作为站点而不是存档发布到我们的maven存储库,以便可以直接从那里浏览它.我们基于maven的项目已经实现了这一点,但我们无法通过Gradle找到解决方法 - 我认为使用"站点部署".
搜索这一点非常复杂,因为"网站"是一个如此重载的术语,其他搜索不会产生任何结果.