Valaについて語りませんか
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2009/07/05(日) 14:31:59ID:IdyQQEIy【GNOME Live!】
Vala
http://live.gnome.org/Vala
Tutorial
http://live.gnome.org/Vala/Tutorial
【SourceForge】
ValaによるGNOMEアプリケーションのプログラミング
http://sourceforge.jp/magazine/08/12/15/0143207
0176login:Penguin
2011/06/05(日) 22:26:15.15ID:z8MV5qJgってのはかなり魅力あると思うんだが、普及するのはまだまだ先なのかなぁ…
0177login:Penguin
2011/06/06(月) 01:05:26.08ID:rgr9QUMR金を出してくれてた会社から独立したからだけど。
確かにiPhoneとかの方に向かってるけど、iPhoneでMonoを使うメリット
ってあるんだろうか…
>>176
基本的にGLib,GTK+の世界でなきゃ、旨味が少ないんでそれの普及次第だと思う。
GTK+界隈ではそこそこ普及してると思うよ。
dconfエディタとか割と重要なソフトも使うようになったし。
0178login:Penguin
2011/06/06(月) 01:48:22.73ID:fOI8aekFそうだった、あまりの便利さに視野が狭くなってた
ところで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() を用意して対処するようにしたんだけど、これでいいのかな
0179login:Penguin
2011/06/06(月) 02:02:47.47ID:4QezmLvVstatic 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
0180login:Penguin
2011/06/06(月) 02:08:09.55ID:4QezmLvVclass Hoge : Object {
ってしないと、hoge.cにGObjectの代わりに自前のオブジェクト作成
コードを書き出すから、行数が多くなる。
: Object なし→259行 あり→114行
0181login:Penguin
2011/06/06(月) 02:28:04.77ID:fOI8aekFX) new Hoge().check_foo()
O) Hoge.check_foo()
普段は理解もせずObjectを継承するようにはしてたんだけど
そういった違いがあったのか
0182login:Penguin
2011/06/06(月) 23:59:22.68ID:4QezmLvVclass Hoge : Object {
static Hoge foo;
public static void check_foo() {
if (foo == null) {
foo = new Hoge();
}
print("foo = %p\n", foo);
}
public Hoge(){}
}
で、いいんじゃない?
0183login:Penguin
2011/06/07(火) 00:27:43.45ID:hW4rMpee// Initialisation, not instantiation since the parser is a static class
Parser.init ();
0184login:Penguin
2011/06/07(火) 19:51:30.07ID:KLLer8r/こうすると初めて呼び出した時に値を入れてくれるんだけど
初期化するべき変数が多くなると大変そうだと思ってた
>>183
こちらは明示的に呼び出さなければいけない
でもよくよく考えてみると183の場合でも初期化チェックは必要だから
その時ついでに初期化(182と183を併用)もするようにするといいのかも
0185login:Penguin
2011/06/07(火) 20:38:29.11ID:KLLer8r/Javaで言うところのリフレクションっぽいことをValaでやってみたいと思って
Plugin Sample (GLib Samples)
ttp://live.gnome.org/Vala/TypeModules
ここを参考にして、サンプルはうまくいったんだけど
モジュールをリロードしようと思って同じ名前のクラスを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の方でクラスのアンロードができればいいのかもしれないが、その方法がわからない
0186login:Penguin
2011/06/08(水) 01:58:53.41ID:PE72PAWT試してみたらエラーを起こせなかった。エラーになるコードを見てみたい。
クラスのアンロードの仕方も分からんなぁ。
確かに、未知(といってもGObjectシステム使用)の.soからインターフェースを
探し出してコールするような事をしたいけど、多分無理っぽい。
その為に、.gir(GObject Introspection)があるんだろうけど。
0187login:Penguin
2011/06/10(金) 01:44:00.49ID:mbXsAFUHvoid main(string[] args) {
for (int i = 0; i < 2; i++) {
...
}}
0188187
2011/06/10(金) 02:05:48.82ID:mbXsAFUHサンプル元となったRygelのソースを流し読みしても一度だけ読み込んでるみたい
Javaの場合はクラスローダを複数持つことで、同一のクラスをローダ毎に
別物として利用できるから、あたかもそのクラスをリロードしているように見せることは出来てた
0189login:Penguin
2011/06/19(日) 01:12:10.73ID:rodl4lLJこれといった新機能はないな。
0190login:Penguin
2011/06/23(木) 21:53:19.16ID:vfxUH1FBC,C++.Java、シェルスクリプトなどの入門書は一通り読んで、
その後ScalaやLISP入門本に挑戦するもワケワカラン状態に。
ネットでポチポチ情報を探っていたらValaに行きあたったのですが
入門本か、プログラム初心者向けに何処か良いValaの解説サイトは
ないでしょうか? 英語のサイトでも問題ないです。
0191login:Penguin
2011/06/24(金) 00:04:59.68ID:4b2cB/Ua一通りの中にC#が無いけど、Valaやる前にC#やってるといいかも。
英語でもいいなら入門には本家サイトが一番いいよ。
ttp://live.gnome.org/Vala
↑このサイトの↓このチュートリアルが良くできてる。
ttp://live.gnome.org/Vala/Tutorial
あとは何かあったらここで聞けばいいよ。
0192login:Penguin
2011/06/24(金) 00:49:48.92ID:4b2cB/Ua> GLib-GObject-WARNING **: cannot register existing type
Vala は g_type_register_static でしか GType を登録しないからアンロード
出来ないんだな。
アンロードするには g_type_register_dynamic を使わない駄目らしいけど、
Vala を使って限りは無理っぽい
0193login:Penguin
2011/06/24(金) 06:02:20.22ID:bAUjSQpPでも新しいクラスを作りさえしなければ何度でもロードできるから、使い方によっては役立つかも
ソフトを再起動せずとも実行中に修正を適用できたらいいなくらいに考えてたので
諦めて本来のプラグイン・モジュールとして使うようにするよ
0194login:Penguin
2011/06/24(金) 06:12:19.14ID:bAUjSQpPttp://live.gnome.org/Vala/ValaForJavaProgrammers
C#を知らなくても一応参考になるのでここも
http://live.gnome.org/Vala/ValaForCSharpProgrammers
Valadoc はほぼ必須
ttp://valadoc.org/references.html
ValaはExampleがそれなりに揃っててとても助かる、
とりあえず何か動かしたいならExample読むといいかも
0195190
2011/06/24(金) 09:46:37.22ID:SGhe/7yNMS独自路線はあまり好きではないので(Monoも今ひとつ元気無いし)
C#は避けていたのですが、そう言えばValaの文体とC#はかなり
似ているらしいですね。
食べず嫌いはやめてC#の入門本も読んでみます。
あとVala本家ですね。 ありがとうございました。
>194
上の二つ、こと細かく書いてあって分かりやすそうですね。
時間を掛けてよく読んでみます、ありがとうございます。
3番目のValadocというのが何に付いて書かれてるのか
よく分らないのですが、これは一体、、、?
パット見、.debや.rpmパッケージの依存関係を解説している
ページによく似ている気がするのですが。
0196login:Penguin
2011/06/24(金) 23:54:37.48ID:bAUjSQpP0199login:Penguin
2011/07/25(月) 01:35:05.68ID:SVfj8Y1FValaだとGtkDrawingAreaのカスタムウィジェット作るの簡単だし。
ちょっとやってみるか。
0200login:Penguin
2011/08/05(金) 01:36:02.05ID:mOp4Az75X用だけどWindows上でGTK+3.0が動けばWIN32版も作りたいね。
0201login:Penguin
2011/08/17(水) 07:23:40.68ID:IAr+wEqagtk-3.0.vapi とかは既に .gir から自動生成してるんだな。
glib-2.0.vapi は未だに手で修正しているっぽいけど、こっちは
簡単に変換出来ない何かがあるんだろうな。
0202login:Penguin
2011/08/23(火) 01:39:44.91ID:2RMnbvfu6日でのリリースだが、そんな急ぐ理由があったのか…
0203login:Penguin
2011/08/23(火) 01:42:59.59ID:GlyC9g/F0204login:Penguin
2011/08/23(火) 02:07:17.68ID:2RMnbvfuBugzillaみると結構バグも多いけど、まぁ仕様的には安定してるかな。
それと、↓でValaでクラスライブラリを作ってjavascriptから使うサンプルが追加された!
https://live.gnome.org/Vala/SharedLibSample
Valaで高速なクラスライブラリを作って、javascriptから使うってのが最高。
0205login:Penguin
2011/08/24(水) 22:36:35.49ID:F4ZYMrc3必要な段階に来てるとは思う…
0206login:Penguin
2011/09/07(水) 16:52:22.85ID:cRi4WQwr/references.htmlのページがなくなったと思たらトップページが整理されてた
0207login:Penguin
2011/09/08(木) 01:48:01.64ID:w55NPGf2valadoc のトップページは意味不明だったからなぁ、改善されて良かった。
0208login:Penguin
2011/09/13(火) 01:33:56.14ID:A6fJhWpFXPCOM(Mozilla)
Bonobo(Gnome)
UNO(OpenOffice)
があったけど、どれも全然普及してない。
GObject-Introspectionは新しいコンポーネントモデルとして普及するんじゃ
ないかっていう予感はある!
0209login:Penguin
2011/09/19(月) 01:17:06.82ID:2Lj/CBBVそろそろ、1.0っていっちゃってもいい気がする。
0210login:Penguin
2011/09/19(月) 01:42:40.20ID:irh3P1pjとりあえずMutex多様でその場を凌いでたんだけど、ある程度のスペックがあるPCで動かすとたまに落ちる
Mutexって使いすぎると良くなかったりするの?
0211login:Penguin
2011/09/20(火) 14:53:23.27ID:MMAW0itu0212login:Penguin
2011/09/20(火) 18:26:46.63ID:YoJil555これを vala で書き直してみたらどれくらい短くなるか気になるが
いまいち gobject 流の object 思考みたいなのが俺の理解を阻むのだったorz
…正直サンプルコードを所望したい。しかしなかなかvalaユーザーがいない
のであった…
0213login:Penguin
2011/09/22(木) 02:30:50.75ID:A2s9TBnRちょっと時間が取れないけど、書いて見せるよ。
ちなみに、GObject流のオブジェクト指向なんて最初は考える必要ないよ。
最適なコードを書こうとしたら気にする必要はあるけど。
0214login:Penguin
2011/10/07(金) 19:40:44.50ID:w8hYPxTzどうやら自前で用意したMutexじゃなく
Gdk.threads_leave()の使い方が悪かったのが原因だったのかも
0215login:Penguin
2011/10/28(金) 09:21:51.84ID:pOl/xLjeそれなりにまとまりつつあるのかなとか思ってると
積み残してる部分もあって何か意外だった
なんとなく code attribute で切り抜けるんだろうか…
0216login:Penguin
2011/12/12(月) 17:52:40.22ID:smhjypxVリンクのときに-lmが必要だったのね
ついでに遅いけど 0.15.0 リリースアゲ
0217login:Penguin
2011/12/13(火) 16:58:36.27ID:ZlpJ2MLL0.81くらいの時からそのフラグは必要だったかと思われるw
今回から配布形式が xz 圧縮になっててちょっと驚いた。
tar jxvf vala-0.14.1.tar,bz2
tar xvf vala-0.15.9.tar.xz
jを付けなくても大丈夫と憶えておくことにする…
0218login:Penguin
2011/12/13(火) 17:02:05.37ID:ZlpJ2MLLtar xvf vala-0.14.1.tar.xz (準stable)
tar xvf vala-0.15.0.tar.xz (development)
だった…ミスタイプ多すぎてすまない…orz
0219login:Penguin
2011/12/18(日) 22:49:36.73ID:gpLS8xC5-lm なしでも動いてたから気づかなかったw
2009年ごろのBugzillaの回答に助けられた
0220login:Penguin
2012/01/03(火) 08:08:05.71ID:zVTeR0hGgtk+-3.0.vapiではドキュメントが完全に抜け落ちてる…
Gtk-3.0.girからVala用にドキュメント込みのHTMLを掃き出す
ツールがないもんかなぁ。
0221login:Penguin
2012/01/27(金) 13:13:36.83ID:MJrNQhDK0222login:Penguin
2012/02/03(金) 02:09:34.04ID:FNUAY58f0223login:Penguin
2012/02/08(水) 16:13:29.32ID:kiy50TeIhttps://svn.apache.org/repos/asf/incubator/lucy/trunk/clownfish/
http://stackoverflow.com/questions/8456599/is-it-possible-to-compile-and-use-xapian-clucene-or-lucy-on-ios
https://github.com/zeitgeist-project/activity-log-manager
いろいろ鳥によってスタンスの取り方みたいな所で違いは
あるので保守やらforkやらportを考えると已むを得ないの
ではないか…
0224login:Penguin
2012/02/26(日) 07:06:43.37ID:PAr0/0x1http://fantom.org/sidewalk/topic/1785
fantom 1.0.62 リリース。言語内で初めから javascript support を持たしてみる
試みはなかなか面白いのではないか…
0225login:Penguin
2012/02/28(火) 07:11:22.67ID:mZ/Mt96Vhttp://www.valadoc.org/gdk-3.0/index.htm
WindowWindowClass の列挙体を調べたいとかいう時
0.15系列だと新しいほうのvala-docでないと引けないのが不便かも
あとajaxで描画してるので読み込みが完了するまでスクロールバー
が出るのがちょっともたつく印象だった
0226login:Penguin
2012/03/09(金) 20:12:26.04ID:lPqxBLodhttp://lh3lh3.users.sourceforge.net/udb.shtml
Benchmark of Regex Libraries
http://lh3lh3.users.sourceforge.net/reb.shtml
0227login:Penguin
2012/03/10(土) 07:18:13.94ID:+NjTrdllValaに関係しているglibの結果を見ると速からず遅からずだな…
C++テンプレート系が全般的に速い。C++の存在価値ってこういうところにあるよな。
0228login:Penguin
2012/04/30(月) 13:23:23.77ID:BcoIzs2r2ヶ月前の 0.15.2 からのコミット数が20程度だ…
突然開発速度ががた落ちしたみたいだけど、どうしたんだろうか?
0229login:Penguin
2012/05/05(土) 00:29:24.84ID:wOchO1VT基本機能は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はこんなかんじで
http://forums.codeblocks.org/index.php?topic=10383.0
http://joshbenham.net/69/sublime-text-2-and-the-vala-programming-language-on-elementary-os/
ぼちぼち整備はされてゆきそうだけど(dockyチームとか使ってるだいぶ安定してきた
https://launchpad.net/plank
普及はどうだろう…
0230login:Penguin
2012/08/08(水) 01:47:09.88ID:ompgOWg2・Drop Dova profile.
・Drop POSIX profile.
うーん、やっぱり GObject 一本で行くんだな。
0231login:Penguin
2012/08/10(金) 20:30:42.21ID:43zh3y1N0232login:Penguin
2012/08/10(金) 21:28:24.78ID:DHRq1UuF0233login:Penguin
2012/08/11(土) 10:14:07.93ID:o2WkcCjB0234login:Penguin
2012/08/11(土) 10:15:40.62ID:gKZ/yEbd0235login:Penguin
2012/08/11(土) 10:17:30.50ID:gKZ/yEbdhttp://linux.slashdot.jp/comments.pl?sid=576009&cid=2210177
0236login:Penguin
2012/08/23(木) 11:58:59.07ID:wT8qBt1hglibとgobjectがあればそれはそれで何とかなるしWMはまた別だね > じぶんopenbox使ってる…
https://github.com/KCVC/libafrodite/blob/master/Makefile
https://bugs.launchpad.net/ubuntu/+source/valatoys/+bug/832760
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635121
https://gitorious.org/vala-toys/vala-toys/commit/1454d36/diffs
glib-assert.vapi が見つからないとか云われてテストで失敗する
/usr/share/vala-0.18/vapi に上記のvapiを入れてやれば大丈夫。
http://esite.ch/2012/06/26/writing-tests-for-vala/
http://bazaar.launchpad.net/~diodon-team/diodon/trunk/view/head:/tests/test-text-clipboard-item.vala
0237login:Penguin
2013/03/13(水) 22:14:22.25ID:MwIyXkJLhttp://blog.developpez.com/rsharp/p11820/mono/monodevelop-4-0-ubuntu
すごい久しぶりの書き込み
流れ流れて xfce に落ち着きそうだわ…
0238login:Penguin
2013/03/13(水) 22:26:12.25ID:MwIyXkJL>Debian GNU/Linux 7.0 "Wheezy" ではXfceが標準のデスクトップ環境になるとPhoronixが伝えている。
なんとなく振り返って呼んでみたら相変わらず Phoronix いい加減の風説撒いててワロタ
今日日実機に投入するなら usbインストールが主流だろうにサイズはそれほど
以前より気にしなくても良くなったか
0239login:Penguin
2013/03/18(月) 21:36:56.23ID:3uMtrQaRCILだし、何となくそんな気がするんだけど、確証がないし、Cコードを本気で追う気概もなく・・・
誰か分かる人いませんか?
0240login:Penguin
2013/03/19(火) 09:41:02.82ID:o8+57GQ8型がなくなる。要するにC#じゃなくてJavaのGenericsと同じ。
なんでやれることがかなり限られる。
0241login:Penguin
2013/03/22(金) 22:18:34.75ID:g5+oWlz9おお、素早い返答ありがとう。
型消去されるとして、色々サンプルコード書いてみたけど
valaのGenericsって型制約無しで、全て共変なんだね。
これだと、メソッドの引数で型安全が守れなくなるから、大きな欠陥なわけね。
参考
ttp://supersoftcafe.com/2011/07/vala-generics
コメント欄がかなり過激。
0242login:Penguin
2013/03/23(土) 14:57:50.34ID:Ot8//svXあれ?そのコメント欄では共変じゃないっていってるね。
それと、Vala開発者の弁護をする訳じゃないけど、Valaは関数名のオーバーロード
をしない方針だから、型を消去せざるを得なかったんじゃないかと思われる。
しかし、
public static G Max<G>(G a, G b) { return a > b ? a : b; }
がエラーになるんだから、役に立たないとも言える…
0243login:Penguin
2013/03/25(月) 13:46:13.82ID:1YB0HppFコメントは要約するとこんな感じ?(英語間違ってたらすんません)
読み書きできる配列とかコレクションは不変であるべき前提があるから、
共変なJavaの配列はクソだったな、一応例外で対応してるけど。
(しかし、Genericsでの同様の問題への対応は理にかなってた。)
同じ轍を踏むValaの開発者は以下略。
型変数について境界が定義できないから、具象メソッドに対するGenericsは使えないよね実質。
(抽象メソッドではまぁ使えるだろうけど)
うーむ使いどころが難しい。
0244login:Penguin
2013/08/05(月) NY:AN:NY.ANID:B/E1B7xa自分で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すれば直るのね
0245login:Penguin
2013/09/14(土) 18:31:29.39ID:Lj5ZFryQttps://mail.gnome.org/archives/vala-list/2013-September/msg00022.html
0246login:Penguin
2013/09/26(木) 02:09:02.75ID:EPJ3SFEjttps://mail.gnome.org/archives/vala-list/2013-September/msg00034.html
■ このスレッドは過去ログ倉庫に格納されています