01:01:35
icon

最近野菜要素としてごぼうのきんぴらを頻繁に食べているんだけど、ふと💩した後流す前に見てみたら丸々残ったごぼうが数本水面に浮いてて笑ってしまった

01:35:10
icon

twitter.com/mi_zu_to_ra/status

ジーベン・エルフを思い出した

01:42:55
icon

github.com/dtolnay/anyhow/blob

anyhow::Error で Box<dyn std::error::Error + Send + Sync + 'static> 相当のものの代わりに自前 vtable 使ってるの、 thin pointer を使いたいというだけの理由であれば Box<Box<dyn ..>> みたいにするというクソみてえな手もあると思った (は?)

Web site image
anyhow/error.rs at 1089f316136a9718b6e9b5943772822958cd268d · dtolnay/anyhow
01:44:18
icon

そのようにしてないのはアロケータが重いと嫌みたいな話かな。それとも意味論的にアホっぽいから?
いや普通に考えて正気で Box<Box<T>> なんて書く人がいるとは思ってないけど、提案したらどういう理由で却下されるのかはちょっと気になる

01:54:33
icon

そういえば論理今日の老人トークなんですが。

float が double より遅いという話、あれかなり outdated だったっぽいですね (調べて初めて気付いた)

01:58:36
icon

x86 系 CPU の float/double - petakoneko’s diary
petakoneko.hatenadiary.org/ent

float vs. double
herumi.in.coocan.jp/prog/prog9

内部的に拡張されるから double でも変わらんみたいな話は x87 命令の話で、最近の CPU は SSE2 とか AVX に float / double それぞれのスカラー用命令が入っているらしく、速度は変わらないらしい

01:59:11
icon

以上、老人トークでした

01:59:34
icon

常識が更新されないの、こわいね……

02:01:58
icon

歴史的資料として。

Cプログラミング診断室/キャストが好き/float型対double型
pro.or.jp/~fuji/mybooks/cdiag/

1996年の情報です

Cプログラミング診断室/キャストが好き/float型対double型
02:02:50
icon

や、 copyright 表記が1996年になってるけどコメントでは 2007年に弄られてる形跡があるな。まあいいや

02:47:51
2020-06-18 02:10:41 rinsukiの投稿 rinsuki@mstdn.rinsuki.net
icon

vala、Fridaで使われてるのか。vala使われてるの目撃したの初めてかもしれん github.com/frida/frida-core/se

02:48:10
icon

libskk は vala で実装されてるので世話になってるし、なんならプルリコも vala で書いた

02:48:47
icon

vala 、マジで「順当に進化した better C」という感じ。 C++ で消耗している場合ではない

02:53:13
icon

Rust が選択肢に含まれてるなら Rust 一択ですね…… (個人の感想)

02:53:33
2020-06-18 02:52:00 おの投稿 owatan@mstdn.owatan.jp
icon

血縁関係のない姉妹は合法的に性行為ができるのでオトク

02:53:44
icon

べつに姉妹なら血縁関係あっても問題なくない……? (?)

02:53:53
icon

なにもわからない
雰囲気で物を書いている

02:55:52
icon

記号?

02:57:33
icon

reference の & 、dereference と raw pointer の *、try の ?、pattern の |、binding の @、range の .. と ..=

メソッドとか基本的なものを抜きにすればこのくらいか?

02:58:14
icon

match arm の => と関数型の -> は、まあべつに見た目通りなので

02:58:22
2020-06-18 02:58:01 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

02:58:27
icon

そういう話か

03:00:31
icon

for pat in expr { block }

{
let mut iter = std::iter::IntoIterator(expr);
while let Some(pat) = iter.next() { block }
}

の糖衣構文です (これは慣れると当然に見えてくるので、そこまで深く悩まなくてもよい)

03:00:57
icon

pattern の | は普通に "OR" のつもりだと思うので、そのイメージがあればそのうち当たり前に見えてくる

03:01:58
icon

直観的でないのは ? (try operator) だと思うけど、あれは大昔 try! というマクロがあった時代の話を思い出せば理解しやすいですね

std::try - Rust
doc.rust-lang.org/1.44.0/std/m

03:04:30
icon

try!(expr)
はだいたい

match expr {
Ok(v) => v,
// ↓ From::from(e) は e.into() とだいたい同じ
Err(e) => return Err(From::from(e)),
}

に展開されるものでした。
その代替・拡張として発生した演算子が ? で、 expr? は Result だけでなく Option とかにも使える。
Option の場合は expr? は

match expr {
Some(v) => v,
None => return None,
}

という感じになる。

03:06:13
icon

クロージャの |args| expr がウーンとなる気持ちはまあわかる (左右の括弧が同じ文字なのがどうにも……)

03:10:31
icon

$(( 1 + 2 )) みたいなやつね

03:10:34
2020-06-18 03:10:17 耳はむ配信禁止の投稿 Common_Lisper@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

03:10:49
2020-06-18 03:08:34 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

03:11:02
icon

わかる、 "$(cmd)" みたいにしがち

03:11:47
icon

cd "$(dirname "$(readlink -f "$0")")"

とか \` で書きたくないよ……

03:15:58
2020-06-18 03:14:04 zundaの投稿 zundan@mastodon.zunda.ninja
icon

Vue遊びしてるとモダンフロントエンジニア臭が漂ってくるんだけどfunction(){}と()=>{}の違いとかいきなりじゃがすくりぷとの深淵にたたき落とされる感覚がすてき←

03:16:15
icon

this...

03:47:47
icon

法務省:人権擁護局フロントページ
moj.go.jp/JINKEN/

いじめについて自分の近辺の動きが鈍い場合、法務省に相談するというライフハックがある。
子供たちが知っておくべき知識のひとつだね

法務省:人権擁護局フロントページ
03:49:00
2020-06-18 03:45:21 mzpの投稿 mzp@mstdn.nere9.help
icon

1階にすんでるので、ぴょんぴょん飛びはねても大丈夫

03:49:53
icon

最上階に住んでいるのにドッスンドッスン聞こえてくるので、たぶん下の階とかから壁伝いに響いているのかもしれないと思っている

04:01:27
icon

Cわかる人は超越者を名乗っていいと思う

04:02:12
icon

cppquiz.org/

楽しんでいこう

13:50:52
2020-06-18 13:39:20 無宛@零月のラウラ良かった……の投稿 LwVe9@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

13:50:59
2020-06-18 13:40:28 あじょだよの投稿 azyobuzin@mstdn.maud.io
icon

ボタンを丸くするの、特にユーザビリティの改善みがないので、それはオナニーではという気持ちがある

14:46:34
icon

VS で std::abort() 呼んでるのに何事もなく次のウィンドウプロシージャが呼ばれるし、そのたびに abort() を呼ぶので「ボボボボボボボボボロン」とすごいエラー音の後にデバッグしますかのダイアログが出てきます (マジで何なんだ)

14:46:48
icon

しかも abort() するのが一度だけだと、ダイアログは出るけど abort 貫通して何事もなく次のメッセージを処理しつづけるので、異常終了したはずのゲームを続けて遊ぶことができてしまう……なんだこれは

14:47:31
icon

abort しろと言ったのに abort しないの、さすが C++ コンパイラつってるのに C++ 準拠してない製品を出してた会社だけあるわ (???)

14:48:42
icon

まあ冗談はさておき、 SIGABRT をトラップしてデバッグに使えるのはいいとして、貫通してメッセージループを続行するのは本当にやめてくれ

15:16:01
2020-06-18 14:55:46 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

よくわかんないけど自プロセス殺すんじゃダメなのかな感と、もうひとつイベントがバラバラのスレッドで動いてるとかかも?><(状況が謎><)

15:17:04
icon

プロセスを殺す仕組みがあるなら、 abort() を呼んだとき同じような挙動で死んでくれればいい (OS が殺してくれればいい) と思うわけですが……

15:17:48
icon

文脈は Win32 の小さなプログラムを C++ で書いている状況です

15:19:57
icon

ウィンドウプロシージャから呼んでいる同スレッドの関数で abort() しているので、そのまま本来実行継続を意図していない状態で再度ウィンドウプロシージャにエントリーしてくるのは私の意図するところではないわけですよ
(そもそも内部的な不整合を検知したから abort しているわけであって)

15:22:09
2020-06-18 15:19:58 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

よくわかんないけどちゃんと処理抜けて必要な終了処理して終了するように書けばおkだと思う><
自プロセス殺してまでして終了ってかなり異常な状況っぽさ><

15:22:22
icon

異常だからこそ abort してるんです

15:22:48
icon

exit じゃなくて abort してるんですよこっちは……

15:23:10
icon

内部一貫性が壊れたままプログラムが走るの、圧倒的恐怖しかないでしょ

15:24:31
icon

そもそもプロセスを外から問答無用に殺せるということは (モダンな OS であれば当然) リソース解放も必要に応じて OS がしてくれということでもある。30年前の OS ちゃうんやぞ

15:25:56
icon

たぶん Win32 API で意図したとおり異常終了させられるみたいな話もありましたが、それはそれで良いとして、であれば abort が何故そうならないのかを疑問視している

15:26:05
2020-06-18 15:25:29 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

あと、GUIでイベントドリブンなコードの場合は、終了させたい時は『「終了してね!><」フラグ』をたてておいてそれ監視するみたいに書く方が普通だとオレンジは思ってた><
(別スレッドも『終了してねフラグ』が立ってたら「あ、もう要らないのか」って判断して処理スキップするように書いたり><)

15:28:40
icon

これは「エラーがあって、それが想定のうちで、かつプログラムが正気で走っている」という状況でしょう。その状態なら綺麗に後始末するのは正しい。

abort はそうではなくて、「プログラムが論理バグの存在を (内部状態の矛盾や仕様違反の検出によって) 自覚した、既に手遅れの状態」で使う自殺スイッチであって、これを使ったあとぶっ壊れ状態で更に正常系を想定したコードが続行されるなんてこと許せるわけがないんですよ

15:29:18
2020-06-18 15:28:54 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

ほんとのほんとのほんとのほんとに、どうっっっしてもどうにもなら無い場面以外では、正常に終了するように書くべきかもというか、
異常終了はあくまで、開発時に想定出来なかった異常により終了する場面で起きるものと考えるのがWindows流だと思う><

15:30:40
icon

だからその「開発時に想定できなかった」マズい (実質未定義動作みたいな) 状態で使うべき abort が、なんで OS によってコールバック関数が呼ばれ続けるのを止めないのか、という話です!

15:34:32
2020-06-18 15:32:41 コロコロコロ助の投稿 naota344@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

15:34:49
icon

ファイルシステムの話ではないし btrfs は今日も問題なく動いてます

15:34:57
2020-06-18 15:33:55 コロコロコロ助の投稿 naota344@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

15:35:31
2020-06-18 15:33:43 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

であれば、『異常な状況に陥ったっぽいフラグ』を用意してそれをたてるようにして、各所でそれを見て処理を抜けるように書くようにしないと、シングルスレッドなソフトウェアではどうにかなんとかなっても、マルチスレッドなソフトウェア(Windows用に普通に書けばそうなる)ではわりと大変なことになると思う><

15:37:29
icon

そもそもプログラムが正気 (状態の一貫性や満たすべき条件) を失った時点で当人に後始末をさせるのは気休めでしかなくて、根本的には OS が強引に後片付けを引き継ぐべきという考え (OS 越しでなくハードウェアと直に対話している特殊なアプリとかは別として)

15:40:18
icon

で、 OS に後片付けをする能力があるのなら、 abort が野蛮だろうが何だろうが、狂ったプロセスが後片付けをしたつもりだろうが何もせずすべてを投げ出そうが、最終的に OS がやることをやるので、であれば abort はやっぱりプロセスを速やかに容赦なく殺すべきだと思うんですよ

15:43:58
icon

そもそも本当に OS の後片付けをあてにできない状況なら SIGABRT をフックしてクリティカルな後始末だけしたりみたいなことはできるはずで、 abort 後に許される処理なんてそのくらいですよ

15:44:51
icon

atexit とか at_quick_exit で登録された後始末さえ呼ばないものなんですよ abort は

15:45:30
icon

あーいや SIGABRT にフック付けられるかはわからないか。

15:45:35
2020-06-18 15:43:30 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

完全にどうしようもない状況であればたしかにそうかも><;
でもWindows用のアプリの場合、例えばメモリを確保できなかったとか、GUI等のリソースがOS側の都合で破棄された等の場合程度であれば、OS側の異常終了の機能に頼るべきではないかも><;

15:45:57
icon

これはそうでしょうけど、だからといって abort がアホであっていいことにはならないので別の話です

15:48:17
icon

たとえば assert に失敗したら abort が呼ばれたりするはずですけど (規格で保証されてるかは知らん)、 assert 失敗した状態でそのままプログラム動かしていいんですか? 下手したらハードウェアを滅茶苦茶にしたりセキュリティホールになる可能性あるわけですが

15:48:32
2020-06-18 15:47:00 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

PCの電源切りたい時に電源プラグ引っこ抜いて「いきなり電源落ちても壊れない頑丈なファイルシステムを使ってるからだいじょうぶ! いつもこうしてる!」
みたいな感じに感じる><; 「そりゃファイルは壊れないかもしれないけどでも・・・・><; 」的な><;

15:49:09
icon

電源を抜いて PC や HDD が壊れないのは仕様の範囲外ですが、 abort で異常終了すべきなのは仕様と保証の話なので全然違うと思います

15:49:33
2020-06-18 15:48:20 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

うん><; でも意図的に異常終了させる必要がある場面てまず無いと思う><;

15:49:45
icon

これは私とだいぶ見解が違いますね……

15:51:08
icon

Panic を恐れるべからず - 何とは言わない天然水飲みたさ
blog.cardina1.red/2019/12/19/d

私は「狂ったプログラムの自称 “後始末” や自称 “復帰” を信用できる理由はないので、不整合があれば即座に殺せ」を信条にしています

15:56:18
icon

もちろん人命に関わる状況とかだと話は変わってくるけど、それも設計レベルで「不整合がプログラム全体に漏れ出さないように作って、不整合があった場所はさっさと殺して再起動しろ (結果として全体が不整合に狂わされることなく動き続けるようにしろ)」となるべきであって、「気付いてしまった不整合を見なかったことにして実行を続ける」は如何なる状況でも正当化されないと考えます

15:59:37
2020-06-18 15:58:02 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

これそれこそUNIX流の『シンプル』なんだと思う><
異常な値が来る位置を想定できるのであれば異常な値が来た時の処理を書くべきかも><
ていうか普通のアプリ程度で「『想定不能な値がやって来て』 かつ 『ある特定の位置で異常であるか判断できて』 かつ 『異常であった場合に適切に処理できない』場面ってある?><;

16:00:22
icon

なんか考えが食い違ってると思うんですが、私は「起こりうるエラーをどうするか」の話ではなくて「起こりえないエラーが起きてしまったらどうするか」の話をしています

16:01:11
icon

準正常系と異常系を区別したときの異常系側で何をするのかという話になるかな

16:01:20
2020-06-18 16:00:33 Satoshi Kojima (小嶋智)の投稿 skoji@sandbox.skoji.jp
icon

このアカウントは、notestockで公開設定になっていません。

16:01:59
icon

大昔のプロセス殺したらそのままメモリリークする OS とかならさておき、現代であれば…… となりますよね

16:02:49
icon

mstdn.nere9.help/@orange_in_sp

orange 氏が言ってるのはすべて準正常系の話でしかなくて、私は異常系の話をしているので噛み合っていない

Web site image
orange (@orange_in_space@mstdn.nere9.help)
16:02:58
2020-06-18 16:02:01 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

不整合を見なかったことにして動作を続けるように書くんじゃなく、
各場面で不整合であるかチェックして、正しくなければ処理をせずエラーを返し、返された側もエラーが来る事を前提に書く
ってすれば、きれいに処理を抜けていって最終的にプロセスが終了する ってなるかも><

16:03:44
icon

「起こり得る」と認識していることはすべて想定されたエラーなんですよ。そういう話はしていない

16:05:13
icon

たとえば std の vector を長さ128にリサイズした直後に容量を確認したら 64 だったりするとビビるじゃないですか。というか「物理的に可能ではあるが絶対に想定しないしいちいちチェックして if 文で対処もしない」類のエラーなわけです。
私が殺したいプロセス異常というのはそういう種類の話

16:05:23
2020-06-18 16:04:01 Satoshi Kojima (小嶋智)の投稿 skoji@sandbox.skoji.jp
icon

このアカウントは、notestockで公開設定になっていません。

16:09:25
icon

たとえば int a=non_42(); したあと宇宙線が飛んできて a が謎の値 42 になることだって実際に現実に起きうるエラーですが、基本的に皆そういうの検査しないわけですよ。1行ごとに a の値が non_42() を読んだときの値のままであることを確認しない。
そもそも a が 42 になってたからといって、元の値なんて復元できないじゃないですか。

そういう「まずありえないし、あったとしても救いようがない」状況を (自覚的であれ無自覚であれ) プログラマは必ず捨てているもので、じゃあもしその「ありえない」を見てしまって発狂したとき何をするか、という最後の砦が assert や abort なんですよ

16:09:37
2020-06-18 16:04:28 8vitの投稿 8vit@gs.yvt.jp

このアカウントは、notestockで公開設定になっていません。

16:09:46
2020-06-18 16:08:06 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

16:11:54
icon

結局同じことで、我々は暗黙に或いは明示的に「不変条件」とか「一貫性」というものを想定して、それが満たされているときにしか動かないプログラムを書いている。
不変条件の存在しないとはすなわちあらゆる仕様が信用できないということなので、本質的にナンセンスなんですよ。「ありえない状況」の存在しないプログラムはありえない。

16:12:29
2020-06-18 16:11:00 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

16:12:38
icon

というかそのままですね

16:14:10
icon

プログラムが自身の発狂を認知できる数少ない機会が assert 類であるわけで、いかに「狂ったプロセスがあらゆるものを破壊しに行くのを素早く止めるか」が大事だから assert を積極的に書けということになる

16:18:00
2020-06-18 16:17:03 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

『あり得ない状況※a』とはあり得ない状況であると認識できない状況であって、『あり得ない状況である※b』と認識可能であれば、『あり得ない状況※b』を前提に処理すべきかも><

言い方を変えると、『あり得ない状況※a』であると認識出来る事に期待すべきではないかも><

16:20:28
icon

全ての不整合を検出できると思うなというのはその通りで、だからといって「物理的に可能なすべての状態を考慮せよ」というのもやはりナンセンスです。

int a = 3;
if(a!=3)
{
a=3;
}

みたいなことを書くべきじゃないんですよ (今は volatile の話はしていないよ)

16:20:36
2020-06-18 16:14:37 8vitの投稿 8vit@gs.yvt.jp

このアカウントは、notestockで公開設定になっていません。

16:20:49
2020-06-18 16:18:47 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

16:20:49
2020-06-18 16:20:20 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

16:20:55
2020-06-18 16:20:22 unaristの投稿 unarist@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

16:21:59
icon

エラーに対処できるならすればいいけど、対処しようのないエラーとか、対処を考えるだけ無駄なエラーとかがあって、そのうちごく一部に「幸運にも assert とか書いとくだけで検出できるエラー」があるんですよ

16:22:04
2020-06-18 16:19:26 FullStuckの投稿 su@fedi.fullstuck.net
icon

このアカウントは、notestockで公開設定になっていません。

16:25:42
2020-06-18 16:24:11 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

16:25:44
icon

ほんこれ

16:31:27
icon

お仕事でインドッズ使わされてるんですよ、趣味の開発でこんな環境使うわけない

16:38:30
2020-06-18 16:32:55 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

Windows 開発(Windows 上での開発ではなく)は先にやっておくと macOS 以外の環境はだいたいイージーモードになるので最初に行うことが推奨される

16:38:43
2020-06-18 16:33:15 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

原子炉だって想定外の異常時に停止するけど、「動作を停止」するわけでは決してなく「運転停止動作を実行する」ように作られている><

16:39:32
icon

それは「想定外」の種類によるのでなんとも

16:39:57
icon

だから私は一貫性とか不変条件という言葉を使ってます

16:41:55
icon

たとえば、人が近付くとアームを引っ込める処理があるとします。
でもアームを引っ込める処理をしたのにセンサはアームがどんどん飛び出していることを報告するかもしれない。
それでもまだ「異常事態には人に危害が及ばないようアームを引っ込めるべきだ!」といえますかね

16:44:15
icon

ここでの異常とは「アームを引っ込める処理をしたのに反対の挙動になっている」というある種の論理バグの可能性が十分にあり、このとき開発者が考えるべきなのは「致命的におかしいアーム制御で、それでもどうにかアームを引っ込めてみせよう」ではなく、「これ以上動かして人やモノにぶつけると被害が大きくなるから、即座にアームを動かすのをやめよう」じゃないですかね。
それが「不変条件が満たされないことに気付いたら即座に殺せ」の意図です

16:45:50
icon

もちろんアームの制御を停止したとき新たに発生するリスク (アームが固まらずに垂れるとか) もあるだろうけど、それはハードウェアとか別レイヤーで対応すべきことで、断じて「狂ったソフトウェアを使いこなしてアームを動かし続けることを試みる」べき理由にはならない

16:46:15
2020-06-18 16:45:25 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

それは例えばアームを停止する動作(何らかのロック機構とか)を(用意した上で)(ダメもとでも)実行すべきかも><
ダメもとでもって結構重要で、原子炉の非常用発電装置には安全装置がついていない><(ダメもとでも動かなければならないので><)

16:48:22
2020-06-18 16:47:25 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

16:49:50
icon

はい、なのでとにかく「狂ったものを動かし続けるな」が意図するところです (「止める」とは「止める制御をする」ではなく「制御をやめろ」「狂った制御を発効させるな」です)

16:49:57
2020-06-18 16:46:58 skiaphorusの投稿 skia@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

16:50:57
icon

「回避処理自体も何らかの『想定』のもとに動いていることがあって、その『想定』が既に満たされていない状況を考えないといけない」という話です (回避がうまくいくことが信じられるなら回避を試みればいい)

16:52:17
icon

mstdn.nere9.help/@orange_in_sp

これは「非常用発電にはメインの原子炉のプログラム稼働状態の破綻が伝播しない」という前提では正しいでしょうね。
というか、そういう設計にすべしという話でもあるんですけど

Web site image
orange (@orange_in_space@mstdn.nere9.help)
16:54:17
icon

私が言っているのは「プログラムが一貫性を失ったとき、その破綻は他の部分へ伝播している可能性が高く、特に復帰処理もその破綻した一貫性や前提条件に依存していたり修復自体ができない場合が多い」という話。
一貫性破壊が伝播しない設計ができるならそうした方が異常に強くなるのは、当然それはそう。

16:54:36
2020-06-18 16:52:09 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

これは重要なポイントなんですが abort は C の標準関数なんですね

16:54:41
2020-06-18 16:53:57 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

16:55:50
icon

そもそも伝播しないなら別プログラムでよくない?という話もあるよ
(同じプログラム内である以上、何らかの形で状態を共有しているという想定は自然だし、その共有状態が壊れていたとき「壊れていない意味のある部分」がどれだけ残るのかという悲観が前提にある)

16:59:11
2020-06-18 16:56:42 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

UNIXのソフトウェアって、異常検知した時に開いてるファイルを閉じずに終了させるように書いたりするの?><;

16:59:51
2020-06-18 16:58:13 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

というかソフトウェアの異常系の話の例えとしてハードウェアを出すのは不適じゃんというのは僕も思いますね

16:59:51
icon

だから「どういう “異常” なのか」次第なので、一口に「異常」と言われてもそんなのケースバイケースです

16:59:58
2020-06-18 16:56:58 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:00:20
icon

そういう意味か。
私は制御ソフトウェアの話をしてましたが、まあアームのハードウェア側でやることやれよとかいろいろいえるか

17:02:51
2020-06-18 16:58:05 8vitの投稿 8vit@gs.yvt.jp

このアカウントは、notestockで公開設定になっていません。

17:02:55
2020-06-18 17:01:37 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

どんな異常であろうがとりあえず開いているファイルだけはとにかくなるべく閉じよう
ってしてるけど少なくともオレンジは><;

17:04:45
icon

たとえそれがファイルシステムやデバイス側の異常に見えたとしても、ですか?

17:05:46
icon

根本的なマインドとして「手に負えなくなっているなら、これ以上余計なことをするな」というのが abort レベルの異常終了なので、「うんうんそういうこともあるよね、 exit(2) します」とかの終了とは状況のマズさが違うわけです

17:06:40
icon

ちなみに迂闊にファイルをフラッシュしようとすると I/O が永遠にブロックしてプロセスが終了しなくなるなどの場合が現実にあります (というかそれでつらい思いをした)

17:08:01
2020-06-18 17:07:23 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

ハードウェアの存在を仮定すると一種のブラックボックスとかオラクルを置くことになるので異常の種類に関係なく話がおかしくならない?という趣旨です

17:09:35
icon

それはコンパイラのバグとか OS の sanity についても同様のことがいえて、結局抽象すると「下のレイヤーが『期待したとおり』動いてくれる (或いは『エラーを検知して対処できると信じている』) という前提条件が破られない想定をしている」という話なので本質的な差があるとは思いません

17:10:39
icon

たとえば「標準ライブラリは仕様通りに動く」とかもそういう暗黙の前提条件のひとつで、我々はそれを「信じないことができる」

17:12:24
icon

OS も機械も同じで、我々はあらゆる想定を「信じないことができる」が、それでも内心いくらか信じている。信じていないと意味あるプログラムが書けない (意味論のないプログラムに意味はないので)。

で、その「信じている部分」に裏切られることがある、という話が前提条件が破れるという言葉の意味です

17:13:49
2020-06-18 17:13:28 hnの投稿 hnagamin@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

17:17:30
icon

「信じていない部分に裏切られた」なんてのは最初から想定内で、そんなのさっさとエラーに対処しろでおしまいですよ

17:17:45
2020-06-18 17:14:35 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:17:53
2020-06-18 17:15:19 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

まさにこれは WM_CLOSE なんですよね多分

17:17:57
2020-06-18 17:16:03 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:18:02
2020-06-18 17:16:34 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

QUIT もある、けど手動で呼んではいけないらしい

17:18:08
2020-06-18 17:17:28 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

おそらく abort() とか WM_QUIT はこちらが信頼を裏切っている

17:18:17
2020-06-18 17:16:43 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

あとは ExitApplication とかか

17:19:59
icon

最初の文脈に戻りますが、「アプリ開発者による『これはもう駄目だ!』という表明を信用しない」というのが OS の思想であるというのならそうですねという感じだけど、その帰結が「大丈夫! 駄目だと思うから駄目なんだ! まだいけるぞ!」と死体に鞭打って破綻したプログラムを走らせ続ける凶行であるというのが、ちょっと信じられなかっただけです

17:20:29
2020-06-18 17:20:00 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:21:32
icon

wndproc だけが破綻しているという考えはわからない。
「wndproc がアクセスできる情報を共有している部分のいずれかが破綻している」が論理的に正しい想定だと思うんだけど

17:22:00
2020-06-18 17:21:33 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

macOS の Darwin カーネルに対するシステムコールもだけど,あそこらへんの OS そういう primitive なの直接使わず高位の API を使ってくれというスタンスだしまあ

17:22:16
2020-06-18 17:19:49 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

想定外の挙動によって常に悪い結果をもたらすという固定観念はある

17:23:27
icon

というか、そこで楽観するなら assert しなければいい話なので、 assert 失敗したら悲観的な対処になるのは自然ではある

17:24:59
2020-06-18 17:24:34 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:26:38
icon

「狂った本人が過去に『俺がこうなったら殺してくれ』と言っていた」というのと「せんせー、この人もう狂ってます!」というのと、 assert はどちらにも使われる可能性があるという想定ってそんなに不自然でしょうか。

17:27:50
icon

そもそも不整合は未知のバグにより起きたりするわけで、未知であるがゆえに当然「どこが狂ったせいで共有状態が破綻したのか」はわからないわけですよ。
であれば、 assert や abort による破綻がその呼び出し元ローカルであると考える合理性はない

17:28:37
2020-06-18 17:25:37 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

17:28:40
2020-06-18 17:26:22 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

17:28:52
2020-06-18 17:28:26 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:29:47
icon

「本人かどうかはわからないが、少なくともプログラムのどこかは (対処困難な形で) 壊れている」という報告なんですが、「よし、ならお前以外は大丈夫だな!」とはならないのではという

17:30:45
icon

狂っているのが本人かどうかはわからない場合も多いし、わかっていたとしてすべきことが変わるとも思えない (何故ならその破綻は既に伝播しているかもしれないと考えるべきなので)

17:31:41
2020-06-18 17:30:13 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

ちゃんと止まらないのはおかしいのは100%同意だけど、Windowsのアプリであれば異常検知後にダメもとでもそれだけ実行すべき終了処理がほぼ必ずあるし、それを即実行出来るように書いていないのであればそれ自体が危険だともいえるし、
微妙に矛盾するけど、異常検知の処理と非同期で何らかの処理が行われ続けてて、異常検知の処理と何らかの処理の順番の実行順が不定であるのであれば、それはつまり手遅れであるし、手遅れにならないようにするには、問題が起こる処理の前に異常検知する必要があるかも><
つまり、時間的に既知である異常が検出されたのであれば影響のある処理を実行する前に処理を取り止めるべきであって、不定の順番による検出に期待すべきではないし、

超短く言うと「処理実行する前に異常かどうかちゃんと確かめて異常だったらその処理は実行せず戻せ!><」かも><

17:33:17
icon

mstdn.nere9.help/@orange_in_sp

「破綻したデータを食う前に処理を止めろ」には同意するし正しいけど、それは「破綻を発見したとき、既に他の誰かがその破綻を発生させていて、自分より前にそれを誰かが食っていない保証がない」という視点が欠けている

Web site image
orange (@orange_in_space@mstdn.nere9.help)
17:34:24
icon

もちろん「プログラムのすべての部分を掌握しているので、いかなる部分も他所で発生した破綻に巻き込まれない確信がある」というのならそれでもいいけど……それは原則として過信だと思いますね (人間そんなに強くない)

17:34:34
2020-06-18 17:31:51 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

abort はプロセス全体の異常停止じゃない?その意味ではWindows の WndProc が再スタートするというのはどう頑張っても擁護できない挙動だけど

17:36:11
2020-06-18 17:35:40 sksat@自鯖の投稿 sksat@don.yohane.su
icon

このアカウントは、notestockで公開設定になっていません。

17:36:15
2020-06-18 17:32:30 8vitの投稿 8vit@gs.yvt.jp

このアカウントは、notestockで公開設定になっていません。

17:36:19
2020-06-18 17:35:49 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

でもやっぱり WndProc で abort 呼ぶのは一種の UB だろという思いは変わらなくて、abort をやめろという感じになってしまう

17:36:50
icon

wndproc の方に特殊事情があるのか……

17:36:53
icon

つら

17:37:57
2020-06-18 17:36:38 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

他の誰かって誰?><; その他の部分は自分で書いて無いの?><;
その部分は異常を検出するようには書かないの?><;

17:39:15
icon

だから、それを自分が完璧にできているということを信じられないという話をしています

たぶん究極的には「プログラマが十分に賢いことを信じられるか否か」になりそうですが、これについて私は「開発者を含め人間はどんなに注意しても間抜けなミスをするし、その確信を信じきることはできない」という立場です

17:40:04
icon

「プログラムを完璧に正しく書きました! エラー処理も万全です!」と主張する人がいたとして、そんなの信用しませんよ……

17:40:17
2020-06-18 17:39:59 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

WndProc そもそもあれ呼び出してるのは 私 じゃなくて Windows だからなあ

17:41:45
icon

あーそういう話、やっと理解しました

17:43:30
icon

私の認識ではウィンドウプロシージャもプロセスの一部という認識だったので当然同時に即死すべきだと思っていたけど、あれは Windows 側に全権があってプロセスが最優先で持っているものではないみたいな考えがありえるという話でおk?

17:43:46
2020-06-18 17:41:54 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

クリーンアップしなくてもOSが何とかしてくれるはずももちろんたぶんWindowsもそうなんでしょ><; 挙動見てる限りではたぶん><
それに期待するなら通常の終了処理でもクリーンアップする処理省いたら?><;
「どうせプロセスが終了すれば開いてるファイルはおそらく安全に閉じるしあらゆるリソースの解放はきっとOSがやってくれるだろう」って><;
実際そんなコード見たら🤔ってなると思うけど><;

17:45:10
icon

「プロセスが終了するとき細々したデータ構造を free してたらそれだけでめっちゃ時間かかるので、 free しないで OS 側にまとめて開放させた」みたいな感動の実話を聞いたことがあります (具体的なことが思い出せないけど、少なくとも「なんじゃこの素人は」と思わなかったのは確か)

17:45:58
icon

そもそもうまい設計してたらリソース解放なんてそうそう明示しないけど……

17:46:06
2020-06-18 17:43:44 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

相互責任分界点はプラットフォームごとに大きく違うからまずそれを体得するのが大事みたいなはなし

17:46:08
2020-06-18 17:44:32 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

プロセスに全権はない、ぐらいが正しそう。委託業務。

17:48:25
2020-06-18 17:44:36 8vitの投稿 8vit@gs.yvt.jp

このアカウントは、notestockで公開設定になっていません。

17:52:43
2020-06-18 17:49:25 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

エクスプローラー吹き飛んでも Firefox とかは生きてるけどウィンドウ枠は爆散したという状態になったことがあり、謎

17:52:50
2020-06-18 17:49:41 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

たしか POSIX ってプロセスが死んだときのリソースの解放は OS が責任持ってやってくれるはずだよね

17:53:02
2020-06-18 17:45:43 hnの投稿 hnagamin@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

17:53:07
2020-06-18 17:51:09 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

fj 時代からの根深い議論なので素人が,ということはない気がする >> MALLOC kmaebashi.com/programmer/c_yot

17:53:36
2020-06-18 17:29:12 Pawooサポートの投稿 pawoo_support@pawoo.net
icon

@4shi ご質問頂きました当該アカウントの画像投稿の削除対応につきましては、サーバー会社を通じましてフランス当局より要請がございましたため、対応を行わせて頂きました。禁止行為の基準はこれまでと変わりませんが、公的機関からの要請がある場合は、弊社としては対応せざるを得ません。公的機関からサーバー会社へ要請があり、それに対応しない場合にはサーバー側のレギュレーションに抵触する可能性があり、運営に支障をきたす可能性もございます。ご理解頂けましたら幸いです。

17:54:11
2020-06-18 17:40:53 椎葉じーんの投稿 cybergene@mstdn.ikebuku.ro
icon

例えばAWS使ってたとして、自分とこのポリシーがどうなってようがAWSにダメって言われたらそれを回避する策は取れないでしょ

17:54:22
2020-06-18 17:53:02 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

Fediverse防弾ホスティング部

17:57:39
2020-06-18 17:55:31 しきうたの投稿 siki_uta@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

17:57:49
2020-06-18 17:56:07 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

GeoIPを参考にユーザーの地理的傾向を調査する→🙂
GeoIPを参考にサービスを提供していない国からのアクセスをブロックする→👹

17:59:20
2020-06-18 17:56:25 ksmakotoの投稿 ksmakoto@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

18:01:18
icon

RAII のようなパターンで自動化せよ、「このリソースは不要なので忘れず解放しとかないと!」みたいなことを手動でやらないといけない時点で error-prone なので言語やフレームワークや設計の側に改善の余地がある、という話です

18:02:48
2020-06-18 18:01:54 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

Windowsは確保したらちゃんと解放しないとメモリリークするリソースがたくさんあるよ!><;
プロセス終了すりゃそりゃ(たぶん)解放されるけど、ちゃんと不要になったら解放するように書かないとアホみたいにメモリ食う変なソフトウェアが出来るよ><;

18:03:47
icon

それをフレームワークとか言語でやらない、できないということならその状況に問題があるという話です
(もちろん熟慮の上で敢えて手動管理したりする選択肢はあるべきだけど)

18:05:12
icon

人間は誤るものだし、だからこそ「正しいコードを書きやすく、間違ったコードを書きにくく」という原則には価値がある

18:08:01
icon

error-prone なものがあったとして、「だから人間は注意しないと!」というのは間違ってはいないけどズンズン進むべき方向ではない。
「間違いようのない仕組みにしよう」に行くべきなのであって、そして現実にそれはある程度可能なのであって。
「ヤベー事態でもちゃんと解放しないとリソースがリークすることが!」と言われても、そりゃ設計が残念なのではとしか……

18:08:41
icon

GC がなくても自動的なリソース管理はできるので……

18:11:54
2020-06-18 18:07:51 三上洋の投稿 mikamiyoh@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。

18:11:57
2020-06-18 18:08:41 ぼる惨状の投稿 rocks_cola@mstdn.beer
icon

このアカウントは、notestockで公開設定になっていません。

18:59:45
icon

退勤マンと化した

19:10:18
2020-06-18 19:02:14 kozueの投稿 kozue@yysk.icu

このアカウントは、notestockで公開設定になっていません。

19:10:34
2020-06-18 19:07:01 kozueの投稿 kozue@yysk.icu

このアカウントは、notestockで公開設定になっていません。

19:11:15
2020-06-18 19:05:09 kb10uyの投稿 kb10uy@mstdn.maud.io
icon

そういえば日本とか関係なく本国で合法なインターネットコンテンツをサービス展開すらしていない他国から「うちでは違法なのでどうにかしろ」と言われた場合ってどちらが優先されるものなの

19:12:00
2020-06-18 19:04:01 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

実際の飛行機に限った話というか、毎度お馴染みエアバスA320><; の話で言うと、
オートパイロットが壊れたらオートパイロットが無効になるはその通り><
一方でA320系は多重フライバイワイヤな飛行機で、高レベルの操縦システムが壊れたら1段下に落ちるようになってる><
一番下まで落ちると非常用の直接操縦するモードになって、直接舵を操作することになる><
このモードはプロテクションもフィードバックもなくとても操縦が難しいらしく危険で、ほんとのほんとにダメもとになってる><
一番上の通常の操縦システムが壊れても、もちろんAPが壊れた程度でも、いきなり一番下の危険なモードには落っこちない><

19:12:01
2020-06-18 19:07:01 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

多重化して多層にするの大事だし、ぶっ壊れた!→全停止 ってするのが安全な分野は限られてる><
危険な部分だけきれいに止まれるようにも多重化><

19:13:17
icon

いやこれさっきからずっと言ってるんですが、 orange 氏のしてる話は「想定外を潰して想定内に持ってきましょう」という、準正常系で扱う範囲を広げる話をしていて、私は異常系として捨てることに決めた可能性をどう扱うかの話をしているので、結局噛み合ってない

19:14:46
icon

結局「予定外の事態でも検査して対処するのを積み重ねて『想定内』に引っ張り込むのを沢山繰り返すしかない」という話に聞こえるんですよ。
私が考えているのはそういう努力とは全く別の部分で、「復帰すべきでないと定めた異常をどう『扱わない』か」です

19:16:08
icon

復帰の努力はできる、でもその努力が実るとは限らない、あるいはその努力がコストに見合うとは限らない、そういう辺りの線引きが揺れる話はそれこそプログラムの利用分野や要求次第なわけで。
どこに線を引くかと、線のむこうとこちらでどういうスタンスをとるべきかというのは分けて考えられると思っているので

19:17:03
icon

(まあ私が internal inconsistency を完全に abort 側にあるとした線引き自体に異議があるという話かもしれないので、それは話の展開がよろしくなかったとは思う)

19:18:36
icon

私は「abort は即座にプロセスを殺すべきで、それはどのような理由や動機ゆえなのか」という話をしてたんだけど、 orange 氏の話は「abort すべきでないのは何故なのか」という話をしてる感じ

19:19:32
2020-06-18 19:13:36 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

ていうか、C# のお勉強の課題でIDisposableなものをDisporse忘れ(using忘れ)してたら減点対象にするのが普通だと思うけど違うの?><;
あとJavaも含めてfinallyを使うべき場面で使ってないとか><
自信なくなってきた><

19:20:01
icon

「忘れてた」ときに問題が起きるデザイン自体が error-prone であると形容される人間に優しくないデザインそのものなのではという感想しかないです……

19:21:07
icon

たとえば C++ の unique pointer とか file stream では、明示的にリークさせない限り「うっかり解放し忘れる」ようなコードなんてそうそう書けないですよ

19:21:51
icon

(もちろん特性を把握していればそういうコードを作ることはできるけど。たとえば unique_ptr なら循環参照に突っ込むとか。)

19:23:08
2020-06-18 19:22:53 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

それはそうだけど、(たぶん)パフォーマンスを考えてあえてそうなってて、その上で、

19:25:31
icon

たとえば C++ で std::unique_ptr<uint8_t[]> を使うの、 uint8_t * を new / delete する場合に比べてオーバーヘッドほぼないので (C++ ってそういう言語)、そこで問題があるとすればそれはやっぱりテクノロジ側が解決すべき問題であって「人間に注意させる」よりも「他に良いやり方を模索する」の方向に行きたいですね。
もちろん「締切までにプログラムを完成させないといけない」とか「特定の技術を用いることを強いられている」とかいうクソッタレな現実と向き合うとそうもいかないのだろうけど。それはまた別のレイヤーの話

19:26:43
icon

アクセルとブレーキを踏み間違いやすい自動車に問題があるとして、自動車を今すぐ運転しないといけないという悲しい事情は人間に注意深さを要求する理由にはなるけど自動車のマズさを免罪する理由にはならない

19:29:16
icon

原理主義的と言ってしまえばそうかもしれないけど、実装は後から改善できても設計思想はそう簡単には変えられないので、重視するのは当然後者になる

19:29:28
icon

これ前にも言ったことあったかもしれない

19:31:28
2020-06-18 19:28:01 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

homoo.social/@204504bySE/10436
の通り、いつかはデストラクタが実行されて解放される><
ただしいつ実行されるかはGCのお気持ち次第で、それまでは無駄にリソースを食い続ける><
そして、IDisporsableは、ある時点で明示的にリソースが解放されるべきものに使う仕組みで、つまりそれは明示的にリソースがされるべきもの><(たとえばグラフィック関連のものであればもうこれは描画に使用しないとするタイミング(や一通りの処理が終わったタイミング)で解放されるべきもの><)

Web site image
:homoo_right:​いわし缶​:homoo: (@204504bySE@homoo.social)
19:31:29
icon

19:32:25
2020-05-16 12:43:36 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

「取っ付きやすさは後からどうにかできるが、デザインや哲学は簡単には変えられない (というかそこを弄るなら別物を作り直した方がいい)」という思想なので、何はともあれ一番重視するのは哲学です

19:32:43
icon
Web site image
らりお・ザ・何らかの🈗然㊌ソムリエ (@lo48576@mastodon.cardina1.red)
19:33:01
icon

それ GC まわりの設計の問題では (GC 詳しくないけど、 GC レスなマトモな言語でそういう問題起きないので)

19:35:03
2020-06-18 19:34:50 しきうたの投稿 siki_uta@mstdn.maud.io
icon

このアカウントは、notestockで公開設定になっていません。

19:35:34
2020-06-18 19:34:45 火狐の投稿 hanoa@best-friends.chat
icon

このアカウントは、notestockで公開設定になっていません。

19:37:02
icon
Web site image
らりお・ザ・何らかの🈗然㊌ソムリエ (@lo48576@mastodon.cardina1.red)
Web site image
らりお・ザ・何らかの🈗然㊌ソムリエ (@lo48576@mastodon.cardina1.red)
19:38:57
icon

相関を「比例」とか「反比例」とかいう言説に考える価値なんて全くない

19:40:59
2020-06-18 19:35:36 ぴけぴけ@Skeb1件作業中の投稿 pikepikeid@mstdn.maud.io
icon

Attach image
19:43:53
2020-06-18 19:42:55 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

Nintendo Switch 1台につきTRON系システムが2台出荷されてるんだよなぁ……

19:43:57
2020-06-18 19:43:51 そすうぽよ :poyo: :sabakan:の投稿 prime@mstdn.poyo.me
icon

このアカウントは、notestockで公開設定になっていません。

19:44:05
2020-06-18 19:40:40 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

TRON はアメリカの横槍で衰退した!は結構眉唾話なんだけど,現在は組込みでかなりのシェアを取ってて世界的に一番使われているんだぞ!というのもわりと坂村先生の吹かしでは……となるので結構難しい OS(国内に限定すれば,家電や携帯電話への組込みでかなり使われたという功績はもちろん無視できませんが

19:47:52
2020-06-18 19:44:48 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

でもこのまえの坂村教授へのインタビューでシェア 60% って言ってて,その数字と思われる根拠がどこにもないんだけど強いて言うなら組込み系のフォーラムの TRON ブースで取ったアンケートと同じ数字,とかで,いやそれは……という気持ち monoist.atmarkit.co.jp/mn/arti

19:49:11
2020-06-18 17:16:21 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

ASCII.jp:ハッキングに6億年かかるパスワードは意外にも「ThisIsMyPasswrd」 ascii.jp/elem/000/004/016/4016

セヤナー(アカネチャン)

Web site image
ハッキングに6億年かかるパスワードは意外にも「ThisIsMyPasswrd」
19:49:15
2020-06-18 19:48:58 yumetodoの投稿 yumetodo@qiitadon.com
icon

このアカウントは、notestockで公開設定になっていません。

19:50:27
icon

そもそもいわゆる高度な GC が本質的に非決定性を抱えているものなので、その上に決定性のあるリソース破棄を実装しようというのが「?」という感じ (いや GC を最後の砦にしたい気持ちはわかるけど)

19:51:42
icon

GC が適用される型と適用されない型を分けるとか、 GC されるハンドル型とされないポインタ型を分けるとか、なんか他にやりようあるんじゃないの? と思ってしまう (まあやった結果として駄目な API が完成したのかもしれないけど、それは単に失敗しただけでは)

19:53:08
icon

や、設計も実装も知らんので本当に何も知らん、適当言ってる

でも少なくとも GC が存在することと決定的かつ利用毎の主導指定が不要なリソース自動破棄が両立できないとする理由はすぐには思い付かない
(もちろんそれを許さない GC というのは考えられるけど、その場合はもう言語を変えろという感じですね)

19:54:07
icon

GC が非決定的だからといって、プログラムの記述自体は決定的にできるんだから、リソース破棄だけは原理的に決定的にできないとする理由がないんだよなぁ。
そんな理由があるとすれば言語仕様の問題を最初に疑う

19:55:49
icon

まあわからん、わからんが C# を使いたい気持ちはより薄れた

19:56:12
icon

じゃあ C++ 使いますかとなってもそれはそれで別の面で強烈につらいんだけど……

19:56:24
icon

何をしてもつらいなぁ
現実はクソ

19:58:50
2020-06-18 19:57:01 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

オレンジはそう考えてて、スコープ外れた瞬間にデストラクタが呼ばれる特殊な参照カウンタインタフェース実装して欲しいって前から言ってる><;
ただし、さっき書いたようにそうするとそればっかり使う馬鹿が現れて極端にパフォーマンスが落ちる事態も起きそうだし、たぶんそれを危惧してるのでDelphiにはあったのにC# には受け継がれなかったんだと思う><;

19:59:02
icon

それユーザと設計者の思想が合ってないやつ……
つらいなぁ

20:01:23
icon

考えないアホへの対処なぁ……

20:03:00
icon

たとえば「ガバ言語のユーザがメモリ管理がユーザに委ねられた言語を使うと、参照で済むところ意味もなく文字列を無限に複製して持ちまわる」みたいな話が昔あったけど、だからといって「文字列を複製しづらくします!」は本当に進むべき道なのかはかなり疑問がある

20:03:35
2020-06-18 20:02:02 orangeの投稿 orange_in_space@mstdn.nere9.help
icon

かなり前にツイッターでGC関連の話題が盛り上がった時に、
GCと、スコープが外れた瞬間に呼ばれるデストラクタの両方がある言語って無いの?><
ってちょっと盛り上がったけどそういうの無いらしい><
(遅延実行デストラクタと即時実行デストラクタの二段構えな環境><)

20:03:57
icon

GC レス言語にライブラリとして実装された GC を入れるとかが現実的な気がする

20:05:30
2020-06-18 20:04:37 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

リアルタイム処理には締切に遅れると処理の価値がなくって全てが終わるもの(ハードリアルタイム、ブレーキ制御とか)と価値が減っていくもの(ソフトリアルタイム、音声や動画を処理するシステムはここに含まれると考えてもよい)がある

20:07:02
2020-06-18 20:06:17 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

まあべつにソフトリアルタイムに RTOS を使ってもいいし,使っているものもある

20:08:24
2020-06-18 20:07:03 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

第1回 りあるたいむ ertl.jp/~takayuki/readings/rea

「人生のほとんどはリアルタイム処理なのですが、今日の人生、どの辺が何リアルタイム処理だったのかを考えてみてください」アッアッ

ERTL — Embedded Real-Time Laboratory
20:16:50
2020-06-18 20:12:15 まちカドおるみん御嬢様の投稿 orumin@mstdn.maud.io
icon

ハードリアルタイムとソフトリアルタイムは知っていたけどファームリアルタイムはさっき omsasanori さんの貼った記事で初めて知った(ファームリアルタイムもソフトリアルタイムの範疇だとおもってました……

20:16:57
2020-06-18 20:13:11 ksmakotoの投稿 ksmakoto@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

20:18:34
2020-06-18 20:07:55 いくしー🎨🔞の投稿 ixy@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

20:19:32
icon

ハードリアルタイムな処理がチューリング完全でない言語で証明付きで書かれてたりしたら安心感あるなと思うんですが、そんなことはないんでしょうね
(とはいえ形式証明くらい付いてても不思議ではないが、そっちの業界のことはわからん)

20:22:04
20:26:03
2020-06-18 20:22:35 名飼 証 🔞:loli: :baraag:の投稿 nakaishow@baraag.net
icon

このアカウントは、notestockで公開設定になっていません。

20:27:34
icon

皮肉というか、単に自分たちが何に苦しんでいたかわかってない人が煽りを受けているだけでは? という感想

20:42:56
2020-06-18 20:30:20 :plus2don: あきょぜ(4.3.0a)の投稿 akyoz@plustodon.net
icon

このアカウントは、notestockで公開設定になっていません。

20:46:58
2020-06-09 17:22:42 もちつての投稿 torisasi@pawoo.net
icon

このアカウントは、notestockで公開設定になっていません。

20:48:32
icon

@kb10uy 知ってると思うけど……

Attach image
20:50:11
icon

どちらかというと、 fat の反対の thin ではなく thick の反対の thin で攻めよう、という代替のほうがそれっぽさあると思う
(三次元で厚み的な意味での「薄さ」をですね)

20:50:36
icon

@kb10uy 淡い、なるほど……

20:51:01
icon

うーん

20:52:02
icon

thin color でググってもそれっぽい用法が出てこないので、なんか辞書から読み取りきれてないニュアンスというか文脈が付いてそうな雰囲気あるな

20:52:49
2020-06-18 20:52:16 あじょだよの投稿 azyobuzin@mstdn.maud.io
icon

「アショア」、目エゴサでひっかかりそうになる

20:52:56
icon

イージス・あじょだよ

20:54:12
2020-06-18 18:56:59 jpのつちくれの投稿 blbl_blue@mstdn.jp
icon

このアカウントは、notestockで公開設定になっていません。