小编Ada*_*ott的帖子

如何为Xcode 4中的所有新文件设置等宽字体?

当编辑.markdown文件(可能以纯文本形式打开)时,Xcode 4.1使用非等宽字体.我想所有文件,无论类型如何都使用等宽字体.我没有看到任何更改默认行为的选项.

xcode4

6
推荐指数
0
解决办法
376
查看次数

C和Linux中的现代实践/示例

我正在寻找小到中等大小的程序/项目,这些程序/项目显示了在Linux上用C开发应用程序的良好现代实践.我想通过实例学习并好奇现实世界中的事情是如何完成的.

c linux

5
推荐指数
2
解决办法
499
查看次数

在XS中为C库注册多个Perl子引用

无论perlcall(在"策略存储回调上下文信息"一节),并延伸和嵌入Perl(以下简称"回调"一节)列出了3点不同的方式来处理从XS/C调用的Perl子例程:

  1. 马上:XS打电话
  2. 延迟:将子ref保存为SV*以供日后使用
  3. 多个:保存n个子参考以供日后使用

上面针对#3列出的示例和细节使用XS中的散列来将子ref与特定C函数相关联,但是它们预定义了固定数量的C函数,这是不合适的.

我正在使用一个XS接口到一个C库,它使用带有可选参数的回调/函数指针,例如:

  blah(custom_type *o, void (*func) (void *data, int more_data), const void * data);
Run Code Online (Sandbox Code Playgroud)

这个库中的C blah将最终调用传递给它的函数以及传入的数据.

如果可能的话,我想将C API的一对一映射到Perl.例如

  blah($o, \&func, $data);
Run Code Online (Sandbox Code Playgroud)

目前,我上面有#2,但是另一次调用blah()会覆盖已保存的SV*.

我将如何实施上述#3?

perl xs

5
推荐指数
1
解决办法
783
查看次数

在Haskell,管道,attoparsec和容器中优化内存

我正在尝试进一步优化我的管道 - attoparsec解析器和存储,但无法获得更低的内存使用率.

给出account-parser.hs

{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoImplicitPrelude #-}

import Protolude hiding (for)

import Data.Hashable
import Data.IntMap.Strict (IntMap)
import Data.Vector (Vector)
import Pipes
import Pipes.Parse
import Pipes.Safe (MonadSafe, runSafeT)
import qualified Data.Attoparsec.ByteString.Char8 as AB
import qualified Data.IntMap.Strict as IM
import qualified Data.Vector as Vector
import qualified Pipes.Attoparsec as PA
import qualified Pipes.ByteString as PB
import qualified Pipes.Safe.Prelude as PSP

-- accountid|account-name|contractid|code

data AccountLine = AccountLine {
    _accountId         :: !ByteString,
    _accountName       :: !ByteString,
    _accountContractId …
Run Code Online (Sandbox Code Playgroud)

optimization haskell haskell-pipes

5
推荐指数
1
解决办法
133
查看次数

为什么在BUILD中修改Moose类会导致此错误?

使用时我遇到与此Moose相关的错误BUILD.当我改变BUILDALL它似乎工作.注意使用Class::MOP::load_class

运用 BUILD

Perl version: 5.012002
Class::MOP::Version: 1.11
Moose::Version: 1.24
Applying fixup GV::WebServer::Fixups::Development
aflott-g3 at a.pl line 83.
Error: trying to call refresh() in GV::WebServer::Fixups::Development produced: The     'add_attribute' method cannot be called on an immutable instance at /opt/cidc-perl/perl-5.12.2/lib/perl5/x86_64-linux/Class/MOP/Class/Immutable/Trait.pm line 32
        Class::MOP::Class::Immutable::Trait::_immutable_cannot_call('add_attribute') called at /opt/cidc-perl/perl-5.12.2/lib/perl5/x86_64-linux/Class/MOP/Class/Immutable/Trait.pm line 37
        Class::MOP::Class:::around('CODE(0x13a2e028)', 'Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x13d58...', 'architecture', 'is', 'ro', 'isa', 'Str', 'lazy', 1, ...) called at /opt/cidc-perl/perl-5.12.2/lib/perl5/x86_64-linux/Class/MOP/Method/Wrapped.pm line 159
        Class::MOP::Method::Wrapped::__ANON__('Class::MOP::Class::Immutable::Moose::Meta::Class=HASH(0x13d58...', 'architecture', 'is', 'ro', 'isa', 'Str', 'lazy', 1, 'default', ...) called at /opt/cidc-perl/perl-5.12.2/lib/perl5/x86_64-linux/Class/MOP/Method/Wrapped.pm line …
Run Code Online (Sandbox Code Playgroud)

perl moose

1
推荐指数
1
解决办法
722
查看次数

标签 统计

perl ×2

c ×1

haskell ×1

haskell-pipes ×1

linux ×1

moose ×1

optimization ×1

xcode4 ×1

xs ×1