问题标签 [storable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
63 浏览

perl - 从 nstore_fd 恢复时出错:无法通过包“Hash::Case::Lower”定位对象方法“FIRSTKEY”

我正在对 2005 年的一个程序进行一些考古。它一直在愉快地编写这样的备份:

我需要恢复其中的一些数据。

我这样做了:

并得到:

我看到原始来源有:

...但我不知道该怎么做!

0 投票
1 回答
117 浏览

haskell - 如何正确实现 Foreign.Storable 以创建向量?

我一直在一个项目中工作,该项目一直在使用列表来计算人工神经网络操作。现在,我想对其进行改造Data.Vector以提高其效率。Foreign.Storable但是,目前我在实施一个必不可少的定义时遇到了麻烦。

好的,首先,我使用Data.Array.Repa了类似以下的类型同义词 ( CAMTypes.hs) 进行计算:

然后后来我想使用Data.Vector如下:

但是,我收到以下错误:

我已经完成了 的实现instance Storable NTTVU where,但仍然抱怨;我启用了分析,但没有告诉我更多信息;尝试按步骤调试,但也没有成功。希望有人知道很多关于它以及如何解决它。

有关更多上下文,整个项目和相关文件:

0 投票
1 回答
138 浏览

c - Haskell FFI:包装包含单独分配的字符串(char *)的C结构

假设你有一个 C-struct

以及对其进行一些操作的函数f

C API 要求char*在调用之前分配足够的缓冲区f

(请注意,该num字段在此构造示例中没有任何用途。它只是防止使用CStringand的简单解决方案CStringLen。)

问题是如何为这种 C API 编写 Haskell FFI。

我想出的是:从

并编写一个可存储的实例。我的想法是在最后分配 64 个字节作为字符串的缓冲区:

poke必须更改 str 中的指针以指向分配的缓冲区,然后必须将 Haskell 字符串复制到其中。我这样做withCStringLen

最后是peek,这很简单:

所有这些都有效,但我觉得它相当难看。这是这样做的方法,还是有更好的方法?

如果有人想玩它,小玩具问题在github 上

更新

chi正如以下警告所指出的那样:使用硬编码的对齐和偏移是不好的做法。它们很脆弱并且依赖于平台/编译器。相反,应该使用c2hscc2hsbindings-dslgreencard等工具。

0 投票
1 回答
287 浏览

haskell - 是否可以通过 GHC 的通用派生来派生 Data.Vector.Unbox ?

可以Storable通过 GHC 的通用派生机制进行派生:http: //hackage.haskell.org/package/derive-storable(以及https://hackage.haskell.org/package/derive-storable-plugin以获得性能)。但是,我可以找到的唯一用于派生的库Data.Vector.Unbox使用模板 Haskell:http ://hackage.haskell.org/package/vector-th-unbox 。它还需要用户编写一些代码;它不是完全自动的。

我的问题是,类似的库是否deriving-storable也存在,或者由于某些基本方式与 不同,Unbox这是不可能的?如果是后者,这是否意味着也无法创建一个允许自动派生任何类型的库,因为我找不到这样的库。UnboxStorableUnboxStorable

我问是因为理想情况下我想避免使用模板 Haskell 和使用vector-th-unbox.

0 投票
3 回答
186 浏览

perl - 如何将哈希中的数据存储在文件中并将其用于另一个哈希

我是 Perl 世界的新手,我需要有关从文件中的哈希保存数据以及在另一个哈希中使用它之后的帮助。

这是我的代码的一个简短示例:

这些是 Dumper 打印的输出:

在第二个 foreach 循环中观察到错误:

输出:不是 report.pl 的 HASH 引用

实际上,我不确定检索到的数据的类型。您能帮忙将数据保存在新的哈希中吗?

最好的问候, SK