我在Haskell-cafe上问了这个,我得到的唯一答案是 - 尝试stackoverflow,它更受关注.
当我尝试安装最新的Haskell平台时,安装总是失败.
我好几天都试了好几次.以下是今天的情况:从Haskell Wiki下载的软件包:http://lambda.galois.com/hp-tmp/2011.2.0.1/Haskell%20Platform%202011.2.0.1-i386.pkg,http://hackage.haskell.org /platform/mac.html
我的系统:OS X 10.6.8(我第一次遇到这个问题时为10.6.7),2.4 GHz Intel Core 2 Duo.根据df -HI有221G的免费磁盘.
我有Xcode 3.2.5.
下载后,我将完成安装步骤,最后它会显示"安装失败,请联系软件开发人员"或单词.
这是一个已知的问题吗?有任何意见或建议吗?
7-1的新尝试:
之前的日志消息中对"NeoOffice"的引用让我感到非常困惑(参见下面的评论).我从我的机器上完全删除了NeoOffice并再次运行Haskell Platform安装.现在控制台系统日志说:
- 7月1日11:06:43 jrv installd [1489]:从7月1日11:06:43开始jrv installd [1489]:uid = 0,euid = 0 Jul 1 11:06:43 jrv installd [1489]:PackageKit :*缺少软件包标识符:/ Library/Receipts/Print Selection Service.pkg Jul 1 11:07:41 jrv Installer [1472]:安装程序遇到导致安装失败的错误.请与软件制造商联系以获取帮助
如果是这样,我很惊讶没有人见过这个问题.
新编辑7月2日:
图书馆/收据/打印选择服务和其他人的问题是红色的,因为安装人员发现了破损的装置,但是消除这些问题对最终结果没有影响.也许这是10.6.8中的新内容?
在消除了这些之后,我解压缩了当前的Haskell平台和之前的Haskell平台,并尝试比较它们,但没有真正有用.在两个分布文件上运行差异会产生前一个具有"choice4"而当前具有"choice14"的差异,但是由于我对os x软件包的了解不多,我不认为这会产生影响.
我从命令行以详细模式运行安装程序,现在得到:
sudo installer -verbose -pkg Haskell\ Platform\ 2011-2.2.0.1-i386.pkg -target /
installer: Package name is Haskell Platform
installer: Upgrading …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu上运行默认的Haskell平台安装,当我运行这个例子时,http://www.haskell.org/haskellwiki/Calling_Haskell_from_C "ghc -c -O Safe.hs"没有生成Safe_stub.o文件.我已经在朋友盒上以及32位和64位Ubuntu安装上单独安装Ubuntu进行了检查.
有人可以确认这是否特定于ghc-7.4.1或仅安装Ubuntu?
谢谢!
我正在我的Mac上编写Haskell程序(命令行可执行文件,而不是应用程序).我正在使用GitHub来托管git存储库和主页.我所做的<project>.cabal和Setup.hs文件,因为惊天动地可以很容易地构建,测试和生成文档.我也可能上传到Hackage,我不知道.
当我标记版本1.0时,我想制作一个Homebrew公式,从GitHub下载tarball并构建它.我希望唯一的依赖是GHC.
我将使用runhaskell Setup configure/ build/ install(前缀为/ usr/local/Cellar/...)而不是cabal命令来避免依赖cabal-install.
在我开始使用Hackage的软件包之前,这一切都很好,例如blaze-builder和aeson.我应该怎么做呢?
我不想强迫非Haskellers必须下载整个Haskell平台.理想情况下,人们应该能够让Homebrew在构建我的程序之前安装GHC,然后如果他们这样选择,请在之后删除GHC.如果我使Haskell平台成为依赖项并首先通过cabal-install或类似方法安装我的Haskell依赖项,
~/.cabal/带有包的文件夹将被遗忘,即使之后也是如此brew uninstall haskell-platformcabal install去做,即将大部分范围限制在Haskellers.我认为Cabal(-install)+ Hackage是开发和Haskellers的有用工具,但不适用于此.
我应该只下载我正在使用的软件包的源代码并将其包含在我的源代码树中,并将其添加到构建命令中吗?或者我应该使用--package-db选项(在这里找到)?或者我的公式可以动态下载包的tar包并构建它吗?
我看了一下cabal2arch(Arch wiki,GitHub repo),但我不确定它是如何处理依赖关系的,或者它是否正在做我不想做的事情.
我在Win7上使用HaskellPlatform-2012.4.0.0.它安装为便携式.路径通过.bat文件进行管理,因此ghci和ghc可以正常工作.Cabal配置和文件夹是半便携式的.
问题是ghc文件夹.它自己安装C:\Users\name\AppData\Roaming\ghc\i386-mingw32-7.4.1.
如何更改它的默认路径?所以我可以在Windows上拥有真正可移植的Haskell :)
编辑:有3个新的系统变量什么都不做.结果如下:
SET APPDATA=%~dp0AppData -- has no effect. ghc is still made in roaming
SET USERPROFILE=%~dp0 -- kills cabal
SET LOCALAPPDATA=%~dp0Local --not sure if this is ever used.
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Yesod并持久创建一个网站.我对如何使用持久API感到有点困惑.
这是我的两张桌子
Feed
url Text
UniqueFeed url
Subscription
feed FeedId
title Text
UniqueSubscription feed
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建Feed,如果具有该URL的Feed不存在,然后添加订阅该订阅源,如果订阅尚不存在.
postFeedR :: Handler RepHtml
postFeedR = do
url <- runInputPost $ ireq urlField "url"
title <- runInputPost $ ireq textField "title"
runDB $ do
feedId <- insertFeed $ UniqueFeed url
subscriptionId <- insertSubscription feedId title
return
defaultLayout [whamlet| <p>done|]
insertFeed url = do
f <- insertBy $ UniqueFeed url
case f of
Left (Entity uid _) -> uid
Right (Key uid) -> do
(Key uid) …Run Code Online (Sandbox Code Playgroud) let x=1
y=2
z=3
Run Code Online (Sandbox Code Playgroud)
在GHCi中不起作用,迫使我let {x=1;y=2;y=3}改用.我该如何解决这个问题?
我注意到当我编译时,安装一些模块,haskell编译器只使用一个处理器(蓝色图表1/4)?我的笔记本电脑上的1/4.
我听说Haskell编译器很聪明,所以它可以安全地利用我所有的时间.
有没有办法让它更快?有些配置可能.
图片处理器图是蓝色的.黄色 - 网络.红色 - 硬盘.
在制作屏幕截图的那一刻,它可以使用所有处理器时间,因为它不使用硬盘驱动器或网络.

我正在尝试在Haskell中实现简单的TCP客户端.但它一旦连接就会关闭.我不知道是什么导致它关闭.我怎么能这样做,以便从服务器打印线路stdout并stdin永久地从服务器发送线路直到stdin收到线路":退出"?
import Control.Monad (forever)
import Network (withSocketsDo, PortID(..), connectTo)
import System.IO
import Control.Concurrent (forkFinally)
import Control.Concurrent.Async (race)
main :: IO ()
main = withSocketsDo $ do
-- connect to my local tcp server
handle <- connectTo "192.168.137.1" (PortNumber 44444)
-- should close the connection using handle after everything is done
_ <- forkFinally (talk handle) (\_ -> hClose handle)
return ()
talk :: Handle -> IO ()
talk handle = do
hSetNewlineMode handle universalNewlineMode …Run Code Online (Sandbox Code Playgroud) 我尝试使用 haddock 为库生成文档,虽然它可以工作,但它不会链接属于 GHC/标准库的任何类型并发出此错误:
Warning: The documentation for the following packages are not installed. No
links will be generated to these packages: array-0.4.0.1, base-4.6.0.1,
binary-0.5.1.1, rts-1.0, bytestring-0.10.0.2, containers-0.5.0.0,
deepseq-1.3.0.1, ghc-prim-0.3.0.0, integer-gmp-0.5.0.0, utf8-string-1
Haddock coverage:
93% ( 14 / 15) in 'projectname'
Warning: SHA1: could not find link destinations for:
GHC.Base.String Data.ByteString.Lazy.Internal.ByteString GHC.Word.Word32 GHC.Integer.Type.Integer GHC.Types.Int Data.Sequence.Seq
Run Code Online (Sandbox Code Playgroud)
现在我用谷歌搜索了一下,发现解决方案是尝试重新安装这些软件包haddock install array-0.4.0.1 base-4.6.0.1 binary-0.5.1.1 rts-1.0 bytestring-0.10.0.2 containers-0.5.0.0 deepseq-1.3.0.1 ghc-prim-0.3.0.0 integer-gmp-0.5.0.0 utf8-string-1 --enable-documentation,但失败了
cabal: Could not resolve dependencies:
rejecting: base-4.8.0.0, 4.7.0.2, 4.7.0.1, 4.7.0.0 …Run Code Online (Sandbox Code Playgroud) 基本问题:
我正在尝试gtk使用OSX 10.10.4上的标准mac指令安装Haskell的软件包.具体来说,我想跑threadscope,所以我需要gtk.早期阶段homebrew和gtk buildtools工作正常,但当我
cabal install gtk
Run Code Online (Sandbox Code Playgroud)
或使用
cabal install --with-gcc=gcc-4.8 gtk
Run Code Online (Sandbox Code Playgroud)
我收到以下编译错误:
Graphics/UI/Gtk/Embedding/Plug.chs:120:6:
Couldn't match expected type ‘Ptr ()’
with actual type ‘Maybe DrawWindow’
In the first argument of ‘gtk_plug_new’, namely
‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
In the second argument of ‘($)’, namely
‘gtk_plug_new
(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
Graphics/UI/Gtk/Embedding/Plug.chs:137:6:
Couldn't match expected type ‘Ptr ()’
with actual type ‘Maybe DrawWindow’
In the second argument of ‘\ (Display arg1) …Run Code Online (Sandbox Code Playgroud)