application library

後で調べる

このメッセージはlibtoolが出力してるのかな? それぞれの環境変数の意味はどっかで調べた気がするけど,記憶の彼方. 後で調べておこう: - Libraries have been installed in: /directory/path/to/the/libraries If you ever happen to want to link agains…

mkmf.rbが提供するhave_headerにて実行されるCPP="gcc -E"を,C++用にCPP="g++ -E"にする

require "mkmf" Config::CONFIG["CPP"] = "g++ -E" # … have_header("hoge/foo.hpp") # … Config自体はmkmf.rbでrequireされているrbconfig.rbで定義されている模様.

REXMLのDoS脆弱性

REXMLのDoS脆弱性 入力の量や構造の複雑さがそのままDoS攻撃に繋がるということか.再帰的なアルゴリズムだと,スタックを消費して落ちそう → スタック数に制限を設けることができるようにして,適切な例外を設定して回避,とかするのかな?個人的にWebアプ…

メソッド定義のデフォルト式はどう実現するのか?

Rubyではメソッドの定義で,仮引数のデフォルト値を与える式も定義することができる. # この場合はcとdがデフォルト値が与えられた仮引数という def foo(a, b, c = [], d = {})ことになる [a, b, c, d] end foo(0, 1, 2, 3) => [0, 1, 2, 3] foo(0, 1, 2) =…

C++でClass#allocateを登録する

Ruby 1.8.7 p72 VALUE rb_cUserDefined; /* … */ VALUE your_class_singleton_allocate(VALUE klass) { VALUE allocated; /* … */ return allocated; } /* … */ #ifdef __cplusplus extern "C" { #endif void Init_your_ext(void) { /* … */ rb_cUserDefined…

C++でRubyの拡張ライブラリを書く時のためのメモ

Cのサンプルは沢山あったし動いたけど,C++の場合は色々とやらなければならないことがあるようだ.とりあえず簡単に書いたものを貼っておきます: #include<cstdio> #include<ruby.h> typedef VALUE RubyType(...); static VALUE add(VALUE self, VALUE va, VALUE vb) { VALUE</ruby.h></cstdio>…

NTL

数論に基づくプログラミング用のライブラリに,NTLというC++のライブラリがあります.なかなか高性能で,関数群も充実しているのでお勧めです.FreeBSDだと/ports/math/ntlに入ってますね.Project Eulerにも良いかもしれません.ただ,クラスや関数群の構成…