!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語26 TypeScript Swift Go Kotlin Nim
https://mevius.5ch.net/test/read.cgi/tech/1655771266/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
次世代言語27 Nim Zig Pony Carbon Gleam
1デフォルトの名無しさん (ワッチョイ c35f-St8y)
2022/08/05(金) 09:40:50.22ID:/hLfNpmA0177デフォルトの名無しさん (スフッ Sd1f-ETx6)
2023/09/07(木) 10:00:28.15ID:K6fFrmXfd 雨の日にうっかりベンチに座るとパンツがビショビショ濡れ濡れ
178デフォルトの名無しさん (ワッチョイ 3b5f-rlb/)
2023/09/12(火) 20:59:08.32ID:/qNKcCZu0 >>131 続報
Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に
https://www.publickey1.jp/blog/23/pythonmojo.html
Pythonの高速なスーパーセットをうたう新言語「Mojo」、コンパイラなど公開、ローカル環境で利用可能に
https://www.publickey1.jp/blog/23/pythonmojo.html
179デフォルトの名無しさん (ワッチョイ 3f7c-/qTM)
2023/09/21(木) 00:39:19.15ID:hd16Ksmk0 Zigに頑張ってほしい
180デフォルトの名無しさん (ワッチョイ 7f29-sMWx)
2023/09/22(金) 01:57:24.98ID:e0xvgrYz0 Zigはかなり期待してるので頑張って欲しいな
長いこと指摘されてるissueのclose速度が1日平均5件なのに増加速度は1日平均10件で
ずっと次のリリースにたどり着けないよ問題を結局どう解決する方針にしたんだろう
長いこと指摘されてるissueのclose速度が1日平均5件なのに増加速度は1日平均10件で
ずっと次のリリースにたどり着けないよ問題を結局どう解決する方針にしたんだろう
181デフォルトの名無しさん (スッップ Sd5f-/qTM)
2023/09/22(金) 12:28:56.47ID:FCvezg2jd >>180
こんなんでBunはよく1.0にしたな。
こんなんでBunはよく1.0にしたな。
182デフォルトの名無しさん (ワッチョイ 8501-8Mb1)
2023/10/04(水) 15:32:29.96ID:N8iC4Qef0 https://harelang.org/
(海外の)FOSS、ミニマリスト、アンチRust界隈で流行ってる言語 Hare
C言語プログラマのために作られたとのこと
メモリ管理は自前だがいろいろ安全対策がされてるっぽい
Windows, Macは対応しないと宣言
(海外の)FOSS、ミニマリスト、アンチRust界隈で流行ってる言語 Hare
C言語プログラマのために作られたとのこと
メモリ管理は自前だがいろいろ安全対策がされてるっぽい
Windows, Macは対応しないと宣言
183デフォルトの名無しさん (ワッチョイ a37c-X5bY)
2023/10/04(水) 16:37:22.64ID:2V79m8iF0 Cの代替言語オーディン
https://odin-lang.org/
https://odin-lang.org/
184デフォルトの名無しさん (ワッチョイ a37c-X5bY)
2023/10/04(水) 16:42:29.89ID:2V79m8iF0185デフォルトの名無しさん (アウアウウー Sa89-5C2y)
2023/10/05(木) 17:09:32.57ID:WXXGTjkDa Are
186デフォルトの名無しさん (ワッチョイ 937c-cQ99)
2023/10/30(月) 01:15:43.08ID:SHIqNVOV0 ちょっとOdin触ってみた。
Zigより気に入った。
最適化がまだC/C++より弱いからエッジケースではC/C++,Rustにはパフォーマンスかなわないようがた、ぶっちゃけRustよりOdinのほうが書きやすい。
Zigより気に入った。
最適化がまだC/C++より弱いからエッジケースではC/C++,Rustにはパフォーマンスかなわないようがた、ぶっちゃけRustよりOdinのほうが書きやすい。
187デフォルトの名無しさん (ワッチョイ b137-eepm)
2023/11/02(木) 09:20:24.55ID:+8WanLaR0 WebAssemblyのガベージコレクションが正式機能に、最新版のChrome 119で。Firefoxも今月リリースのFirefox 120で正式機能になる見通し
https://www.publickey1.jp/blog/23/webassemblychrome_119firefoxfirefox_120.html
https://www.publickey1.jp/blog/23/webassemblychrome_119firefoxfirefox_120.html
188デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 03:00:21.16ID:60zWiP9n0 zigのcompiletはCのatoi、atofみたいなのを1関数にまとめれるということ?
189デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 03:09:25.53ID:60zWiP9n0 wasmはどうせgcを採用するんだろうなと思ってたがやっぱりか
jdkと変わらん
jdkと変わらん
190デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 03:12:08.32ID:60zWiP9n0 wasmは初期の頃jdkと何が違うの?と言われてた
jdkはバグが多いからとか説明してたが、実際そうでもない
なぜかその界隈の人達が漠然とjavaを嫌ってるだけだな
jdkはバグが多いからとか説明してたが、実際そうでもない
なぜかその界隈の人達が漠然とjavaを嫌ってるだけだな
191188 (ワッチョイ 22f1-rrr/)
2023/11/21(火) 04:46:48.83ID:60zWiP9n0 compiletじゃなくてcomptimeだった
192デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 05:27:43.98ID:60zWiP9n0 zigのジェネリック、やりたいことは分かるんだけど構文がよく分からん
https://ziglang.org/documentation/master/#Generic-Data-Structures
fn List(comptime T: type) type {
return struct {
items: []T,
len: usize,
};
}
// The generic List data structure can be instantiated by passing in a type:
var buffer: [10]i32 = undefined;
var list = List(i32){
.items = &buffer,
.len = 0,
};
List()の返値はList型じゃなくてi32型なの?
でもi32の変数があったときにいつもその構造体への初期化処理みたいなのかけるわけじゃないでしょ。
でもfn Listの宣言によれば返値の型はtype=i32なんでしょ?謎すぎ
https://ziglang.org/documentation/master/#Generic-Data-Structures
fn List(comptime T: type) type {
return struct {
items: []T,
len: usize,
};
}
// The generic List data structure can be instantiated by passing in a type:
var buffer: [10]i32 = undefined;
var list = List(i32){
.items = &buffer,
.len = 0,
};
List()の返値はList型じゃなくてi32型なの?
でもi32の変数があったときにいつもその構造体への初期化処理みたいなのかけるわけじゃないでしょ。
でもfn Listの宣言によれば返値の型はtype=i32なんでしょ?謎すぎ
193デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 05:34:22.13ID:60zWiP9n0 List()の型は匿名のstructだな
でもじゃあこれはなに?っていう
fn List(comptime T: type) type
引数に入力されたtypeの型が返値の型じゃないの?
でもじゃあこれはなに?っていう
fn List(comptime T: type) type
引数に入力されたtypeの型が返値の型じゃないの?
194デフォルトの名無しさん (ワッチョイ cd26-1See)
2023/11/21(火) 10:29:25.70ID:Z3uiTyFT0195デフォルトの名無しさん (ワッチョイ 22f1-rrr/)
2023/11/21(火) 11:43:47.98ID:60zWiP9n0 ありがとう分かった。
typeはzig標準型全体を指すものということか。
任意の標準型を受け取って、任意の標準型を返す総称型関数ということね。
ダックタイピングも分かった。
宣言じゃなくコードの内容から推論してコンパイルエラー出してくということね。
typeはzig標準型全体を指すものということか。
任意の標準型を受け取って、任意の標準型を返す総称型関数ということね。
ダックタイピングも分かった。
宣言じゃなくコードの内容から推論してコンパイルエラー出してくということね。
196デフォルトの名無しさん (ワッチョイ 226b-rrr/)
2023/11/21(火) 14:41:07.08ID:60zWiP9n0 チュートリアル読んでるけどzig良い。
Cの代替としては最有力かな?
世の中はメモリ安全のためにRust推奨なんだろうけど。
本当はそっちに進んじゃいけない、と思ってる。
Cの代替としては最有力かな?
世の中はメモリ安全のためにRust推奨なんだろうけど。
本当はそっちに進んじゃいけない、と思ってる。
197デフォルトの名無しさん (ワッチョイ aedc-f5/H)
2023/11/21(火) 21:16:37.31ID:NcXE8D4H0 Zigのマイルストーン見ると先送りしてきたv0.11.1のバグ180件以上残ったままv0.12.0側のissueばっかり片付けてるな
これはついにマイナーバージョンアップ近づいて来たのかな
これはついにマイナーバージョンアップ近づいて来たのかな
198デフォルトの名無しさん (ワッチョイ 22f8-rrr/)
2023/11/22(水) 01:53:36.06ID:bjqLP0h40 linux kernelがrustのサポートを確定したという記事を読んだ。
だったらrustなのかなあ。googleもandroidをrustで書くらしい。
rustなのか。
だったらrustなのかなあ。googleもandroidをrustで書くらしい。
rustなのか。
199デフォルトの名無しさん (ワッチョイ 22f8-rrr/)
2023/11/22(水) 03:30:03.94ID:bjqLP0h40 俺はzigやってこう・・・。
200デフォルトの名無しさん (ワッチョイ 22f8-rrr/)
2023/11/22(水) 07:56:27.67ID:bjqLP0h40 いや、やっぱりrustかなあ。
将来のベアメタルプログラマーは抽象的な言語概念から逃げられないね。
そうなると、初学者はむしろマネージド言語から入るのかな。
将来のベアメタルプログラマーは抽象的な言語概念から逃げられないね。
そうなると、初学者はむしろマネージド言語から入るのかな。
201デフォルトの名無しさん (ブーイモ MM66-OZuz)
2023/11/22(水) 12:13:14.04ID:Xn3ar1UbM Cの後継としてZigは結構ありだと思うけど、
Cが残ってる分野ってISO標準とか組み込みベンダーサポートとかが必須な分野が多くて
Zigがそこまでたどり着くには10年とかかかりそうだよな…
Cが残ってる分野ってISO標準とか組み込みベンダーサポートとかが必須な分野が多くて
Zigがそこまでたどり着くには10年とかかかりそうだよな…
202デフォルトの名無しさん (スプッッ Sd82-ts/j)
2023/11/22(水) 12:17:19.10ID:o4kbjPDBd Odinはいかが?
203デフォルトの名無しさん (アウアウウー Sa85-UHOz)
2023/11/23(木) 09:55:21.62ID:mHKDjshta >>196
わかります
わかります
204デフォルトの名無しさん (アウアウウー Sa85-UHOz)
2023/11/23(木) 09:55:57.11ID:mHKDjshta >>201
10年待てない人はNimで
10年待てない人はNimで
205デフォルトの名無しさん (ワッチョイ 226d-rrr/)
2023/11/23(木) 10:39:32.37ID:h/UsGTLS0 nimは概要を読む限り全然いいと思えない。
C++をさらに悪化させたような言語じゃないの?
C++をさらに悪化させたような言語じゃないの?
206デフォルトの名無しさん (ワッチョイ 226d-rrr/)
2023/11/23(木) 10:41:14.18ID:h/UsGTLS0 nim使うならC++で良いはずだよ。既に多用されてて信頼性あるし。
207デフォルトの名無しさん (ワッチョイ 226d-rrr/)
2023/11/23(木) 10:53:59.84ID:h/UsGTLS0 odinのアイデアはほぼzigと同じじゃないか?
zigの方が先に出てきて、その直後にodinが出てきたようだ
メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
Cの代替がzigのようなものであるべきという着眼点を最初にもたらしたのはzigじゃないだろうか
他にそういう方向性の言語がzigより先にあったのだろうか
zigの方が先に出てきて、その直後にodinが出てきたようだ
メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
Cの代替がzigのようなものであるべきという着眼点を最初にもたらしたのはzigじゃないだろうか
他にそういう方向性の言語がzigより先にあったのだろうか
208デフォルトの名無しさん (ワッチョイ 226d-rrr/)
2023/11/23(木) 11:21:12.37ID:h/UsGTLS0 zigのwikipedia読んでたらCからの変更点という観点でzigが説明されてる。
Cを出発点としていくつかの改善点を加えた言語というのが重要なんだ。
その中でもメモリ安全とcomptimeによる類似関数をひとまとめにするというアイデアが重要と思う。
Cを出発点としていくつかの改善点を加えた言語というのが重要なんだ。
その中でもメモリ安全とcomptimeによる類似関数をひとまとめにするというアイデアが重要と思う。
209デフォルトの名無しさん (ワッチョイ 226d-rrr/)
2023/11/23(木) 12:21:13.00ID:h/UsGTLS0 fn () err!val
みたいな共用体を返す構文はCのerrnoとかC#のoutとかの代用になるのかな
共用体はenumと連携させてswitchで使えるようだから中身に応じて処理を分けれる
実際使ってみないと分からんが、まあ学習は順調に進むし良い印象がある
みたいな共用体を返す構文はCのerrnoとかC#のoutとかの代用になるのかな
共用体はenumと連携させてswitchで使えるようだから中身に応じて処理を分けれる
実際使ってみないと分からんが、まあ学習は順調に進むし良い印象がある
210デフォルトの名無しさん (ワッチョイ 6e83-aicd)
2023/11/23(木) 12:50:09.22ID:45eqFX8V0211デフォルトの名無しさん (ワッチョイ aeb4-OZuz)
2023/11/23(木) 13:59:38.28ID:/UTIXb+w0 NimはまぁPythonっぽい構文が好きな人にはいいかもねって感じなだけで
わざわざ他言語から乗り換えるような特徴がないんだよね
わざわざ他言語から乗り換えるような特徴がないんだよね
212デフォルトの名無しさん (ワッチョイ 225b-rrr/)
2023/11/23(木) 14:59:02.66ID:h/UsGTLS0 NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし
Cが使われているような領域で使えるものでもない
だからそういった領域では論外
C++と競合するが、置き換えれるほどの何かがない
恐らくC++から置き換えるならRustになる
という認識。Nimの言語仕様がJavaやCと比較して優れてる!とか言ってみても仕方ない。
競争相手になり得ない。
C++かRustと比較して総合的に優れてると言えたら重要なものになるだろうけど。
Cが使われているような領域で使えるものでもない
だからそういった領域では論外
C++と競合するが、置き換えれるほどの何かがない
恐らくC++から置き換えるならRustになる
という認識。Nimの言語仕様がJavaやCと比較して優れてる!とか言ってみても仕方ない。
競争相手になり得ない。
C++かRustと比較して総合的に優れてると言えたら重要なものになるだろうけど。
213デフォルトの名無しさん (ワッチョイ 225b-rrr/)
2023/11/23(木) 15:03:11.78ID:h/UsGTLS0 nimはgcありとなしモードあるけどライブラリちゃんと動くの?
gcありじゃないとほとんどのライブラリが動かないということになるなら、
C++にもRustにも到底比較対象にならない
どの領域に入るつもりなんだという印象
gcありじゃないとほとんどのライブラリが動かないということになるなら、
C++にもRustにも到底比較対象にならない
どの領域に入るつもりなんだという印象
214デフォルトの名無しさん (ワッチョイ 225b-rrr/)
2023/11/23(木) 15:16:17.32ID:h/UsGTLS0 要するに、総合的に優れてるように思えても「あらゆる領域でちょっと負ける言語」は使われない。
戦略は?ということ。
C#やjavaと比較→ネイティブコード作れる!エレガントな文法!→java使ってる人達には全くどうでもいいです
Cと比較→たくさんの抽象的な言語概念!大規模開発に強い!→C使ってる人達には全くどうでもいいです
C++やRustと比較→GCがあって簡単にコーディングできるぞ!→彼らにはGCは不要あるいは邪魔です
戦略は?ということ。
C#やjavaと比較→ネイティブコード作れる!エレガントな文法!→java使ってる人達には全くどうでもいいです
Cと比較→たくさんの抽象的な言語概念!大規模開発に強い!→C使ってる人達には全くどうでもいいです
C++やRustと比較→GCがあって簡単にコーディングできるぞ!→彼らにはGCは不要あるいは邪魔です
215デフォルトの名無しさん (ワッチョイ ae6b-f5/H)
2023/11/23(木) 15:46:50.74ID:o2OM8ETk0 NimのライバルはZigじゃなくてV言語だと思う
ベターCっぽいけどCの置き換えできないしC++にも届かないって立ち位置の点でね
(文法もC系ではなくPython系って側面も込み)
ベターCっぽいけどCの置き換えできないしC++にも届かないって立ち位置の点でね
(文法もC系ではなくPython系って側面も込み)
216デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/23(木) 18:39:43.19ID:AGqDCJM/0 >>207
>odinのアイデアはほぼzigと同じじゃないか?
違うな。
zigはcをそのまま取り込む感じだが、odinはあくまでもodin。
cとの連携もzigみたいにそのままでは無い。
>メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
odinはメモリ安全なんかじゃ全くないぞ。別なもの見てないか?
>後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
政治力っていったいなんのことよ。
イチャモン着けたいだけか?
>Cの代替がzigのようなものであるべきと
「zigのようなものであるべき」って言ったらzigしかないじゃん。
言ってることがメチャクチャ。
>odinのアイデアはほぼzigと同じじゃないか?
違うな。
zigはcをそのまま取り込む感じだが、odinはあくまでもodin。
cとの連携もzigみたいにそのままでは無い。
>メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
odinはメモリ安全なんかじゃ全くないぞ。別なもの見てないか?
>後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
政治力っていったいなんのことよ。
イチャモン着けたいだけか?
>Cの代替がzigのようなものであるべきと
「zigのようなものであるべき」って言ったらzigしかないじゃん。
言ってることがメチャクチャ。
217デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/23(木) 18:51:14.02ID:AGqDCJM/0 >>212
>NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし
JavaとかC#はマルチプラットフォームという。
マルチプラットフォームとクロスプラットフォームの違いは自分で調べてね。
>C++と競合するが、置き換えれるほどの何かがない
GCあるから置き換えは無理だね。
使わないようにも出きるし、その方向に向かってるけど既にあるライブラリがGC前提だったりするし。
nimはトランスレーター系で、出力がcだったりjavascriptへだったりして、そこでリソース消費しちゃってる感あるのがな。
かつてhaxeという言語があったが結局流行らなかった。
>NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし
JavaとかC#はマルチプラットフォームという。
マルチプラットフォームとクロスプラットフォームの違いは自分で調べてね。
>C++と競合するが、置き換えれるほどの何かがない
GCあるから置き換えは無理だね。
使わないようにも出きるし、その方向に向かってるけど既にあるライブラリがGC前提だったりするし。
nimはトランスレーター系で、出力がcだったりjavascriptへだったりして、そこでリソース消費しちゃってる感あるのがな。
かつてhaxeという言語があったが結局流行らなかった。
218デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/23(木) 18:53:19.90ID:AGqDCJM/0 >>208
zigはメモリ安全なんかじゃねーぞ
zigはメモリ安全なんかじゃねーぞ
219デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/23(木) 18:54:51.91ID:AGqDCJM/0 odinについて知りたかったらhacker newsを見てくれ。
220デフォルトの名無しさん (ワッチョイ a111-1See)
2023/11/23(木) 19:18:19.30ID:HQ3SaqO80 >>209
Error Union はペイロードを持てないので、erronoと同じと見て差し支えない。
ニュアンスとしてはgo言語のエラーと値を返すスタイルが近いかな。
go言語と違って、エラーがなければ値が保証される(毎度のエラーチェック不要)のと、エラーハンドリング不要ならtryで呼び出し元に押しつけられる楽さはある。
C#のTry〜メソッドのout引数を戻り値で扱えるが、zigはポインタ渡しもできるのでさらに強力。
Error Union はペイロードを持てないので、erronoと同じと見て差し支えない。
ニュアンスとしてはgo言語のエラーと値を返すスタイルが近いかな。
go言語と違って、エラーがなければ値が保証される(毎度のエラーチェック不要)のと、エラーハンドリング不要ならtryで呼び出し元に押しつけられる楽さはある。
C#のTry〜メソッドのout引数を戻り値で扱えるが、zigはポインタ渡しもできるのでさらに強力。
221デフォルトの名無しさん (ワッチョイ a111-1See)
2023/11/23(木) 19:25:49.77ID:HQ3SaqO80 >>218
deferの使用を癖づけしておけば、おおむね安全だから・・・。
動的確保したu8のスライスを別の変数にも持たせ、
元の変数の破棄によるダングリングポインタで自分の足を撃ち抜くくらいかな?
よく事故るところは。
deferの使用を癖づけしておけば、おおむね安全だから・・・。
動的確保したu8のスライスを別の変数にも持たせ、
元の変数の破棄によるダングリングポインタで自分の足を撃ち抜くくらいかな?
よく事故るところは。
222デフォルトの名無しさん (ワッチョイ a111-1See)
2023/11/23(木) 19:28:51.80ID:HQ3SaqO80 >>217
haxeは構文マクロ書きやすくて好きなだけに悲しい
haxeは構文マクロ書きやすくて好きなだけに悲しい
223デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/23(木) 21:24:37.29ID:AGqDCJM/0224デフォルトの名無しさん (アウアウウー Sa85-UHOz)
2023/11/23(木) 22:52:57.39ID:38VIgpCLa >>212
おまえなんも判ってないな
>Cが使われているような領域で使えるものでもない
使えるだろ
>C++と競合するが、置き換えれるほどの何かがない
NimはC++とは競合しないC++と共存する
>恐らくC++から置き換えるならRustになる
RustにCの置き換えはあっても
RustがC++を置き換えることは無いわ
おまえなんも判ってないな
>Cが使われているような領域で使えるものでもない
使えるだろ
>C++と競合するが、置き換えれるほどの何かがない
NimはC++とは競合しないC++と共存する
>恐らくC++から置き換えるならRustになる
RustにCの置き換えはあっても
RustがC++を置き換えることは無いわ
225デフォルトの名無しさん (アウアウウー Sa85-UHOz)
2023/11/23(木) 22:57:33.95ID:38VIgpCLa226デフォルトの名無しさん (アウアウウー Sa85-UHOz)
2023/11/23(木) 22:58:53.23ID:38VIgpCLa >>214
君は表面的なところしか観れないhusianasann
君は表面的なところしか観れないhusianasann
227デフォルトの名無しさん (ワッチョイ 6e83-aicd)
2023/11/23(木) 23:16:34.09ID:45eqFX8V0 Nim言語はC言語やJavascript言語を出力するのでそれらの言語が動くプラットフォームならほぼ動く。
Raspberry Pi zeroやTermux上でもNimコンパイラが動くし
Goodboy GalaxyっていうNim言語で書かれたGame boy advanceで動くゲームもあるしRaspberry Pi Picoで動くプログラムも作れる。
GC付き言語だとすべてのオブジェクトがヒープに作成されると勘違いする人がいるけどNimでもC++のようにオブジェクトをヒープに確保するかスタックに確保するか選ぶことができる。
NimではGCの代わりにARCっていうメモリ管理方法を選択できてこれはC++のshared_ptrやRustのRcと同じ参照カウンタ方式でヒープを管理する。
なのでARCが使えるかどうかは循環参照があるかないかで決まる。
Nim2.0からはORC(循環参照があっても解放できるようにARCに機能を追加したもの)がデフォルトになっている。
Nimのマクロは式や文のASTを受け取ってそのASTを読んだりASTを生成して返すのでいろんなことができる。
例えばNimの標準機能にあるstrformatモジュールを使えばfmt"x*y={x*y}"のように文字列の中の{}で囲まれた部分に直接式を書くことができる。
fmtマクロはコンパイル時に文字列リテラルを読んで"x*y="という文字列にx*yの結果を文字列化したものを付け足すコードを生成する。
C++やRustで言語に備わった機能だけでfmtマクロのようなものを作ることは無理じゃない?
Raspberry Pi zeroやTermux上でもNimコンパイラが動くし
Goodboy GalaxyっていうNim言語で書かれたGame boy advanceで動くゲームもあるしRaspberry Pi Picoで動くプログラムも作れる。
GC付き言語だとすべてのオブジェクトがヒープに作成されると勘違いする人がいるけどNimでもC++のようにオブジェクトをヒープに確保するかスタックに確保するか選ぶことができる。
NimではGCの代わりにARCっていうメモリ管理方法を選択できてこれはC++のshared_ptrやRustのRcと同じ参照カウンタ方式でヒープを管理する。
なのでARCが使えるかどうかは循環参照があるかないかで決まる。
Nim2.0からはORC(循環参照があっても解放できるようにARCに機能を追加したもの)がデフォルトになっている。
Nimのマクロは式や文のASTを受け取ってそのASTを読んだりASTを生成して返すのでいろんなことができる。
例えばNimの標準機能にあるstrformatモジュールを使えばfmt"x*y={x*y}"のように文字列の中の{}で囲まれた部分に直接式を書くことができる。
fmtマクロはコンパイル時に文字列リテラルを読んで"x*y="という文字列にx*yの結果を文字列化したものを付け足すコードを生成する。
C++やRustで言語に備わった機能だけでfmtマクロのようなものを作ることは無理じゃない?
228デフォルトの名無しさん (ワッチョイ 6ecf-ekUX)
2023/11/24(金) 00:02:43.09ID:cA/HuquY0229デフォルトの名無しさん (ワッチョイ 22fa-rrr/)
2023/11/24(金) 00:24:17.65ID:Wcn967L80 >>218
rustほどではないけどcと比較すればかなりメモリ安全な言語
rustほどではないけどcと比較すればかなりメモリ安全な言語
230デフォルトの名無しさん (ワッチョイ 427c-ts/j)
2023/11/24(金) 00:45:17.10ID:6OrpRj0R0231デフォルトの名無しさん (ワッチョイ 22fa-rrr/)
2023/11/24(金) 00:56:07.29ID:Wcn967L80 C++もGCありの開発可能だからnimはC++と近いのでは?
主にC++が使われてるのはミドルウェア、webブラウザ、ゲームとかだけど
いずれもGCが動かない環境ではない
主にC++が使われてるのはミドルウェア、webブラウザ、ゲームとかだけど
いずれもGCが動かない環境ではない
232デフォルトの名無しさん (ワッチョイ 22fa-rrr/)
2023/11/24(金) 01:04:25.73ID:Wcn967L80 nimがcと競合すると考えるなら、
nimがカーネルやデバドラで使われると思うのか
nimがカーネルやデバドラで使われると思うのか
233デフォルトの名無しさん (ワッチョイ e97e-OZuz)
2023/11/24(金) 08:28:38.02ID:ksIXeJJJ0 >>228
熱心に布教するユーザが目に付くというのがまさにとりたてて特徴がないということの証明になっているかもね
他言語だと多少気にいらなくても〇〇のために使っている、となるがNimはその思想に完全にマッチした人しか残っていないという
熱心に布教するユーザが目に付くというのがまさにとりたてて特徴がないということの証明になっているかもね
他言語だと多少気にいらなくても〇〇のために使っている、となるがNimはその思想に完全にマッチした人しか残っていないという
234デフォルトの名無しさん (ワッチョイ 6e83-aicd)
2023/11/24(金) 13:19:56.18ID:+HdIulh/0 Nimユーザーから見るとRustなどの他の言語はいちいち;とか{}を入力したりそれらの文字で少し見づらくなるがそれを大きく上回るメリットがあるとは思えない。
RustやC++やZigで書いたコードがNimより速くなるわけではない。
NimはGC使ってるから遅いみたいに言う人はいるがヒープメモリを使わないようにするとかヒープメモリをループの外側でのみ確保するようにすればメモリ管理のコストがボトルネックにならない。
どうしてもヒープ確保が必要になる場合でもARCかORCを使えばshared_ptrやRcと同じように参照数が0になったら即解放するようになる。
Rustはメモリ安全だというが普通にNimのコードを書いていてメモリ関係のバグで困ったことは無い。
Win32 APIとかLinuxのシステムコールを呼ぶときはポインタを使うからメモリ安全性に気を付けないといけなくなるがRustでもそういう関数を呼ぶときにはunsafeコードを書かないといけないらしいし。
C/C++はライブラリが豊富にあるがNimからその殆どが使える。
NimはCかC++を出力するからCのマクロとかC++のテンプレートクラス/関数まで呼べる。
C++言語はC++14,17,2xと言語仕様がどんどん複雑になっているから完全に対応は難しいかもしれんが。
RustやC++やZigで書いたコードがNimより速くなるわけではない。
NimはGC使ってるから遅いみたいに言う人はいるがヒープメモリを使わないようにするとかヒープメモリをループの外側でのみ確保するようにすればメモリ管理のコストがボトルネックにならない。
どうしてもヒープ確保が必要になる場合でもARCかORCを使えばshared_ptrやRcと同じように参照数が0になったら即解放するようになる。
Rustはメモリ安全だというが普通にNimのコードを書いていてメモリ関係のバグで困ったことは無い。
Win32 APIとかLinuxのシステムコールを呼ぶときはポインタを使うからメモリ安全性に気を付けないといけなくなるがRustでもそういう関数を呼ぶときにはunsafeコードを書かないといけないらしいし。
C/C++はライブラリが豊富にあるがNimからその殆どが使える。
NimはCかC++を出力するからCのマクロとかC++のテンプレートクラス/関数まで呼べる。
C++言語はC++14,17,2xと言語仕様がどんどん複雑になっているから完全に対応は難しいかもしれんが。
235デフォルトの名無しさん (ワッチョイ 075f-fzX6)
2023/11/27(月) 09:37:28.94ID:BB7NmH0K0 >>234
Rustのいいところはコンパイルが通らないから誰が書いてもある程度同じようなコードが出来上がることだと思う
とても極端な話すればレビューもいらない
めちゃくちゃチーム開発に向いてる
Nimは既存の資産を活かせるかつ自由度が高いから小、中規模向けなのかな
Rustのいいところはコンパイルが通らないから誰が書いてもある程度同じようなコードが出来上がることだと思う
とても極端な話すればレビューもいらない
めちゃくちゃチーム開発に向いてる
Nimは既存の資産を活かせるかつ自由度が高いから小、中規模向けなのかな
236デフォルトの名無しさん (ワッチョイ a737-psIa)
2023/11/27(月) 12:16:24.67ID:0LRMXswf0 >>235
> 誰が書いてもある程度同じようなコードが出来上がる
これは幻想がひどい気がする。コンパイル通らない時にどう解決するか結構個性が出ると思う。
無限に unsafe 指摘されて切れたwebフレームワークのメンテナ居なかったか?
> 誰が書いてもある程度同じようなコードが出来上がる
これは幻想がひどい気がする。コンパイル通らない時にどう解決するか結構個性が出ると思う。
無限に unsafe 指摘されて切れたwebフレームワークのメンテナ居なかったか?
237デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/29(水) 06:07:56.97ID:n75oaT1ga238デフォルトの名無しさん (ワッチョイ a7fd-psIa)
2023/11/29(水) 12:33:39.58ID:fVcl6vAK0 >>237
そこまでレベル低い人の話はしていない。
掘り直したら actix-web だった。
以下のページが日本語で問題まとまってる。
ttps://scrapbox.io/nekketsuuu/actix-web%E4%BA%8B%E4%BB%B6
そこまでレベル低い人の話はしていない。
掘り直したら actix-web だった。
以下のページが日本語で問題まとまってる。
ttps://scrapbox.io/nekketsuuu/actix-web%E4%BA%8B%E4%BB%B6
239デフォルトの名無しさん (ワッチョイ a6ac-fxPS)
2023/12/06(水) 14:35:16.69ID:FgD2yr5e0 Rust2006年、Nim2008年(or 2005年生誕説)、Go2009年にそれぞれオープン化して同期の中でNimの言語コンセプトだけ主要な席を取れなかったのはおかしい。
Nim好きユーザーとしてはここからの巻き返しを超絶妄想してる。
現世代言語の仕様に引けを取ってないし8月に本体2.0.0に上がったし周辺パッケージも育って熱心な布教者まで揃ってるのにそもそもの認知度が低すぎるままなのは不思議でならない。
いまNimで書いてる人たちは何用途で使ってる?まずは特定用途で知名度を上げることに突破口があると思うんだよね結局は。
Nim好きユーザーとしてはここからの巻き返しを超絶妄想してる。
現世代言語の仕様に引けを取ってないし8月に本体2.0.0に上がったし周辺パッケージも育って熱心な布教者まで揃ってるのにそもそもの認知度が低すぎるままなのは不思議でならない。
いまNimで書いてる人たちは何用途で使ってる?まずは特定用途で知名度を上げることに突破口があると思うんだよね結局は。
240デフォルトの名無しさん (ワッチョイ 2a7c-1JZ4)
2023/12/06(水) 15:24:48.70ID:MT5mgeUa0 >>239
個人で始めたか、法人所属の人が始めたか。
pythonはメジャーになるまで30年以上かかってる。
法人の後ろ楯あると早いね。
何かキラーアプリがでることを期待してる。俺はそんなスキル無い。
個人で始めたか、法人所属の人が始めたか。
pythonはメジャーになるまで30年以上かかってる。
法人の後ろ楯あると早いね。
何かキラーアプリがでることを期待してる。俺はそんなスキル無い。
241デフォルトの名無しさん (ブーイモ MM3e-vHfD)
2023/12/06(水) 15:53:12.48ID:KVh/UeYmM >>239
同期だからこそ、潜在ユーザをみんなGoとRustに取られた感はある
企業がついてない分エコシステムとかはどうしても負けるし
あとはC系の人にPython風構文はあまり歓迎されないというのはあるかも
MojoみたくPythonユーザを直接取りに行ったほうが良かったかもね
同期だからこそ、潜在ユーザをみんなGoとRustに取られた感はある
企業がついてない分エコシステムとかはどうしても負けるし
あとはC系の人にPython風構文はあまり歓迎されないというのはあるかも
MojoみたくPythonユーザを直接取りに行ったほうが良かったかもね
242デフォルトの名無しさん (ワッチョイ 2a7c-1JZ4)
2023/12/06(水) 16:40:19.51ID:MT5mgeUa0 >>240
30年以上は言い過ぎ?30年近く。
30年以上は言い過ぎ?30年近く。
243デフォルトの名無しさん (ワッチョイ 66cf-tBUZ)
2023/12/06(水) 18:39:52.78ID:Lg+sIo970 pythonは2000年代初頭にはperlよりメジャーになってただろ。
244デフォルトの名無しさん (ワッチョイ 8ab6-yDrh)
2023/12/08(金) 03:22:50.77ID:OHR+wWxR0 やっぱりrustなんだろうね
OSも徐々にRustになってくっぽい
主要OSが完全に移行するには100年かかるだろうけど
OSも徐々にRustになってくっぽい
主要OSが完全に移行するには100年かかるだろうけど
245デフォルトの名無しさん (ワッチョイ 6683-9d3Q)
2023/12/08(金) 05:55:14.09ID:xBCOoZoU0 LinuxカーネルのコードがRustに置き換わるとコンパイル時間が大幅に増加しないか心配。
Cだけのカーネルでもビルドに一時間くらいかかるのに
Cだけのカーネルでもビルドに一時間くらいかかるのに
246デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 09:48:35.93ID:k3Bpg+TDa コンパイルよりCargoのdb更新に時間掛かってるんだよないっつも
247デフォルトの名無しさん (ワッチョイ 7501-M0la)
2023/12/08(金) 23:03:52.41ID:Pln0qn0V0 >>246
それいくつか前のバージョンで改善されたやつじゃなくて?
それいくつか前のバージョンで改善されたやつじゃなくて?
248デフォルトの名無しさん (ワッチョイ 9734-C3j7)
2023/12/13(水) 08:12:56.25ID:SOLvnyCP0 待望の新言語
WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場、Wasmerが発表
https://www.publickey1.jp/blog/23/webassemblyonyxwasmer.html
WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場、Wasmerが発表
https://www.publickey1.jp/blog/23/webassemblyonyxwasmer.html
249デフォルトの名無しさん (ワッチョイ 57c2-MO48)
2024/02/06(火) 21:17:51.46ID:vknt9k+q0 待望の新言語
Introducing Pkl, a programming language for configuration
https://pkl-lang.org/blog/introducing-pkl.html
Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース
https://gigazine.net/news/20240205-apple-pkl/
Introducing Pkl, a programming language for configuration
https://pkl-lang.org/blog/introducing-pkl.html
Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース
https://gigazine.net/news/20240205-apple-pkl/
250デフォルトの名無しさん (ワッチョイ ffce-KLri)
2024/02/08(木) 14:58:56.60ID:fJ9G9a/R0251デフォルトの名無しさん (ワッチョイ 5903-T9th)
2024/03/29(金) 21:11:42.51ID:F+7of5fq0 Erlangランタイムの静的型付け関数型言語Gleamがバージョン1.0に到達
https://www.infoq.com/jp/news/2024/03/gleam-erlang-virtual-machine-1-0/
https://www.infoq.com/jp/news/2024/03/gleam-erlang-virtual-machine-1-0/
252デフォルトの名無しさん (ワッチョイ adda-VtrB)
2024/03/29(金) 23:02:59.73ID:JKQcuRe50 スレチかもしれないけど、この言語そのものというよりは、作者の目指す未来の言語像が可能性を感じる。
Viscuit
https://www.viscuit.com/
言語そのもののイメージとしてはProlog版Scratchから、さらに子供に分かりにくい機能を外したもの。
感銘を受けた記事を2,3貼っておきます。
理想的なプログラミング言語
https://devroom.viscuit.com/2018/10/06/post-1615/
言語の進化とプログラミング教育
https://devroom.viscuit.com/2017/02/07/%e8%a8%80%e8%aa%9e%e3%81%ae%e9%80%b2%e5%8c%96%e3%81%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2/
プログラミングの大衆化
https://devroom.viscuit.com/2018/02/27/post-1472/
Viscuit
https://www.viscuit.com/
言語そのもののイメージとしてはProlog版Scratchから、さらに子供に分かりにくい機能を外したもの。
感銘を受けた記事を2,3貼っておきます。
理想的なプログラミング言語
https://devroom.viscuit.com/2018/10/06/post-1615/
言語の進化とプログラミング教育
https://devroom.viscuit.com/2017/02/07/%e8%a8%80%e8%aa%9e%e3%81%ae%e9%80%b2%e5%8c%96%e3%81%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2/
プログラミングの大衆化
https://devroom.viscuit.com/2018/02/27/post-1472/
253デフォルトの名無しさん (ワッチョイ 9edd-rfcW)
2024/03/30(土) 02:29:10.46ID:n/Lqlt000 Bun v1.1がついにWindowsネイティブ対応化を引っさげて4月1日リリース予定
日程がエイプリルフールでややザワついてるが敢えてこの日を選んでるっぽい?
Bunを作るZigもv0.12.0が4月2日リリース予定になってるが
こっちは既に数回無告知延期して公式すら話題にしなくなってるのでまたダメかもしれん
日程がエイプリルフールでややザワついてるが敢えてこの日を選んでるっぽい?
Bunを作るZigもv0.12.0が4月2日リリース予定になってるが
こっちは既に数回無告知延期して公式すら話題にしなくなってるのでまたダメかもしれん
254デフォルトの名無しさん (ワッチョイ c24b-7+Gk)
2024/04/10(水) 00:48:05.23ID:PZl/2Qvj0 どんぐりテスト
255デフォルトの名無しさん (ワッチョイ 6760-+hba)
2024/04/28(日) 22:41:22.44ID:UPZ0W4Nj0 hoshu
256デフォルトの名無しさん (ワッチョイ a7f9-y8PE)
2024/04/29(月) 13:16:16.09ID:bo2jVeD+0 で?結局どれがいいんだい
257デフォルトの名無しさん (ワッチョイ 2701-Ufki)
2024/04/29(月) 16:50:51.13ID:12eKztj20 Rustが死んだからZigかCarbonかな
258デフォルトの名無しさん (ワッチョイ c767-NzXl)
2024/04/29(月) 22:47:28.69ID:6wHhtPFS0 死んでるの?
俺の中では同系統のコンセプトに対抗できてる言語が一切見られないので Rust 一強な勢いなんだが。
俺の中では同系統のコンセプトに対抗できてる言語が一切見られないので Rust 一強な勢いなんだが。
259デフォルトの名無しさん (ワッチョイ 2501-b/g4)
2024/06/08(土) 08:52:15.87ID:SAkY8LF70 Zigのリリースサイクル早いね、もう0.13.0がリリースされた
260デフォルトの名無しさん (ワッチョイ a575-eRYk)
2024/07/08(月) 21:11:19.11ID:EaEf11Cm0 待望の新言語
生成AIに疑似コードで指示すると自然言語よりも効率的にプログラムが生成できるというアイデアから生まれた、生成AI用の疑似言語「SudoLang」
https://www.publickey1.jp/blog/24/aiaisudolang.html
生成AIに疑似コードで指示すると自然言語よりも効率的にプログラムが生成できるというアイデアから生まれた、生成AI用の疑似言語「SudoLang」
https://www.publickey1.jp/blog/24/aiaisudolang.html
261デフォルトの名無しさん (ワッチョイ 1b16-tQMZ)
2024/07/09(火) 01:43:38.24ID:SMbKjjog0 本末転倒だろ
262デフォルトの名無しさん (オイコラミネオ MM1b-qpqo)
2024/09/01(日) 15:29:07.17ID:f0nFMo6oM RustがCより速くなるベンチマークは見たことがないです
NimのORCは明示的にオブジェクトプールを使ったプログラミングが必要ですが
ベンチマークがCより2倍以上速くなって、特にハードなリアルタイムシステム向け
のチューニングもできるようになっているようです
https://zenn.dev/dumblepy/articles/af2b2b9f8fd890
NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
NimのORCは明示的にオブジェクトプールを使ったプログラミングが必要ですが
ベンチマークがCより2倍以上速くなって、特にハードなリアルタイムシステム向け
のチューニングもできるようになっているようです
https://zenn.dev/dumblepy/articles/af2b2b9f8fd890
NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
263デフォルトの名無しさん (ワッチョイ eaad-voeu)
2024/09/08(日) 01:45:12.42ID:Hh5CAE6t0 >>262
nimは一旦cに変換してコンパイルするので、cより早くなる事はないです。
ベンチマークで早くなっているのは、メモリプールを使っているからです。
(個別にヒープメモリを確保するのではなく、大きなブロックで一度に確保して
自分で割り当てを管理しているから)
私もcでメモリプールを実装した事がありますが、ヒープのメモリ確保のコスト
は以外と大きくて、一括で確保するのはパフォーマンスの面で効果が大きいです。
またこのメモリプールの部分は自前でメモリ管理しているため、ORCとは関係が
ないです。(参照リンク元の記事の意図は、ORCと手動管理が混在できる事を
利点としているかと思います)
Rustは詳しくないのですが、おそらくこのレベルの実装は可能だと思うので、
同じように実装すれば同程度の速度向上になるかと思います。
(ただし一括メモリ確保->個別データに強制castが必要で安全性は落ちる)
参照リンク元の記事は、メモリプールのような低水準のコードでもNimは高い
可読性で書く事ができると言いたいのでは。(手動確保したメモリをdestroy定義
で自動解放できる所とか)
nimは一旦cに変換してコンパイルするので、cより早くなる事はないです。
ベンチマークで早くなっているのは、メモリプールを使っているからです。
(個別にヒープメモリを確保するのではなく、大きなブロックで一度に確保して
自分で割り当てを管理しているから)
私もcでメモリプールを実装した事がありますが、ヒープのメモリ確保のコスト
は以外と大きくて、一括で確保するのはパフォーマンスの面で効果が大きいです。
またこのメモリプールの部分は自前でメモリ管理しているため、ORCとは関係が
ないです。(参照リンク元の記事の意図は、ORCと手動管理が混在できる事を
利点としているかと思います)
Rustは詳しくないのですが、おそらくこのレベルの実装は可能だと思うので、
同じように実装すれば同程度の速度向上になるかと思います。
(ただし一括メモリ確保->個別データに強制castが必要で安全性は落ちる)
参照リンク元の記事は、メモリプールのような低水準のコードでもNimは高い
可読性で書く事ができると言いたいのでは。(手動確保したメモリをdestroy定義
で自動解放できる所とか)
264デフォルトの名無しさん (ワッチョイ f9df-BHET)
2024/09/08(日) 07:43:41.27ID:vegiTRtO0 >>262
>ベンチマークがCより2倍以上速くなって
という記述は見当たらないけど
> NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
> Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
「メモリプールが速い」は本当だろう
「Cより速い」は、そもそもそんなことを書いてないのでダウト
Rustは分からんけどGCが無いぶんNimよりは有利なのでは
>ベンチマークがCより2倍以上速くなって
という記述は見当たらないけど
> NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
> Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
「メモリプールが速い」は本当だろう
「Cより速い」は、そもそもそんなことを書いてないのでダウト
Rustは分からんけどGCが無いぶんNimよりは有利なのでは
265デフォルトの名無しさん (アウアウエー Sadf-D2eP)
2024/10/02(水) 13:03:50.53ID:XbzwGALZa RustがNimより速い訳がない
266デフォルトの名無しさん (ワッチョイ ffad-4whB)
2024/10/03(木) 12:29:21.43ID:gQlcDFcc0 nim 2.2.0 リリース
久しぶりに速度をはかるとかなり高速化されているようだ。
単純なフィボナッチ計算45桁で実測
-d:releaseコンパイルで約26%, -d:dangerで約33%高速化している。
(実際の高速化はこの一つ前のバージョン2.0.10でされている)
久しぶりに速度をはかるとかなり高速化されているようだ。
単純なフィボナッチ計算45桁で実測
-d:releaseコンパイルで約26%, -d:dangerで約33%高速化している。
(実際の高速化はこの一つ前のバージョン2.0.10でされている)
267デフォルトの名無しさん (ワッチョイ 6f9f-xlWa)
2024/10/03(木) 13:32:37.43ID:/N1KY/IS0 実用コードでそこまでの差はないだろうけど
チェックの省略やTCOが上手になったのかな
Cコードで差分とってみてほしい
チェックの省略やTCOが上手になったのかな
Cコードで差分とってみてほしい
268デフォルトの名無しさん (ワッチョイ ffad-4whB)
2024/10/05(土) 02:05:54.37ID:dycfQkyl0 266です。
nimから出力されたCコードの差分を取った所、違っていた箇所は以下の2点でした。
@メイン処理に入る前のnim側の初期化処理(関数名が変わっている)
Aフィボナッチ関数内のresult変数の0初期化
※gccのコンパイルオプションも全く同じ
特に高速化に繋がる変更はなく、なぜ早くなるのか不明でしたが、色々と試して
上記Aが原因と分かりました。
nimのresult変数の初期化が入る事で、gcc側のコンパイル最適化で高速化
しているようです。
試しにnim2.0.8でresult変数を0初期化した所、nim2.2.0と同じ処理速度
が出る事が確認できました。
(フィボ関数内の先頭でresult変数を0初期化し、以降の算出値をresult変数に
格納するように変更した)
nimから出力されたCコードの差分を取った所、違っていた箇所は以下の2点でした。
@メイン処理に入る前のnim側の初期化処理(関数名が変わっている)
Aフィボナッチ関数内のresult変数の0初期化
※gccのコンパイルオプションも全く同じ
特に高速化に繋がる変更はなく、なぜ早くなるのか不明でしたが、色々と試して
上記Aが原因と分かりました。
nimのresult変数の初期化が入る事で、gcc側のコンパイル最適化で高速化
しているようです。
試しにnim2.0.8でresult変数を0初期化した所、nim2.2.0と同じ処理速度
が出る事が確認できました。
(フィボ関数内の先頭でresult変数を0初期化し、以降の算出値をresult変数に
格納するように変更した)
269デフォルトの名無しさん (ワッチョイ 231f-olmx)
2024/10/05(土) 14:35:02.61ID:tOSXTi2h0 >>266
Nimの場合はバックエンドに使うCコンパイラの最適化能力も実行速度に影響します。Nimのバージョン間の実行速度を比較するときにCコンパイラのバージョンを同じにしていますか?
面倒でなければCコンパイラの出力するアセンブリコードを読むと何故result変数を0初期化することが処理速度に影響するかわかると思います。
--passC:"-S"というコンパイラオプションをNimに渡すとnimcacheディレクトリにアセンブリコードが出力されます。
Nimの場合はバックエンドに使うCコンパイラの最適化能力も実行速度に影響します。Nimのバージョン間の実行速度を比較するときにCコンパイラのバージョンを同じにしていますか?
面倒でなければCコンパイラの出力するアセンブリコードを読むと何故result変数を0初期化することが処理速度に影響するかわかると思います。
--passC:"-S"というコンパイラオプションをNimに渡すとnimcacheディレクトリにアセンブリコードが出力されます。
270デフォルトの名無しさん (ワッチョイ caad-6k2q)
2024/10/06(日) 13:25:29.22ID:yuNPVtUj0 >Nimの場合はバックエンドに使うCコンパイラの最適化能力も実行速度に影響します。Nimのバージョン間の実行速度を比較するときにCコンパイラのバージョンを同じにしていますか?
当然同じ環境です。choosenimでバージョン切り替えて確認してます。
私の疑問点は解消しましたし、gcc側の最適化内容まで追うつもりはないので、私の方の検証はこれで終了とします。
当然同じ環境です。choosenimでバージョン切り替えて確認してます。
私の疑問点は解消しましたし、gcc側の最適化内容まで追うつもりはないので、私の方の検証はこれで終了とします。
271デフォルトの名無しさん (ワッチョイ 3901-c8YC)
2024/10/26(土) 14:10:58.86ID:lE9emaTH0 Zig言語で開発したターミナルエミュレータだってさ
ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ
2024年10月25日
https://www.publickey1.jp/blog/24/ghostty_1012.html
ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ
2024年10月25日
https://www.publickey1.jp/blog/24/ghostty_1012.html
272デフォルトの名無しさん (スプープ Sdbf-hCSs)
2024/11/29(金) 13:35:59.12ID:cbzvCkJwd Crystalとかわりと新しめな言語っぽいけど次世代言語としてはあんま価値はない感じ?
273デフォルトの名無しさん (ワッチョイ 9f1c-ksDR)
2024/11/29(金) 14:06:07.15ID:kgssLEYJ0 対立煽りに荒らし尽くされて過疎ってるだけだから気にせんと何でも書いてってや
274デフォルトの名無しさん (ワッチョイ 7702-cdGy)
2024/11/29(金) 18:48:03.79ID:KH+D4ATv0 やはり、実際に採用されたプロダクトが出てくる頻度で見ると、Zigが頭一つ抜けてるな
275デフォルトの名無しさん (ワッチョイ 6208-Dngz)
2024/12/03(火) 00:07:23.29ID:SdCS4Rrb0 zigをCコンパイラもどきとして扱うのはよく見るけどzig言語の採用例ってあんまり多くなくない
276デフォルトの名無しさん (ワッチョイ 96b3-jW52)
2024/12/03(火) 06:50:16.97ID:hGt3IOpB0 時雨堂もZig撤退しちゃったしなぁ
277デフォルトの名無しさん (ワッチョイ 4502-WFUB)
2024/12/03(火) 07:04:26.37ID:JOdYPQk60レスを投稿する
ニュース
- 機動戦士ガンダム最新作『GQuuuuuuX(ジークアクス)』乃木坂46ネタで炎上 監督の鶴巻和哉氏は乃木坂ファン ★6 [Anonymous★]
- 自民 森山幹事長 消費税扱い“ポピュリズム政治は国がもたず” ★2 [少考さん★]
- 反撃の中居正広、一世一代の大勝負へ 元フジ女性アナとは「合意の上での性行為だった」と認識 ★18 [Ailuropoda melanoleuca★]
- 機動戦士ガンダム最新作『GQuuuuuuX(ジークアクス)』乃木坂46ネタで炎上 監督の鶴巻和哉氏は乃木坂ファン ★7 [Anonymous★]
- 【MLB】佐々木朗希 痛みの自己申告をしない態度にMLB元球団社長が苦言 「なんで真実を明かさないのか」 [冬月記者★]
- 「それでも、お米は高いと感じますか?」JA広告に批判殺到 コメ価格18週ぶり下落も、わずか19円…備蓄米の流通システムに潜む課題 ★3 [ぐれ★]
- 小泉進次郎「消費税減税はシステム改修などに時間がかかる。低所得者に現金給付するべきだ」 [256556981]
- ママの脱ぎたてピタピタタイツでオチンコシコシコしたいよぉぉぉ!!!👶💦🏡
- 【ヒグマ速報】高速道路にクマ侵入 「フェンスを乗り越えた」と通報_ その後も“空を見上げて居座る”〈北海道・八雲町〉 [419054184]
- 【実況】博衣こよりのえちえちネタバレが激しすぎるRPG11🧪
- 【石破朗報】📖最新モデルのKindle Paperwhite(第12世代)- 2024年発売、ガチのマジでサクサク動作。お前らの想像の5倍サクサク [803137891]
- (´・ω・`)