00:02:42
icon

IEEE754自体に依存してると言うより、プラットフォームがNaNをサポートしてないとPython側で吸収しないといけないのがつらいという話っぽい github.com/python/cpython/comm

Web site image
bpo-46656: Remove Py_NO_NAN macro (GH-31160) · python/cpython@1b2611e
00:44:49
icon

構造体をnewしてコンストラクタで初期化するみたいな気持ちは理解するのに結構時間がかかった記憶がある

00:48:29
icon

thisはレシーバが渡される暗黙の変数ですって言えば済むことなのに、2000年頃の教本は(今もかもしれんが)そういう説明がまったくなかった

00:50:24
icon

最近の若者はPythonとかRustとか書いてるから自然にまあそういうもんでしょってなるのかな

01:03:05
icon

たぬきち起きとんのかワレ

01:04:11
icon

ふぇのまーさんにmikutter Discordの管理者権限付与してから寝て

01:06:04
icon

寝込んでたんか お大事にワレ

01:06:14
icon

@toshi_a rootロール付いてるよ

01:57:18
icon

<script>window.alert("てお")</script>

01:58:24
icon

Mastodonのポストってどのレベルでサニタイズされてるんだろ

02:03:27
icon

<font size=1000>Mastodonのポストが投稿時点でサニタイズされてるのか、それとも表示時点なのかいまいち分かってない</font>

02:08:11
icon

Mastodon API叩いてる限りはエンドユーザはsanitizedなHTMLしか見ないと思ってよさそう docs.joinmastodon.org/api/guid

02:13:09
icon

Mastodonから普通にポストすると<br>とか書いても<br>って見えるからまずここでエスケープが走っていそう(つまりMastodonからはHTMLを通常の手段では配信できない)

02:14:11
icon

やっぱり自分でAP実装作ってertona.netに危険HTMLをぶちこまないと……

02:21:35
icon

トゥルーエンド見てないの

02:22:34
icon

とはいえトゥルー覚えてないな……

02:25:02
icon

アオイチャン4mってマジ?

02:30:17
icon

フィリスが立派な錬金術士になってエルトナに帰ってきただけでもうトゥルーエンドだよ

02:30:19
2024-03-18 02:29:31 Posting お尻めうbot meu_bot@otogamer.me
icon

This account is not set to public on notestock.

02:31:43
icon

エルトナ(意味深)ってなんやねん

02:32:56
icon

エルトナは鉱山の村かしばふのサーバの2択しかない

11:13:43
icon

まいにゅーぎあ

Attach image
11:34:43
icon

どこか行きたいけど宛てがない

16:06:14
icon

@choro3 行きたい

16:48:55
icon

労働もカスだよ

17:09:10
icon

そろそろ労働について真面目に考えないといけない

17:10:18
icon

人生もな

17:12:45
icon

週3労働よりも週5で3ヶ月働いて1ヶ月休みみたいなパターンの方がいいのでは?と思ってきた

17:17:55
icon

importしたものをprefixなしで使われるとIDEの支援なしに追うのがかなり困難になるのでやめてほしい

17:23:19
icon

そういう点でGoのimportはかなり偉いんだよな。必ずnamespace付きじゃないと参照できないし、importしただけでコードが走って副作用を及ぼすこともない。Rustも後者が微妙だけどそこそこ良い

17:29:00
icon

Goはgo fmtがカラム揃えを強制してくることといい、コードは書く時間より読まれる時間の方が圧倒的に長いんだから読みやすさに振るのが正義という強い思想を感じる

17:34:44
icon

大抵型はトップレベルに展開されるので、import自体に型推論含めてなんの副作用もない言語の方が珍しいとは思う。JS / TSはnamespace強制なのは素晴らしいのに副作用のせいでimportの順序すら自動で並び替えできないのが……

17:35:26
icon

実際importの順序シャッフルしたら壊れるコードがどれくらいあるんだろうという話ではあるが

18:32:55
icon

Rustで
struct A { i: i32 }

fn main() {
let mut a = A { i: 0 };
let ptr = &mut a as *mut A;

let ai = &a.i;
unsafe {
(*ptr).i = 10;
}

print!("{} {}", a.i, ai);
}
とするとリリースビルドでも10 10が出力されるんだけど、Rustはimmutable borrowを証拠にした参照の最適化はしないと思っていいのかな(ナイーブにはaiがimmutable borrowであることを利用して*aiを0に置き換えるような最適化が起きてもおかしくない気がする)

18:34:46
icon

unsafeがどれくらいunsafeなのか知りたいんだけどそういうことを書いてあるドキュメントが見つからない

18:39:26
icon

unsoundなのはいいとしてその帰結がどうなるのか分からん。unsoundなコードはどう壊れても文句を言えない?

18:41:27
icon

というかコード全体で&mutは1つしか存在してないと思うんだけど

18:44:10
icon

あと&mutを2つ以上生やすだけでおかしくなるならThe bookの例もダメということになりそう doc.rust-lang.org/book/ch19-01

18:47:56
2024-03-18 18:44:23 Posting らりお・ザ・何らかの🈗然㊌ソムリエ lo48576@mastodon.cardina1.red
icon

原則として、 unsafe ブロックは「コンパイラには検査できない書き方をするが、ブロック内でコードが満たすべき性質を破らないことを開発者が保証する」というものなので、 unsafe ブロック内に入れようが駄目なものは駄目

18:50:06
icon

「コードが満たすべき性質」がなんなのかが分からん。split_at_mutはunsafeを使わないと書けないパターンなので、これが安全であるなら「コンパイラが通す型」!=「コードが満たすべき性質」のはずだけど、じゃあ具体的に何を満たしていればよくて何をviolateしちゃいけないのか

18:57:14
icon

このケースだとこれかな

> Moreover, the bytes pointed to by a shared reference, including transitively through other references (both shared and mutable) and Boxes, are immutable; transitivity includes those references stored in fields of compound types.
doc.rust-lang.org/reference/be

Behavior considered undefined - The Rust Reference
19:02:19
icon

split_at_mutの第一引数は&mut [i32]だけどこれでr食われるの?

19:06:41
icon

あーーーーなるほど

19:25:35
icon

@qnighy なるほど一理ある……。時間があったら読んでみます。とはいえ本当にやりたいのはView typesがないことによるエラーの迂回なのでそっちが一段落してからにします

19:39:51
icon

こういうのがコンパイル通らないの本当に困ってるんだけど、Gameをimmutableな部分とmutableな部分に分割して常にバラバラに持ち運ぶしかないのかな……
struct Game {
players: Vec<i32>,
score: i32
}

fn add_score(game: &mut Game, player: i32) {
game.score += player;
}

fn play_turn(game: &mut Game) {
for player in game.players.iter() {
add_score(game, *player)
}
}

19:43:42
icon

関連があるデータの意味でstructに入れた瞬間にmutabilityに関しても運命共同体になるのがとても厳しい

19:45:37
icon

タプルにすらできない強く関連した2つの変数をあちこちに引き回さないといけないの、かなり気持ち悪くない?

19:51:08
icon

皮膚日光浴

19:52:18
icon

東京脱出しな

19:52:38
icon

ECS is 何

19:53:30
icon
Web site image
ECS (Entity Component System)について
19:59:42
icon

ナイーブにやるとComponent poolがさっきのGameになって同種の競合が発生しそうな気がするけど大丈夫なんかな

20:01:45
icon

結局状態更新の時にimmutableに触られるものとmutableに触られるものをComponentで切り分けることにはなるが、Entityを通した間接参照の形でグループ化できるからちょっとはマシくらいか

20:03:49
icon

これって要するにメモリアロケータを作ってるのでは?まあガチのゲーム開発なら必要だけど……

20:29:04
icon

特にゲームとして考えると、インクリメンタルに状態を更新するよりも「現在の状態」をimmutableに固定したままで「次の状態」を別のバッファに書き出すようにしたほうが、処理順の違いで結果が変わるみたいな現象が発生しづらくていいという面があるのでmutableな状態を特に分離して持っておく設計は妥当な気もしてきた

20:36:05
icon

アトリエやったことない人におすすめするなら今はライザ一択なんだよな

20:37:37
icon

ライザ1は良くも悪くも王道RPGの作りなのでかなりとっつきやすいし面白いですよ

20:39:15
icon

ライザは分岐ないよ

20:43:49
icon

フルート攻撃

20:46:08
icon

アニメのクラウディアが弓使いになってたの許してないよ

20:47:58
icon

ライザと冒険に出たい!ってなってから弓の練習し始めておいお前……まさか……ってなった

20:54:33
icon

やっぱりフルートで戦うのはどうあがいても狂人だからな

21:00:52
icon

盗賊を殴り殺すロロナ
銃弾を握り締めて殴るくーちゃん
フルートを投げるクラウディア

21:36:28
icon

生産緑茶とは

21:38:02
icon

クソコラ生産マシンと化したとしぁ

21:39:19
icon

smhnユーザは弾いてなかったっけ

21:47:35
icon

今日なんもできてない

21:53:59
icon

チケットあるんですか

21:55:26
icon

なんか回線が不安定でsshが安定しない

21:57:40
icon

ていうか今ちゃんとmikutterが動く環境が……

22:28:07
icon

@teobot Rustでn要素の0からなるVecを作る方法を教えて