タグ

xsに関するdannのブックマーク (78)

  • perlxsねた - holly's wiki

    holly's wiki hollyさんのwiki トップページページ一覧メンバー掲示板編集 perlxsねた 最終更新: kurt0027 2011年01月05日(水) 23:57:17履歴 Tweet もう忘れてしまってるのでよくわからん 参考になりそうなところ 私的 XS メモ - IT戦記 v8 (Google JavaScript Engine) を Perl XS モジュールにしてみた - daily dayflower Perl XS メモ - typemap と MAGIC をからめて - daily dayflower 複数ファイルを使った中規模 XS の開発 - daily dayflower XS(とC++)入門したい - はこべにっき# モダンなXSの書き方 - use GFx::WebLog; XSでCの文字列操作関数を使用するべきでない理由 - use GFx:

    perlxsねた - holly's wiki
    dann
    dann 2009/07/21
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    dann
    dann 2009/07/02
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    dann
    dann 2009/06/25
  • Using XS code template for Class::MOP - Islands in the byte stream (legacy)

    XS code template法を使ったアクセサジェネレータをClass::MOPに実装してみた。 #47031 Makes simple readers to install easily 現在(0.86)はアクセサを定義するためにprehashed_keysテーブルをはじめとしてソースコードのさまざまな部分を修正しなければならないが,これによってアクセサの定義が非常に簡単になる。またその結果,メンテナンスもしやすくなることも期待できる。 さらに,上記のperl-users.jpの記事では得意げに「ハッシュ値を計算しておく」などと書いてしまったが,実際にはその必要はまったくない。その理由はXSで共有文字列を活用するに書いたように,共有文字列SVはハッシュのキーとして使うように設計されており,SV構造体内に計算済みのハッシュ値を持っているからだ。そこで,この知見もパッチには取り入れてある

    Using XS code template for Class::MOP - Islands in the byte stream (legacy)
    dann
    dann 2009/06/17
  • wakaponさんの超☆Perl備忘帳: DynaLoader.pm XSLoader.pm newXS

    DynaLoader.pmとXSLoader.pmまわりのお話.動作の仕方や,両者の違いなどを見ていく.参考にしたのはperl5.10.0のソースツリー. 1. XSUBとnewXS DynaLoaderの質はXSUBなので,まずはそのあたりから見ていく.XSUBを使ったモジュール(=Pure-Perlじゃないモジュール)を作成するときには,DynaLoader.pmやXSLoader.pmを使う.例えばthreads.pmの場合,冒頭に以下のような記述がある. # Load the XS code require XSLoader; XSLoader::load('threads', $XS_VERSION); これでXSUB(単にCのサブルーチン; XSコード)をPerl処理系に組込んだことになる.この「組込む」という工程には,newXSが使われる.例えばthreads->creat

    dann
    dann 2009/05/20
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    dann
    dann 2009/04/16
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

    dann
    dann 2009/04/02
  • Lexical::Types by VPIT - Islands in the byte stream (legacy)

    Vincent Pit氏のLexical::Typesがなんだかすごい。 SYNOPSISより: { package Str; sub TYPEDSCALAR { Some::String::Implementation->new } } use Lexical::Types; my Str $x; # $x is now a Some::String::Implementation object もともとPerlには"my Class $x"という構文があり,昔は擬似ハッシュのために使われていたが,現在は形が残されているだけで意味のない構文だった。その使われていない型宣言構文を再利用したのがこのモジュールである。これは純粋なPL_check Hackであり,ソースフィルタは一切用いていない。PL_check Hackもここまでくると芸術的だ。

    Lexical::Types by VPIT - Islands in the byte stream (legacy)
    dann
    dann 2009/02/28
  • perl - Text::Tx now released! : 404 Blog Not Found

    2009年02月22日00:15 カテゴリ perl - Text::Tx now released! 以前作って放置してあったText::Tx を、CPAN にも Release したのでお知らせします。 /lang/perl/Text-Tx/L/trunk - CodeRepos::Share - Trac Dan Kogai / Text-Tx/ - search.cpan.org http://www.dan.co.jp/~dankogai/cpan/Text-Tx-0.02.tar.gz 404 Blog Not Found:perl - Text::Tx も一応作った CPANにまだ上げない理由その一。txはlibraryとして素直に使うにはちょっと問題があるのです。 もう一つは、なぜか Mac OS X v10.4.11 の gcc 4.0できちんとcompileしないこと。

    perl - Text::Tx now released! : 404 Blog Not Found
    dann
    dann 2009/02/22
  • wakaponさんのよく☆ある☆ふつーの備忘帳: おすすめの1本

    acmポータルでPerlネタの論文を探していたら,Perl5 Internalsに触れている論文を発見しましたので紹介いたします.Perlの内部構造について知りたい方は目を通しておくとよいかもしれません.処理系の内部仕様と実装(5.8.8)の話が文章としてまとまっており,分かりやすい内容となっております.Extracting Facts from Perl Code (acmポータル内のリンク)Daniel L. Moise, Kenny WongReverse Engineering, 2006. WCRE '06. 13th Working Conference上のリンクからですとお金払ってみてくださいーとか出てくるので,「Extracting Facts from Perl Code」でぐぐると著者の方が原稿をpdfで公開なさっています.PerlGuts IllustratedやPe

    dann
    dann 2009/02/07
  • Perl Magicは意外と簡単に使える - Islands in the byte stream (legacy)

    PerlのC APIにはMagicという考え方があって,任意のSVにフックとプライベートデータを付けることができる。このAPIはXSからでも利用できるのだが,難しそうで敬遠していた。しかし,試してみると意外と簡単に使えることが分かったのでメモしておく WeakRef::Auto http://search.cpan.org/dist/WeakRef-Auto/ 使い方は意外と簡単で,フックしたい操作のためのメソッドを入れたVirtual Tableを用意して,sv_magicext()を呼び出すだけ。 まずVirtual Tableと識別のためのユーティリティをCセクションに置く: #define PERL_NO_GET_CONTEXT #include "EXTERN.h" #include "perl.h" #include "XSUB.h" typedef SV* SVREF; st

    Perl Magicは意外と簡単に使える - Islands in the byte stream (legacy)
    dann
    dann 2009/02/06
  • XS code template - 動的にXSUBを生成する - エキスパートPerl - Perl-users.jp

    XSコードはふつうPerlコードよりも多機能で高速ですが,書くのが難しいため敷居が高いことも事実です。また,いちいちコンパイルしなければならないのも煩わしい点です。 ところで,Perlにはクロージャという仕組みがあり,動的にコードを生成することができます。したがって,XSでクロージャに等しいことを実現できれば,XSコードの煩わしさを避けつつXSの利益を享受することができます。 なお,この文書はXSによるコード例を解説していますが,XSそのものについては解説しません。 XSについてはperlxstutやperlxs,perlapiを参照してください。 クロージャの分析 まず,Perlのクロージャを分析します。Perlのクロージャは以下のようなものです。 sub make_accessor{ my($name) = @_; return sub{ $_[0]->{$name} }; } my

    dann
    dann 2009/01/29
  • http://code2.0beta.co.uk/moose/svn/Class-MOP/trunk/MOP.xs

    dann
    dann 2009/01/23
  • Re: XSの勉強を始めるためのエントリーポイントは? - Islands in the byte stream (legacy)

    Re: XSの勉強を始めるためのエントリーポイントは? あまり参考にならないかもしれませんが,私がXSを勉強するにあたっては,CPANのモジュールのソースコードを読むより実際に書いてみるのが一番だと思います。ただし,何か特定の目的があって,そのために関係がありそうなコードを探して読む,ということは非常によくあります。 以下,思いついたことを適当に並べてみます。 自分でコードを書いてみて初めて分かることが少なくない 学ぶのに適した理想的なコードは,そう簡単には見つからない 古い書き方やおかしな書き方をしているコードも大量にあるので,そういうコードをフィルタリングするためにも,いろいろな作者のコードを読んだほうがいい 多くのコードの中から理想的な部分を抜き出して,それを身につけていく 目的とまったく関係ないコードから閃きを得ることも多い perlのソースコードをすぐ参照できるようにしておくのは

    Re: XSの勉強を始めるためのエントリーポイントは? - Islands in the byte stream (legacy)
    dann
    dann 2009/01/21
    おぉ、ありがとうございます
  • perl5.git.perl.org Git

    dann
    dann 2009/01/21
  • perl5.git.perl.org Git

    This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5

    dann
    dann 2009/01/21
  • Perl 5 Internals

    Open Publications License 1.0 Copyright (c) 2001 by NetThink. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/). This series contains material adopted from the Netizen Perl Training Fork, by kind permission of Kirrily Robert. Table of C

    dann
    dann 2009/01/21
  • perl - URI::Escape::XS 0.04 - URI Encode と Punycode の共存 : 404 Blog Not Found

    2009年01月16日17:30 カテゴリLightweight Languages perl - URI::Escape::XS 0.04 - URI Encode と Punycode の共存 URI::Escape::XS 0.04 を Release したのでお知らせします。 /lang/perl/URI-Escape-XS/trunk - CodeRepos::Share - Trac Dan Kogai / URI-Escape-XS - search.cpan.org (Wait till updated) きっかけは、これ。 はてなブックマーク - %E8%84%86%E5%BC%B1%E6%80%A7%E8%A8%BA%E6%96%AD.jp IDN、国際化ドメイン名は、 URI Encode ではなく Punycode で encode しなければならない。よって「脆弱

    perl - URI::Escape::XS 0.04 - URI Encode と Punycode の共存 : 404 Blog Not Found
    dann
    dann 2009/01/20
  • wakaponさんの超☆痛々しいPerl備忘帳: threads.xsめもめも

    threads.xsで使われているインタプリタスレッドの構造についてまとめたものをめもめ.最初にPerlithreadsの概要について説明してから,管理構造,提供されるメソッド,マジックについて説明していく. 1. Perlのスレッドの概要 Perlのスレッドはインタプリタスレッド(ithreads)と呼ばれる.スレッドのモデルはネイティブスレッドモデルである.1つのインタプリタスレッドは,1つのネイティブスレッド上で実行される.1インタプリタスレッドの親スレッドから指定されたサブルーチンは,インタプリタスレッド上に用意されたインタプリタインスタンスで実行される. スレッド間でのデータ共有は明示的に行う.1つのインタプリタスレッドから新たなスレッドを生成した場合,親スレッドのインタプリタインスタンスの内容がすべて子スレッド中のインタプリタインスタンス内にコピーされる.そのため,明示的に共

    dann
    dann 2009/01/16
  • はてなブログ | 無料ブログを作成しよう

    顔に見える?最近「送水口」が気になるという話 「送水口」が気になる今日この頃 最近街中で気になる存在、それがこの「送水口」です。地上のフロアが7階以上あるビルなど、一定の条件を満たした建築物には設置が義務付けられているもので、火事が発生したフロアにただちに水を送るために使われるものです。ポンプ車…

    はてなブログ | 無料ブログを作成しよう
    dann
    dann 2009/01/15