1 名前:デフォルトの名無しさん [2012/01/25(水) 20:05:49.96 .net] Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。 www.rust-lang.org/
147 名前:デフォルトの名無しさん mailto:sage [2015/01/05(月) 00:17:31.79 ID:62ndYAiq.net] 公式のGuideに従って Hello, world! コンパイルしたら600kBくらいのができたんだけど、これ何が入ってるの? たしかGoもこんなだったっけw
148 名前:デフォルトの名無しさん mailto:sage [2015/01/05(月) 23:04:03.12 ID:XrgG4/ce.net] >>147 標準ライブラリが静的リンクされてる。 jemallocとかサイズでかいらしい。 -C lto つけてリンク時最適化有効にすると若干サイズ縮むはず
149 名前:デフォルトの名無しさん mailto:sage [2015/01/09(金) 16:50:57.81 ID:1ny7jOif.net] ガイドページの右下に出てる Rust 1.0.0-nightly ea6f65c5f って何?
150 名前:デフォルトの名無しさん mailto:sage [2015/01/09(金) 21:31:25.08 ID:ecLcmkaN.net] ドキュメントのバージョンだよ。
151 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 09:03:15.68 ID:qZSZ4EVX.net] 1.0のalpha来てた もうすぐ安定するんだと思うとなんだか感動する
152 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 09:25:29.41 ID:aqSa96PR.net] 楽しみだね。
153 名前:デフォルトの名無しさん mailto:sage [2015/01/10(土) 10:50:52.48 ID:VYrUioRX.net] Guessing Gameまで来たら ↓が変な感じがする。値を返すかcontinueで離脱。例外みたいなノリなんだろうか let num = match input_num { Some(num) => num, None => { println!("Please input a number!"); continue; } };
154 名前:デフォルトの名無しさん mailto:sage [2015/01/12(月) 07:44:13.71 ID:V9nd0xt7.net] 見てきたけど uint に変換できない場合 None が返って来て、 もう一度 loop の最初からやり直し なだけじゃないか? Option で返って来るのに慣れてないのかな? 例外については下記が日本語訳(ただし、前のverなので文法が違うかもしれない) ttp://qiita.com/kondei/items/c7175ed278bb4fbd4d16
155 名前:153 mailto:sage [2015/01/12(月) 14:05:00.11 ID:uQy2oTpW.net] ああなるほど、None(と言うか() のことかな?)を返してからcontinue動作したと考えればいいのか
156 名前:デフォルトの名無しさん mailto:sage [2015/01/12(月) 14:14:00.52 ID:smRTP4TA.net] そこ俺も違和感あった HaskellやOCamlにおけるパターンマッチは条件分岐というよりも値の分解の意味合いがつよいと思うのだけど, Rustでは条件分岐としての側面が強いのかなと感じた 要するにif文ってことだよね
157 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 00:20:23.58 ID:iAaaaZAE.net] 大域脱出と見ればそんなに違和感ないと思う bookに記載はされてないけど縦棒で複数のパターンに対応させることもできるのな match foo { Bar | Baz => do_X, Huga => do_Y _ => do_Other } みたいなのもいけた。無かったら嫌だなと思ってたがreferenceにはあった
158 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 21:46:02.73 ID:oe8+YAa0.net] >>156 ガチの関数型とはなんか違うfeelingと言うか空気感を感じる
159 名前:デフォルトの名無しさん mailto:sage [2015/01/13(火) 22:27:52.83 ID:QfRKSulC.net] 関数からIteratorを返す方法が分かりません 具体的には型に何書いて良いか分からない
160 名前:デフォルトの名無しさん mailto:sage [2015/01/14(水) 00:27:11.46 ID:e9uoW40m.net] >>158 Rustの良さの一つではあると思う メモリモデルの問題で普通の関数型プログラミング言語と全く同じようには出来ない中で、なるべく関数型の良さを取り入れようという結果なんだろうな
161 名前:デフォルトの名無しさん mailto:sage [2015/01/14(水) 00:48:27.71 ID:MazRL5ri.net] >>159 関数の中身によるけど、 戻り値書かなかった場合のコンパイルエラーで出てる型名コピペすればたぶんいけると思う
162 名前:デフォルトの名無しさん mailto:sage [2015/01/15(木) 20:50:25.52 ID:b84/qUeG.net] 言語が固まったらREPLの開発も再開するよね
163 名前:デフォルトの名無しさん mailto:sage [2015/01/15(木) 21:34:03.91 ID:E2BgZv7k.net] RustでREPLはめんどくさそうだな 寿命とか でっかいひとつのスコープって考えたら別にむずかしくはないのな
164 名前:デフォルトの名無しさん mailto:sage [2015/01/16(金) 14:15:52.84 ID:9+9TOoEF.net] 1.0.0-alpha をビルドしてるんだけど configure に --libdir=/usr/lib64 を指定すると lib.rs がコンパイルエラーになってしまう 前からこんなんだったっけ・・・
165 名前:デフォルトの名無しさん mailto:sage [2015/01/16(金) 22:33:39.21 ID:KEq1J0ex.net] ここ最近の怒涛の変更はヤバい
166 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 00:15:44.35 ID:Wxv5Etsa.net] clayもそうだったけど、llvm使った言語のビルドってすげー時間かかるのな。ナイトリービルド落とした方がええわ。
167 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 02:06:27.12 ID:CWvWtJ6X.net] クロージャ周りが変更されまくってて全然わからん
168 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:17:59.12 ID:H+D/soOr.net] そろそろ試してみようと思ったらまだそんな感じなの?
169 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:38:22.05 ID:rzZFM78t.net] これから構文の変更は極力減らすらしいし、1.0がリリースされるまでのあと2〜3ヶ月は詰めの時期だろう ドキュメント周りは絶賛崩壊中。Rust by Exampleとか全然動かん(Issueは立ってるけど) まあ検索しても古いブログとか引っかかりまくるからな― なんかあったらGitHub該当レポをいちいち見に行くくらいのことをしないと勉強するのは厳しい
170 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 18:40:22.92 ID:CWvWtJ6X.net] 構文の変更はなくてもAPIの変更はあったりするんだろうか
171 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 19:02:31.26 ID:P4fG3Fn9.net] このスレ立ったときから安定したら使ってみようと思ってたけど もう少しらしいね
172 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 19:41:57.99 ID:Om8PoyqQ.net] ベータのリリースサイクルでライブラリの安定化やるから、 APIはまだまだ変更されるはず
173 名前:デフォルトの名無しさん mailto:sage [2015/01/17(土) 20:40:08.53 ID:H+D/soOr.net] ベータ出てからも長そうだな...
174 名前:デフォルトの名無しさん mailto:sage [2015/01/19(月) 03:43:45.49 ID:b8H1tohZ.net] 1. 全ての値、変数はそれが定義されたスコープ内で死ぬ(読み書きできなくなる) 2. ある値を殺さずスコープの外に出すには、死ぬ前に外の変数に入れるしかない 3. ただし、参照を外に出すことはできない lifetimeの原則ってこんなもんだよね?これはまだ分かるけど、ownershipはも少し理解が必要。 マルチスレッドを学ぶときにきっと理解できると信じてる。
175 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 02:47:53.78 ID:CAQhwwqz.net] fnで定義される関数とクロージャって区別されてるのか。fnで定義できる関数は環境を持たないクロージャとして扱うことができるけど、逆は無理なのな。 fn map<S,T> (x:Vec<S>, f:fn(S) -> T) -> Vec<T> { ... } っていう高階関数はfnで定義される関数しか受け付けないが、 fn map<S,T,F:Fn(&S) -> T> (x:Vec<S>, f:F) -> Vec<T> { ... } は関数もクロージャも通す。 クロージャの定義を見ればコンパイル時に環境を持たないで済むか分かると思うんだけどなあ 関数 ∈ クロージャみたいな関係なんだから、関数で済むなら関数にして欲しい
176 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 07:57:01.37 ID:WTvBD7gs.net] unboxed closureならほぼ関数みたいに使えると思うけど。やりたいことは、boxingが必要なケース?
177 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 08:02:49.45 ID:WTvBD7gs.net] よくわからん事を言ってしまった。 そもそも、クロージャとして扱うってどういう意味で言っている? rustではクロージャ「型」というものは最近なくなってしまって、 ただFnを実装した型が関数のように呼び出すことが出来るだけという認識。 Fnを実装したある型が関数として定義されているか、 クロージャの構文を使って定義されているかは、 渡される側からは意識する必要がない。
178 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 14:02:52.06 ID:CAQhwwqz.net] >>177 クロージャとして扱うってのは>>175 の二番目のmap<S,T,F:Fn(&S)->T>っていう高階関数は、 fn foo(...)で定義された関数を渡すことができるし、let baz = |&:| { ... }とかやって定義したクロージャを渡すこともできる。 >>175 の一番目のmap<S,T>はfnで定義した関数は渡せるけど|&:| {...}は渡せない。 つまり、関数とクロージャは別物なんだけど、クロージャを受け取る高階関数は関数も受け取れる。 それを指して「クロージャを受け取れる高階関数は、普通の関数もクロージャとして扱う」っていう意味で言った。 referenceのfunction typeの項 doc.rust-lang.org/reference.html#function-types にもあるとおり、関数の型はfn(args) -> retと書けるもので、traitの実装とかではない。 一方でクロージャはFnトレイトの実装。違いは環境を持つか否か。
179 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 18:02:24.49 ID:5OYX7sX+.net] >>178 おそらくだけど、Rustの言語仕様で閉じる範囲に関しては、すべて区別せず Fn traitに統一したい意図があると思う。 関数型が残されているのはFFIの都合かと
180 名前:デフォルトの名無しさん mailto:sage [2015/01/20(火) 20:43:45.16 ID:CAQhwwqz.net] そうなの?関数内で関数を定義できるからある程度は使えるんだけどな。 ついでに質問なんだけど、Fn traitの記法Fn(s) -> tってのはこれ専用の記法なの? それとも一般的な記法の一例?
181 名前:デフォルトの名無しさん mailto:sage [2015/01/21(水) 01:12:38.06 ID:YXeDnvLj.net] Fn みたいな () -> を使う記法はいまのところFnとFnMutとFnOnce専用だったはず。 他にこの記法使えるとうれしい場面があるならば提案すれば使えるようになるかも。 そもそもこの記法採用されたきっかけというのが、 Fn(A. B) -> C を desugar した形式の Fn<(A, B), C> が書きにくいというのもあるけど、 Fn のdesugarした形式自体がまだfixできていないから、 ひとまずsugarだけ使えるようにして実体の表記は使えなくしようというものだったはず。 実際、Fnの戻り値型はAssociated typeで与えるようにしようとか、 Foo()-> Aの記法は Foo<Output=A> の意味にしようとか、いろいろ議論があるらしい。 当面は、RFCウォッチすると議論が追えると思う。
182 名前:デフォルトの名無しさん [2015/01/21(水) 09:15:31.70 ID:mE4mMlsp.net] トップレベルで型注釈を強制するのはひとつの見識だとは思うんだが、 型の表記がもう少しスッキリしたマトモなものじゃないと面倒臭すぎる。 なんでそういうところはMLやHaskellを見習わなかったのか……
183 名前:デフォルトの名無しさん mailto:sage [2015/01/21(水) 11:29:22.51 ID:4FCeMM5/.net] >>182 本当だねえ。関数引数リストの中がゴミゴミしい
184 名前:デフォルトの名無しさん mailto:sage [2015/01/22(木) 01:22:08.93 ID:KmZyTX6h.net] ttps://github.com/rust-lang/rust/issues/20797?#issuecomment-69947098 associated typesを使っているtraitが拡張できん…
185 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 05:05:02.45 ID:47J/10kQ.net] >>184 の問題の再現コードは、 trait DeclaredTrait { type Type; } impl DeclaredTrait for i32 { type Type = i32; } struct Struct<B: DeclaredTrait> { b: B, b1: B::Type, } とあり、 Struct { b: 0, b1: 0}などとするとICEになるが、色々試した結果、Structを少し弄って struct Struct<T, B: DeclaredTrait<Type=T>> { ... とすれば回避できることが分かった。やったと小躍りしていたらfixされた。Oh...
186 名前:デフォルトの名無しさん mailto:sage [2015/01/29(木) 19:53:46.66 ID:zNgdEinm.net] arthurtw.github.io/2014/11/30/rust-borrow-lifetimes.html borrowingについてはbookより良い説明になってる。 stackoverflow.com/questions/22188088/what-does-a-scoped-lifetime-in-rust-actually-mean この解答はかなりlifetimeについて分かりやすかった。 lifetimeとsubtypingの類似性をまとめようと思ったが力尽きた。 1つの事柄を説明しようとすると別の関連項目も入れた方がいいなとかやってると膨大になる。
187 名前:デフォルトの名無しさん mailto:sage [2015/02/04(水) 22:01:24.98 ID:TC60WqWu.net] rustはじめました バカなんですけど教えてください fn main() { let mut a = &1is; let mut b = &2is; a = b; } b = a だと平気なのに a = b だと叱られます。なぜですか
188 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 01:26:26.56 ID:dGetvNcg.net] 先に宣言した方がlifetimeが長くなるルールだから?
189 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 01:47:21.88 ID:u4P5BLYw.net] nightlyなら通るよ>>187
190 名前:デフォルトの名無しさん mailto:sage [2015/02/05(木) 20:57:01.65 ID:xsa081YG.net] お二方どうも >>188 どこで寿命尽きるのかlifetimeムズカシイです >>189 通るのですか しかしエラー出ます rustc 1.0.0-nightly (eaf4c5c78 2015-02-02 15:04:54 +0000) githubのをビルドしないとダメでしょうか 面倒なのでブック読みながらバイナリの更新待ちます
191 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 00:07:57.08 ID:ZZvCiYpX.net] 今なら2015-02-04のバイナリ落ちてくるよ
192 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 01:45:16.44 ID:f5aiPF8n.net] うーん。変わらずエラーが出ます rustc 1.0.0-nightly (ba2f13ef0 2015-02-04 20:03:55 +0000) 本来>187はコンパイル通るものですか
193 名前:192 mailto:sage [2015/02/06(金) 01:49:34.64 ID:f5aiPF8n.net] エラーこんな感じで src/main.rs:3:14: 3:17 error: borrowed value does not live long enough src/main.rs:3 let mut b = &2is; ^~~ src/main.rs:2:17: 5:2 note: reference must be valid for the block suffix following statement 0 at 2:16... src/main.rs:2 let mut a = &1is; src/main.rs:3 let mut b = &2is; src/main.rs:4 a = b; src/main.rs:5 } src/main.rs:3:17: 5:2 note: ...but borrowed value is only valid for the block suffix following statement 1 at 3:16 src/main.rs:3 let mut b = &2is; src/main.rs:4 a = b; src/main.rs:5 }
194 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 02:10:23.34 ID:9alBoo2L.net] playpenでも転けるし駄目っぽい
195 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 17:39:55.66 ID:uj3RHvbm.net] nightlyで通ると言ってた者だが、1月24日のは通ったが、今日2月6日では通らなくなってた。
196 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 23:25:09.25 ID:gZSM6axtP] やっぱりlifetimeの長い短いとちゃうかなぁ。 >let mut a = &1is; >let mut b = &2is; aの型は&'i isize bの型は&'j isize だとするとlifetimeの長さはi > jであるからaはlifetime i以上のisizeへの参照を要求する。 bのlifetimeはjであるからnot live long enoughなんじゃないかなぁ。
197 名前:デフォルトの名無しさん mailto:sage [2015/02/06(金) 23:36:12.02 ID:gZSM6axtP] うーん、でも fn print_type_of<T>(_: &T) -> () { let type_name = unsafe { (*std::intrinsics::get_tydesc::<T>()).name }; println!("{}", type_name); } fn main() { let mut a = &1is; let mut b = &2is; print_type_of(&a); print_type_of(&b); } の出力は &'static isize &'static isize やなぁ。
198 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 01:46:20.54 ID:Gp97gMW3.net] やっぱりlifetimeの長い短いとちゃうかなぁ。 >let mut a = &1is; >let mut b = &2is; aの型は&'i isize bの型は&'j isize だとするとlifetimeの長さはi > jであるからaはlifetime i以上のisizeへの参照を要求する。 bのlifetimeはjであるからnot live long enoughなんじゃないかなぁ。
199 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 01:46:51.82 ID:Gp97gMW3.net] うーん、でも fn print_type_of<T>(_: &T) -> () { let type_name = unsafe { (*std::intrinsics::get_tydesc::<T>()).name }; println!("{}", type_name); } fn main() { let mut a = &1is; let mut b = &2is; print_type_of(&a); print_type_of(&b); } の出力は &'static isize &'static isize やなぁ。
200 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 08:13:43.05 ID:iwrmCGgo.net] print_type_of ってデバッグでしょっちゅう使うから、標準ライブラリに入ってると良いのに
201 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 11:09:20.93 ID:cThHTNUW.net] get_tydescでlifetimeってstatic以外も出せるの? fn main() { let x = &1; print_type_of(&x); // &'static i32 { let k = &3; print_type_of(&k); // &'static i32 } }
202 名前:デフォルトの名無しさん mailto:sage [2015/02/07(土) 13:33:02.38 ID:cThHTNUW.net] https://github.com/rust-lang/rust/pull/21657 https://github.com/rust-lang/rust/pull/21022 何言ってるか分からん。誰か解説してください。
203 名前:デフォルトの名無しさん [2015/02/21(土) 07:04:27.61 ID:Olg1CcTP.net] 1.0.0 あるふぁ2 来た We’ve managed to land almost all of the features previously expected for this cycle. The big headline here is that all major API revisions are finished: path and IO reform have landed. At this point, all modules shipping for 1.0 are in what we expect to be their final form, modulo minor tweaks during the alpha2 cycle. See the previous post for more details. blog.rust-lang.org/2015/02/20/Rust-1.0-alpha2.html ってことは主な標準ライブラリのAPIも安定するってことか? 安定バージョン出たら使おうと思ってたからそろそろ本格的に勉強しよう
204 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 07:08:43.49 ID:Olg1CcTP.net] rust 日本で人気ないのなんでだろ hackernews とかでは話題になるのに
205 名前:デフォルトの名無しさん [2015/02/21(土) 07:54:16.64 ID:r4ISt4ZW.net] なってねーよ Rustユーザーの声がでかいだけ Githubのトレンド見ろよ てかいつ1.0になるんだよ コンパイルクソ遅せーよ
206 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 08:28:43.29 ID:R5TBrCid.net] 今見たらハッカーニュースで話題になっててワロタ
207 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 11:27:04.19 ID:Fus77TES.net] 日本人なんでいつも出遅れじゃん 半島人や大陸人ではないので念のためw
208 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 11:37:56.64 ID:Fus77TES.net] RELEASES.md Version 1.0.0-alpha.2 (February 2015) ttps://github.com/rust-lang/rust/blob/master/RELEASES.md#version-100-alpha2-february-2015 本題と離れたこの辺が好き→Rust is tested against a LALR grammar
209 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 18:56:18.12 ID:NoRQyCne.net] 日本はシステム寄り言語はあまり盛り上がらない印象 フレームワークでこんなんできた、とかそういうのばっか
210 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 19:05:24.66 ID:XLU71/kI.net] そのフレームワークにも乗り遅れてるけどな
211 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 20:18:51.42 ID:4tV2h1eL.net] 今のペースだと1.0は早くても5月の半ば GWあたりから勉強すればいいや
212 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 22:16:25.60 ID:u58zLpzB.net] ttps://github.com/uutils/coreutils Cross-platform Rust rewrite of the GNU coreutils 面白そうだから時々覗いてるけど、作る宣言してやりかけか音沙汰なしが多い
213 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 22:19:24.18 ID:SweHsfSk.net] 1.0が出てからが本番
214 名前:デフォルトの名無しさん mailto:sage [2015/02/21(土) 22:47:20.72 ID:24QmOmn3.net] 最近Nimとの比較記事よく見る 試したことないが速いんか
215 名前:デフォルトの名無しさん [2015/02/22(日) 05:47:39.50 ID:XKjiDtco.net] 試せよ 馬鹿なの?
216 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 08:13:00.52 ID:NjIsBkYB.net] やだね
217 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 10:43:53.32 ID:x4NvaSP0.net] "「Unix in Rust」の作者がRustを捨ててNimに移行" ttp://developers.slashdot.jp/story/15/02/20/2132207/ Nimの詳しいところは見てないけど、ソースぱっと見で括弧や大文字小文字のめりはり無くて散り散りした感じは嫌だな その点はこっちの方がいい
218 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 20:28:37.40 ID:0ELzUNxg.net] NimはRustよりかなり前からあったでしょ。少なくともぽっと出の新人じゃない。 Nimは高速化、拡張の手段が多い(テンプレート&マクロ, コンパイル時計算, 最適化処理)にもかかわらず、 それらを作るときに変態的な見慣れぬ処理をしているようには見えない。 この、LispのマクロがPythonの文法でやれているのがおそらく一番凄いところ。 Python人口は多いから間口は広いと思うよ。Pythonと違ってまともなスコープだし。 型システムはRustの方が見通しが立っている。Nimはちょっと独特。 そして何より、Rustは低レベルもターゲットだけど、Nimはそうじゃない。 高速 -> 低レベルってのは昨今じゃ成り立ってない。
219 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 20:59:13.82 ID:LRANqcPT.net] あっちはGC、こっちは全手動
220 名前:デフォルトの名無しさん mailto:sage [2015/02/22(日) 22:12:46.57 ID:7JvXqGjL.net] >>219 全手動って、ほぼRAIIとレファレンスカウンタで足りてるように思うけど。 別にmalloc,freeを一々手で書いてるわけではない。
221 名前:デフォルトの名無しさん mailto:sage [2015/02/23(月) 00:57:37.90 ID:AFp5DLmZ.net] NimのGCがスレッドセーフになるのと、RustにGCが搭載されるのと、どっちが先か
222 名前:デフォルトの名無しさん mailto:sage [2015/02/23(月) 08:07:08.31 ID:5h1ypUSf.net] RustはGC搭載だったのを取り除いたんじゃなかったか
223 名前:デフォルトの名無しさん mailto:sage [2015/02/23(月) 19:40:30.09 ID:eyhGdPbs.net] RustでもDでもNimでもなんでもいいよ 俺は勝ち馬に乗りたいだけだ 共倒れになるのが一番困るんだよ
224 名前:デフォルトの名無しさん mailto:sage [2015/02/23(月) 21:48:25.71 ID:hrwL6DMU.net] 勝ち馬おじさんは適当なほにゃららbindingsでも作ってオポを得てください
225 名前:デフォルトの名無しさん mailto:sage [2015/02/24(火) 00:16:34.89 ID:Xk/EueOy.net] >>222 RustのあれはGCじゃなくて今で言うところのRcだったはず GCの一種といえば一種だけど、実装は異なるから区別したい
226 名前:デフォルトの名無しさん mailto:sage [2015/02/24(火) 02:31:58.07 ID:F5ABen3P.net] 参照カウンタもオブジェクトマップも両方GCで最近の参照カウンタは実行時じゃなくてコンパイル時にやるGCじゃないやつがあるんだよ。
227 名前:デフォルトの名無しさん mailto:sage [2015/02/27(金) 03:23:46.29 ID:SOolYU16.net] Boxはownership付きのポインタだ!と気付き、ヒープに限定しなくてもいいんじゃないかと思ったんだが、 move semanticsがあるので、そんなに便利にはならないことが分かった。 うまくできているなと思う。
228 名前:デフォルトの名無しさん mailto:sage [2015/02/28(土) 17:38:52.88 ID:zVTmyizc.net] RustでC++のコードを呼び出せるようにならないかな
229 名前:デフォルトの名無しさん mailto:sage [2015/02/28(土) 17:40:37.54 ID:ODdhY4Z/.net] 呼べるんじゃね
230 名前:デフォルトの名無しさん mailto:sage [2015/03/01(日) 14:43:26.72 ID:GK+mth0P.net] FFIくらいあるじゃろ
231 名前:デフォルトの名無しさん mailto:sage [2015/03/02(月) 19:48:54.98 ID:jKoObBcz.net] ServoではCのラッパー関数作ってるって書いてあった ただそれだと関数呼び出し増えた分のオーバーヘッドがあるから、 言語を跨がった最適化を検討中だとか
232 名前:デフォルトの名無しさん mailto:sage [2015/03/02(月) 21:38:37.91 ID:r8lAZceI.net] rust自身も自分用llvmを使っていて、ビルドに超時間がかかる。 Servoは自分用rustを使っているのでもっと時間がかかるので、面倒でしょうがない。
233 名前:デフォルトの名無しさん mailto:sage [2015/03/02(月) 22:35:12.26 ID:jKoObBcz.net] 同じくrustcのバージョン固定してるcargoはnightlybuildのバイナリ使ってるけど、 servoはソースからコンパイルしてるの?
234 名前:デフォルトの名無しさん mailto:sage [2015/03/12(木) 17:19:15.80 ID:RfbJhqVK.net] してた。ゴ食わず嫌いだったゴメンよ
235 名前:デフォルトの名無しさん mailto:sage [2015/03/16(月) 00:17:19.80 ID:eDQflfth.net] rustは配列内包無いん?
236 名前:デフォルトの名無しさん mailto:sage [2015/03/20(金) 18:24:48.01 ID:+SAQAguo.net] 今は動かない&配列じゃなくてイテレータを返すやつだが、 https://github.com/bsteinb/rust-iteratorcomprehensions を自分で修正したらいいんじゃないかな。うまくいったら使い心地とか教えてほしい ところで、マクロに名前空間とか欲しくない?vec!じゃなくてVec::new!みたいにできたら、 長い名前を付けないでも衝突の心配が無くなっていいと思うんだけど
237 名前:デフォルトの名無しさん mailto:sage [2015/04/01(水) 20:39:05.61 ID:cmpu1vG2.net] ちょっと見ないでいると新しい構文ができてたり、前の構文が禁止になったりと変遷がまだ激しい 関数定義にも型推論が効くようになったらありがたいんだけど、lifetimeパラメータがあるから当分は無理だろうな
238 名前:デフォルトの名無しさん [2015/04/04(土) 10:44:07.36 ID:3u9gfu59.net] ttp://blog.rust-lang.org/2015/04/03/Rust-1.0-beta.html ベータきた
239 名前:デフォルトの名無しさん mailto:sage [2015/04/04(土) 17:25:52.34 ID:tHhrzAt2.net] これで他所様のcrateがコンパイルできないって事態が減るのか。ありがたや。
240 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 02:32:19.13 ID:h+YQESxX.net] std::fsのPathExt使いたいんだけどどうすりゃいいの? #![feature(PathExt)]追加してけど今度はこれに対して文句言われるし
241 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 07:54:14.20 ID:TRGNibS3.net] >>240 使ってるrustはbetaとnightlyのどっち? unstableな機能はbetaじゃ使えないから、nightlyを使う必要がある
242 名前:デフォルトの名無しさん mailto:sage [2015/04/06(月) 09:14:39.34 ID:SQyZe7Rp.net] >>240 #![feature(path_ext)]としたら動かない?あと1.0.0-betaじゃなくてnightly buildだったらunstableがエラーにならない、はず。
243 名前:デフォルトの名無しさん mailto:sage [2015/04/07(火) 17:58:26.92 ID:sYJ921on.net] nightly buildにして#![feature(path_ext)]にしたら動きました
244 名前:デフォルトの名無しさん [2015/04/19(日) 19:52:26.06 ID:KK4Vp0dw.net] rust-lang.orgのトップにあるコード、あれでRustに魅力を感じることはないよね……
245 名前:デフォルトの名無しさん mailto:sage [2015/04/19(日) 22:55:50.22 ID:Pae6mGZb.net] どんなコードなら魅力を感じる?
246 名前:デフォルトの名無しさん mailto:sage [2015/04/20(月) 20:41:29.82 ID:SBrGan7W.net] パターンマッチはRustくらい低レベルな分野では珍しいから悪くはない。 だけど色くらい付けた方がいいのは確か。
247 名前:デフォルトの名無しさん [2015/04/21(火) 12:34:26.69 ID:DovQc0Av.net] その程度の輩を入口でフィルタアウトできてちょうどいい