我想使用 haste-compiler 包来做 haskell-to-javascript 的事情:
jsnavely@beefy:~/project$ cabal install haste-compiler
Resolving dependencies...
...
Configuring zip-archive-0.2.3...
Building zip-archive-0.2.3...
Preprocessing library zip-archive-0.2.3...
[1 of 1] Compiling Codec.Archive.Zip ( src/Codec/Archive/Zip.hs, dist/build/Codec/Archive/Zip.o )
src/Codec/Archive/Zip.hs:163:27: Not in scope: `decodeOrFail'
Failed to install zip-archive-0.2.3
cabal: Error: some packages failed to install:
haste-compiler-0.3 depends on zip-archive-0.2.3 which failed to install.
zip-archive-0.2.3 failed during the building phase. The exception was:
ExitFailure 1
我注意到有一个更新版本的 zip-archive 将二进制文件的版本提高到 >= 0.7,它提供了 decodeOrFail 函数。所以我尝试查看 haste-compiler repo并将 zip-archive 版本升级到新的 zip-archive 0.2.3.2。但这没有帮助:
jsnavely@beefy:~/project/haste-compiler$ cabal install
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: haste-compiler-0.3 (user goal)
trying: zip-archive-0.2.3.2/installed-208... (dependency of
haste-compiler-0.3)
trying: ghc-7.6.3/installed-0d1... (dependency of haste-compiler-0.3)
next goal: bin-package-db (dependency of ghc-7.6.3/installed-0d1...)
rejecting: bin-package-db-0.0.0.0/installed-837... (conflict: zip-archive =>
binary==0.7.1.0/installed-961..., bin-package-db =>
binary==0.5.1.1/installed-5b8...)
Dependency tree exhaustively searched.
我还尝试手动安装 zip-archive 和二进制文件,并在沙箱中完成所有这些工作。我不知道该怎么做 - 我真的很想用类型良好的 haskelly goodness 替换我所有的 javascript。我在我的 macbookpro 和我的 linux 机器上遇到了同样的问题,都运行最新的haskell 平台,ghc 版本 7.6.3
最佳答案
你的依赖树看起来有点像这样:
┌────────────────────┐
┌─────────┤ haste─compiler─0.3 │
│ depends └─────────────────┬──┘
V │
┌───────────┐ │ depends
│ ghc─7.6.3 │ │
└─────┬─────┘ V
│ depends ┌─────────────────────┐
V │ zip─archive─0.2.3.2 │
┌────────────────────────┐ └───────────┬─────────┘
│ bin─package─db─0.0.0.0 │ │
└───────────┬────────────┘ │ depends
│ depends │
V V
┌────────────────┐ conflicts with ┌────────────────┐
│ binary─0.5.1.1 │<────────────────>│ binary─0.7.1.0 │
└────────────────┘ └────────────────┘
因为重新安装 GHC 可能是不可行的,所以它和它下面的所有内容对我们来说都是“固定的”,我们将不得不尝试更改 zip-archive-0.2.3.2 和 binary-0.7.1.0。让我们看看 haste-compiler-0.3 的约束:
zip-archive
所以它根本没有指定版本。任何都会做。如果我们查看以前版本的 zip-archive,我们会发现版本 0.2.2.1 是对 binary 与已安装的 binary 兼容有限制的最早版本-0.5.1.1 也是基于 Hackage 构建的。因此,您应该如何解决它:
按顺序取消注册 zip-archive-0.2.3.2 和 binary-0.7.1.0:
% ghc-pkg unregister zip-archive-0.2.3.2
% ghc-pkg unregister binary-0.7.1.0
从您的 GHC 库目录中删除这两个包。这取决于您的安装,但请查看 ~/.ghc、~/.cabal 和 ~/Library/Haskell lib 目录(可能在一两个子目录中),看看您是否可以在其中的某处找到这些包。
安装 haste-compiler-0.3 并限制 zip-archive 版本:
% cabal install --constraint='zip-archive==0.2.2.1' haste-compiler==0.3
这应该可行,但我自己还没有尝试过,所以它可能会出错。
关于javascript - 快速、二进制和 zip 存档逃离 cabal hell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24337665/
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_
我正在使用Ruby,我正在与一个网络端点通信,该端点在发送消息本身之前需要格式化“header”。header中的第一个字段必须是消息长度,它被定义为网络字节顺序中的2二进制字节消息长度。比如我的消息长度是1024。如何将1024表示为二进制双字节? 最佳答案 Ruby(以及Perl和Python等)中字节整理的标准工具是pack和unpack。ruby的packisinArray.您的长度应该是两个字节长,并且按网络字节顺序排列,这听起来像是n格式说明符的工作:n|Integer|16-bitunsigned,network(bi
我正在开发一个Ruby脚本,需要在没有Ruby解释器的情况下部署到系统上。它将需要在使用ELF格式的FreeBSD系统上运行。我知道有一个ruby2exe项目可以编译在Windows上运行的ruby脚本,但是在其他操作系统上这样做容易吗?甚至可能吗? 最佳答案 您是否检查过Rubinius或JRuby是否允许您预编译您的代码? 关于ruby-ruby脚本可以预编译成二进制文件吗?,我们在StackOverflow上找到一个类似的问题: https://
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
问题1:我无法通过以下方式找到将负整数转换为二进制的方法。我应该像这样转换它。-3=>"11111111111111111111111111111101"我在下面试过:sprintf('%b',-3)=>"..101"#..appearsanddoesnotshow111111bit.-3.to_s(2)=>"-11"#Thisjustadds-tothebinaryofthepositiveinteger3.问题2:有趣的是,如果我使用在线转换器,它告诉我-3的二进制是“0010110100110011”。"11111111111111111111111111111101"和"001
给定一个元素和一个数组,Ruby#index方法返回元素在数组中的位置。我使用二进制搜索实现了我自己的索引方法,期望我的方法会优于内置方法。令我惊讶的是,内置的在实验中的运行速度大约是我的三倍。有Rubyist知道原因吗? 最佳答案 内置#indexisnotabinarysearch,这只是一个简单的迭代搜索。但是,它是用C而不是Ruby实现的,因此自然可以快几个数量级。 关于Ruby#index方法VS二进制搜索,我们在StackOverflow上找到一个类似的问题:
我有一个类unzipper.rb,它使用Rubyzip解压文件。在我的本地环境中,我可以成功解压缩文件,而无需使用require'zip'明确包含依赖项但是在Heroku上,我得到一个NameError(uninitializedconstantUnzipper::Zip)我只能通过使用明确的require来解决问题:为什么这在Heroku环境中是必需的,但在本地主机上却不是?我的印象是Rails自动需要所有gem。app/services/unzipper.rbrequire'zip'#OnlyrequiredforHeroku.Workslocallywithout!class
有没有办法快速将表格格式的ruby哈希打印到文件中?如:keyAkeyBkeyC...1232343451253474456...其中散列的值是不同大小的数组。还是使用双循环是唯一的方法?谢谢 最佳答案 试试我写的这个gem(在表中打印散列、ruby对象、ActiveRecord对象):http://github.com/arches/table_print 关于ruby-如何以表格格式快速打印Ruby哈希值?,我们在StackOverflow上找到一个类似的问题:
我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan