10/04/16 19:47:55 /6r9tkwK.net
.bashrc
export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
$hg clone -r release URLリンク(go.googlecode.com) $GOROOT
$cd $GOROOT/src
$./all.bash
Note: fedora case selinux error:
URLリンク(groups.google.com)
$hg clone URLリンク(gobuild.googlecode.com) gobuild
$make
error: gobuild.go:62: undefined: os.Dir
edit: os.Dir -> os.PathInfo
$make
$cp gobuild $HOME/bin
$hg clone URLリンク(gopages.googlecode.com) gopages
$cd gopages
$gobuild gopages.go
$cp gopages $HOME/bin
$gobuild main.go
$./main
gopages serving on :9999
101:97
10/04/16 19:52:41 /6r9tkwK.net
>>97
ad-hoc rhtml like template is good stuff. ^^;
102:login:Penguin
10/04/21 01:15:16 nUefU5z/.net
テキストファイルを読み込んで string を返すようにしようと思ったら、
意外とすっきり書けないな。
一番シンプルに書こうとするとどんな感じになるかな?
103:login:Penguin
10/04/21 01:41:59 nUefU5z/.net
自己解決した。
var file = new MappedFile ("hoge.txt", false);
var text = (string) file.get_contents ();
でいいかな。
104:login:Penguin
10/04/22 23:52:50 Nm7c6dz1.net
>>100
URLリンク(gitorious.org)
--pkg vala-1.0
参考になるかも
105:login:Penguin
10/04/25 01:04:30 j8R9B01z.net
ありがと。見たところ読み込みにはMappedFileを使っているみたいだから、
やっぱりMappedFileで良さそうだ。
106:login:Penguin
10/05/01 18:58:09 lTmE6Ym2.net
>102
ちょっと遅いけど。
URLリンク(live.gnome.org)
こっちの方が、順次データを読み取っていく分でかいファイルを扱う時に良さげ。
107:login:Penguin
10/06/08 02:51:18 RC5oVszE.net
void main () {
int[] a = { };
a += 1;
a += 1;
}
これをCに変換すると
static void _vala_array_add1 (gint** array, int* length, int* size, gint value) {
if ((*length) == (*size)) {
*size = (*size) ? (2 * (*size)) : 4;
*array = g_renew (gint, *array, *size);
}
(*array)[(*length)++] = value;
}
static void _vala_array_add2 (gint** array, int* length, int* size, gint value) {
if ((*length) == (*size)) {
*size = (*size) ? (2 * (*size)) : 4;
*array = g_renew (gint, *array, *size);
}
(*array)[(*length)++] = value;
}
と全く同じ関数が2つ出来るのは無駄過ぎる…。バグだよなぁ。
108:login:Penguin
10/06/08 23:45:06 RC5oVszE.net
0.9.1 リリース記念上げ!
今年中に 1.0 のリリースもあるかな。
109:login:Penguin
10/06/22 00:49:34 TjdwcnPd.net
0.9.2 リリース記念上げ!
110:login:Penguin
10/07/22 10:29:41 14B/bjH4.net
遅くなったけど、
0.9.3 リリース記念上げ!
111:login:Penguin
10/08/01 23:45:56 9Z4W30qB.net
0.9.4 リリース記念上げ!
112:login:Penguin
10/08/11 09:30:49 biiTT6x9.net
Valaってリファレンスカウント?
113:login:Penguin
10/08/16 13:38:29 +2cG0APL.net
今までRuby/Gtk2で書いてたけど、Vala結構いいな。
114:login:Penguin
10/09/04 09:53:44 QHFWA809.net
マクロとインライン関数とインラインアセンブラを使いたいっ
115:login:Penguin
10/09/06 23:38:41 me8osAkX.net
0.9.8 リリース記念上げ!
116:login:Penguin
10/09/06 23:47:04 me8osAkX.net
やっと書き込めるようになったよ…とほほ
>>109
リファレンスカウントだよ。
>>111
インライン関数は、-O3でコンパイルすればコンパイラの判断で小さい関数は
インラインになるから、特別必要ではないかな。
マクロは使わずにジェネリックスを使うべし。
インラインアセンブラもCの関数内に書いて、Valaにインポート(.vapi)するので
いいんじゃない?
117:login:Penguin
10/09/08 15:47:24 0olPHVFE.net
>>113
Valaの言語仕様見たら、これでもうC++,C#いらないんじゃない?
118:login:Penguin
10/09/10 00:42:35 CnYQUcwL.net
>>114
いらなくなるって事はないだろうけど、C++,C#の良いとこ取りで
ある事には違いない。
それに、C++はライブラリを作ってもC++からしか(直接)呼び出せないけど、
Valaでクラスライブラリを作ってもCからも使えるのが最高。
119:login:Penguin
10/09/10 08:06:49 luUlP4sj.net
文字コードの変換がうまくできん
sjis->utf8で、iconvと同じで~とかが入ってると死ぬ
120:login:Penguin
10/09/11 01:16:19 m+SVumir.net
Valaって、C++やgtkmmの知識は必要ないの?
121:login:Penguin
10/09/11 01:25:28 80Xsc9fh.net
>>116
Valaで文字コードの変換をやった事がないんでよく分からん。
まぁ、基本UTF-8だからね…
>>117
まったく必要ないよ。C#にそっくりだけど、C#を知っている必要もないし。
122:login:Penguin
10/09/11 21:16:11 bAfz4iHt.net
全部単一のソースファイルに書いているうちはいいとして、
複数のファイルにわけたくなった場合の分割コンパイルってどうやるの?
123:login:Penguin
10/09/11 23:23:42 80Xsc9fh.net
自分はCMake使ってるけど、それがやってる手順は
・必ず valac -C *.vala(全部のValaソース) を実行する
valac は内容が同じだと *.c のタイムスタンプを更新しない
それに、必ず全Valaソースを valac に掛けないと、ちゃんと*.cが出来ない
・更新された *.c をCコンパイラでコンパイルする
その時にヘッダーファイルはいらないようになってる。
(使っているライブラリのはいる)
・で、出来た *.o をリンクする
って感じかな。
124:login:Penguin
10/09/12 18:31:31 FtkVyF/Q.net
速くなんのかそれ? 分割コンパイルの意味ほとんどなさそー。
125:login:Penguin
10/09/13 21:43:56 sTXZUSGC.net
-C は*.cの日付しか比較してないかな。
感覚的には、g++よりはだいぶ早いよ。
だた巨大なプロジェクトだとどうなるか分からん。
126:login:Penguin
10/09/14 22:01:58 q84SH/q/.net
配列のソートをやるときにPosix.qsortが出てくるのがださいな。
array.sort(~);
ってやらせてほしい。最新版だとできるのかもしれないけど。
127:login:Penguin
10/09/14 23:46:50 v9kG5jgm.net
Array を使えば Posix.qsort を使わなくてもいいけど、Array 自体が
ダサイんで、その辺りでもっとモダンなAPIを使いたかったら
URLリンク(live.gnome.org)
がいいよ。
128:login:Penguin
10/09/14 23:52:59 q84SH/q/.net
libgeeか。libgeeも標準でついてくればいいのに
129:login:Penguin
10/09/15 00:29:40 GF+yTf6g.net
まぁ、Vala は余計なランタイムがいらないのが売りだから、
標準でついてくる事はなさそう。
Array がもっと洗練されたインターフェースになれば必要なくなるのに。
130:login:Penguin
10/09/15 23:28:28 e37Wp/kJ.net
盛り上がってきたな。
131:login:Penguin
10/09/16 07:53:18 aySYUnZ7.net
日本語の情報すくなすぎわろす
132:login:Penguin
10/09/18 01:37:41 8ySMdkov.net
ちょっとしたTIPS。
printf にファイル名と行番号を一緒に表示したい時とかあっても、
Vala は __FILE__ や __LINE__ とかが使えない。そこで、
message ("hoge");
ってやれば、
** Message: hoge.vala:15: hoge
みたいに、ファイル名と行番号が表示されるよ。
133:login:Penguin
10/09/18 02:14:47 8ySMdkov.net
>>121
今一番デカい Vala 使ったプロジェクトって何か分からないけど、
Vala 自身が結構デカいんで、>>120の速度を検証してみた。
vala-0.9.8/vala/ 以下に *.vala が145ファイルあって、全く
依存性のない valacomment.vala を日付だけ変えて make を
したところ、valac に145ファイルを一気に渡してるけど、
その時間が10秒ぐらい掛かってた。(core2 duo 2.16GHz)
その後のビルドは gcc なんで、g++ に比べるとかなり早い。
まぁ、ちゃんと細かくライブラリに分けて valac にあまり
ファイルを渡さないようにするのが吉だな。
134:login:Penguin
10/09/18 08:03:56 ZMH1fM+O.net
>>129
Log.FILEとLog.LINEでおk
135:login:Penguin
10/09/18 13:57:49 dKwk8Vzz.net
誰もきいてないg++との比較を唐突に持ち出して自分を慰めるスレ
136:login:Penguin
10/09/19 00:09:32 bLHejXEb.net
>>131
おぉ、それは知らなんだ。ありがとう。
137:login:Penguin
10/09/19 08:12:10 bLHejXEb.net
0.10.0 リリース記念上げ!
138:login:Penguin
10/09/25 06:12:27 auRxQl39.net
>>113の-O3でのインライン関数は、gccだと同じファイル内にstatic宣言されている
関数だけしか自動的にインラインにならなかった。
だから、インライン関数はやっぱりValaが対応してくれないと駄目だね。
場合によっては、パフォーマンスに大きく影響する所だから早めに対応して欲しいな。
139:login:Penguin
10/10/13 01:01:14 uqtJdPnG.net
おっと、忘れた。
0.11.0 リリース記念上げ!
140:login:Penguin
10/10/13 17:24:27 yOuawncH.net
Fedoraに続いてUbuntuでもF-Spotに代わってShotwellが標準に。
141:login:Penguin
10/10/15 10:02:51 vZDRagAZ.net
>>137
脱mono&.netって流れですな。
こりゃ吉報だ
142:login:Penguin
10/10/16 13:10:02 ArVLh3zF.net
>>137
おぉ、Valaが少しずつ浸透していってうれしいなぁ。
後はGTK+とWindowsの相性がもっと良くなってくれればいいんだが。
143:login:Penguin
10/10/27 01:52:27 uug/Y6Un.net
0.11.1 リリース記念上げ!
なぜ 0.12 じゃないのか分からん…
144:login:Penguin
10/10/27 08:19:44 zAy76E0j.net
リリースノートとか見てないけど、よほど小規模なんだろう。
それかバージョンの上げ方を変えたとか
145:login:Penguin
10/10/28 02:52:40 tk8GPYzV.net
ん? 0.10.1 リリース記念あ…いや上げない
0.11 が開発ブランチで、0.10 が安定ブランチらしい。
そんで、0.12 が 1.0 になるかもだって。
146:login:Penguin
10/11/10 00:38:44 ygmS3jMN.net
0.11.2 リリース記念上げ!
基本的にバグフィックスバージョンだけど、
出力されるCのソースが綺麗になった気がする。
147:login:Penguin
10/11/23 02:17:51 McaRlFmi.net
string が単なるバイト列になったので utf-8 の日本語を1文字づつ処理する方法。
void main()
{
string name = "焼肉定食";
for (string utf8 = name; utf8.length > 0; utf8 = utf8.next_char()) {
unichar chr = utf8.get_char();
stdout.printf("%s\n", chr.to_string());
}
}
148:login:Penguin
10/12/05 04:35:31 DrFQ2hQ2.net
今,Shotwell co してるんだけどvala ぽい
149:login:Penguin
10/12/05 05:07:33 bhyZjHqe.net
>>145
>>137で既出なんだけど、こういうGTK+のアプリを作るにはうってつけなんだよね。
150:login:Penguin
10/12/05 05:16:17 bhyZjHqe.net
それと、>>144は unowned を使わないと効率が悪かった。
Cに変換して g_strdup がやたら使われていたら大抵 unowned のし忘れだね。
最近 const も使えるようになったんで使ってみた。
void main()
{
const string name = "焼肉定食";
for (unowned string utf8 = name; utf8.length > 0; utf8 = utf8.next_char()) {
unichar chr = utf8.get_char();
stdout.printf("%s\n", chr.to_string());
}
}
151:login:Penguin
10/12/13 21:33:08 smRVrdmh.net
結局吐いたCのソースを眺めてたりするよなw
152:login:Penguin
10/12/21 01:12:22 ABvoFods.net
バイナリファイルの読み書きはこんな感じかな。
namespace Binary {
struct Bin {
int param0;
float param1;
}
static int main (string[] args) {
var bin = Bin ();
bin.param0 = 321;
bin.param1 = 456.0f;
try {
// 書き込み
FileUtils.set_contents ("data.bin", (string) (&bin), (ssize_t) sizeof (Bin));
// 読み込み
var file = new MappedFile ("data.bin", false);
Bin* bin_in = (Bin*) file.get_contents ();
print ("%d:%.2f\n", bin_in.param0, bin_in.param1);
} catch (Error e) {
print ("%s\n", e.message);
}
return 0;
}
}
153:login:Penguin
10/12/30 02:30:08 TDGgyZNr.net
GLib の API は使った後に g_free しないといけないものがたくさん
あるんで、メモリリークせずにちゃんと書こうとしたらスゲー大変。
(別に GLib が悪いという訳ではない)
Vala は C 並の速度でありながらメモリリークを気にしなくていいんで、
それだけでもすんげー便利なんだよね。
154:login:Penguin
11/01/01 00:08:35 I3WGYOP1.net
あけおめ!
今年も Vala の進化が楽しみだね。
155:login:Penguin
11/01/10 04:18:42 DHLV8UY4.net
0.11.3 リリース記念上げ!
新機能が追加されなくなってきたんで、1.0のリリースが近いのかも。
156:login:Penguin
11/01/16 10:24:21 8UPlgNHy.net
0.11.4 が昨日出てた
なんとなくだけど、しばらく停滞するんじゃないべか…
という希ガス
157:login:Penguin
11/01/19 00:53:33 AHjWAb2g.net
停滞じゃない安定だ
ただ、停滞も安定もして欲しくないけどね
158:login:Penguin
11/02/01 00:53:13 wZrZvTv6.net
質問だけど、*.vala を *.c にした時にインクルードされるファイルって
どうやって決定されるんだ?
インクルードして欲しいファイルがインクルードされずにちょっと困ってる…
159:login:Penguin
11/02/01 12:34:11 tDJ1c7gg.net
[CCode (cheader_filename = "nobita/sanno.h")]
160:login:Penguin
11/02/05 23:27:54 +01ndB4N.net
>>156
ありがとう。vapiにそれが足りないだけだった。
161:login:Penguin
11/02/06 16:09:57 f8dHhTIQ.net
URLリンク(my.opera.com)
URLリンク(opencobol.no-ip.org)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(www.lancard.com)
URLリンク(jp.opencobol.org)
継続は力なり帳票は文化なりと…
162:login:Penguin
11/02/16 01:18:26 qQvuhHNh.net
0.11.6 リリース記念上げ!
だいぶ安定してきたなぁ
163:login:Penguin
11/02/16 01:31:17 qQvuhHNh.net
Valaのfor文をCに変換すると変な書き方になるよなぁ。例えば
for (int i = 0; i < 10; ++i) {
if (i == 3) {
print ("test\n");
}
}
は
gint i;
i = 0;
{
gboolean _tmp0_;
_tmp0_ = TRUE;
while (TRUE) {
if (!_tmp0_) {
i = i + 1;
}
_tmp0_ = FALSE;
if (!(i < 10)) {
break;
}
if (i == 3) {
g_print ("test\n");
}
}
}
となるけど、アセンブラにするとほぼ同じになる。
164:login:Penguin
11/02/20 19:34:08.24 gtuQ5lXO.net
URLリンク(mail.gnome.org)
Monoとの比較結果が出てるけど、個人的にはValaの方が圧倒的かなと
思ってたんで、ちょっと意外だった。まあgobject自体そんなに
軽い代物じゃないから仕方ないかもしれないけど。
このレポートに対応して、g_signal関連の修正が入るみたいだし、
結果的にはよかったね。
165:login:Penguin
11/02/21 23:51:29.57 xkookBj5.net
>>161
Valaのお陰で他のオブジェクトシステムと簡単に比較出来るようになったんで
GObjectの重さが露呈されてきたと思う。
やっぱりベースの部分なんで、どんどんチューニングして欲しいもんだ。
166:login:Penguin
11/02/28 00:46:09.95 pa7jLov5.net
valaを知ってから心の勃起が収まらない。
けど、シンタックスだけ同じでベースがgobjectじゃないvalaっぽい言語が欲っしいなっ。
167:login:Penguin
11/03/01 00:21:13.12 fI1dwocM.net
>>163
Dova profileってのがあるよ。
Valaだけを使って、glib、gobjectを再実装している。
それはそうと、Genericsが未完成過ぎて泣けてくる…
168:login:Penguin
11/03/02 01:23:52.25 W0TOUp0F.net
いつの間にか可変個引数使えるようになってた。
169:正義の下着:コスモパンティー
11/03/06 10:12:39.50 VJ0f/vyY.net
genieって日本語使えないの?valaをもっと簡潔表現した言語のように
感じてます。
170:login:Penguin
11/03/08 00:55:14.96 Qg/iQa8Q.net
なんか、ちゃんとsetlocaleしないと日本語が表示されなくなった…
これはValaもGenieも同じ。
[indent=4]
init
Intl.setlocale (LocaleCategory.ALL, "")
var f = new Foo ()
print f.bar ("世界")
class Foo : Object
def static bar (name : string) : string
return "こんにちわ " + name
171:login:Penguin
11/03/08 00:56:36.53 Qg/iQa8Q.net
> return "こんにちわ " + name
じゃなくて
> return "こんにちは " + name
だった…
172:login:Penguin
11/03/18 09:16:24.29 7nzfGrJF.net
0.11.7 リリース記念上げ!
173:login:Penguin
11/03/19 08:02:59.57 3X5j4uKl.net
URLリンク(live.gnome.org)
で、C# にあって Vala にない機能一覧があるけど、それぞれ私見を書いてみた。
Not Available
* No LINQ (not planned for 1.0, maybe later)
-> 実装待ち
* No operator overloading (vala-list)
-> あって欲しい…。ただ、[](インデクサー)は追加出来る
* No method or constructor overloading (use different method names / named constructors instead, as described above)
-> 別名関数とオプショナル引数を使う事で問題無し
どうしてもというなら、method overloading は GValue を使うことで可能 (URLリンク(mail.gnome.org))
* No extension methods
-> 通常使うべきでない機能 (URLリンク(www.atmarkit.co.jp))
* No constraints on generic type parameters (i.e. no where)
-> あって欲しい…
* No generic delegates
-> 現状で使用可能 (0.9.3 で追加)
* No generators (yield return, planned)
-> 実装待ち
* No variable length argument lists (params, planned), for C-Bindings already possible, e.g. stdout.printf(string format, ...)
-> 現状で使用可能
* No conversion operators (i.e. no explicit and implicit)
-> あった方がいいが、obj.to_hoge() を都度追加するようにすれば問題無し
* No partial classes and methods
-> 通常使うべきでない機能 (Vala のソースを自動生成するツールには必要かもしれないけど)
174:login:Penguin
11/03/19 08:04:03.51 3X5j4uKl.net
続き
* No sealed classes (planned)
-> 実装待ち (無くても問題ないけど)
* No static classes (use nested namespaces instead. Vala supports namespace methods, they are implicitly static)
-> ネームスペースを使えば問題無し
* No goto, no labeled statements
-> 特に問題なし。goto はエラー処理で便利だが、例外を使えばいい
* No constructor initializers
-> base が使えるので問題無いはずだが…
* No bounds checking for arrays (optional support planned)
-> 実装待ち (これに頼らず、ちゃんと assert を仕込むべき)
* No checked, unchecked, fixed, stackalloc, readonly
-> checked, unchecked は特殊用途でしか不要なはず
-> fixed はガベージコレクションの方法が違うので、そもそも不要
-> stackalloc は大体同じ事がより直感的に可能なので不要
-> readonly はプロパティを使えば可能だが、オーバーヘッドはデカいのであった方がいい機能
実装予定機能
* LINQ (1.0 以降)
* generators
* sealed classes
* bounds checking for arrays
実装して欲しい機能
* operator overloading
* constraints on generic type parameters
175:170
11/03/21 08:55:03.50 qRJv0v7y.net
> -> readonly はプロパティを使えば可能だが、オーバーヘッドはデカいのであった方がいい機能
これは
> -> readonly はプロパティを使えば可能 (若干オーバーヘッドが大きい)
だね。間接参照が入るだけなんで、デカいという程じゃなかった。
実装予定機能
* LINQ (1.0 以降) → これは実装されるとは思えん…
* generators → これもC言語の兼ね合いで難しいと思うけど、どう実装されるか楽しみ
* sealed classes → これは主にライブラリ向けの機能だけど、GObject との兼ね合いで実装は無理だね
* bounds checking for arrays → これも必要な所に assert を仕込めばいいけど、それを自動化してくれれば助かる
実装して欲しい機能
* operator overloading → 有用なのは行列演算だけなんだけど…
* constraints on generic type parameters → これがないと Generics がかなり不便な気がするんだけど…
176:login:Penguin
11/04/05 00:35:52.41 7KO6Qhrh.net
0.12.0 リリース記念上げ!
>>147を0.12.0の新機能で実装すると以下のようにシンプルに書ける。
void main()
{
const string name = "焼肉定食";
int index = 0;
unichar c;
while (name.get_next_char(ref index, out c)) {
stdout.printf("%s\n", c.to_string());
}
}
177:login:Penguin
11/06/05 17:00
178::28.73 ID:kbYNy4xN.net
179:login:Penguin
11/06/05 19:45:44.98 z8MV5qJg.net
>先行き不安
kwsk
Monoはモバイルの方に向かってるんだっけ?
180:login:Penguin
11/06/05 22:26:15.15 z8MV5qJg.net
java( or C#)のように書けて、Cとして出力し、GObjectの恩恵が受けられる
ってのはかなり魅力あると思うんだが、普及するのはまだまだ先なのかなぁ…
181:login:Penguin
11/06/06 01:05:26.08 rgr9QUMR.net
>>175
金を出してくれてた会社から独立したからだけど。
確かにiPhoneとかの方に向かってるけど、iPhoneでMonoを使うメリット
ってあるんだろうか…
>>176
基本的にGLib,GTK+の世界でなきゃ、旨味が少ないんでそれの普及次第だと思う。
GTK+界隈ではそこそこ普及してると思うよ。
dconfエディタとか割と重要なソフトも使うようになったし。
182:login:Penguin
11/06/06 01:48:22.73 fOI8aekF.net
>GTK+の世界でなきゃ
そうだった、あまりの便利さに視野が狭くなってた
ところでValaのクラス変数(static)はJavaのそれと違って少しつまずいた
例えば下のコード
class Hoge {
static Hoge foo = new Hoge();
static void check_foo {
assert( foo != null );
}
public Hoge(){}
}
Hoge.check_foo() を呼び出しても Hoge.foo は初期化されていないから
Hoge.init() を用意して対処するようにしたんだけど、これでいいのかな
183:login:Penguin
11/06/06 02:02:47.47 4QezmLvV.net
class Hoge {
static Hoge foo = new Hoge();
public static void check_foo() {
assert( foo != null );
print("foo = %p\n", foo);
}
public Hoge(){}
}
void main()
{
var hoge = new Hoge();
hoge.check_foo();
}
これで、問題無く動いたよ => foo = 0x9c2e000
184:login:Penguin
11/06/06 02:08:09.55 4QezmLvV.net
さらに言うと、
class Hoge : Object {
ってしないと、hoge.cにGObjectの代わりに自前のオブジェクト作成
コードを書き出すから、行数が多くなる。
: Object なし→259行 あり→114行
185:login:Penguin
11/06/06 02:28:04.77 fOI8aekF.net
例えが中途半端ですまん、実はインスタンスを作らずにそのまま呼び出したいんだ
X) new Hoge().check_foo()
O) Hoge.check_foo()
普段は理解もせずObjectを継承するようにはしてたんだけど
そういった違いがあったのか
186:login:Penguin
11/06/06 23:59:22.68 4QezmLvV.net
Singleton パターンの事なんだろうけど、その場合は
class Hoge : Object {
static Hoge foo;
public static void check_foo() {
if (foo == null) {
foo = new Hoge();
}
print("foo = %p\n", foo);
}
public Hoge(){}
}
で、いいんじゃない?
187:login:Penguin
11/06/07 00:27:43.45 hW4rMpee.net
使い始めたばかりで vala の慣例とかは分からないけど、libxml の見本にはこんなのがあるね。
// Initialisation, not instantiation since the parser is a static class
Parser.init ();
188:login:Penguin
11/06/07 19:51:30.07 KLLer8r/.net
>>182
こうすると初めて呼び出した時に値を入れてくれるんだけど
初期化するべき変数が多くなると大変そうだと思ってた
>>183
こちらは明示的に呼び出さなければいけない
でもよくよく考えてみると183の場合でも初期化チェックは必要だから
その時ついでに初期化(182と183を併用)もするようにするといいのかも
189:login:Penguin
11/06/07 20:38:29.11 KLLer8r/.net
クラスの動的ロードについて
Javaで言うところのリフレクションっぽいことをValaでやってみたいと思って
Plugin Sample (GLib Samples)
URLリンク(live.gnome.org)
ここを参考にして、サンプルはうまくいったんだけど
モジュールをリロードしようと思って同じ名前のクラスを2度typeofすると失敗する
GLib-GObject-WARNING **: cannot register existing type
GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion `G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed
未知(ライブラリ内)のクラスを使用しなければ失敗しない
Valaの方でクラスのアンロードができればいいのかもしれないが、その方法がわからない
190:login:Penguin
11/06/08 01:58:53.41 PE72PAWT.net
>>185
試してみたらエラーを起こせなかった。エラーになるコードを見てみたい。
クラスのアンロードの仕方も分からんなぁ。
確かに、未知(といってもGObjectシステム使用)の.soからインターフェースを
探し出してコールするような事をしたいけど、多分無理っぽい。
その為に、.gir(GObject Introspection)があるんだろうけど。
191:login:Penguin
11/06/10 01:44:00.49 mbXsAFUH.net
>>186 とりあえずエラー出すにはサンプル中のmain内の処理を複数回行わせる
void main(string[] args) {
for (int i = 0; i < 2; i++) {
...
}}
192:187
11/06/10 02:05:48.82 mbXsAFUH.net
サンプルの方法で作成したモジュール(ライブラリ)をリロードできないかと思ったけど
サンプル元となったRygelのソースを流し読みしても一度だけ読み込んでるみたい
Javaの場合はクラスローダを複数持つことで、同一のクラスをローダ毎に
別物として利用できるから、あたかもそのクラスをリロードしているように見せることは出来てた
193:login:Penguin
11/06/19 01:12:10.73 rodl4lLJ.net
0.13.0 リリース記念上げ!
これといった新機能はないな。
194:login:Penguin
11/06/23 21:53:19.16 vfxUH1FB.net
趣味でプログラミングを覚えようと思っているものです。
C,C++.Java、シェルスクリプトなどの入門書は一通り読んで、
その後ScalaやLISP入門本に挑戦するもワケワカラン状態に。
ネットでポチポチ情報を探っていたらValaに行きあたったのですが
入門本か、プログラム初心者向けに何処か良いValaの解説サイトは
ないでしょうか? 英語のサイトでも問題ないです。
195:login:Penguin
11/06/24 00:04:59.68 4b2cB/Ua.net
>>190
一通りの中にC#が無いけど、Valaやる前にC#やってるといいかも。
英語でもいいなら入門には本家サイトが一番いいよ。
URLリンク(live.gnome.org)
↑このサイトの↓このチュートリアルが良くできてる。
URLリンク(live.gnome.org)
あとは何かあったらここで聞けばいいよ。
196:login:Penguin
11/06/24 00:49:48.92 4b2cB/Ua.net
>>188
> GLib-GObject-WARNING **: cannot register existing type
Vala は g_type_register_static でしか GType を登録しないからアンロード
出来ないんだな。
アンロードするには g_type_register_dynamic を使わない駄目らしいけど、
Vala を使って限りは無理っぽい
197:login:Penguin
11/06/24 06:02:20.22 bAUjSQpP.net
>>192 そうなのか
でも新しいクラスを作りさえしなければ何度でもロードできるから、使い方によっては役立つかも
ソフトを再起動せずとも実行中に修正を適用できたらいいなくらいに考えてたので
諦めて本来のプラグイン・モジュールとして使うようにするよ
198:login:Penguin
11/06/24 06:12:19.14 bAUjSQpP.net
>>190 Javaを知ってるんであればここも
URLリンク(live.gnome.org)
C#を知らなくても一応参考になるのでここも
URLリンク(live.gnome.org)
Valadoc はほぼ必須
URLリンク(valadoc.org)
ValaはExampleがそれなりに揃っててとても助かる、
とりあえず何か動かしたいならExample読むといいかも
199:190
11/06/24 09:46:37.22 SGhe/7yN.net
>191
MS独自路線はあまり好きではないので(Monoも今ひとつ元気無いし)
C#は避けていたのですが、そう言えばValaの文体とC#はかなり
似ているらしいですね。
食べず嫌いはやめてC#の入門本も読んでみます。
あとVala本家ですね。 ありがとうございました。
>194
上の二つ、こと細かく書いてあって分かりやすそうですね。
時間を掛けてよく読んでみます、ありがとうございます。
3番目のValadocというのが何に付いて書かれてるのか
よく分らないのですが、これは一体、、、?
パット見、.debや.rpmパッケージの依存関係を解説している
ページによく似ている気がするのですが。
200:login:Penguin
11/06/24 23:54:37.48 bAUjSQpP.net
ValadocはJavadocみたいなもの
201: 忍法帖【Lv=10,xxxPT】
11/06/25 23:30:41.07 yL71M0xJ.net
で、なんかプログラム作っている人いるの?
202: 忍法帖【Lv=3,xxxP】
11/06/25 23:45:04.07 SHIFsneI.net
いちおう
でもまだ公開はしてない
203:login:Penguin
11/07/25 01:35:05.68 SVfj8Y1F.net
SDLのOpenGLのコードを使えばGTK+3.0用のOpenGLWidgetを作れるかな。
ValaだとGtkDrawingAreaのカスタムウィジェット作るの簡単だし。
ちょっとやってみるか。
204:login:Penguin
11/08/05 01:36:02.05 mOp4Az75.net
ちょっと苦労したけど、とりあえずGTK+3.0用のOpenGLWidgetを作れた。
X用だけどWindows上でGTK+3.0が動けばWIN32版も作りたいね。
205:login:Penguin
11/08/17 07:23:40.68 IAr+wEqa.net
0.13.2 リリース記念上げ!
gtk-3.0.vapi とかは既に .gir から自動生成してるんだな。
glib-2.0.vapi は未だに手で修正しているっぽいけど、こっちは
簡単に変換出来ない何かがあるんだろうな。
206:login:Penguin
11/08/23 01:39:44.91 2RMnbvfu.net
0.13.3 リリース記念上げ!
6日でのリリースだが、そんな急ぐ理由があったのか…
207:login:Penguin
11/08/23 01:42:59.59 GlyC9g/F.net
1.0の予感!
208:login:Penguin
11/08/23 02:07:17.68 2RMnbvfu.net
まじか…
Bugzillaみると結構バグも多いけど、まぁ仕様的には安定してるかな。
それと、↓でValaでクラスライブラリを作ってjavascriptから使うサンプルが追加された!
URLリンク(live.gnome.org)
Valaで高速なクラスライブラリを作って、javascriptから使うってのが最高。
209:login:Penguin
11/08/24 22:36:35.49 F4ZYMrc3.net
gir に切り替えるのもいいけど色々レグレッション
必要な段階に来てるとは思う…
210:login:Penguin
11/09/07 16:52:22.85 cRi4WQwr.net
valadocのトップページがちょっと変わってた
/references.htmlのページがなくなったと思たらトップページが整理されてた
211:login:Penguin
11/09/08 01:48:01.64 w55NPGf2.net
0.13.4 リリース記念上げ!
valadoc のトップページは意味不明だったからなぁ、改善されて良かった。
212:login:Penguin
11/09/13 01:33:56.14 A6fJhWpF.net
今まで、オープンソースの世界でコンポーネントモデルっていうと、
XPCOM(Mozilla)
Bonobo(Gnome)
UNO(OpenOffice)
があったけど、どれも全然普及してない。
GObject-Introspectionは新しいコンポーネントモデルとして普及するんじゃ
ないかっていう予感はある!
213:login:Penguin
11/09/19 01:17:06.82 2Lj/CBBV.net
0.14.0 リリース記念上げ!
そろそろ、1.0っていっちゃってもいい気がする。
214:login:Penguin
11/09/19 01:42:40.20 irh3P1pj.net
valaは最高に使いやすいんだけど、それでもやっぱりマルチスレッドで落ちないもの作ろうとすると難しい
とりあえずMutex多様でその場を凌いでたんだけど、ある程度のスペックがあるPCで動かすとたまに落ちる
Mutexって使いすぎると良くなかったりするの?
215:login:Penguin
11/09/20 14:53:23.27 MMAW0itu.net
単にプログラムがまずくてrace conditionがあるってだけだろ
216:login:Penguin
11/09/20 18:26:46.63 YoJil555.net
URLリンク(zetcode.com)
これを vala で書き直してみたらどれくらい短くなるか気になるが
いまいち gobject 流の object 思考みたいなのが俺の理解を阻むのだったorz
…正直サンプルコードを所望したい。しかしなかなかvalaユーザーがいない
のであった…
217:login:Penguin
11/09/22 02:30:50.75 A2s9TBnR.net
全然余裕で半分位の行数で書けるよ。
ちょっと時間が取れないけど、書いて見せるよ。
ちなみに、GObject流のオブジェクト指向なんて最初は考える必要ないよ。
最適なコードを書こうとしたら気にする必要はあるけど。
218:login:Penguin
11/10/07 19:40:44.50 w8hYPxTz.net
>>211 それはよく理解してる
どうやら自前で用意したMutexじゃなく
Gdk.threads_leave()の使い方が悪かったのが原因だったのかも
219:login:Penguin
11/10/28 09:21:51.84 pOl/xLje.net
URLリンク(bugzilla.gnome.org)
それなりにまとまりつつあるのかなとか思ってると
積み残してる部分もあって何か意外だった
なんとなく code attribute で切り抜けるんだろうか…
220:login:Penguin
11/12/12 17:52:40.22 smhjypxV.net
いつのまにかMath関係のDSOエラーが出たからどうしたもんかと思ったけど
リンクのときに-lmが必要だったのね
ついでに遅いけど 0.15.0 リリースアゲ
221:login:Penguin
11/12/13 16:58:36.27 ZlpJ2MLL.net
>>216
0.81くらいの時からそのフラグは必要だったかと思われるw
今回から配布形式が xz 圧縮になっててちょっと驚いた。
tar jxvf vala-0.14.1.tar,bz2
tar xvf vala-0.15.9.tar.xz
jを付けなくても大丈夫と憶えておくことにする…
222:login:Penguin
11/12/13 17:02:05.37 ZlpJ2MLL.net
tar jxvf vala-0.14.0.tar.bz2 (stable)
tar xvf vala-0.14.1.tar.xz (準stable)
tar xvf vala-0.15.0.tar.xz (development)
だった…ミスタイプ多すぎてすまない…orz
223:login:Penguin
11/12/18 22:49:36.73 gpLS8xC5.net
>>217
-lm なしでも動いてたから気づかなかったw
2009年ごろのBugzillaの回答に助けられた
224:login:Penguin
12/01/03 08:08:05.71 zVTeR0hG.net
Gtk-3.0.girにはAPIとかにちゃんとドキュメントがあるのに
gtk+-3.0.vapiではドキュメントが完全に抜け落ちてる…
Gtk-3.0.girからVala用にドキュメント込みのHTMLを掃き出す
ツールがないもんかなぁ。
225:login:Penguin
12/01/27 13:13:36.83 MJrNQhDK.net
0.15.1出てます
226:login:Penguin
12/02/03 02:09:34.04 FNUAY58f.net
0.14.2も出たけど、安定版と開発版を分ける意味あるか?
227:login:Penguin
12/02/08 16:13:29.32 kiy50TeI.net
URLリンク(mail-archives.apache.org)
URLリンク(svn.apache.org)
URLリンク(stackoverflow.com)
URLリンク(github.com)
いろいろ鳥によってスタンスの取り方みたいな所で違いは
あるので保守やらforkやらportを考えると已むを得ないの
ではないか…
228:login:Penguin
12/02/26 07:06:43.37 PAr0/0x1.net
URLリンク(fantom.org)
URLリンク(fantom.org)
fantom 1.0.62 リリース。言語内で初めから javascript support を持たしてみる
試みはなかなか面白いのではないか…
229:login:Penguin
12/02/28 07:11:22.67 mZ/Mt96V.net
URLリンク(unstable.valadoc.org)
URLリンク(www.valadoc.org)
WindowWindowClass の列挙体を調べたいとかいう時
0.15系列だと新しいほうのvala-docでないと引けないのが不便かも
あとajaxで描画してるので読み込みが完了するまでスクロールバー
が出るのがちょっともたつく印象だった
230:login:Penguin
12/03/09 20:12:26.04 lPqxBLod.net
Benchmark of Dictionary Structures
URLリンク(lh3lh3.users.sourceforge.net)
Benchmark of Regex Libraries
URLリンク(lh3lh3.users.sourceforge.net)
231:login:Penguin
12/03/10 07:18:13.94 +NjTrdll.net
>>226
Valaに関係しているglibの結果を見ると速からず遅からずだな…
C++テンプレート系が全般的に速い。C++の存在価値ってこういうところにあるよな。
232:login:Penguin
12/04/30 13:23:23.77 BcoIzs2r.net
0.17.0 リリース記念上げ!
2ヶ月前の 0.15.2 からのコミット数が20程度だ…
突然開発速度ががた落ちしたみたいだけど、どうしたんだろうか?
233:login:Penguin
12/05/05 00:29:24.84 wOchO1VT.net
URLリンク(blog.gmane.org)
基本機能は2009年あたりからあんまり変わってないかな
binding周りでgobject-introspectionとgirの実装と
vapiのメンテが開発の主眼みたいな印象
12.04からvtgとvalenciaがパッケージになったので
sudo apt-get install gedit-valatoys-plugin
sudo apt-get install gedit-valencia-plugin
で前よりは開発しやすくはなりそうだけど…(12.4におけるVala本体のstableラインは0.14.2)
codeblockとsublime text2などpluginはこんなかんじで
URLリンク(forums.codeblocks.org)
URLリンク(joshbenham.net)
ぼちぼち整備はされてゆきそうだけど(dockyチームとか使ってるだいぶ安定してきた
URLリンク(launchpad.net)
普及はどうだろう…
234:login:Penguin
12/08/08 01:47:09.88 ompgOWg2.net
Vala 0.17.4 リリース記念上げ!
・Drop Dova profile.
・Drop POSIX profile.
うーん、やっぱり GObject 一本で行くんだな。
235:login:Penguin
12/08/10 20:30:42.21 43zh3y1N.net
来年夏にはGNOMEはほぼ解散状態に陥るのでどうでもよい
236:login:Penguin
12/08/10 21:28:24.78 DHRq1UuF.net
何かあったの?
237:login:Penguin
12/08/11 10:14:07.93 o2WkcCjB.net
DebianにまでGnomeデスクトップが�
238:、想を尽かされた件じゃない?
239:login:Penguin
12/08/11 10:15:40.62 gKZ/yEbd.net
愛想尽かすっつーかデフォルトを変えるだよ。
240:login:Penguin
12/08/11 10:17:30.50 gKZ/yEbd.net
まだ全然確定じゃないし。
URLリンク(linux.slashdot.jp)
241:login:Penguin
12/08/23 11:58:59.07 wT8qBt1h.net
URLリンク(blog.xfce.org)
glibとgobjectがあればそれはそれで何とかなるしWMはまた別だね > じぶんopenbox使ってる…
URLリンク(github.com)
URLリンク(bugs.launchpad.net)
URLリンク(bugs.debian.org)
URLリンク(gitorious.org)
glib-assert.vapi が見つからないとか云われてテストで失敗する
/usr/share/vala-0.18/vapi に上記のvapiを入れてやれば大丈夫。
URLリンク(esite.ch)
URLリンク(bazaar.launchpad.net)
242:login:Penguin
13/03/13 22:14:22.25 MwIyXkJL.net
URLリンク(sourceforge.net)
URLリンク(blog.developpez.com)
すごい久しぶりの書き込み
流れ流れて xfce に落ち着きそうだわ…
243:login:Penguin
13/03/13 22:26:12.25 MwIyXkJL.net
>>235
>Debian GNU/Linux 7.0 "Wheezy" ではXfceが標準のデスクトップ環境になるとPhoronixが伝えている。
なんとなく振り返って呼んでみたら相変わらず Phoronix いい加減の風説撒いててワロタ
今日日実機に投入するなら usbインストールが主流だろうにサイズはそれほど
以前より気にしなくても良くなったか
244:login:Penguin
13/03/18 21:36:56.23 3uMtrQaR.net
Valaしばらく使ってるけど、Genericsでは型消去するってことでいいのかな?
CILだし、何となくそんな気がするんだけど、確証がないし、Cコードを本気で追う気概もなく・・・
誰か分かる人いませんか?
245:login:Penguin
13/03/19 09:41:02.82 o8+57GQ8.net
>>239
型がなくなる。要するにC#じゃなくてJavaのGenericsと同じ。
なんでやれることがかなり限られる。
246:login:Penguin
13/03/22 22:18:34.75 g5+oWlz9.net
>>240
おお、素早い返答ありがとう。
型消去されるとして、色々サンプルコード書いてみたけど
valaのGenericsって型制約無しで、全て共変なんだね。
これだと、メソッドの引数で型安全が守れなくなるから、大きな欠陥なわけね。
参考
URLリンク(supersoftcafe.com)
コメント欄がかなり過激。
247:login:Penguin
13/03/23 14:57:50.34 Ot8//svX.net
>>241
あれ?そのコメント欄では共変じゃないっていってるね。
それと、Vala開発者の弁護をする訳じゃないけど、Valaは関数名のオーバーロード
をしない方針だから、型を消去せざるを得なかったんじゃないかと思われる。
しかし、
public static G Max<G>(G a, G b) { return a > b ? a : b; }
がエラーになるんだから、役に立たないとも言える…
248:login:Penguin
13/03/25 13:46:13.82 1YB0HppF.net
>>242
コメントは要約するとこんな感じ?(英語間違ってたらすんません)
読み書きできる配列とかコレクションは不変であるべき前提があるから、
共変なJavaの配列はクソだったな、一応例外で対応してるけど。
(しかし、Genericsでの同様の問題への対応は理にかなってた。)
同じ轍を踏むValaの開発者は以下略。
型変数について境界が定義できないから、具象メソッドに対するGenericsは使えないよね実質。
(抽象メソッドではまぁ使えるだろうけど)
うーむ使いどころが難しい。
249:login:Penguin
13/08/05 NY:AN:NY.AN B/E1B7xa.net
Vala 0.21.1リリースage
自分でmakeしてvalac起動時に
valac: error while loading shared libraries: libvala-0.22.so.0: cannot open shared object file: No such file or directory
とエラーメッセージが出たんだけどsudo ldconfigすれば直るのね
250:login:Penguin
13/09/14 18:31:29.39 Lj5ZFryQ.net
Vala 0.21.2 リリース age
URLリンク(mail.gnome.org)
251:login:Penguin
13/09/26 02:09:02.75 EPJ3SFEj.net
Vala 0.22.0 リリース age
URLリンク(mail.gnome.org)
252:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています