Articles of haskell

Haskell:无法在Windows上安装SDL-0.6.2

我试图在Windows 7上安装Haskell SDL-0.6.2软件包,使用ghc 6.12.1(Haskell平台)。 我最终从cabal获得以下输出: C:\Users\Martin\dev\Rasenschach_0>cabal install SDL Resolving dependencies… [1 of 1] Compiling Main ( C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0 .6.25076\SDL-0.6.2\Setup.lhs, C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076 \SDL-0.6.2\dist\setup\Main.o ) C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076\SDL-0.6.2\Setup.lhs:2:2: Warning: In the use of `defaultUserHooks' (imported from Distribution.Simple): Deprecated: "Use simpleUserHooks or autoconfUserHooks, unless you n eed Cabal-1.2 compatibility in which case you must stick with defaultUserHooks" Linking C:\Users\FAMILI~1\AppData\Local\Temp\SDL-0.6.25076\SDL-0.6.2\dist\setup\ setup.exe … Warning: […]

如何在Haskell中指定本地绑定接口来组播套接字?

我已经尝试了Network.Multicast包,但它确实工作,但是,我找不到指定本地绑定接口(“bond0”或“bond1”等)到组播套接字的方法。 我知道在CI需要使用ioctl将债券转换为结构sockaddr_in,然后将此结构提供给IPPROTO_IP系列的setsockopt IP_MULTICAST_IF选项,但我不知道如何在Haskell中做到这一点。 有人能帮忙吗? 谢谢!

XMonad:dmenu在启动时不会启动/产卵

对XMonad来说是新鲜事物,到目前为止我们都很喜欢它。 我有一个相当香草/普通的XMonad设置,并与dmenu有问题。 当我login和打mod+p没有任何反应。 如果我然后打开一个terminal,然后打xmonad –restart然后mod+p , dmenu将工作。 我的xmonad.hs肯定有问题吗? 我尝试了XMonad的非自定义设置,并且正常工作(即login后dmenu正在工作)。 我的问题: 我的xmonad.hs有问题吗? 为什么不dmenu工作,除非我xmonad –restart ? 在xmonad.start中可能会导致xmonad启动时无法正确加载dmenu? 这里是我的文件(从过度借用)。 : xmonad.hs import System.IO import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.SetWMName import XMonad.Util.EZConfig(additionalKeys) import XMonad.Util.Run(spawnPipe) import XMonad.Hooks.ICCCMFocus myWorkspaces = ["1", "2", "3", "4", "5", "6"] myManageHook = composeAll [ className =? "Gimp" –> doFloat , className =? "Vncviewer" […]

如何从Haskell代码跨平台播放audio文件

我正在编写一个在Linux,Windows和OS X上运行的Haskell命令行应用程序。我现在必须从中播放audio文件( .wav , .ogg和.mp3 )。 我将如何去实现一个function playAudioFile :: FilePath -> IO () 甚至更好 playAudio :: ByteString -> IO () 这只是在所有系统上工作? (我很乐意引用常用的命令行工具,也不介意将它们捆绑在Windows发行版上。)

XMonad:SpawnOn工作区,当按下spawn键时有焦点

我想我的程序产生的焦点,当它的键绑定被按下的屏幕上,而不是在当前聚焦完成加载的屏幕上。 为什么:我目前的设置是Arch Linux + XMonad,我有6台显示器。 我一直在使用XMonad大约一年,我唯一的问题就是需要一些时间打开的程序。 例如,我第一次启动铬需要3秒钟的时间来加载。 我按我的键绑定铬,然后去不同的屏幕做别的。 但是,当铬加载它加载在屏幕上,当前焦点不在屏幕上,当按下spawn键绑定时被关注。 我的haskell技能很好…不存在。 我之前已经在Lisp中编写过程,并花费了大量的时间在C,Python和JavaScript中,所以如果需要的话,我可以把它捡起来(所以请在haskell样本的答案中清楚一点)。 提前致谢。

从C中调用Java的Haskell

这可能听起来像一场噩梦,但我真的想要得到这个工作。 我使用这个例子大部分: 从Haskell调用C,并试图让这个工作在Ubuntu上。 我在java中运行这个: package test; public class JniTest { public native int fib(int x); } 这个在用javah创build.h文件之后在c:(test_JniTest.c) #include "test_JniTest.h" #include "Safe_stub.h" JNIEXPORT jint JNICALL Java_test_JniTest_fib(JNIEnv * e, jobject o, jint f) { return fibonacci_hs(f); } 然后在Haskell中(在存根之前)引用:(Safe.hs) module Safe where import Foreign.C.Types fibonacci :: Int -> Int fibonacci n = fibs !! n where fibs = […]

如何在Linux上安装Haskell Debian Wheezy?

最初我以为我会用apt-get来安装Haskell,但它似乎有些复杂。 当我看着haskell组织下载页面时 ,我下载了haskell-platform-2013.2.0.0.tar.gz 。 然后下一步是混淆。 它要求在安装平台之前安装GHC ,但同时打开GHC下载页面,会显示一些警告,例如Stop ! ….. we recommend installing the Haskell Platform instead of GHC Stop ! ….. we recommend installing the Haskell Platform instead of GHC 。 请指导我如何在Debian Wheezy上安装Haskell。 我们可以从这个包中构build一个.deb安装包吗?

Haskell ghc编译/链接错误,不创build可执行文件。 (Linux)的

我用haskel编写了一个基本的hello世界程序,并试着用ghc filename.hs来编译它。 它生成.hi和.o文件,但没有可执行文件,并在链接器中显示此错误: marox @ IT-marox:〜/ Marox $ ghc tupel.hs 链接tupel … / usr / bin / ld:–hash-size = 31:未知选项 / usr / bin / ld:使用–help选项来获取使用信息 collect2:ld返回1退出状态 谷歌search没有返回任何有用的信息。 我在Ubuntu的12.04。 我怎样才能解决这个问题?

在Linux上安装ghc二进制文件(找不到libgmp.so)

我想第一次在Linux上安装Haskell平台(我也是一个相当新的Linux用户)。 受害者系统是一个新的红帽系统。 而这里涉及的所有内容都应该是64位。 在平台网站[1]的指示表明,我需要一个ghc7.0.3来推动东西。 他们提供了一个到ghc-7.0.3的通用二进制文件的链接来做到这一点。 我抓住这个跑了 $ ./configure … $ make install … 根据方向没有事件(这是一个二进制,所以不需要编译)但是,当我试图运行ghci我得到的输出。 $ ghci GHCi, version 7.0.3: http://www.haskell.org/ghc/ 😕 for help Loading package ghc-prim … linking … done. Loading package integer-gmp … <command line>: can't load .so/.DLL for: gmp (libgmp.so: cannot open shared object file: No such file or directory) 出于某种原因,ghci找不到libgmp.so。 运行ghci最终调用 /usr/local/lib/ghc-7.0.3/ghc […]

使用GNU / Linux系统调用`splice`在Haskell中进行Zero-Copy Socket到Socket的数据传输

更新:Nemo先生的回答帮助解决了这个问题! 下面的代码包含修复! 请参阅下面的nb False和nb True调用。 还有一个叫做splice的新的Haskell软件包 ,它具有最好的套接字到套接字数据传输循环的操作系统特定的和可移植的实现。 我有以下(Haskell)代码: #ifdef LINUX_SPLICE #include <fcntl.h> {-# LANGUAGE CPP #-} {-# LANGUAGE ForeignFunctionInterface #-} #endif module Network.Socket.Splice ( Length , zeroCopy , splice #ifdef LINUX_SPLICE , c_splice #endif ) where import Data.Word import Foreign.Ptr import Network.Socket import Control.Monad import Control.Exception import System.Posix.Types import System.Posix.IO #ifdef LINUX_SPLICE import Data.Int import […]