タグ

xsに関するsugyanのブックマーク (5)

  • Hokkaido.pm#8に来ています - アリ

    ゲストとしてtypesterさんが来てくれているので、XSの話をリクエストしたところ実際にライブコーディングまで見せていただけたので非常に興奮しております。 ## XSにまつわる話 - 2010年から書き始めた - XSわず嫌い期 - 2004-2010年くらいまで - 手を出すまでは意味わからない - iOSアプリ - AMF/RTMP - Data::AMF::XSを書いた - .xsではなくてもXSは書ける - Data::AMFをもともと作っていた - XSとは - Perlと外の世界をつなぐもの - ライブラリのバインディングを作るための仕組み - 高速というのは異端 - 来の目的ではない - うまくXSを使っているのがgfx - 基的には早くならない - ライブラリを普通に書いて、XSでバインディングを書く - 計算部分だけXSとかはいいけど - 必要なもの - ライブラ

    Hokkaido.pm#8に来ています - アリ
  • XSにまつわる話

    Hokkaido.pm #8

    XSにまつわる話
  • Snow Leopard & Xcode 4+ & system perl でXSをビルドできない問題の修正法 - Islands in the byte stream (legacy)

    MacOSX Snow LeopardでXcode 4以上を使っているとき、system perl向けのXSモジュールがまったくビルドできないという非常に厄介な問題があります。 これは、system perlがユニバーサルバイナリでppc用のバイナリを含むようになっているにも関わらず、Xcode 4以降のgccではppc向けのクロスコンパイラが含まれていないためです。また、system perlのccが"gcc-4.2"となっていますが、Xcode 4以降だとgcc-4.2というコマンドが存在しないことも問題です。 これを解消するためにはConfig.pm/Config_heavy.plをいじって上記の問題を修正します。 以下のコマンドを実行してconfigを修正するのが簡単でしょう。 sudo perl -i -pe 's/gcc-4.2/gcc/g; s/-arch ppc//g' \

    Snow Leopard & Xcode 4+ & system perl でXSをビルドできない問題の修正法 - Islands in the byte stream (legacy)
  • Text::AAlibを書いています。 - Shohei Yoshida's Diary

    XSを書く練習の続き。 前回はごりごりとXSで書くというものだったので、 今回はライブラリのバインディングにチャレンジ。 扱うライブラリは An ascii-art library というアスキーアートを作るためのライブラリ。 開発リポジトリ syohex/p5-Text-AAlib · GitHub 現状 必要最低限な機能だけとりあえず実装しました。 機能的にドキュメント読んだだけではよくわからないところが あるので、それについてはソースを読んで充実させていく予定です。 テストの書き方も今一つわかっていないので、他のライブラリの 実装も見て勉強する必要がありそうです。 #!perl use strict; use warnings; use Text::AAlib; use Imager; my $file = shift or die "Usage: $0 image"; my $im

    Text::AAlibを書いています。 - Shohei Yoshida's Diary
    sugyan
    sugyan 2011/11/14
    すごい…!
  • Perlのメモリリークを見つける方法 - Islands in the byte stream (legacy)

    Perlではメモリリーク検出ツールがいくつか開発されているので、top(1)の結果を眺めるよりそういうツールを使うほうが楽である。 さて、メモリリークが発生しているとき、その可能性としてはだいたい以下の4つが挙げられる。 Perlレベルでの循環参照 グローバル変数に値をどんどん足しているとき*1 XSレベルでリファレンスカウントの管理ミス XSレベルでmalloc()したメモリの管理ミス この1-3についてはすべてPerlインタプリタ内の出来事であり、Test::LeakTraceを使って検出できる。4を検出するのは難しいが、Test::Valgrindが役に立つ。 Test::LeakTraceのSYNOPSISは歴史的経緯によりごちゃごちゃしているが、テストで使うべき関数はno_leaks_ok()とleaks_cmp_ok()だけである。 たとえば、以下のようにして使う*2。 #!p

    Perlのメモリリークを見つける方法 - Islands in the byte stream (legacy)
    sugyan
    sugyan 2011/06/19
  • 1