探検
nim
2018/03/01(木) 18:32:18.16ID:vh/yy2VS
75デフォルトの名無しさん
2019/06/24(月) 11:40:11.26ID:eHWTfFeZ2019/06/24(月) 15:58:18.33ID:4pk2usGN
>>59
NimのGCについてはここに情報がある。
メモリ確保時にいらなくなったメモリを走査して解放しているらしい。
https://nim-lang.org/docs/gc.html
NimでGCを使わずにメモリ管理する話もある。
https://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition
>>71
Nimで実装されたTensorflowに相当するらしいlibrary
https://github.com/mratsim/Arraymancer
NimのGCについてはここに情報がある。
メモリ確保時にいらなくなったメモリを走査して解放しているらしい。
https://nim-lang.org/docs/gc.html
NimでGCを使わずにメモリ管理する話もある。
https://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition
>>71
Nimで実装されたTensorflowに相当するらしいlibrary
https://github.com/mratsim/Arraymancer
2019/08/11(日) 11:51:35.55ID:coNgBae3
2次元配列って、
var a: array[10,array[10,int]] とか書くしかないの?
var a: array[10,array[10,int]] とか書くしかないの?
78デフォルトの名無しさん
2019/09/24(火) 21:02:48.66ID:WLUvX9Jg nim1.0でた〜〜
2019/09/25(水) 05:43:15.78ID:rQhNlpv9
Version 1.0 released
23 September 2019 The Nim Team
https://nim-lang.org/blog/2019/09/23/version-100-released.html
Nim Programming Language Hits Stable Milestone With v1.0 Release
https://www.phoronix.com/scan.php?page=news_item&px=Nim-1.0-Programming-Language
23 September 2019 The Nim Team
https://nim-lang.org/blog/2019/09/23/version-100-released.html
Nim Programming Language Hits Stable Milestone With v1.0 Release
https://www.phoronix.com/scan.php?page=news_item&px=Nim-1.0-Programming-Language
80デフォルトの名無しさん
2019/09/25(水) 06:16:02.11ID:vl5hNqVG ついでにwandboxのnim
ttps://wandbox.org/permlink/npG9hbKwZyKQTXgI?source=post_page-----5d0f58d21e7e----------------------
ttps://wandbox.org/permlink/npG9hbKwZyKQTXgI?source=post_page-----5d0f58d21e7e----------------------
81デフォルトの名無しさん
2019/09/25(水) 10:58:52.25ID:U8qLrE8v GJ
2019/09/26(木) 04:03:18.19ID:9xzqPVF9
1.0おめでとう!
ちなみに
echo NimVersion
echo(NimVersion)
NimVersion.echo
は同じ意味のコードだよ。Uniform Function Call Syntaxってやつだ
ちなみに
echo NimVersion
echo(NimVersion)
NimVersion.echo
は同じ意味のコードだよ。Uniform Function Call Syntaxってやつだ
83デフォルトの名無しさん
2019/10/27(日) 16:17:57.05ID:IkTaChA0 windows 10
Nim 1.0.2 入れてみた
tdmgcc は前から使ってて gcc は既に path 通してあったので
nim 側はファイル展開しただけで何もしなくても良かった
(nim.cfg の書き換え(書き足し)も不要だった)
path 通さなくても
C:\nim\bin\nim c hogehoge
で動いた
Nim 1.0.2 入れてみた
tdmgcc は前から使ってて gcc は既に path 通してあったので
nim 側はファイル展開しただけで何もしなくても良かった
(nim.cfg の書き換え(書き足し)も不要だった)
path 通さなくても
C:\nim\bin\nim c hogehoge
で動いた
84デフォルトの名無しさん
2019/10/27(日) 16:18:39.88ID:IkTaChA0 あと
日本語の参考書籍ってなんか出てる?
Nim in Action とかはどうだった?
日本語の参考書籍ってなんか出てる?
Nim in Action とかはどうだった?
2019/10/30(水) 20:48:12.27ID:obI8HGMc
>>83
最近のは勝手に gcc 入れてくれるよ。
最近のは勝手に gcc 入れてくれるよ。
86デフォルトの名無しさん
2019/11/06(水) 15:17:56.57ID:o3tEvZiY HANDLEもこっそりtypedefに_PTR変えたんだっけ
87デフォルトの名無しさん
2019/11/06(水) 15:20:05.05ID:o3tEvZiY 誤爆った
88デフォルトの名無しさん
2019/11/09(土) 00:06:35.30ID:LGMQokS+2019/11/09(土) 03:28:50.22ID:fORTWFTH
https://wandbox.org/
こちらでもNim使えますよ。
こちらでもNim使えますよ。
2019/11/10(日) 11:17:11.92ID:ddnKE8WS
>>85
distフォルダにmingwの7z玉入れておけば、オフラインでのインストールもできるね。
distフォルダにmingwの7z玉入れておけば、オフラインでのインストールもできるね。
2019/11/10(日) 11:25:43.54ID:ddnKE8WS
>>84
日本語の書籍はないが、原著のドキュメントは割とわかりやすい。docs/tut1.htmlから読み始めるといいかもしれない。
NIAは評判が良いらしいのと、製本版を買うと電子書籍版が無料で付いてくるらしい。
国内でのNimの翻訳は有志が約二名ほど作業しているが、まだ始まったばかり。時間かかりそうだね。
日本語の書籍はないが、原著のドキュメントは割とわかりやすい。docs/tut1.htmlから読み始めるといいかもしれない。
NIAは評判が良いらしいのと、製本版を買うと電子書籍版が無料で付いてくるらしい。
国内でのNimの翻訳は有志が約二名ほど作業しているが、まだ始まったばかり。時間かかりそうだね。
92デフォルトの名無しさん
2019/11/18(月) 09:38:29.23ID:ahZzeXy3 DLLのCの関数を呼ぶ方法はいくつかあるようですが
なぜいくつもあるのでしょうか?
どれが一番効率が良いのかとか新しいのかとか判りにくい
なぜいくつもあるのでしょうか?
どれが一番効率が良いのかとか新しいのかとか判りにくい
2019/11/18(月) 15:24:43.91ID:g/bdYEbz
単純にdll内の関数を呼びたいならdynlibプラグマを使うのが一番楽。
少し低レベルな機能が必要ならdynlibモジュウルにあるプロシイジャアを使えばいいんじゃなかろうか
少し低レベルな機能が必要ならdynlibモジュウルにあるプロシイジャアを使えばいいんじゃなかろうか
94デフォルトの名無しさん
2019/11/18(月) 17:09:32.08ID:wQWkNxVm 成る程。
2019/12/10(火) 23:17:13.67ID:DeryhXpR
nimに対応したソースコード可視化ツールってある?
96デフォルトの名無しさん
2019/12/12(木) 17:09:11.38ID:Lo+C9eAO nimってあまりかっこよくないね
2019/12/13(金) 23:01:47.25ID:sYt6sihU
Cにコンパイルしてからコード解析ツールに。
98デフォルトの名無しさん
2020/03/25(水) 04:10:40.05ID:k6zngd1F nimコードはトランスパイルする前ならクロスプラットフォームなんだろうか?
99デフォルトの名無しさん
2020/03/27(金) 15:59:22.92ID:6mKroLAz こんないい言語なのに結局欠点はCに依存してる点
100デフォルトの名無しさん
2020/03/27(金) 16:10:13.08ID:9RtDMjhb あんまり本出ないね
むしろチャンスか
むしろチャンスか
101デフォルトの名無しさん
2020/03/27(金) 22:55:09.53ID:2CmTFgv1 あの糞マクロ以外大して面白みのない言語だしなぁ
102デフォルトの名無しさん
2020/04/07(火) 05:01:02.90ID:FPXvnSDp 逆にマクロの完成度高い言語ってなに?
103デフォルトの名無しさん
2020/04/07(火) 07:46:31.57ID:CJzGmfMl common LISP
104デフォルトの名無しさん
2020/04/07(火) 14:00:10.17ID:izX7gbjy Schemeは?
105デフォルトの名無しさん
2020/04/07(火) 19:47:26.61ID:fJ0U2d01 nimのマクロは完成度高いと思う。でも完成度高いマクロという存在自体が糞。
106デフォルトの名無しさん
2020/04/08(水) 12:06:55.28ID:lWfV0IAd MACRO-80
107デフォルトの名無しさん
2020/04/10(金) 23:13:42.18ID:mN42vwgW108デフォルトの名無しさん
2020/04/10(金) 23:14:33.21ID:mN42vwgW >>101>>105が同じってことだろ
common lispなんてはるかに糞になるし
common lispなんてはるかに糞になるし
109デフォルトの名無しさん
2020/04/10(金) 23:15:34.44ID:mN42vwgW マクロならrustのが定評あると思うが
110デフォルトの名無しさん
2020/09/19(土) 22:27:13.04ID:9NR8PjVh 小数の配列作りたいんだけどやり方教えてください。
[0.0, 0.1, .. 0.9, 1.0] みたいな。
Python なら hoge = [i/10 for i in range(11)] かな。気持ち悪いけど。
[0.0, 0.1, .. 0.9, 1.0] みたいな。
Python なら hoge = [i/10 for i in range(11)] かな。気持ち悪いけど。
111デフォルトの名無しさん
2020/09/22(火) 12:29:56.17ID:w8JrpHTT lc[i*0.1 | i<-0..10 ]
112デフォルトの名無しさん
2021/01/10(日) 21:59:51.09ID:HIznKotv >>69
var name = readLine stdin
var name = stdin.readLine
で完結してるよ、型推論で>>72にも言った通り型を何回も書く意味がない。付け加えれば()カッコも
要らない。第一引数クロージャーのラムダ式で言えばカッコが必要ないのに書く意味が無い。そして
varとletとは不変性だが、rustやVの様にたかがGCを搭載したく無いだけで、どこでもmut mutして
プログラマに負担を強いるより良い(あくまで個人の感想です)
さらに、procとfuncも、片方が純関数なのはキーワードとして明示できる統一性としてありだね。
まあpragmaが多すぎる気もするけど、if likely(true)/unlikely(false)の様にCPUキャッシュ分岐予測に
直接関与出来る高級言語としては、他に類を見ない。GCが嫌ならOFFに出来るし、そして重い
Stop the Worldが嫌ならそれをしないGCに変えることが出来る、言語としては機能が多くて
Goの様に究極なシンプル(なのに統一性が微妙)じゃ無いけど、こりゃ良いわ
var name = stdin.read LineEnum
var name = readLine stdin
var name = stdin.readLine
で完結してるよ、型推論で>>72にも言った通り型を何回も書く意味がない。付け加えれば()カッコも
要らない。第一引数クロージャーのラムダ式で言えばカッコが必要ないのに書く意味が無い。そして
varとletとは不変性だが、rustやVの様にたかがGCを搭載したく無いだけで、どこでもmut mutして
プログラマに負担を強いるより良い(あくまで個人の感想です)
さらに、procとfuncも、片方が純関数なのはキーワードとして明示できる統一性としてありだね。
まあpragmaが多すぎる気もするけど、if likely(true)/unlikely(false)の様にCPUキャッシュ分岐予測に
直接関与出来る高級言語としては、他に類を見ない。GCが嫌ならOFFに出来るし、そして重い
Stop the Worldが嫌ならそれをしないGCに変えることが出来る、言語としては機能が多くて
Goの様に究極なシンプル(なのに統一性が微妙)じゃ無いけど、こりゃ良いわ
var name = stdin.read LineEnum
113デフォルトの名無しさん
2021/01/10(日) 22:14:35.92ID:HIznKotv 付け加えるとHaskellみたいなproc() = の宣言が微妙キモいけどfunc(): T =があるから、まあ妥当だね
rubyの様なreturnを書かないのは良い。result=xは便利だけど微妙....でそこまでやるならOptionと
Future、そして例外を統一して欲しかったな。
普通にtry: except: finally:があるのも点数が高い。Araqが言う様に例外と(Label)goto based exceptは
ほとんど同じ何だから、今どきの言語が例外が無いのはおかしい。まあ他を悪く言う気はないけど
Goの様に意味合い的に同じでfinallyに対応するdeferがあるのも良いよね
rubyの様なreturnを書かないのは良い。result=xは便利だけど微妙....でそこまでやるならOptionと
Future、そして例外を統一して欲しかったな。
普通にtry: except: finally:があるのも点数が高い。Araqが言う様に例外と(Label)goto based exceptは
ほとんど同じ何だから、今どきの言語が例外が無いのはおかしい。まあ他を悪く言う気はないけど
Goの様に意味合い的に同じでfinallyに対応するdeferがあるのも良いよね
114デフォルトの名無しさん
2021/01/12(火) 15:33:30.76ID:LUlB/OIG 超時空ロングパス
115デフォルトの名無しさん
2021/01/12(火) 15:57:17.72ID:kyPiY518 この言語がJsと比較で優れてる点ってあるの?
116デフォルトの名無しさん
2021/01/13(水) 08:29:44.80ID:oKh8381v JavaScript?であれば、JavaScriptはECMAScriptのバージョンとともに型無しのダックタイプから
クラス定義で見られるように型を導入して大規模コードを書く際に静的な安全性を求めてきた、
言語的な特徴でもあった動的なメソッド上書きやapply/callは悪とみなされつつ、改良が進む。
TypeScriptもその特徴であろう、altJSあるいはJSX派生と呼ばれる一種の方言が多量に誕生した
一方でJavaScriptの遅さや1言語依存からwasmが考え出されて多くのコンパイラでwasm開発が
できるようになった。Nimも例に漏れずJSバックエンド及びwasmコンパイルが可能である。
Rustもwasm開発はそうだがJSバックエンドは無い、Goもwasmは出来るがサイズが大きい
NimはGoに比べても型チェックが厳しい、Rustはそれに借用いわゆるボローチェックがそれに
加わるRustもそうだが型安全性はばつぐんだ
クラス定義で見られるように型を導入して大規模コードを書く際に静的な安全性を求めてきた、
言語的な特徴でもあった動的なメソッド上書きやapply/callは悪とみなされつつ、改良が進む。
TypeScriptもその特徴であろう、altJSあるいはJSX派生と呼ばれる一種の方言が多量に誕生した
一方でJavaScriptの遅さや1言語依存からwasmが考え出されて多くのコンパイラでwasm開発が
できるようになった。Nimも例に漏れずJSバックエンド及びwasmコンパイルが可能である。
Rustもwasm開発はそうだがJSバックエンドは無い、Goもwasmは出来るがサイズが大きい
NimはGoに比べても型チェックが厳しい、Rustはそれに借用いわゆるボローチェックがそれに
加わるRustもそうだが型安全性はばつぐんだ
117デフォルトの名無しさん
2021/01/14(木) 18:15:15.39ID:ZgCcmsal jsって割と底辺だと思うから
Nimはそれより上だろ
Nimはそれより上だろ
118デフォルトの名無しさん
2021/02/25(木) 19:45:58.25ID:twDFYCAL 1.4.4 age
119デフォルトの名無しさん
2021/04/17(土) 20:22:19.25ID:f1G9K9An 1.4.6 age
120デフォルトの名無しさん
2021/04/30(金) 20:42:36.52ID:+hB3gYz3 Windows defenderでウイルス判定される
121デフォルトの名無しさん
2021/05/01(土) 12:24:15.54ID:afQILYPs それはどうしようもない
https://forum.nim-lang.org/t/7830
https://forum.nim-lang.org/t/7830
122デフォルトの名無しさん
2021/05/10(月) 13:57:34.01ID:FH4+0Y9S 頼むからもう少し流行ってください。Dropトレイト、Rcトレイトと戯れてあいつのコードを直したくない
123デフォルトの名無しさん
2021/05/10(月) 15:07:45.08ID:lCZGOQhN 明日に向かって吠えろ
124デフォルトの名無しさん
2021/05/13(木) 14:29:40.54ID:pHijDXLB Software Design に記事持ち込め
125デフォルトの名無しさん
2021/05/15(土) 12:35:34.04ID:eYtIld1h126デフォルトの名無しさん
2021/05/19(水) 07:49:19.67ID:mvJC2+U+ 2015年2月なんて大昔だろ…Version 0.11頃の話、貼る奴w
127デフォルトの名無しさん
2021/05/19(水) 07:53:15.04ID:mvJC2+U+ 間違えた。
2月だから0.11さえ出てないわ、0.10.2…
2月だから0.11さえ出てないわ、0.10.2…
128デフォルトの名無しさん
2021/05/26(水) 22:06:31.04ID:5a/xy4zx >>120-122
バージョン1.4.8がリリースされました
2021年5月25日ニムチーム
Nimチームは、Nim1.4の4番目のパッチリリースであるバージョン1.4.8を発表できることを
嬉しく思います。バージョン1.4.8は、1か月のハードワークの結果であり、23のコミットが
含まれており、最も重要なバグが修正され、ORCメモリ管理がさらに改善されています。
すべてのユーザーにバージョン1.4.8をアップグレードして使用することをお勧めします。
リリースのハイライト
develブランチと同様に、v1.4.8はcsources_v1を使用して構築されています。つまり、
AppleM1チップで使用できます。
バージョン1.4.6は、いくつかのウイルス対策ソフトウェアでいくつかの誤検知を引き
起こしました。私たちのテストによると、これはv1.4.8では発生しないはずです。
バージョン1.4.8がリリースされました
2021年5月25日ニムチーム
Nimチームは、Nim1.4の4番目のパッチリリースであるバージョン1.4.8を発表できることを
嬉しく思います。バージョン1.4.8は、1か月のハードワークの結果であり、23のコミットが
含まれており、最も重要なバグが修正され、ORCメモリ管理がさらに改善されています。
すべてのユーザーにバージョン1.4.8をアップグレードして使用することをお勧めします。
リリースのハイライト
develブランチと同様に、v1.4.8はcsources_v1を使用して構築されています。つまり、
AppleM1チップで使用できます。
バージョン1.4.6は、いくつかのウイルス対策ソフトウェアでいくつかの誤検知を引き
起こしました。私たちのテストによると、これはv1.4.8では発生しないはずです。
129デフォルトの名無しさん
2021/06/24(木) 16:12:27.31ID:IeJQfUil なんか結局流行らなかったな
2019ごろはちょっと来そうな雰囲気出してたのに
2019ごろはちょっと来そうな雰囲気出してたのに
130デフォルトの名無しさん
2021/06/24(木) 16:13:02.76ID:IeJQfUil 今でも一番書いてて気持ちいい言語ではあるけど
131デフォルトの名無しさん
2021/06/24(木) 17:25:26.02ID:70oiT5zZ Luaといい勝負?
132デフォルトの名無しさん
2021/06/27(日) 14:10:40.69ID:YLAmOs9U Luaの理念は、簡素、高効率、高移植性(simple, efficient, extensible)、現在はpowerfulとかに変えた。
JITもあるが型の概念が希薄で基本はNativeではない。GCあり、プロトタイプベースのOOPSもC/C++の
相互運用も図られているが、主な用途は本体のプログラムを拡張するスクリプト、ゲームの拡張や
3Dモデリングソフトなどの拡張。
一方、Nimは「Efficient, expressive, elegant」(効率的、表現力豊か、エレガント)であり、型は厳格。
関数、あるいはプロシージャ呼び出しも厳密。Goにあるinterface{}のようなものは無く、Cというか
リンケージ指定、オブジェクトコピー方法、インライン展開など明示するような言語と一体化されたプラグマ。
言語と一体化されたマクロ・テンプレート。状況で選べるGC、例外try-catchとdeferを全否定をしない。
RustのようにGCを排除したためプログラマに押し付けた借用チェックは無い。
Goよりも小さくて速いGC、それによる速度低下は最小限、Rustは学ぶ価値が確かにあるが非常に高い敷居。
Nimは非常に低い敷居(Goほどではないが)、表現力はC/C++そのもの、限りなく抑え込まれたタイプ量。
JITもあるが型の概念が希薄で基本はNativeではない。GCあり、プロトタイプベースのOOPSもC/C++の
相互運用も図られているが、主な用途は本体のプログラムを拡張するスクリプト、ゲームの拡張や
3Dモデリングソフトなどの拡張。
一方、Nimは「Efficient, expressive, elegant」(効率的、表現力豊か、エレガント)であり、型は厳格。
関数、あるいはプロシージャ呼び出しも厳密。Goにあるinterface{}のようなものは無く、Cというか
リンケージ指定、オブジェクトコピー方法、インライン展開など明示するような言語と一体化されたプラグマ。
言語と一体化されたマクロ・テンプレート。状況で選べるGC、例外try-catchとdeferを全否定をしない。
RustのようにGCを排除したためプログラマに押し付けた借用チェックは無い。
Goよりも小さくて速いGC、それによる速度低下は最小限、Rustは学ぶ価値が確かにあるが非常に高い敷居。
Nimは非常に低い敷居(Goほどではないが)、表現力はC/C++そのもの、限りなく抑え込まれたタイプ量。
133デフォルトの名無しさん
2021/06/27(日) 20:05:41.95ID:ytkGpeVG そんなにヒドいかな?
134デフォルトの名無しさん
2021/08/21(土) 08:23:43.68ID:7GAoG1Iq Nimにガベージコレクション(GC)有りは事実なのですが、
NimはオプションでGC無しにできるので、
Nimバージョン:1.5.1でRustのボローチェッカー
に似た「View types」が実装されれば
GC無しで、View types参照の有効性を検証する
ことによってメモリ安全性を保証しつつ高速化して
C/C++/Rustの代替に出来ますか?
NimはオプションでGC無しにできるので、
Nimバージョン:1.5.1でRustのボローチェッカー
に似た「View types」が実装されれば
GC無しで、View types参照の有効性を検証する
ことによってメモリ安全性を保証しつつ高速化して
C/C++/Rustの代替に出来ますか?
135デフォルトの名無しさん
2021/08/21(土) 08:47:50.25ID:7GAoG1Iq136デフォルトの名無しさん
2021/08/21(土) 22:20:40.33ID:7GAoG1Iq Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
137デフォルトの名無しさん
2021/08/22(日) 08:04:08.99ID:0Cz6ueFz Rustのメモリ安全性はボローチェッカーによって担保されているが、
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
Nimと比較してRustはタイプ量が多い事により限りなく低い生産性と
C++のような高い難読性、超巨大なバイナリ生成性能を兼ね備えています
Nimはバージョン1.5.1でRustのボローチェッカーに似た「View types」が実装されれば、
GC無しのView typesで参照の有効性を検証することによってメモリ安全性を保証しつつ
限りなく抑え込まれたタイプ量で高速化したCのソースコードを吐き出せます
Nimソースコード ==nimコンパイラ==> Cソースコード ==Cコンパイラ==> バイナリ
なので、nimコンパイラが通った時点でメモリ安全性が担保されませんか?
Nimの実験的特徴 バージョン1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
第二プログラミング言語として Rust はオススメしません Nim をやるのです
https://wolfbash.hateblo.jp/entry/2017/07/30/193412
Nimは限りなく抑え込まれたタイプ量で高い生産性とPythonのような高い可読性を実現し
ているにもかかわらず、高速なCのソースコードを吐き出せるのでC言語でリモートワーク
されている方は割り振られた仕事が早く終わっても終わってないふりをして怠けることができる
「怠け者とはこうあるべきだ!」と言うとても大事な事を Nim は我々に教えてくれます
138デフォルトの名無しさん
2021/10/02(土) 12:07:48.96ID:nsqRCPBa139デフォルトの名無しさん
2021/10/27(水) 21:47:06.11ID:6tzLPjk/ const str = [0, 1, 2, 3, 4]
for i in 0||str.high: echo str[i]
# nim --passC:"-fopenmp" --passL:"-fopenmp" c main.nim
for i in 0||str.high: echo str[i]
# nim --passC:"-fopenmp" --passL:"-fopenmp" c main.nim
140デフォルトの名無しさん
2021/10/28(木) 12:20:10.25ID:hM84Yf/1 >>92
Cの関数だけでもいろいろなコンパイラーにより規約が違うから、ダイナミックなリンケージを非常に素直に
書ける言語はこれくらいだと思う。rustもFFIで呼べるけど
https://ja.wikipedia.org/wiki/呼出規約
Cの関数だけでもいろいろなコンパイラーにより規約が違うから、ダイナミックなリンケージを非常に素直に
書ける言語はこれくらいだと思う。rustもFFIで呼べるけど
https://ja.wikipedia.org/wiki/呼出規約
141デフォルトの名無しさん
2021/10/29(金) 07:15:01.84ID:pQzUwhXN Nim言語の開発者が$100k相当のBitcoinの寄付を受け取ったことが話題になっています。
www.reddit.com/r/programming/comments/qg2srd/nim_receives_100k_in_bitcoin_donations/
www.reddit.com/r/programming/comments/qg2srd/nim_receives_100k_in_bitcoin_donations/
142デフォルトの名無しさん
2021/11/11(木) 20:14:42.95ID:sY0aXUs3 >>99
公式での処理系は基本的にはC/C++のトランスコンパラですがJSのトランスコンパラとしても動作します。
言語的には依存している分けではなく、gccやclangの最適化の恩恵を受けるためにあえてそのようにして
いるようです。
また直接バイナリを吐き出す別のコンパイラarnetheduck/nlvmもあります。CrystalやRust、Swiftなどの
LLVMバックエンドと同じです。コンパイル時間を短縮しllvmバイナリとして僅かに小さくなります。
公式での処理系は基本的にはC/C++のトランスコンパラですがJSのトランスコンパラとしても動作します。
言語的には依存している分けではなく、gccやclangの最適化の恩恵を受けるためにあえてそのようにして
いるようです。
また直接バイナリを吐き出す別のコンパイラarnetheduck/nlvmもあります。CrystalやRust、Swiftなどの
LLVMバックエンドと同じです。コンパイル時間を短縮しllvmバイナリとして僅かに小さくなります。
143デフォルトの名無しさん
2021/11/22(月) 17:33:11.29 RustよりC++より速いんですか? 始めてみようかな
144デフォルトの名無しさん
2021/11/22(月) 20:36:44.15ID:Jhs76KRN いろんな意味で早いと思う
145デフォルトの名無しさん
2021/12/17(金) 19:10:05.51ID:XHqHc5Ln Version 1.6.2 released
https://nim-lang.org/blog/2021/12/17/version-162-released.html
https://nim-lang.org/blog/2021/12/17/version-162-released.html
146デフォルトの名無しさん
2022/02/10(木) 01:19:39.92ID:OVWQX5q0 Version 1.6.4 released
https://nim-lang.org/blog/2022/02/08/version-164-released.html
https://nim-lang.org/blog/2022/02/08/version-164-released.html
147デフォルトの名無しさん
2022/03/29(火) 04:55:27.78ID:cbyFlglW 1.6.x系だけDLしようとするとマルウェア警告出るんだけどこれ大丈夫なんかね
148デフォルトの名無しさん
2022/03/29(火) 14:58:47.55ID:mXbypgy+ Nimの公式サイトから入手したものなら大丈夫なはず。
Nimに含まれている実行ファイルやNimでコンパイルしたプログラムがアンチウィルスソフトウェアに誤検出される問題は多くの人々から報告されている。
Nim言語でマルウェアを書いてる人がいるせいで誤検出さるようになったらしい。
アンチウィルスソフトウェアは悪いことしないプログラムでもマルウェアと似たようなビットパターンを見つけるとマルウェアとみなすっぽい。
Nimに含まれている実行ファイルやNimでコンパイルしたプログラムがアンチウィルスソフトウェアに誤検出される問題は多くの人々から報告されている。
Nim言語でマルウェアを書いてる人がいるせいで誤検出さるようになったらしい。
アンチウィルスソフトウェアは悪いことしないプログラムでもマルウェアと似たようなビットパターンを見つけるとマルウェアとみなすっぽい。
149デフォルトの名無しさん
2022/03/29(火) 15:37:13.13ID:j1iUrhcV150デフォルトの名無しさん
2022/03/29(火) 20:54:07.21ID:/9JyHlX1 マルウェアと誤検知されたくなければnimで開発しない方が無難か。
151デフォルトの名無しさん
2022/03/31(木) 21:33:49.63ID:3qPlBVYz 多くの人が使っているプログラムでない限り誤検出される可能性はある。
C++使ってたころにビルドが完了してすぐに誤検出されことがあったし。
C++使ってたころにビルドが完了してすぐに誤検出されことがあったし。
152デフォルトの名無しさん
2022/03/31(木) 21:54:44.97ID:EY1WgKK4 そういうどっちもどっち論じゃないだろ。>>148は有意に誤検知が多いと言っているように見えるが。
153デフォルトの名無しさん
2022/04/01(金) 11:47:01.52ID:3pastURm Nimコンパイラ自体がマルウェア扱いだからな。
154デフォルトの名無しさん
2022/04/03(日) 00:58:55.13ID:29whmEYr Nimを書き初めて1ヶ月...procの第一引数に設定したオブジェクトにprocがバインドされる謎構文にはたまげたけど書き味がいいし気に入ったなあ
155デフォルトの名無しさん
2022/04/03(日) 10:37:31.39ID:Ng2sRKnM >>154
ちょっと誤解しているようだけど、a.foo()って書いたら自動的にfoo(a)に変換されるだけだよ。
第一引数の型にそのprocがバインドされるわけじゃないよ。
X.nim:
type
Foo* = object
x: int
proc foo*(f: Foo) = echo f
Y.nim:
import X
proc bar*(): Foo = Foo()
Z.nim:
import Y
#X.nimをインポートしてないとfoo()は呼べないよ
bar().foo()
ちょっと誤解しているようだけど、a.foo()って書いたら自動的にfoo(a)に変換されるだけだよ。
第一引数の型にそのprocがバインドされるわけじゃないよ。
X.nim:
type
Foo* = object
x: int
proc foo*(f: Foo) = echo f
Y.nim:
import X
proc bar*(): Foo = Foo()
Z.nim:
import Y
#X.nimをインポートしてないとfoo()は呼べないよ
bar().foo()
156デフォルトの名無しさん
2022/04/03(日) 10:53:58.62ID:Ng2sRKnM Nimではプロシージャの呼び出し方が何通りかある。
echo("Hello")
# Command invocation syntax
echo "Hello"
# Method call syntax
"Hello".echo
"Hello".echo()
# Generalized raw string literals
# 引数が文字列リテラル一個のときのみ
echo"Hello"
echo("Hello")
# Command invocation syntax
echo "Hello"
# Method call syntax
"Hello".echo
"Hello".echo()
# Generalized raw string literals
# 引数が文字列リテラル一個のときのみ
echo"Hello"
157デフォルトの名無しさん
2022/04/03(日) 20:20:01.30ID:29whmEYr158デフォルトの名無しさん
2022/04/09(土) 11:44:54.12ID:P+77Yson >156
Method call syntax はスマートだから他言語でも流行ってほしいところ。
特にPythonは真っ先に採用して欲しいわ。
Method call syntax はスマートだから他言語でも流行ってほしいところ。
特にPythonは真っ先に採用して欲しいわ。
159デフォルトの名無しさん
2022/04/22(金) 04:37:03.66ID:Ov5wmYZH あまり何通りもあるのはperlみたいになりそうでよろしくないな。
160デフォルトの名無しさん
2022/05/05(木) 20:58:23.76ID:Ofa1pfuz Version 1.6.6 released
https://nim-lang.org/blog/2022/05/05/version-166-released.html
https://nim-lang.org/blog/2022/05/05/version-166-released.html
161デフォルトの名無しさん
2022/05/06(金) 17:32:07.42ID:+sslkA2r162デフォルトの名無しさん
2022/05/08(日) 11:28:42.79ID:ttLKa+gZ163デフォルトの名無しさん
2022/05/18(水) 23:08:10.33ID:7sDXJn10 ニンニン
164デフォルトの名無しさん
2022/06/14(火) 14:49:13.90 二ムってドイツ製?
165デフォルトの名無しさん
2022/06/22(水) 00:08:54.72ID:mbXzyoju Araqってたしか国籍は南米じゃなかったか
166デフォルトの名無しさん
2022/06/22(水) 00:28:49.96ID:mbXzyoju167デフォルトの名無しさん
2022/07/26(火) 18:12:34.65ID:MxJrqhMY ニンニン
168デフォルトの名無しさん
2022/07/26(火) 18:15:36.24ID:gc9s0ohk 浣腸
169デフォルトの名無しさん
2022/07/27(水) 03:59:11.24ID:0dTQJF2a Aliasing restrictions in parameter passingかview typesが実装されればNimもRust並にメモリ安全になると思うんだけど。
みんなはどう思う?
https://nim-lang.org/docs/manual_experimental.html#aliasing-restrictions-in-parameter-passing
https://nim-lang.org/docs/manual_experimental.html#view-types
みんなはどう思う?
https://nim-lang.org/docs/manual_experimental.html#aliasing-restrictions-in-parameter-passing
https://nim-lang.org/docs/manual_experimental.html#view-types
170デフォルトの名無しさん
2022/07/28(木) 11:23:58.38ID:oB626eDW >>169
むしろ--mm:orcならRustよりNimのほうが循環もGCするだけメモリ安全だし、リリースビルドでオーバーフローチェックが意味不明にoffになり、言語仕様としてループindexにunsignedを使うRustのどこが安全なのかと小一時間。
まあNimでのdangerコンパイルと似てるし、構文上まだ危険な超絶ハック表現が出来てしまうので素人にはオススメ出来ない諸刃の剣。だけどsqlパッケージの文字列前提を絶対変えてほしい
むしろ--mm:orcならRustよりNimのほうが循環もGCするだけメモリ安全だし、リリースビルドでオーバーフローチェックが意味不明にoffになり、言語仕様としてループindexにunsignedを使うRustのどこが安全なのかと小一時間。
まあNimでのdangerコンパイルと似てるし、構文上まだ危険な超絶ハック表現が出来てしまうので素人にはオススメ出来ない諸刃の剣。だけどsqlパッケージの文字列前提を絶対変えてほしい
171デフォルトの名無しさん
2022/07/28(木) 14:19:26.27ID:1GWFUzAq RustのBorrow Checkerはメモリリークを防ぐものではないからね
172デフォルトの名無しさん
2022/07/29(金) 02:16:03.41ID:jt8KW6vh nimの言語的とか技術的な弱点や欠点って何?
173デフォルトの名無しさん
2022/07/29(金) 03:05:46.34ID:4AXwbrcj templateまたはmacroの第一引数がuntypedだとmethod call syntaxが使えない。
method call syntaxでgenerics parameterを指定するときにfoo.myproc[:int]()みたいな感じで[]の中の初めに':'を付けないといけない。method call syntaxを使わないときは':'は不要。
という感じでmethod call syntaxにちょっとした罠がある。
method call syntaxでgenerics parameterを指定するときにfoo.myproc[:int]()みたいな感じで[]の中の初めに':'を付けないといけない。method call syntaxを使わないときは':'は不要。
という感じでmethod call syntaxにちょっとした罠がある。
174デフォルトの名無しさん
2022/07/29(金) 12:18:00.08ID:sEOGgaoM macroが全く別言語になってる錆やその他諸々よりも、ちゃんと言語の最小サブセットになってるからまだマシ
175デフォルトの名無しさん
2022/07/29(金) 13:08:45.89ID:jt8KW6vh なるほど
レスを投稿する
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 ★2 [ぐれ★]
- 【高市核兵器】 小泉コメ防衛大臣「民主党政権 岡田外務大臣の “非核三原則” に関する国会答弁を引き継いでいる」 政策堅持を明言 [485983549]
- 【高市賃上げ】 自民党&維新の会「国会議員の給与を 月5万円アップさせる!」 今国会で歳費法改正。 月129万円→月134万円に [485983549]
- 青髭がない男がいたんですよ~
- 【速報】NVIDIA超好決算!株価爆上げへ [271912485]
- 【速報】2025プロ野球の流行語トップ30が発表される
- ㊗157円 [194819832]
