プログラミング言語 Rust 4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/14(土) 17:38:14.04ID:uWD69LeP
Mozilla発のプログラミング言語「Rust」のスレです

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

前スレ
プログラミング言語 Rust 3
https://mevius.5ch.net/test/read.cgi/tech/1495343069/
2017/10/29(日) 17:07:16.08ID:UFBW+HOq
>>55 自分もよく分かってないし、見覚えの無い使われ方があったときにそれを指す言葉を知らなくて時間がかかるんだけど、
https://doc.rust-lang.org/book/second-edition/ch19-02-advanced-lifetimes.html
↑にあるように、<>の中ではlifetimeや総称型を使うよ、と宣言するのと、T: Traitとやって型の境界(bound)を指定するのの2つの意味があって、
T: 'a + Traitってのは型TがTraitをimplしていることと、もし参照型だったりlifetimeを持つ型だったりしたときは'aより長生きなものに限りますって意味になる、らしい

意味は分かる。けど、hoge(v)としたとき、lifetime関連のエラーを吐く具体的な値vの例が思いつかない
2017/10/29(日) 18:50:42.32ID:DMNR4JpH
whereで書いたほうがわかりやすいね
2017/10/30(月) 21:06:32.26ID:4dqnj7Aj
>>35
まず、そのままのコードでは new() の返り値が move されるときに
&x のアドレスが変わってしまう(実際には最適化で move されない
だろうけど言語仕様的には)ので、そのコードがエラーになるのは正当。
なので x か Foo 全体を box 化する必要がある。ただ box 化すれば
コンパイルが通るかというと、 box を deref して得られる参照は box
の中身の寿命ではなく box 自身の寿命になるので、 transmute で
チートする必要がある。

fn new() -> Self {
let mut foo = Box:new(Foo {
x: 32,
x_ref: unsafe { mem::uninitialized() },
});
foo.x_ref = unsafe{ mem::transmute::<_, &'static _>(&foo.x) };
foo
}
2017/10/30(月) 21:26:14.87ID:4dqnj7Aj
失礼。コンパイル通らないコードを貼り付けてしまった。

fn new() -> Box<Self> {
let mut foo = Box::new(Foo {
x: 32,
x_ref: unsafe { mem::uninitialized() },
});
foo.x_ref = unsafe { mem::transmute(&foo.x) };
foo
}
2017/10/30(月) 22:54:07.55ID:nDqoZaw+
ありがとう。
move するとアドレスが変わるというのは無理矢理実験したときに気付いたけれど、
実際はこんな感じで Box 化された構造体の特定の変数への参照が欲しかったので、
>>38が言った前スレの>>507-514辺りを見て、こんな感じで解決してました。

use std::mem;

struct Bar(i32);

struct Foo {
x: Box<Bar>,
x_ref: &'static i32,
}

impl Foo {
fn new() -> Self {
let mut foo = Foo {
x: Box::new(Bar(10)),
x_ref: unsafe { mem::uninitialized() },
};
let dummy = mem::replace(&mut foo.x_ref, unsafe { mem::transmute(&foo.x.0) } );
mem::forget(dummy);
foo
}
}
2017/10/31(火) 00:31:43.31ID:pbuN/n26
>>60
ああ、確かにリファレンスとはいえ forget() しとくべきだね。
このコードについては↓でも問題ないけど、まあ実際の初期化はもっと他にも
処理があるだろうから、一般にはこううまくは行かなかいか。

struct Foo<'a> {
x: Box<Bar>,
x_ref: &'a i32,
}

impl<'a> Foo<'a> {
fn new() -> Self {
let x = Box::new(Bar(10));
Foo {
x_ref: unsafe { mem::transmute(&x.0) },
x: x,
}
}
}
2017/10/31(火) 18:55:06.66ID:xO8W0Vv5
Rcって何のためにあるんですか? 所有権? 借用じゃダメなん?
所有権持ってる変数のライフタイムを超えて借用できないからRc?
色んなコンテナや、色んなデータ構造に渡って持たせたいときはRc?

https://ideone.com/IP9Jk4
書いてみたらなんとなく納得行ったような気がする
2017/11/03(金) 08:56:29.78ID:Z6QhTX43
標準に整数型のトレイトがないの意味わかんねぇ
std::net以上に需要あるでしょ
2017/11/03(金) 19:05:06.62ID:q9Q8QP2Y
>>63
Scalaも無かった気がする
2017/11/04(土) 09:52:47.01ID:ZfOcIIq3
Haskellで言うNun型クラスみたいな奴ってことか?
トレイトでやろうとすると要定義メソッド多すぎたり、
累乗みたいな計算の実装が遠回りになったりしそうできつそうに見えるな
66デフォルトの名無しさん
垢版 |
2017/11/04(土) 10:16:41.16ID:sRI2IP6J
Haskellは数値も抽象化してるせいでパフォーマンスにかなり影響与えてるしね…
2017/11/04(土) 11:00:10.28ID:ZfOcIIq3
s/Nun/Num/
Scalaはその辺を、暗黙の型変換でシームレスに扱おうとして闇を量産してるんだよな
Rustは今んとこ特になんもしてない感じか
2017/11/04(土) 11:30:17.70ID:I+CIRt80
numクレートじゃいかんの?
https://github.com/rust-num/num
2017/11/05(日) 10:17:10.41ID:/rlXjeS/
numクレートが標準にないのが嫌なんだろうけど、std::timeみたいに標準サポートやーめたってなりそう
Into/From使えば別に困らんしと需要は少ないのではなかろうか
2017/11/07(火) 20:38:24.64ID:vWfvN4c5
https://ideone.com/XBh9VX
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・Rc<RefCell<Option<Node<T>>>>を中心に実装
・ふんだんにRc::clone()を乱発
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・基本的によく分かってないので色々奇妙な事をしているかもしれない

昔からチラホラ「Rustで木構造は苦しい」と耳にしてて興味があったのと
最近ほかのスレで実装してた人がいたのをみて触発されたので書いた
最初はOption<Rc<Node<T>>>で書いてたけど
RcとRefCellの組み合わせを試してみたくなって方向転換
けっきょくどっちが正解だったのかは不明
2017/11/07(火) 20:46:48.79ID:pha33qDk
ただのAA木に Rc なんて要らんだろ。Option<Box<Node<T>>> で済むだろ。
2017/11/08(水) 00:56:51.98ID:hd1pqs3m
AA木の削除操作はwikipediaのやつだとpred(自分より小さい値のうち一番大きいもの)とsucc(自分より大きい値のうち一番小さいもの)を
子ノードから取ってきた後に子ツリーに対して再帰的にdeleteをしてくってなってるけど、ノードの値がNoCopyだとRc使うかunsafe使うかしないと無駄なコピーが発生しない?
73デフォルトの名無しさん
垢版 |
2017/11/08(水) 01:15:10.36ID:T1vINdZw
>>70
「他スレで実装してた人」って俺のことだな。
↓のスレのことだろ?

次世代言語Part7[Go Rust Swift Kotlin TypeScript]
https://mevius.5ch.net/test/read.cgi/tech/1508403098/

木構造は持ち主(親)が1つに限定されるはずのでRcもRefCellもいらないと思うよ。
実際 、自分はOption<Box<_>>という形で実装してるし。
RcとRefCellの練習するんならグラフ構造とかがいいじゃないかな。
グラフ構造ならRcとRefCellはほぼ必須になるんじゃないかな。
グラフ構造はRustどころかC, C++でも実装したことないから詳しくは分からんけども。

>>72
俺の実装では、Option型のtakeメソッドを使ってるぞ。
そしてtakeメソッドの中ではunsafeが使われてる。だからコピーもないはず。
そのことじゃないのか?俺のほうが何か勘違いしてる??
7470
垢版 |
2017/11/08(水) 20:27:30.89ID:iPjR8aCv
https://ideone.com/4BnXSI
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・今回はOption<Box<Node<T>>>中心に実装
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・前の奴>>70のコピペから開始してるから妙なとこ残ってるかも

>>72
wikipedia見ただけでそのへんに着目できたのってすごい
前回は実はそこで一旦あきらめてコピーとOption<T>の導入に踏み切った
今回もTのコピーうんぬんについては挑戦せずそのまんまコピーしてる
2017/11/09(木) 01:32:36.02ID:kYfp6pnU
>>73 Option::takeを使って子ノードのsuccかpredの値を取ってくるとすると、その子ノードの値はNothingになるよね?
wikipediaの例だとその後にdeleteを再帰的に行うことで(delete内で適宜skew&splitを呼んでる)バランスを保つよう処理してるけど、Nothingが入ってる時点でうまく動く保証が無い
そのスレで書いてくれたものは要素としてCopyであるi32を使ってるから問題が見えないんじゃないかと思う

>>74 自分も>>73の例を見る前に多相型でちょっと書いてみて、どうすんだこれって気付いたんで偉そうなこと言えないっす
Rust固有の問題じゃないような気がしてるよ。C++とかで多相型にしてみたとしても、「子ノードの値を自身の値にする」って部分でコピーが行われる気がしてならない
一瞬だけどAA木の中に同じ値を持つノードが発生しているから、AA木の実装を綺麗に書こうとしたらT:Copy or T:Cloneって制約は必須なんじゃないかと
76デフォルトの名無しさん
垢版 |
2017/11/09(木) 03:38:46.05ID:x23Vytiv
>>75
ああ、なるほどね。
確かにi32の部分をTに置き換えると T: Copy か T: Clone が必須になるね。
これは確かに無駄なコピーが発生してるわ。
まぁ、この実装だとおそらく元になったwikipediaのコードの時点で
無駄なコピーが発生してることになるよね。
wikipediaの場合はi32(4byte)くらいならコピーしてもいいやってスタンスなのかな?
Tの場合は何byteになるか分からないからそういうわけにもいかないということかな?
これ以上は考えるのが面倒になってしまった。。。orz
7770
垢版 |
2017/11/09(木) 19:44:06.23ID:1u6Rcsa8
https://ideone.com/dFoFa9
>>70の<T: Copy>を<T: Clone>に変更
・ついでにRc付きで運用してみて様子を観察

でっかい構造体の場合はこういうふうなのがマシなのかな
Clone運用してるとこに、さらにRcもってくると気持ちよすぎ
おかげで内部の操作に由来した余計な割り当ては無くなった
CloneトレイトとRcには敬意を表したい

>>75
そこんとこの苦悩はもうしゃあないのかな
それについてはもう思考停止します
7877
垢版 |
2017/11/09(木) 19:45:08.89ID:1u6Rcsa8
×・>>70の<T: Copy>を<T: Clone>に変更
○・>>74の<T: Copy>を<T: Clone>に変更
2017/11/09(木) 20:45:25.15ID:EdyTgEfO
rustのことはわからんけどコピーしないAA木は実装したことがあるので口を出させろください
「succかpredの値をnodeにコピーしてからsuccかpredを削除」しているわけなので
リンクを繋ぎ変えてsuccかpredとnodeをまるごと入れ替えるようにすれば、コピーは要らなくなりませんか
2017/11/09(木) 22:34:40.35ID:kYfp6pnU
コピーしない実装も不可能じゃないと思うけど、削除時の再平衡をちゃんと理解してないから分からん
ちょっと勉強してみるわ
2017/11/10(金) 00:49:41.25ID:PhyVaKjz
データ構造,アルゴリズム,デザインパターン総合スレ 3c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1466315249/l50
2017/11/10(金) 23:43:40.77ID:3DZB3Erk
num crateって昔標準じゃなかったっけ?rustc_privateだけだっけ?
2017/11/11(土) 03:49:20.94ID:x6IBdmnF
Rustの日本語書籍ってまだ出てないのですか?
84デフォルトの名無しさん
垢版 |
2017/11/11(土) 21:51:46.65ID:rbpvu0L2
>>83
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/
2017/11/12(日) 00:57:30.78ID:pW30nUMy
>>84
ありがとうございます
2017/11/13(月) 15:07:53.78ID:paUmVqxY
言語は割といい感じなのに何でcargoはこんなにウンコなん(´・ω・`)
2017/11/13(月) 21:10:10.81ID:W6k1I/AE
cargoのどこが不満やねん
2017/11/13(月) 21:12:20.77ID:o8y42drl
ビルドとパッケージマネージャを一緒にしてcrates.io必須にして、他のビルドツールとの連携がつらいんでNIH症候群になりがちで、あんま好きになれないのがcargo
環境変数でビルド先のディレクトリが変わるけど、そこらへんのドキュメントも乏しいのが難点
2017/11/14(火) 01:18:01.25ID:03b/WoCZ
戻り値の型をflow sensitiveに推論してくれなくて、rustcが推論間違えてそれに気付くのに一日潰れてしまった。

>>86,88
わかる。囲い込んでるのにcargo自身が大したこと出来なくて色々困るんだよね。
色々方針が変わるし。mvnと同じ問題起こしたnpmと同じことしてるし。

言語は良いんだよ。
2017/11/14(火) 01:25:20.09ID:Meoq/IF/
rust製のOSSのウェブサーバーってないの?
2017/11/14(火) 01:50:40.15ID:xg4XyUK/
>>90
hyperかな Webフレームワークのironやnickelがhyperに依存してる
92デフォルトの名無しさん
垢版 |
2017/11/14(火) 17:05:10.90ID:RZwCC6tv
>>90
ロケット
2017/11/14(火) 17:57:48.10ID:Meoq/IF/
ウェブサーバーって書き方が悪かった
RocketやIronを使って実際に運営されてるウェブアプリはある?

小規模なTwitterクローンとかでいいんだけど
2017/11/14(火) 22:28:34.56ID:xFziBOix
server書いてます。フレームワーク書いてますは沢山あるけど運用例聞かないね、そう言えば。
2017/11/15(水) 01:12:59.55ID:Yh7CedoH
だってどこも使ってないもの
泥箱みたいなところはモジラから金もらって「使ってます」って提灯持ちしてるだけ

事例やソースが一切出てきてないのが証拠
いい加減Rustそのものがモジラのステマの産物だと認めろ。これはプログラミング言語ではない
2017/11/15(水) 02:07:05.71ID:xYQYBhLn
プログラミング言語ではある
2017/11/15(水) 02:56:35.18ID:p5zaPhLE
ディスりにモジラ絡める時点で長いこと荒らしてるいつもの暇人だってすぐ分かるんだよなあ
自分から具体的な話ができないししてもすぐ反論されて終わるもんだから他人の愚痴に便乗するしかできなくなってる

ボローチェッカに自分のコード全否定されて頭がおかしくなった可哀想な子を生み出したRustの業は深い
2017/11/15(水) 03:08:53.86ID:xYQYBhLn
ボローチェッカにボローボローに否定されたんやなぁってやかましいわwww
2017/11/15(水) 06:53:08.67ID:nRwvVPky
つーかおまえらはrustで何書いてんの?
2017/11/15(水) 10:20:38.06ID:QoaSbxja
それな
まだ仕事で使ってる人はいないだろうし
2017/11/15(水) 10:32:37.69ID:I7ANqDvy
仕事で使ってるけど、小さな会社なので、皆さんのご期待には沿えない。
2017/11/15(水) 10:49:24.15ID:FBksKtwj
>>97
せめてモジラの提灯持ち以外にまともにプロダクションで使ってる企業を出してから言えよ
2017/11/15(水) 11:05:39.14ID:oyAT9Por
糖質は同じ言葉を繰り返すからすぐ分かる。
2017/11/15(水) 11:45:28.60ID:FBksKtwj
反論できずに糖質認定か
2017/11/15(水) 13:03:45.77ID:PSu/RMx1
クローズドソースのときって、どういうスタイルなの?
crateのパスを相対で書きまくるのか、巨大ctateをつくるのか
2017/11/15(水) 13:27:56.09ID:p5zaPhLE
https://www.rust-lang.org/en-US/friends.html
公式サイトのこのページくらいは見たことあるだろ?無いのか?無さそうだな。
まともな耳目がついててこのページ見てるならそんなレスできねえもんな
2017/11/15(水) 14:07:55.37ID:FBksKtwj
>>106
まさかソースといってモジラの大本営発表持ち出してくるとは思わんかったわ
そんなもんただの提灯で何の意味もない。使ってる根拠にはならない
せめてそういう企業がGithubで公開してるものがあるとかなら認めるがそうじゃねえだろ
2017/11/15(水) 14:16:38.25ID:MzdtAyc5
ちょっと前までのfirefoxをRust使って書けるわけない失敗すると言い張ってからの
この流れは笑える
2017/11/15(水) 14:21:13.24ID:FBksKtwj
>>108
失敗してるやん
Rustなんかで書き直したせいでアドオン全滅してる
110デフォルトの名無しさん
垢版 |
2017/11/15(水) 14:22:10.55ID:bBOLEH2G
>>107
昔と比べるとだいぶオープンソースな時代にはなったが、
全てがオープンソースで開発されるような時代ではない。
公式の発表を信じずに何を信じろと?
「俺を信じろ」とでも言うつもりか?
「公式」と「お前」どちらのほうが信用度が高いのかまさか君にはわからないのか?
111デフォルトの名無しさん
垢版 |
2017/11/15(水) 14:22:39.30ID:bBOLEH2G
まぁ、けど確かにここに載っているのは社内の一部の物好きな社員が
メンテの必要もないくらい簡単な社内ツールとかを作るのに
利用しているだけのような気はしているんだが、実際はどうなんだろうな?
2017/11/15(水) 14:25:51.46ID:FBksKtwj
少なくともブラウザから得た個人情報の横流しとステマで生計を立ててる非営利()組織の大本営発表は信じるに値しない
2017/11/15(水) 14:35:48.33ID:MzdtAyc5
>>109
キミの笑いのセンスには脱帽だよ
114デフォルトの名無しさん
垢版 |
2017/11/15(水) 14:36:17.78ID:bBOLEH2G
>>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
115デフォルトの名無しさん
垢版 |
2017/11/15(水) 14:42:32.68ID:bBOLEH2G
>>113
あ、これネタだったの?
気づかずにマジレスしてしまったわ。すまん。
2017/11/15(水) 14:49:29.35ID:p5zaPhLE
こっちとしちゃ糖質クンに「自分は視野狭窄している馬鹿なんだ」って気付いてもらうんじゃなく
ただどっちが妥当な話をしているのか周りに伝わればいいんだわ。乙。

Redditで、自社の既存のシステムをRustで書き直したよって言う投稿をよく見かける
自分で触った感じでも、プロトタイピングや全く新しいシステム作るときは他の言語でやった方が楽な気がするけど、
試行錯誤もRustでやった方がはやいわってなるのかね?
2017/11/15(水) 14:49:41.95ID:FBksKtwj
ネタなのは自殺したブラウザの方だろ
118デフォルトの名無しさん
垢版 |
2017/11/15(水) 15:32:16.99ID:bBOLEH2G
>>112
どちらが信用度が高いのか本当に分からなかったようだ。。。
君には呆れを通り越して憐れみを覚えるよ。
2017/11/15(水) 15:38:56.68ID:a1L9d6tA
そういう大きな話じゃなくて、もっと身近な感じでrust使ってるかどうかを聞きたかったんだけど、ここまで>>101しか出てこないな
2017/11/15(水) 17:13:53.76ID:QoaSbxja
rustでチェスの対戦サイト(サーバー)作りましたとかないわけ?
goとかscalaではいくつかあるけど(もちろんphpも)
2017/11/15(水) 18:04:29.51ID:I7ANqDvy
今まで「担当者の趣味でなんとなく」C, Go, Python, Rubyで書かれていたツールをRustで書いて
おー速いやんとニヤニヤしてる段階

>>105
crateのパスは相対
2017/11/15(水) 18:07:27.47ID:lnZNl5oY
>>121
やっぱ細かく分けてるの?
っていうほど巨大なプロジェクトじゃないかな?
2017/11/15(水) 18:17:07.13ID:6qkyb6Qq
Rustでコード書くのって意外と楽しいよね
クロージャもスッキリしてるし
そもそもあと実は俺はスネークケース文化が好き
map_or ←この時面がすき
mapOr ←こんな言語は(あるとしたら)嫌い
2017/11/15(水) 18:58:57.26ID:JXP4Zmpc
ドワンゴがなんか作ってたね
2017/11/15(水) 21:05:47.07ID:Kx4c/qA9
スクリプト言語を趣味でやってる俺ですが
firefoxの軽さに感動してrustに興味を持ちました

現在ネットでrustについて調べてる最中なんですが
c++の置き換えだとかっていう情報はよく書かれてますけど
実際c++を書いたことの無い自分にはいまいち掴めません
なんか他に特徴的なとこはあるんでしょうか?
マルチプラットフォームのguiアプリとか作ってみたいです
2017/11/15(水) 21:54:08.10ID:zsyPe7CY
>>125
>なんか他に特徴的なとこはあるんでしょうか?
自分でガシガシ書く向けだよ。C++より綺麗に。JITなんざ頼らねぇ(れねぇ)、GC邪魔(やる余裕がない)って
領域向けに抽象度をある程度保ったまま書ける。メモリ管理にリージョン使うから解放タイミングが予測できるし、
組み込みもベアメタルもいける。nightlyは書式統一されたインラインアセンブラもある。
低レベル全部rustで書いてもいいし、ライブラリだけrustで書いてCから呼び出せばC++不要。

>firefoxの軽さに感動してrustに興味を持ちました
前にも言ったがfx57の速さにrustは関係ない。設計が根本的に変わった影響。
Servoにあるhtmlの並列トークナイズがfxに移植されたらさらに速くなる。
そんで、言語自体は遅いよ。コンパイラもまだ改善途中だし。
標準ライブラリのコードは速度のためにunsafeだらけで、
JIT/GCがある環境みたいにド直球で素直なコード書くもんじゃなくて、
速くなる部分はLLVMの部分だからコンパイラのバックエンドの違いでしかない。
tracing gcないから開放できないメモリがあるのは他と同じ。
2017/11/15(水) 22:03:43.52ID:rT1iYiCt
>>119
会社で使うコマンドラインツールはほとんどRustで書いてる。
昔はPythonで書いたりしてたけど、使ってるうちにパフォーマンスが問題になったりすることが多くて
後で書き直したりするくらいなら最初からRustでいいや、と。
2017/11/15(水) 23:13:04.10ID:bBOLEH2G
>>125
コマンドラインツールをRustでってのはときどき聞くんだけど、
GUIのアプリをRustでってのは聞いたことないな。
そもそもRust製のマルチプラットフォーム対応GUIフレームワークってのを聞いたことない。
Rust製のまともなGUIフレームワークとか存在してるの?
2017/11/16(木) 00:51:52.06ID:81E2YZma
なるほど、コマンドラインツールか。
rust に合ってる領域かもって初めて納得した。
2017/11/16(木) 02:21:07.10ID:fZgVNMfR
>>128
gnomeは積極的にRustに寄っていってたはず
他は知らん
2017/11/16(木) 02:27:03.23ID:fZgVNMfR
>>129
pecoとか見てるとコマンドラインツールをカジュアルに作るならgoのが向いてる気もするが……
rustにもrgあるし一概にどっちが優れてるとは言えんが
2017/11/16(木) 03:12:54.72ID:fiTPZdVA
gnomeってrustで置き換えていくの?

rustの実用的なGUIってgtkぐらいだと思うけどqtもそろそろ実用段階だったりするのかね
2017/11/16(木) 11:39:32.01ID:W2aOUAlV
rustで書いてるosってrudoxだっけ?
あれってlinuxカーネルののrustによるリファクタリングって事でいいの?

l
2017/11/16(木) 12:32:25.88ID:Uttk70vk
>>133
んなわけねーだろ
2017/11/16(木) 12:53:49.49ID:W2aOUAlV
>>134
完全な新しいos?
じゃあlinuxにかなうわけねーじゃん。ただの自己満プロジェクトかぁ
2017/11/16(木) 13:34:34.31ID:Uttk70vk
>>135
OSとしての実用は自己満レベルでも、コードベース資産としては価値あるんじゃねーの?知らんけど
世の中にはいくらでも自己満OSプロジェクトあるんだからそこは許してやれ
あのGNUですらHurdってOSを自己満で書いてんだ
2017/11/16(木) 13:34:41.95
Rust Essentials - Second Edition

がPacktから出版されましたね
2017/11/16(木) 17:48:48.97ID:dSTVIPFJ
linixこそ個人のお遊びプロジェクトだったんじゃないのか
2017/11/16(木) 17:50:56.93ID:dSTVIPFJ
オライリーはどうなってんの?
2017/11/16(木) 18:55:22.46ID:Uttk70vk
>>139
少なくとも自分はKonozamaくらってる
2017/11/16(木) 20:07:31.98ID:v4h2PTyC
>>140
発売してないよね?
2017/11/16(木) 22:51:18.03ID:a7TN1Oxp
>>136
LZ4圧縮とか、シェルとか、Redox OSはサブプロジェクトに結構見るべきものがある

Pijulプロジェクトで開発されたSSHライブラリとかもそうで、副産物がいい味出してる
2017/11/17(金) 00:27:49.05ID:oCT+XqQK
urxvtをrustで書き直して🙏
alacrittyはなしで🙅
2017/11/17(金) 01:16:04.93ID:r4qIw16A
>>138
そうね。その頃にはオープンソースなunix osが無かったからみんな喜んだ。でも今はlinuxがあるわけで。

まぁでもマイクロカーネルらしいし
ドライバはlinuxのが使えるとかすれば、化けるのかな?
2017/11/17(金) 01:29:54.30ID:AQwbboRb
>>144
歴史の知識もOSの知識も無いなら変なこと言わないほうが良い
2017/11/17(金) 01:36:37.62ID:pIVssbCG
BSD系列全否定ワロタ
2017/11/17(金) 01:43:43.14
茂みから鉞が跳んでくるぞ〜
148デフォルトの名無しさん
垢版 |
2017/11/17(金) 01:49:33.84ID:3GAWOghK
BSDは訴訟がなければな。
あとminixも最初からライセンスが修正BSDだったらな。
2017/11/17(金) 02:00:54.43ID:r4qIw16A
linuxは未だにcで書かれてるわけだけど、
それがrustで書き直されたとしたらどうなるの?予想として。
メモリ使用量は減る?
バグは減るよね。
2017/11/17(金) 04:58:41.34ID:Q8rdVBz+
ID:r4qIw16A
かまってちゃん
2017/11/17(金) 05:02:58.63ID:n+fIjN+j
恐らくバグば減る、メモリ使用量は増える
C言語がサイズ減に全振りしているのをrustは安全側に振ってるからな

だがその前にLinusがブチ切れるだろ間違いない
2017/11/17(金) 09:41:50.16ID:p03/6wS8
let foo = Foo {
c: f1(),
a: f2(),
b: f3(),
};
let bar = (f1(), f2(), f3());

構造体やタプル構築の時って、式の評価順序はソースに記述されてる順序で確定してるんだっけ?
ここでいうと f1 -> f2 -> f3 で
2017/11/17(金) 10:10:51.70ID:j/YEi+T5
そもそもgnuの成果物でもなんでもない不自由なコンパイラであるrustcでコード書くことを御大がよしとするわけねーだろっていう
GPLでrustc書き直してから出直してこい
2017/11/17(金) 11:43:43.45ID:DHrRs5YV
そんなあり得ない話どうでもいい
155デフォルトの名無しさん
垢版 |
2017/11/17(金) 13:35:22.27ID:Eetf/DNi
BSD ← ボスドーって読むのですか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況