X



Rust Part6
■ このスレッドは過去ログ倉庫に格納されています
0244235
垢版 |
2018/09/14(金) 22:55:36.33ID:L0IQQp+4
ありがとう

>>239-241
尼のマケプレの値段ヤバイですね。原書?のPDFは入手できたので見てみます

>今ファイルシステムの勉強しようと思ったらLinuxや*BSDのソースコードよむぐらいしか無さそう
うへぇ。ファイルシステムドライバの仕様がどうなっているのかを理解した上で、ジャーナリングや
スナップショットなどの付加機能を分離しつつ読む必要がありそう
オープンソースといえどもこの辺の情報はお世辞にも豊富ではないのもつらいところです
0245デフォルトの名無しさん
垢版 |
2018/09/14(金) 23:38:15.74ID:SIPw8V9s
まあ読むならext3ぐらいからじゃないかな?
losetupやbrdで小規模なデバイス上にmkfsしてhexdump使って媒体構造見るとか
system tapやblktraceで処理やアクセス箇所見るとか
crashでカレントプロセス覗くとか
printk仕込んで処理フロー確認するとか

昔勉強したけど他に何やったかもう覚えてないや
0246デフォルトの名無しさん
垢版 |
2018/09/14(金) 23:52:28.71ID:KYDDV16J
まさかこんなところで共立出版というガチな名前を聞くとは思わなかった。
ねねっちがいるのかこのスレには。最近Rと統計ばっかだよねあそこ。

ところでファイル構造の古書店の通販見つけたけど長すぎてurl貼れない。
0247デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:11:05.25ID:UUtHx4qg
共立出版って大学数学やら物理やらの教科書としてはまあまあ使われてるんじゃない?
0248デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:35:58.43ID:DqLr8CXZ
テキストとワインバーグ本とすべての人のためのJavaプログラミングのところだね。
0249デフォルトの名無しさん
垢版 |
2018/09/15(土) 03:08:49.57ID:aty0PGwQ
>>247
共立出版で情報系の教科書としては次の2つのシリーズは好著が多い良いシリーズだ
・情報数学講座
・アルゴリズムサイエンスシリーズ

あと、共立出版でプログラミングの本と言えばとっくに時代遅れになっているが
カーニハン&リッチーの『プログラミング言語C』は外せない
恐らくこの訳書は初版と第2版とを合わせると、共立出版の情報系の書籍の中で圧倒的な部数を稼いだはず

それ以外にもカーニハン本の翻訳を日本で最初に出したのは共立出版だ
『プログラム書法』、『ソフトウェア作法』、『プログラミング作法』とね

今の若い人たちは存在していたことすら知らないだろうけど、共立出版は bit という月刊誌を出していた
これはB5版のころはソフトウェア技術者にとっての教養雑誌で、理論的な話題の記事も載せていたし
チューリング賞の受賞記念講演の翻訳も毎年載せていた

上に名前が出てた『ファイル構造』は元は bit誌の別冊か臨時増刊として出版されたものが
需要が多かったので増刷を機に単行本化されたものだ

だが部数が徐々に減ってきたのをテコ入れとばかりに編集長が変わって、版型をB5版からA4版に変え
記事も教養的なのから実用的なもの中心に変えてしまったら、昔からの読者の多くが離れて
急激に廃刊(建前上は休刊)に追い込まれた

bit誌の廃刊以降、共立出版の情報科学系の書籍の出版点数はかなり減少したような印象がある
現在の共立出版は数学書の出版に特に力を入れているみたいだね
0250デフォルトの名無しさん
垢版 |
2018/09/15(土) 08:36:15.98ID:h1bufCaZ
bit本誌、いまだに捨てられなくて本棚1段占領している。
ユニマガは引っ越しの時に全部捨てちゃったが。
0253デフォルトの名無しさん
垢版 |
2018/09/17(月) 20:15:25.23ID:aiBl5TGk
ここで質問しても許されるのでしょうか?ダメそうなら、申し訳ないです。
S式を使って遊ぼうとしてRustで見様見真似で書こうとしたんですが、コンパイルすらできません…。
ヘッタクソなコードで恐縮ですが、以下の52行目で「`s` does not live long enough」と怒られます。
https://pastebin.com/94ZPh2dL

まず、's'がスタックに確保されていて、parseから返った先で(つまり、スタックが解放されたあとで)
sを使う可能性があるから駄目だと言っているという認識ですが、正しいのでしょうか。
また、どのように対処すればよろしいでしょうか。

たぶん、根本的なところから理解できていないのだと思いますが、ご教授お願いいたします。
0254デフォルトの名無しさん
垢版 |
2018/09/17(月) 22:18:18.83ID:faCDAGdL
Nodeがsへの参照を持っているのにsが解放されちゃうからじゃないかなあ
0255デフォルトの名無しさん
垢版 |
2018/09/17(月) 22:22:00.90ID:faCDAGdL
みたかんじsymbolを&strじゃなくてStringにしてsをmoveさせればよいと思うけど
0256デフォルトの名無しさん
垢版 |
2018/09/17(月) 23:12:20.37ID:vky9u9CI
>>253
>sを使う可能性があるから駄目だと言っているという認識ですが、正しいのでしょうか。
合ってる。
sはparse関数の中で確保されてる。
そのsの借用(as_strしてるから借用することになる)をparse関数の外に出そうとしてるから
sの借用がsより長命になるのでrustではエラーになる。
sはparse関数の呼び出しが終わると解放されるからこれはダングリングポインタだよね。

>また、どのように対処すればよろしいでしょうか。
この場合、Node<'a>は文字列のsymbolフィールドを所有する側だから&strじゃなくてStringにすればいい。
apiの設計の時点でownd valueとborrowed valueを意識すればいい。
あとleftとrightが借用になってて、これはこれで設計的に間違いじゃないんだけど問題出るかも。
0257デフォルトの名無しさん
垢版 |
2018/09/18(火) 22:40:54.20ID:1KtNrcTb
コピーのコストが嫌だからとりあえず参照にしとこう、の精神は早々に破綻するよね
似たようなパーサ書いてて同じようにコンパイラにボロクソに言われたことがある

それ以来、このデータは誰が持っているべきなのか?を意識して書くようにして、
コンパイラに怒られたら「何か抜け道がきっとある」って思うようになれたし、リファレンス探すと大体解決するようになったよ
0258デフォルトの名無しさん
垢版 |
2018/09/19(水) 11:41:33.60ID:PupZqwJJ
The Creator
0259デフォルトの名無しさん
垢版 |
2018/09/20(木) 01:17:05.56ID:U3x/57bG
皆さん、お返事ありがとうございます。
とても参考になります。
もう少し、頑張ってみます。

# ピンポイントで質問できるのは、本当にありがたいです。
0260235
垢版 |
2018/09/21(金) 16:03:14.74ID:orU60ay9
ありがとう。File Structuresを眺めていますが英語なのであまりはかどらないです
二分木およびその発展系の説明は十中八九キーとして数字が使われているけど
ファイルシステムの入力はファイルパスであり可変長の文字列。この部分はどう埋めればいいのだろうか
ハッシュテーブルでも使えという話なのか?しかしそれならハッシュテーブルを使ってファイルのメタデータを
探索してしまった方が早そうだけどそういう問題ではないんだろうな
0261デフォルトの名無しさん
垢版 |
2018/09/21(金) 21:05:15.62ID:8EH2XxrU
最近でたオライリーの本って
Rust公式ドキュメントの2018でもSecond Editionでもなく
明らかに初版が元になってるよね時期的に
0264デフォルトの名無しさん
垢版 |
2018/09/22(土) 12:08:43.13ID:avc67xv+
Second Edition出てるんだっけ?
ググってみても First Edition, Third Release が 2018-6-22 としか見つからないんだけど。
0265デフォルトの名無しさん
垢版 |
2018/09/22(土) 12:28:30.62ID:zH/ripxa
目次の構成はSecondに近いか?

サンプルプログラムの発行時期は10ヶ月前だからそんなに古くはないのかもな

オライリー原書
http://shop.oreilly.com/product/0636920040385.do
公式ドキュメント日本語訳
https://doc.rust-jp.rs/

ちな最新の2018版ってGithubみた感じリアルタイムに更新されてるっぽいな
https://doc.rust-lang.org/book/index.html
0266235
垢版 |
2018/09/22(土) 12:29:23.44ID:+vE2oHEK
>>262
ありがとう。あれ?自分が勘違いしているのかな
B+木やB*木をファイルのメタデータの探索に使っていると思っていたけどそうではなくデータを格納しているブロックの探索に使っているということ?
0268デフォルトの名無しさん
垢版 |
2018/09/22(土) 23:23:20.56ID:c8wHmvAd
>>261,265
オライリーのカニ本の初版一版は1.17.0。TRPLの日本語訳は相当古い。
2018はverでいうと1.31.0に相当する。いまのstabuleは1.29.0。
それにTRPLでもまだ文書化されてない機能あるしな。
非初学者向けならStep Ahead with Rustもある。
0270デフォルトの名無しさん
垢版 |
2018/09/24(月) 14:27:54.43ID:98z19Ykt
>>266
> ファイルシステムの入力はファイルパスであり可変長の文字列
ファイルシステムへの入力は inode、dir、dentry がほとんどじゃないか?
create:dir と dentry をキーにinode作成
readdir:dir をキーに dirent を作成
open:inode をキーに open
ext4 を少し読んだ感じこうだった
inode 番号をキーに管理すればよいのでは?
0272デフォルトの名無しさん
垢版 |
2018/10/08(月) 18:41:33.75ID:tthsf3cJ
>>271
これってたぶん自己参照構造体(self-referential struct)の話だよね?
自己参照構造体は未定義動作の危険性があるので現状のRustでは表現できない
詳しくは↓の「自己参照構造体」のところを読んで
ttps://qiita.com/ubnt_intrepid/items/df70da960b21b222d0ad
0273デフォルトの名無しさん
垢版 |
2018/10/08(月) 18:44:43.33ID:3nZaN/dO
RC使うが正解
0275デフォルトの名無しさん
垢版 |
2018/10/09(火) 01:15:58.85ID:C4dQJ/Ib
>>271
>>272と同意見だけど27行目でどうやっても自分の参照を関数外に出すから無理だな。
借用じゃなくてBoxでもってクローンすればよくね?
0276デフォルトの名無しさん
垢版 |
2018/10/09(火) 02:03:50.07ID:ErN4eNsC
タプルにFromStrトレイトを実装するのって無理なんですか?

https://ideone.com/iNMuPL
0277デフォルトの名無しさん
垢版 |
2018/10/13(土) 02:22:04.65ID:6mWkEB0Z
implしたい型か、traitのどっちかが自分のものでないと駄目って制約があるから駄目です
何でこんな制約があるかは理解してないけど
0279デフォルトの名無しさん
垢版 |
2018/10/23(火) 00:25:24.72ID:vm0fIWWq
Rustに関しての発信の多い日本人のツイッターアカウントを何人か教えて
フォローしてRustの情報集めたい
0281デフォルトの名無しさん
垢版 |
2018/10/24(水) 01:23:57.63ID:fDSh/sYg
言い方を変える
オススメの情報発信者を教えて!
0284デフォルトの名無しさん
垢版 |
2018/10/24(水) 13:59:42.33ID:k2aW8IHE
人でないのも混ざってるようだが・・・
0287デフォルトの名無しさん
垢版 |
2018/10/25(木) 23:59:22.23ID:lH0yd+Cf
rustlang の Discord に Rust(Steam) をクレクレしてるのが出現してる
さすがにベタすぎるのでネタかと思ったけど
「Rust言語は誰にでもフリーだよ!」と住人にやさしく説明されててちょっと笑った
そういう仕込みのフリとオチだったのかもしれないが
0290デフォルトの名無しさん
垢版 |
2018/10/26(金) 20:17:42.39ID:44ub/T/P
async/awaitのあたりがきれいに書けないなら、ブロッキング+スレッドの方が実用的でしょ
0294デフォルトの名無しさん
垢版 |
2018/10/29(月) 12:25:08.61ID:LvhYoyxI
モジラがバックにいてカワンゴが布教してる技術なんてよく使う気になるよなお前ら
0295デフォルトの名無しさん
垢版 |
2018/10/29(月) 13:12:48.10ID:PHNS982/
>>294
じゃあ君がバックに付け
0297デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:26:30.74ID:e16+m1gN
rustのポジションは他に居ないからありがたく使ってますけど
0298デフォルトの名無しさん
垢版 |
2018/10/29(月) 22:03:30.02ID:M3jiQuOm
>>294
じゃあ、かの有名なMicrosoftがRustを使っていれば貴方も使う気になるってわけですね
ttps://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of/
はい。これでめでたしめでたし

ところで、ドワンゴが例のRust製分散システムをオープンソースにしてた。
ttps://dwango.github.io/articles/frugalos/
0299デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:57:30.60ID:XfhSBW4w
>>296
じゃあ君は最初はバックがどうこう言ってたけど実はそんなこととは無関係に嫌ということかな?
0300デフォルトの名無しさん
垢版 |
2018/10/30(火) 23:04:19.32ID:g5GFfrA6
ただの廃棄物じゃなくて放射性廃棄物ってどういう比喩なのか
阿片みたいに観戦力があり周囲に広がるということ?
それとも単に処分に困るというだけ?
0301デフォルトの名無しさん
垢版 |
2018/10/31(水) 06:32:37.92ID:DCSkWbH/
バカが扱うと光ってしぬとか?
0303デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:18:23.60ID:umCB7ism
遠回しすぎ
0306デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:05:28.30ID:KF+gaYe3
家の非力なデスクトップにgentooを入れたんですが
firefoxをコンパイルしたらrustもコンパイルしてくれました
rustも含めて都合14時間かけてコンパイルしたfirefoxを使うだけじゃ勿体無いので
rustを勉強してみようと思ったのですが
スクリプト言語とjavaを触った程度の人が始めるには
ハードルが高い言語なんでしょうか?

何かとっかかりになる良いサイトとか本がありましたら
教えてくれると嬉しいです
Python歴7年Java歴2年の趣味プログラマです
rustでgtkアプリを作ってみたいです
0307デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:11:11.98ID:zVp4oIsl
問題はやるかやらないかだけ
0309デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:18:27.60ID:KF+gaYe3
ヤル気はマンマンなんですが
まだgentooのインストール途中でxfceにfirefoxが入ってるだけなんですよね
帰宅したらvscodeも入ってるはずなので今夜からコンパイル流しながら勉強する予定です

ただ、あんまり初心者向けの日本語情報が見当たらない気がするので
いいサイトがあれば知りたいな、と思った次第です
0313デフォルトの名無しさん
垢版 |
2018/11/14(水) 19:37:11.25ID:TV7+R4Em
とりあえずslackに入ってみるとよい
0314デフォルトの名無しさん
垢版 |
2018/11/14(水) 21:37:35.14ID:KF+gaYe3
皆さんいろいろとありがとうございます
とりあえずプログラミング言語Rustの日本語訳pdfを見つけたので
それ見て勉強してみたいと思います

これ凄いですね
無料で配布しちゃって良いんでしょうか
下手なwebの情報探すより公式見たほうが良さそうですね
0315デフォルトの名無しさん
垢版 |
2018/11/15(木) 09:47:28.34ID:RDhHOc3n
布教のために気合い入れて書いたんだろうと思う
0316デフォルトの名無しさん
垢版 |
2018/11/15(木) 10:31:34.27ID:P9aoBmqQ
Gitとは何かの説明まであって驚くよな
さすがにそのレベルの人は門前払いしたほうがその人のためにもいいと思うが
0317デフォルトの名無しさん
垢版 |
2018/11/15(木) 12:47:26.17ID:5HuarfG4
>>316
あれはRust初心者だけでなくプログラミング初心者も対象としてるんじゃないの?
だから初歩的なところから教えてるんだろうと思っていたが

まぁ、プログラミング初心者がいきなりRustから始めるってどうなのよ?とは思うけど
0318デフォルトの名無しさん
垢版 |
2018/11/15(木) 13:04:35.26ID:zAJKMl9m
Cとかでメモリの扱いミスってしかも落ちずにおかしな動作する、みたいなのの経験がないとイマイチRustの有り難みは感じられないようなとも思いつつ
かといってRustのためにC勉強するってのもなんか本末転倒なきもするし
0319デフォルトの名無しさん
垢版 |
2018/11/15(木) 14:42:52.86ID:rLd4aKr0
なまじ他言語を知ってるから難しいという点もあるんじゃない
初心者がベテランが作るようなものをrustで書くのは辛いだろうけど、初心者が作るようなものを書く分にはむしろ易しい気がする
セットアップ楽だし
0320デフォルトの名無しさん
垢版 |
2018/11/15(木) 22:55:30.82ID:9llOcmgi
Mozillaはドキュメント書くの得意だよな
オワコンブラウザには勿体無さすぎる才能
0321デフォルトの名無しさん
垢版 |
2018/11/16(金) 12:21:53.69ID:4Z/2Zn+l
なぁに、まだまだこれから。

などという言葉が出始めたら終わりは近い。
0322デフォルトの名無しさん
垢版 |
2018/11/18(日) 19:34:31.05ID:R8KfbBfe
書店でオライリーのRust本をパラパラと読んでみたけど
式の可読性の面ではC++の悪いところを引きずってるように思える
0330デフォルトの名無しさん
垢版 |
2018/11/21(水) 20:13:11.42ID:X08G4m76
え?前なの?
手元の蟹本だと、
7.2.4節 エラーの伝搬に"?演算子"のこと書かれてるんだけど
0331デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:10:26.76ID:o0QT5paZ
muslでビルドすると普通にlinuxでビルドしたときよりメモリ食うんだけどなんで?
0333デフォルトの名無しさん
垢版 |
2018/11/29(木) 07:51:18.34ID:XVJlfR1h
libcとかがダイナミックリンクじゃない分てことだよな
色々検証していたんだがそれだけじゃなくリークしてるように見える
0337デフォルトの名無しさん
垢版 |
2018/11/30(金) 14:18:46.51ID:2aRM++fj
>>335
見てみたらリークはしてなかった
100mbくらいあるヒープに確保された値を1分に1度入れ替えているんだけど、ヒープに確保された領域って即解放されるわけではない?
0338デフォルトの名無しさん
垢版 |
2018/11/30(金) 20:37:37.40ID:9byeocZC
アロケータがmallocになってるからっぽい
0340デフォルトの名無しさん
垢版 |
2018/11/30(金) 23:51:57.68ID:9byeocZC
まだjemllocがデフォルトだけどナイトリーでは既に外されていて近々デフォルトではなくなる

それとは別の話で、俺がビルドしたのがmuslビルド用のdockerイメージで、それにはjemalloc入ってないからシステムアロケータで動いてたんだよね
■ このスレッドは過去ログ倉庫に格納されています

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