Articles of 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 […]

Haskell IDE for Windows?

我真的search这一个。 (E / TextMate是我在这个主题中发现的最接近的,但似乎没有什么大不了的) 我试过emacs,但我似乎没有find一个Haskell模式的Windows .. VisualHaskell似乎并没有遵循新的VisualStudio更新… 我可以尝试VIM,但Haskell模式是否适用于Windows? 唉……一直以来都是“亲密但不香烟”的感觉。 在Windows下编程的Haskell实际上是这样吗?

如何改变cabalconfiguration文件的path?

我在Win7上使用HaskellPlatform-2012.4.0.0。 它被安装为便携式。 path通过.bat文件pipe理,所以ghci和ghc作品。 但是cabal自己安装在C:\ Users \ name \ AppData \ Roaming \ cabal \ 为了规避我所做的: cabal update edit config file delete all files except config 更改的path: remote-repo-cache: d:\h1\cabal\packages world-file: d:\h1\cabal\world build-summary: d:\h1\cabal\logs\build.log 它的工作,但它远没有真正的便携式。 Cabalconfiguration是更大的问题。 它似乎必须留在C:\ Users \ name \ AppData \ Roaming \ cabal中,根本不是可移植的。 首次运行cabal update说Config file path source is default config file. 问题: 1.默认的configuration文件在哪里? […]

将Yesod部署到Heroku,不能静态构build

我对Yesod非常陌生,而且我很难静态构buildYesod,所以我可以部署到Heroku。 我已经改变了默认的.cabal文件来反映静态编译 if flag(production) cpp-options: -DPRODUCTION ghc-options: -Wall -threaded -O2 -static -optl-static else ghc-options: -Wall -threaded -O0 它不再build立。 我得到了一大堆警告,然后是一堆未定义的引用,如下所示: Linking dist/build/personal-website/personal-website … /usr/lib/ghc-7.0.3/libHSrts_thr.a(Linker.thr_o): In function `internal_dlopen': Linker.c:(.text+0x407): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /usr/lib/ghc-7.0.3/unix-2.4.2.0/libHSunix-2.4.2.0.a(HsUnix.o): In function `__hsunix_getpwent': HsUnix.c:(.text+0xa1): warning: Using 'getpwent' […]

Haskell:立即从控制台读取input字符,而不是在换行符之后

我试过这个: main = do hSetBuffering stdin NoBuffering c <- getChar 但是等到input被按下,这不是我想要的。 我想在用户按下后立即读取字符。 我在Windows 7上使用ghc v6.12.1。 编辑:我的解决方法是从GHC移动到WinHugs,正确支持这一点。

Network-2.4.2.2在Windows上安装错误

当试图在cabal沙盒(1.18。*)内的Windows Server 2008上安装networking软件包(cabal安装networking)时,出现以下错误: C:\Users\user\Project>cabal install network –prefix=C:\Users\user\Project Resolving dependencies… Configuring network-2.4.2.2… configure: error: invalid package name: 0 Failed to install network-2.4.2.2 cabal: Error: some packages failed to install: network-2.4.2.2 failed during the configure step. The exception was: ExitFailure 1 需要注意的是,networking是通过haskell平台全局安装的,但是由于一个奇怪的原因,不会安装在沙盒中。 确切的错误看起来像configure: error: invalid package name: 0 什么可以提示包名是0?