2011-01-01から1年間の記事一覧
最近、クロスリファレンスツール(gnatfindとかocamlspotなど)はビルドツール(gnatmakeとかocamlbuildなど)に内蔵されているべきと思うようになってきました。 だってビルドツールはソースの位置とか中間ファイル(大抵クロスリファレンスに必要な情報も持って…
参考URL: http://brion.inria.fr/gallium/index.php/Using_an_external_library酷評されているocamlbuildを使ってみましたので忘れないうちにメモ。その1main.mlがあったとします。 $ ocamlbuild main.native_buildという作業ディレクトリが作られて、なんや…
http://d.hatena.ne.jp/shinichiro_h/20100823#1282563465の例は参照カウンタを活用すればstd::stringはもっと輝けるはずだ、clear();append(dir);ではなくてassign(dir);すればもっと速いんじゃないか、という実験。パターン1 void JoinFilePathStr(string …
2012対応状況 use all type → 「変数 := 式;」の形の式の部分でのみOK。 Implicit_Dereference → 関数呼び出しの返値でのみOK。 range-based for(違) → OK、ありえんぐらい酷いコードが出てくるけど動く。Ada.Iterator_Interfacesもちゃんとある。 operator …
何度も書いてますが、言語組み込みの文字列とライブラリ提供の文字列では効率に天と地の差があります。C++みたいになるべく自然に使えるように努力している言語ですら、その差は到底埋められていません。ましてやAdaのUnbounded_Stringなんて(略)ですよ。 De…
http://panathenaia.halfmoon.jp/birdeyes/やっぱり何番煎じかわからないのですが……。愛用させていただいていたI knowが終了してしまって困ったことは、「複数のRSSをまとめた結果をRSSとして再出力できるWeb上のRSSリーダーがない」ということでした。(ダッ…
-
先述の循環参照への対応は実装しました。これでもうopaque typeが変な使われ方をしていても大丈夫!ええ、めんどくさかったですが。 でも、libxml2には更にその先があったのです……。xmlregexp.h /* 宣言A */ #include <tree.h> /* 宣言Bを使う */ tree.h /* 宣言B */</tree.h>…
引きずって申し訳ありませんが、先のranhaさんの発表を聞いて以来、Exceptional C++を読み返しています。 で、116ページでとんでもない文を見つけてしまいました。 先行宣言で十分な場合は、決してヘッダをインクルードしないこと。 とんでもない!この一文…
の懇親会?みたいなのが無かったので(まあ私は聴講者その1に過ぎなかったのですが)、発表者のranhaさんと、nihaさんとeldeshさんを呼び出して(なんという不遜、なんという豪華メンバー)秋葉原で適当に話してきました。ありがとうございます。覚え書き。C++0x…
こういう「すべての例外を受け取る」機能って、本当にすべての例外を受け取れるとは限りませんよね……。もちろん実装次第ではあるのですが。 具体的には「他の言語ランタイムから投げられた例外」。g++とgcjとGNATで関数ポインタ交換しあって例外投げまくった…
明日はhttp://partake.in/events/9874b92a-4cf0-4a20-a3fe-951239da5612に出かけること忘れるな俺。あれ……↓の広告はなんでしょう?今までこんなのが入った記憶は無く。
http://www.ada-auth.org/standards/12rm/html/RM-A.htmlを眺めていて、Wide_やWide_Wide_バージョンが必要な大抵のpackageはAda.直下にWide_なんとかがあるのですが、StringsだけAda.Strings.Wide_なんとかの形になる(他と同じならAda.Wide_Strings.なんと…
http://www.ada-auth.org/standards/12aarm/html/AA-A-3-2.htmlIs_Line_Terminator, Is_Mark, Is_Other_Format, Is_Punctuation_Connector, Is_Spaceが追加されます。Unicodeカテゴリともちょっと違うようですし(ていうか素直にIs_XXXをUnicodeカテゴリの全…
http://blog.i-know.jp/archives/2011/08/04/i_know_suspend/今までお世話になりました。 細かいことなんですが、各rssから最新の1件だけを取り出してひとつのrssにまとめてくれるのが便利だったんですよね、i-know。さて、どこに移行しよう……。(というのを…
定期的にAda 95のRationaleを読み返したくなります。http://web.archive.org/web/20020607043031/http://www.tsujiken.ee.kogakuin.ac.jp/jada95_02.htmlこのRectangle(四角)からCuboid(立方体)を派生させる例、OOPの入門としては犬猫動物並によくあると思う…
にわか雨がいつ降るかわからないので出かけられない。(言い訳)
--;
--;
gistのはてなダイアリー埋め込みテストも兼ねて。LLVMでの例外の扱いは基本的にgccと同じようです。libgccを使って投げた例外を受けることができます。 gccの例外をゼロから実装するにはぱーそなりてぃふぁんくしょんというとても面倒な関数を書かないといけ…
間違いなく埋もれた名作です。 それも、事前になるべく情報を仕入れないでプレイするべき種類のゲームです。 ただし、これを名作と思えるには、ひとつのネタバレ(?)をあらかじめ把握している必要があります。ムジュンしてると思われるでしょうが、書かせて…
……orz
試した分だけ。コンパイルには-gnat2012が必要。 function F return Integer is (0); 通る。便利になりましたね。 use all type 構文としては通ります、しかしまだ効果はuse typeと同じ aspect 型にのみ付けられるっぽいです。aspect.adsを見る感じ既存pragm…
完璧に余計なお節介ですが、id:mole-studioさんが迷っておられてます*1ので、死んだ知識ではありますが。ちなみにDelphi7ぐらいの知識で書いてますので最近のことはわかりません!Delphiのconstructorは、外からみるとクラスメソッド、中からみるとインスタ…
gistというのがなんだかよくわかりませんが素晴らしいみたいですので、折角githubに登録したので、遠い昔アルゴリズムの勉強用に書いたコードを貼ってみました。もし無量大数が一、必要な人の検索に引っかかったら嬉しいなあぐらいで。https://gist.github.c…
久しぶりに戯言です。
あー、一ヶ月何も書かなかったな……。
MacBook Air 11インチ欲しい!です。ちなみに宝くじは買わない派。
Ada弄りも惰性になってきたな……。 ここらで新しい言語をやりたい。気楽にできるやつ。N88BASICぐらいに簡単にゲーム作れたりするとなおよし。なんかないですか!(まあ、俺Adaランタイムも、そのうちVoVで使うことを目標のひとつに作ってるわけですが……)そん…
前にも書いたとおりAdaのStringは規格ではLatin-1*1ということになってまして、IO関係はWide_Text_IOであってもファイル名は軒並みStringですので、規格を鵜呑みにすると、Latin-1以外の文字が使われたファイル名を扱う方法が全くないとか、ワイド文字を識別…