アカウント名:
パスワード:
唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語を採用することを気にしないのか......#気にする業界・気にする分野の仕事をしている人は凄く気にする
現状のLinuxが純粋なC言語じゃなくてgccの拡張機能にバリバリ依存した書き方されてんのに何言ってんの??
最近はclangでもビルドできるようになったんだっけ
それってclang側が頑張ってgcc相当の機能を実装したからでは。昔GPL3で新しいgccを利用できなかったFreeBSDの貢献も大きいかもしれません。
Rustを使えば、単純にメモリ安全になるわけじゃない。正しくRustを使えば、その範囲でメモリ安全になる。危険な使い方をしたRustは、Cと変わらない。Rustは言語規格以外に、分野・用途別の共通のコーディング規約が定まらないと、お堅い業界では利用しづらいだろう。Linuxがその辺を自ら定めて利用するようなら、他分野に対し実績として十分な説得材料になりそう。
CLang でコンパイルしたカーネル楽しいかも。ベンチマーク見ると、最適化は gcc と似たり寄ったりみたいだけど。
それってclang側が頑張ってgcc相当の機能を実装したからでは。
そんなこたない [blogspot.com]
#4331028です。知らなかったので勉強になりました。ちょっと古い記事だったので、VLAISをキーワードにその後どうなったのかググってみた。
AndroidがClangだから、Karnelもgccを使わないで済むよう取り組んでいるという記事https://lwn.net/Articles/734071/ [lwn.net]
その結果、Karnel4.20でVLA自体を使用しないよう書き換え完了したという記事https://linux.slashdot.org/story/18/10/29/1935253/the-linux-kernel-is-... [slashdot.org]
4年も前の話なのか。アンテナ低すぎだろ、俺。
gccの拡張機能はかなりの数がclangに取り込まれているのは事実と思うが、僅かな例外があったとして「そんなこたない」と否定できるもんかな?
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
可変長配列はclangで普通に使えますよ。VLAISを誤解されてるのでは。
void hoge(int size){ int array[size];}
↑こーゆーのなら結構前のclangからサポートしてますね。https://godbolt.org/z/5d6Ed3861 [godbolt.org]
C11規格で後退したのは、マイコンとかではコンパイラの実装や利用が厳しいことを考慮したのかな。PIC16Fとか、ただの配列ですら実用的とはいいがたいコードを吐く。
PIC用のコンパイラが標準規格に準じてることを期待する奴はおらんだろ
MSがウンコだからじゃねhttps://godbolt.org/z/K781nPa89 [godbolt.org]
xc8がv2.0からclangベースになって(コンパイラとしては)C99をサポートした時にちょっと期待した。
# いいじゃない、HI-TECH Cベースの頃(v2.0以前)は全く期待できなかったんだから…
20年くらい前に、本当はポインタでmallocしなきゃいけないんだろうなーと思いつつ卒研でそんなプログラムを書いてしまったのだが(研究室のコンパイラはgccだった)対応が広がりつつあるのか
ずれてしまった「そんなプログラムを書いてしまった」は (#4331291) のようなコードです
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
皆さんもソースを読むときに、行と行の間を読むような気持ちで見てほしい -- あるハッカー
気にしないのか? (スコア:1, 興味深い)
唯一の実装が規格~みたいなコミュニティーベースの発展途上のプログラミング言語を採用することを気にしないのか......
#気にする業界・気にする分野の仕事をしている人は凄く気にする
Re: (スコア:0)
現状のLinuxが純粋なC言語じゃなくてgccの拡張機能にバリバリ依存した書き方されてんのに何言ってんの??
Re: (スコア:0)
最近はclangでもビルドできるようになったんだっけ
Re:気にしないのか? (スコア:0)
それってclang側が頑張ってgcc相当の機能を実装したからでは。
昔GPL3で新しいgccを利用できなかったFreeBSDの貢献も大きいかもしれません。
Rustを使えば、単純にメモリ安全になるわけじゃない。
正しくRustを使えば、その範囲でメモリ安全になる。危険な使い方をしたRustは、Cと変わらない。
Rustは言語規格以外に、分野・用途別の共通のコーディング規約が定まらないと、お堅い業界では利用しづらいだろう。
Linuxがその辺を自ら定めて利用するようなら、他分野に対し実績として十分な説得材料になりそう。
Re: (スコア:0)
CLang でコンパイルしたカーネル楽しいかも。
ベンチマーク見ると、最適化は gcc と似たり寄ったりみたいだけど。
Re: (スコア:0)
それってclang側が頑張ってgcc相当の機能を実装したからでは。
そんなこたない [blogspot.com]
Re:気にしないのか? (スコア:1)
#4331028です。知らなかったので勉強になりました。
ちょっと古い記事だったので、VLAISをキーワードにその後どうなったのかググってみた。
AndroidがClangだから、Karnelもgccを使わないで済むよう取り組んでいるという記事
https://lwn.net/Articles/734071/ [lwn.net]
その結果、Karnel4.20でVLA自体を使用しないよう書き換え完了したという記事
https://linux.slashdot.org/story/18/10/29/1935253/the-linux-kernel-is-... [slashdot.org]
4年も前の話なのか。アンテナ低すぎだろ、俺。
Re: (スコア:0)
gccの拡張機能はかなりの数がclangに取り込まれているのは事実と思うが、僅かな例外があったとして「そんなこたない」と否定できるもんかな?
Re: (スコア:0)
C11規格ではオプションに後退してるけど、大きな違いだと思う。
Re: (スコア:0)
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
可変長配列はclangで普通に使えますよ。VLAISを誤解されてるのでは。
Re: (スコア:0)
「そんなこたない」というのはC99規格標準の可変長配列のことですよ。
void hoge(int size)
{
int array[size];
}
↑こーゆーのなら結構前のclangからサポートしてますね。
https://godbolt.org/z/5d6Ed3861 [godbolt.org]
Re: (スコア:0)
C11規格で後退したのは、マイコンとかではコンパイラの実装や利用が厳しいことを考慮したのかな。
PIC16Fとか、ただの配列ですら実用的とはいいがたいコードを吐く。
Re: (スコア:0)
PIC用のコンパイラが標準規格に準じてることを期待する奴はおらんだろ
Re: (スコア:0)
MSがウンコだからじゃね
https://godbolt.org/z/K781nPa89 [godbolt.org]
Re: (スコア:0)
xc8がv2.0からclangベースになって(コンパイラとしては)C99をサポートした時にちょっと期待した。
# いいじゃない、HI-TECH Cベースの頃(v2.0以前)は全く期待できなかったんだから…
Re: (スコア:0)
20年くらい前に、本当はポインタでmallocしなきゃいけないんだろうなーと思いつつ
卒研でそんなプログラムを書いてしまったのだが(研究室のコンパイラはgccだった)
対応が広がりつつあるのか
Re: (スコア:0)
ずれてしまった
「そんなプログラムを書いてしまった」は (#4331291) のようなコードです