エンジニアなプログラマ

プログラミング(特にvala言語関連)の話題を取り上げていきます。

現在、新しいクラス図描画ソフトを開発中! http://gridraw.com/

Vala

interfaceの順序

概要 少なくとも現時点(ver.0.24)では、クラスに設定するinterfaceの順序を気にする必要がある。 ソースコードと実行結果 まず、問題のソースコードと、 その実行結果を見てみよう。 interface IFirst {} interface ISecond : IFirst { public abstract int …

internal-vapiオプションのバグ?

目的 以前の記事(静的ライブラリ内のprivateクラスへアクセスする - エンジニアなプログラマ)で、 --internal-vapiオプションについて記述した。 このオプションに関してvalacのバグと思われる動作があったので、 その詳細と回避策を記録しておく。 なお、bu…

静的ライブラリ内のprivateクラスへアクセスする

目的 複数のvalaソースに分割されたプログラムをmakeする際、 静的ライブラリを生成してリンクすることはよく行われる。 この時、静的ライブラリ内で使用しているprivateなクラスを、 外部から使用する方法を検討する。 結論 valacのオプション-Hと--interna…

GLib.Test.add_func()でデリゲートを生成できないとき

目的 テストでGLib.Testを使用した際、add_func()の引数に関して次のようなコンパイルエラーが発生した。 Cannot create delegate without target for instance method or closure この解決方法を検討する。 現象 例えば次のようなソース。 private class Un…

automakeにおけるVALAFLAGSの制限

valacは出力.cファイルの名前を変更することができない。 その影響で、automakeでは、 同じソースを複数のターゲット(PROGRAMSやLIBRARIES)で 使用することができなくなっている。 なぜなら、automakeのvala言語対応においては、 .valaを.cにリネームしたタ…

Valadocのインストール方法

Valadocとは Valadocはvalaソースコードに記述されたコメントから、ドキュメント生成するソフトウェア。 公式サイト https://wiki.gnome.org/Projects/Valadoc 前提 Ubuntu 12.04 LTS valac 0.22.1 手順 ソースコードを入手する。 git clone git://git.gnome…

gee-views公開

目的 GDBではGeeのコンテナの要素を直接表示できない。 さらに、データ構造もライブラリで隠蔽されているため、 無理やり(メモリを)覗き見するのも難しい。 そこで、Geeのライブラリ関数を使用して、 Geeコンテナの要素をGDBで表示できるようにするマクロ…

Vala言語の特徴 (2)

前回に引き続き、vala言語の特徴を紹介する。 なお、公式ページはこちら。 https://wiki.gnome.org/Projects/Vala ネイティブなバイナリを生成できる valaのソースコードから、最終的にはネイティブなバイナリコードを生成できる。 PerlやRubyのようなインタ…

Vala言語の特徴 (1)

vala言語。 これは数年前に開発された新しい言語である。 日本での知名度はまだ高くないようだ。 そこで、今回はvala言語の特徴を紹介してみよう。 なお、公式ページはこちら。 https://wiki.gnome.org/Projects/Vala 文法はC#ライク vala言語の文法はC#とほ…