nim

2018/03/01(木) 18:32:18.16ID:vh/yy2VS
https://nim-lang.org/
55デフォルトの名無しさん
垢版 |
2019/06/18(火) 12:48:21.44ID:1CtlGReK
C++でカーネル書いたひとはいるね
56デフォルトの名無しさん
垢版 |
2019/06/18(火) 14:22:47.46ID:6YVmUs6+
実際Linuxカーネルのコードは疑似OOPだみたいな説明を見かけたので
NimやC++で書いても良いのかもしれない。
個人的にCへのトランスパイラとしてのNimにひじょーに興味がある
57デフォルトの名無しさん
垢版 |
2019/06/18(火) 14:25:52.94ID:6YVmUs6+
https://forum.nim-lang.org/t/2261
>So let's say that implementing your game in Nim instead of C++ means 20% larger binary sizes, 20% more RAM usage, and 20% more CPU/GPU usage.

NimよりC++の方が速いって言ってる。
ベンチだと真逆なのに
58デフォルトの名無しさん
垢版 |
2019/06/18(火) 14:44:50.57ID:6YVmUs6+
続き読んだら他の人が否定してた
59デフォルトの名無しさん
垢版 |
2019/06/19(水) 01:56:19.31ID:8qBvJS/J
nimはgcを使っている。でもCへのトランスパイルができる。
gcということはメモリ解放が暗黙的ということだろう。
Cでは明示的に解放する必要がある。

どうやって解放タイミングを調べてるんだ?
GC言語から非GC言語へのトランスパイルがなぜ可能なのか?
60デフォルトの名無しさん
垢版 |
2019/06/19(水) 02:09:28.92ID:8qBvJS/J
var name: string = readLine(stdin)

なんでvarと書きつつstringと型指定するのか
変な言語仕様だな
string name =
でいいだろ
61デフォルトの名無しさん
垢版 |
2019/06/19(水) 02:10:39.50ID:8qBvJS/J
var name = readLine(stdin)

型推論だっていってるけどこれ可読性低下してる
string name = readLine(stdin)
これがベスト
62デフォルトの名無しさん
垢版 |
2019/06/19(水) 02:52:19.54ID:8qBvJS/J
nimでデバドラ作ったりできるんだろうか
63デフォルトの名無しさん
垢版 |
2019/06/19(水) 02:57:44.38ID:8qBvJS/J
https://forum.nim-lang.org/t/2541
Nim also can produce a program that will be put in an embedded system. In such environment, usually there is no OS or only primitive OS, and Nim produced program have higher chances to access hardware directly.

できそうだ
Nimは流行りそうな気がする
なんで組み込みでC++なんか使ってるんだ
64デフォルトの名無しさん
垢版 |
2019/06/19(水) 04:14:19.61ID:8qBvJS/J
https://forum.nim-lang.org/t/3223
>Basically, 10 OS for 10 CPUs would contain 100 sets of C source code, that get bundled up over in csources.git

どうやらNimが適切なCソースコードを作成するには
ターゲットのCPUとOSを指定する必要があり、
その組み合わせ全てに何かファイルを用意する必要がある。

これじゃダメだな・・・
65デフォルトの名無しさん
垢版 |
2019/06/19(水) 04:24:41.25ID:8qBvJS/J
勘違いした。ダメってことはないか
Nimコード自体は環境非依存、Cコードにするとき環境依存、ということか
66デフォルトの名無しさん
垢版 |
2019/06/19(水) 14:31:42.44ID:Yoy0IPRe
LLVMω
67デフォルトの名無しさん
垢版 |
2019/06/21(金) 05:13:28.08ID:gJOJvtBY
Nimってめちゃすごなんじゃないかなあ
細かい言語仕様で嫌いなところがあるけど
68デフォルトの名無しさん
垢版 |
2019/06/21(金) 14:29:00.17ID:HK0kbqVP
漏れも D がすごいと思ってた時期があるよ
69デフォルトの名無しさん
垢版 |
2019/06/21(金) 14:55:07.18ID:GHyPzIJc
>>61
name : string := readLine(stdin)
のほうがいい。
70デフォルトの名無しさん
垢版 |
2019/06/22(土) 05:26:38.53ID:ecTKxvDL
https://nim-lang.org/
The Nim compiler and the generated executables support all major platforms like Windows, Linux, BSD and Mac OS X.

executablesは機械語?Cコード?
いずれにせよ環境依存してると思うけど、大抵のプラットフォームをサポートしてます、ってどういうこと?
大抵のプラットフォームに向けてトランスパイルできますってこと?
71デフォルトの名無しさん
垢版 |
2019/06/22(土) 09:58:00.49ID:fiI8bn9U
You Nim で Tensorflow が使えるアプリ造っchina YO
2019/06/24(月) 09:23:40.70ID:4pk2usGN
>>69
var name : string = readLine(stdin)
#nameは変更可能
let name : string = readLine(stdin)
#nameは初期化後は変更不可
というletとvarに違いがある。
型推論使ったほうがコード読みやすい、書きやすいという人もいるんだよ。
readLineの戻り値の型はstringに決まってるんだから毎回型を書く必要ないと思うけど
2019/06/24(月) 09:43:12.98ID:4pk2usGN
>>70
NimはC言語に変換してからgcc等のCコンパイラを呼んで実行ファイルを作るんだよ。
C言語は大抵のプラットフォームで使える言語だからマルチプラットフォーム化しやすい。
なので一度書いたNimコードをそれぞれのプラットフォーム上でコンパイルするかクロスコンパイルするだけでだいたいは動く。
けどNimから出力されるCコードは特定のCコンパイラ、OS、CPU向けに書かれているので、それだけでマルチプラットフォームな実行ファイルは作れないらしい。
Nimの標準ライブラリのソースコードを読むとOS、CPUによる違いを吸収するためのコードがときどきあるよ。
2019/06/24(月) 09:53:12.36ID:4pk2usGN
Nimのソースコードのcompiler/extccomp.nimにNimが対応しているC/C++コンパイラの情報がまとまっていて、compiler/platform.nimにはOSとCPUの情報がまとまってる。
75デフォルトの名無しさん
垢版 |
2019/06/24(月) 11:40:11.26ID:eHWTfFeZ
https://github.com/nim-lang/Nim/blob/devel/compiler/extccomp.nim
https://github.com/nim-lang/Nim/blob/devel/compiler/platform.nim
https://github.com/nim-lang/Nim/wiki/Consts-defined-by-the-compiler
2019/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
2019/08/11(日) 11:51:35.55ID:coNgBae3
2次元配列って、
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
80デフォルトの名無しさん
垢版 |
2019/09/25(水) 06:16:02.11ID:vl5hNqVG
ついでにwandboxのnim
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ってやつだ
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
で動いた
84デフォルトの名無しさん
垢版 |
2019/10/27(日) 16:18:39.88ID:IkTaChA0
あと
日本語の参考書籍ってなんか出てる?

Nim in Action とかはどうだった?
2019/10/30(水) 20:48:12.27ID:obI8HGMc
>>83
最近のは勝手に 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+
Nim playground
https://play.nim-lang.org/
次スレから>>1に入れといてよ

しかしver1到達したのに全然盛り上がらんのなお前ら
2019/11/09(土) 03:28:50.22ID:fORTWFTH
https://wandbox.org/
こちらでもNim使えますよ。
2019/11/10(日) 11:17:11.92ID:ddnKE8WS
>>85
distフォルダにmingwの7z玉入れておけば、オフラインでのインストールもできるね。
2019/11/10(日) 11:25:43.54ID:ddnKE8WS
>>84
日本語の書籍はないが、原著のドキュメントは割とわかりやすい。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モジュウルにあるプロシイジャアを使えばいいんじゃなかろうか
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
あんまり本出ないね
むしろチャンスか
2020/03/27(金) 22:55:09.53ID:2CmTFgv1
あの糞マクロ以外大して面白みのない言語だしなぁ
102デフォルトの名無しさん
垢版 |
2020/04/07(火) 05:01:02.90ID:FPXvnSDp
逆にマクロの完成度高い言語ってなに?
2020/04/07(火) 07:46:31.57ID:CJzGmfMl
common LISP
2020/04/07(火) 14:00:10.17ID:izX7gbjy
Schemeは?
2020/04/07(火) 19:47:26.61ID:fJ0U2d01
nimのマクロは完成度高いと思う。でも完成度高いマクロという存在自体が糞。
106デフォルトの名無しさん
垢版 |
2020/04/08(水) 12:06:55.28ID:lWfV0IAd
MACRO-80
2020/04/10(金) 23:13:42.18ID:mN42vwgW
>>102
糞マクロを褒めてるのであって
逆じゃないと思うんだが
2020/04/10(金) 23:14:33.21ID:mN42vwgW
>>101>>105が同じってことだろ
common lispなんてはるかに糞になるし
2020/04/10(金) 23:15:34.44ID:mN42vwgW
マクロならrustのが定評あると思うが
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)] かな。気持ち悪いけど。
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
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があるのも良いよね
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もそうだが型安全性はばつぐんだ
117デフォルトの名無しさん
垢版 |
2021/01/14(木) 18:15:15.39ID:ZgCcmsal
jsって割と底辺だと思うから
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
2021/04/30(金) 20:42:36.52ID:+hB3gYz3
Windows defenderでウイルス判定される
2021/05/01(土) 12:24:15.54ID:afQILYPs
それはどうしようもない
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
明日に向かって吠えろ
2021/05/13(木) 14:29:40.54ID:pHijDXLB
Software Design に記事持ち込め
125デフォルトの名無しさん
垢版 |
2021/05/15(土) 12:35:34.04ID:eYtIld1h
https://www.akiradeveloper.com/post/give-up-nim/
126デフォルトの名無しさん
垢版 |
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…
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では発生しないはずです。
129デフォルトの名無しさん
垢版 |
2021/06/24(木) 16:12:27.31ID:IeJQfUil
なんか結局流行らなかったな
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++そのもの、限りなく抑え込まれたタイプ量。
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の代替に出来ますか?
135デフォルトの名無しさん
垢版 |
2021/08/21(土) 08:47:50.25ID:7GAoG1Iq
Nimの実験的特徴
著者: アンドレアス・ルンプ
バージョン: 1.5.1
http://nim-lang.github.io/Nim/manual_experimental.html
136デフォルトの名無しさん
垢版 |
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 は我々に教えてくれます
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 は我々に教えてくれます
2021/10/02(土) 12:07:48.96ID:nsqRCPBa
いつの間にかJetBrainsのプラグインが出てたね。今更気がついたよ
これもかなり良いんじゃない?
https://plugins.jetbrains.com/plugin/15128-nim
139デフォルトの名無しさん
垢版 |
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
140デフォルトの名無しさん
垢版 |
2021/10/28(木) 12:20:10.25ID:hM84Yf/1
>>92
Cの関数だけでもいろいろなコンパイラーにより規約が違うから、ダイナミックなリンケージを非常に素直に
書ける言語はこれくらいだと思う。rustもFFIで呼べるけど
https://ja.wikipedia.org/wiki/呼出規約
2021/10/29(金) 07:15:01.84ID:pQzUwhXN
Nim言語の開発者が$100k相当のBitcoinの寄付を受け取ったことが話題になっています。
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バイナリとして僅かに小さくなります。
2021/11/22(月) 17:33:11.29
RustよりC++より速いんですか? 始めてみようかな
2021/11/22(月) 20:36:44.15ID:Jhs76KRN
いろんな意味で早いと思う
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
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
2022/03/29(火) 04:55:27.78ID:cbyFlglW
1.6.x系だけDLしようとするとマルウェア警告出るんだけどこれ大丈夫なんかね
2022/03/29(火) 14:58:47.55ID:mXbypgy+
Nimの公式サイトから入手したものなら大丈夫なはず。
Nimに含まれている実行ファイルやNimでコンパイルしたプログラムがアンチウィルスソフトウェアに誤検出される問題は多くの人々から報告されている。
Nim言語でマルウェアを書いてる人がいるせいで誤検出さるようになったらしい。
アンチウィルスソフトウェアは悪いことしないプログラムでもマルウェアと似たようなビットパターンを見つけるとマルウェアとみなすっぽい。
2022/03/29(火) 15:37:13.13ID:j1iUrhcV
>>148
なるほどね?
サンキュー😉👍🎶
2022/03/29(火) 20:54:07.21ID:/9JyHlX1
マルウェアと誤検知されたくなければnimで開発しない方が無難か。
2022/03/31(木) 21:33:49.63ID:3qPlBVYz
多くの人が使っているプログラムでない限り誤検出される可能性はある。
C++使ってたころにビルドが完了してすぐに誤検出されことがあったし。
2022/03/31(木) 21:54:44.97ID:EY1WgKK4
そういうどっちもどっち論じゃないだろ。>>148は有意に誤検知が多いと言っているように見えるが。
2022/04/01(金) 11:47:01.52ID:3pastURm
Nimコンパイラ自体がマルウェア扱いだからな。
2022/04/03(日) 00:58:55.13ID:29whmEYr
Nimを書き初めて1ヶ月...procの第一引数に設定したオブジェクトにprocがバインドされる謎構文にはたまげたけど書き味がいいし気に入ったなあ
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()
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況