22:05:48 @uaa@social.mikutter.hachune.net
icon

かつては何かの意味があったことは確かであり、その意味を汲み取りたいところではあるが、今日においてはその意味は希薄であり、意図を汲み取ったところで無用である可能性が高いと判断されるのであれば、それは切って捨てるのもやむなしということになるのだろう。

まあ、一旦切って問題があることが分かれば、また戻せば良いだけの話…かな?カジュアルにやっても多分咎められないと思いたい。

21:47:12 @uaa@social.mikutter.hachune.net
icon

canuumのソース見てみたけど、自分の理解だとsj3みたいに文字コードの種別に応じ文字境界単位での出力を~といった感じの物は、見当たらない。おそらくprintf.cのflushw_buf()の処理になるんだろうけど、バッファの内容をputchar()でべーっと吐くだけ。

canuumもNEWS-OS対応していて、このコードでも動くというのなら…出力時における文字境界単位でなんかやる意味って本当に無いってことにならんか?(sj3の、オリジナル…コメントがちゃんと存在する状態のコードを見ない限りその意図は分からないってことでもある)。

21:09:53 @uaa@social.mikutter.hachune.net
icon

putchar()で標準出力に吐くにしても、吐いた先で一旦バッファリングしてからwrite()なりなんなりするはずだと思うんだけど…

canuumとかのソースを見る?

21:04:39 @uaa@social.mikutter.hachune.net
icon

あんまり難しく考えなくて良いのかなあ?「2byteで構成する!」なら2byte、「5byteで構成する!」なら5byteとりあえず拾って、その拾ったものが正しいかどうかを検証してグリフにするかエラーを吐くかを決める。変な気遣いはしない方向で。

20:57:55 @uaa@social.mikutter.hachune.net
icon

gist.github.com/RobertAudi/9f1

3.3 Sequences with last continuation byte missing
All bytes of an incomplete sequence should be signalled as a single malformed sequence, i.e., you should see only a single replacement character in each of the next 10 tests. (Characters as in section 2)

って書いてあるけど、Firefox上での表示は"only a single placement character"にならないケースがあるな。

20:46:30 @uaa@social.mikutter.hachune.net
icon

ISO 10646のAnnex Rってのはこれかな? cl.cam.ac.uk/~mgk25/ucs/ISO-10
UCS Transformation Format 8 (UTF-8)

ISO 10646-1:1993/Am.2 – UTF-8 (N1335)
20:40:09 @uaa@social.mikutter.hachune.net
icon

だ ん だ ん 訳 が わ か ら な く な っ て き た ぞ ぅ

20:39:32 @uaa@social.mikutter.hachune.net
icon

sj3のwrite_stdout()、3byte EUCの場合(SS3, 0x8f)…2byte目ないし3byte目がEUCの範囲を外れていてもとりあえずホールドしてる感じですね。これはSJ_read()に関しても同様。

SS3, CR, 'a'みたいなシーケンスになった場合、おそらくSS3を棄却、CRと'a'を表示というのが理想なんだろうけど、って不正なEUCを食らった場合の扱いというのもどうなってるんだろう…いやそもそも不正なEUCとは…

20:34:01 20:34:37 @uaa@social.mikutter.hachune.net
icon

セキュリティを考えると、不正なエンコーディングに対しては頑なに受け付けないという作りにするしかない(MSB側の2bit分を無視するという実装は許されない)気がするけど。

20:33:00 @uaa@social.mikutter.hachune.net
icon

UTF-8、複数バイトからなる場合の2nd octet以降のMSB側"10"が正しくなかった場合ってどう扱うんだろう。
とりあえず1st octetの規定に従ったoctet数だけは読みだして、まるっと棄却するとかそんな感じで良いのかな。

不正なエンコーディングに対する処置をどうするかっていうのがRFC 3629( tex2e.github.io/rfc-translater )を見てもよく分からなくって。

RFC 3629 - UTF-8, a transformation format of ISO 10646 日本語訳
21:48:00 @uaa@social.mikutter.hachune.net
icon

nsdemu -l <serial device> -k <secret key>
というのは確かにスジが悪い(ps axで他のユーザにsecret keyがモロバレ)のは分かってるんだけど…テスト用途なのでとりあえず許せとドキュメントに書いていてもクレーム付けてくるんだろうなと震えてる。

21:23:14 @uaa@social.mikutter.hachune.net
icon

github.com/explore をほけっと眺めるということはしたことが無いのだけど、なんかの折には覗くのも悪かないのかも。

21:21:53 @uaa@social.mikutter.hachune.net
icon

PU2CLR SI4735 Library for ArduinoのREADME.md、よくこんだけの量を書いたもんだと戦慄している… github.com/pu2clr/SI4735/blob/

Web site image
SI4735/README.md at master · pu2clr/SI4735
21:12:28 @uaa@social.mikutter.hachune.net
2023-03-25 21:00:19 camoの投稿 camo@fedibird.com
icon

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

20:45:44 @uaa@social.mikutter.hachune.net
icon

age_map["alice"]=30;が、3行に分かれる(引数を&つけて取るので直接値を入れられない箇所があるが、2行まで減らせませんかこれ)というのはなかなか大変なものがあるけど…連想配列を使えるのは楽かもしれん。

とはいえ、素直に「C++覚えてそっちでやったら?」と言われてしまうのもなんか分からなくはないような…

20:41:37 @uaa@social.mikutter.hachune.net
2023-03-25 19:11:05 C & C++ Weeklyの投稿 c_discussions@mastodon.social
icon

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

20:34:40 @uaa@social.mikutter.hachune.net
icon

しっかし、memset()が最適化で消えるのは恐怖しかないんだけど…そこはちゃんと仕事させてくださいよ…

20:31:53 @uaa@social.mikutter.hachune.net
icon

「イマドキのC」(イマドキのC++とかじゃなく)というのも知っておかないといけないですね…Modern C(Jens Gustedt, 2019, amazon.co.jp/dp/1617295817)とか21st century C(Ben Klemens, 2014, amazon.co.jp/dp/1491903899)辺りは読みたい読みたいと思っていますがなかなか実現には至っておりません…

Amazon配送商品ならModern Cが通常配送無料。更にAmazonならポイント還元本が多数。Gustedt, Jens作品ほか、お急ぎ便対象商品は当日お届けも可能。
Amazon配送商品なら21st Century C: C Tips from the New Schoolが通常配送無料。更にAmazonならポイント還元本が多数。Klemens, Ben作品ほか、お急ぎ便対象商品は当日お届けも可能。
20:28:50 @uaa@social.mikutter.hachune.net
2023-03-25 20:23:22 Masanori Ogino 𓀁の投稿 omasanori@mstdn.maud.io
icon

この手のやつだとmemset_explicit(最適化で消えないmemset。OpenBSDでいうexplicit_bzeroみたいなやつ。ゼロクリア以外もできるけど)がC23に入りますね。

20:15:28 @uaa@social.mikutter.hachune.net
icon

nostr知らなかったらsecp256k1みたいな暗号系のライブラリ使うこともなかったし、いい勉強になった。

20:13:48 @uaa@social.mikutter.hachune.net
icon

malloc()で確保した領域をfree()で開放はするけど、その際にクリアしてくれるfreezero()はOpenBSD-6.2から入ってる。 openbsd.org/62.html

20:00:16 @uaa@social.mikutter.hachune.net
icon

しっかし、メモリ上に機密性の高い情報をあんまし置いときたくない→作業が終わったら消そうというのを突き詰めていくと、(C言語でいう)関数実行時のスタックフレームを関数終了時にクリアして抜けるとかそういう世界になりそう(でもどの程度スタック使ったかとか、安全に消せるのかといった問題があるので無茶なアイデアではある…せいぜい、alloc()などで確保した領域を0-fillするのが限度だよなあ)

19:34:42 @uaa@social.mikutter.hachune.net
2023-03-25 19:31:05 uaaの投稿 1f46356a832a4b2d65c12e9f7c6fd8608a285b1efa896773f4f67c6ee9e33e21@mostr.pub
icon

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