nim
2018/03/01(木) 18:32:18.16ID:vh/yy2VS
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 なるほど
176デフォルトの名無しさん
2022/09/10(土) 16:11:58.36ID:VwPQQEZG win10 x64 nim-1.6.6 x64 です
(A)
var hoge = newSeq[uint16](16)
# hoge[...] に wchar_t の文字列 L'\x0' 終端がある (サロゲートとか無い状態で 4文字分)
echo convert(cast[string](hoge[0..3]), "utf-8", "utf-16")
(B)
var fuga = newSeq[char](16)
# fuga[...] に char の文字列 '\x0' 終端がある 4文字分
echo cast[string](fuga[0..3])
(B)の方は期待通り 4文字分出力されるのですが
(A)の方はなぜか 2文字くらいで切れてしまいます
echo convert(cast[string](hoge[0..7]), "utf-8", "utf-16")
と修正すると 4文字出ましたが何か腑に落ちません
(A)
var hoge = newSeq[uint16](16)
# hoge[...] に wchar_t の文字列 L'\x0' 終端がある (サロゲートとか無い状態で 4文字分)
echo convert(cast[string](hoge[0..3]), "utf-8", "utf-16")
(B)
var fuga = newSeq[char](16)
# fuga[...] に char の文字列 '\x0' 終端がある 4文字分
echo cast[string](fuga[0..3])
(B)の方は期待通り 4文字分出力されるのですが
(A)の方はなぜか 2文字くらいで切れてしまいます
echo convert(cast[string](hoge[0..7]), "utf-8", "utf-16")
と修正すると 4文字出ましたが何か腑に落ちません
177デフォルトの名無しさん
2022/09/11(日) 06:48:19.18ID:u4B58VWk >>176
そもそも何をしたいの?
windowsで日本語を表示したいだけならutf8を使ってればOk
デフォルトでNimのコマンドラインプログラムを実行するとchcp 65001コマンドを実行したときのようにコードページをutf8に変更される。
chcp 65001を実行してもちゃんと日本語が表示されるようにターミナルを設定しよう。
utf16なテキストをutf8に変換して表示したい場合はできるだけcast使わないようにコードを書こう。
castは危険なのでできるだけ使わないようにしよう。
(castはビットパターンが同じまま別の型と見なす変換なので実装詳細を知らずに使ってるとうまく動かない)
最初からstringに文字列を格納するようにするとか、ループで一文字づつstringにコピーすればcastは避けられると思う。
そもそも何をしたいの?
windowsで日本語を表示したいだけならutf8を使ってればOk
デフォルトでNimのコマンドラインプログラムを実行するとchcp 65001コマンドを実行したときのようにコードページをutf8に変更される。
chcp 65001を実行してもちゃんと日本語が表示されるようにターミナルを設定しよう。
utf16なテキストをutf8に変換して表示したい場合はできるだけcast使わないようにコードを書こう。
castは危険なのでできるだけ使わないようにしよう。
(castはビットパターンが同じまま別の型と見なす変換なので実装詳細を知らずに使ってるとうまく動かない)
最初からstringに文字列を格納するようにするとか、ループで一文字づつstringにコピーすればcastは避けられると思う。
178デフォルトの名無しさん
2022/09/11(日) 15:33:59.58ID:o5WJ0zmX 上の例とは若干違いますが
var u16 = newSeq[uint16](8)
for n in 0..7: u16[n] = cast[uint16](65 + n)
u16[7] = 0
echo u16 # -> @[65, 66, 67, 68, 69, 70, 71, 0]
echo convert(cast[string](u16), "utf-8", "utf-16") # -> ABCD
let u8 = cast[ptr UncheckedArray[array[16, uint8]]](u16[0].addr)[0]
echo u8 # -> [65, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70, 0, 71, 0, 0, 0]
ABCD のところが ABCDEFG にならないのがなんでかなーというのも
同様の現象が原因だろうと思います
var u16 = newSeq[uint16](8)
for n in 0..7: u16[n] = cast[uint16](65 + n)
u16[7] = 0
echo u16 # -> @[65, 66, 67, 68, 69, 70, 71, 0]
echo convert(cast[string](u16), "utf-8", "utf-16") # -> ABCD
let u8 = cast[ptr UncheckedArray[array[16, uint8]]](u16[0].addr)[0]
echo u8 # -> [65, 0, 66, 0, 67, 0, 68, 0, 69, 0, 70, 0, 71, 0, 0, 0]
ABCD のところが ABCDEFG にならないのがなんでかなーというのも
同様の現象が原因だろうと思います
179デフォルトの名無しさん
2022/09/11(日) 15:42:19.33ID:o5WJ0zmX echo convert("\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x00\x00", "utf-8", "utf-16")
これは
ABCDEFG
と出力されます
これは
ABCDEFG
と出力されます
180デフォルトの名無しさん
2022/09/11(日) 15:48:12.92ID:o5WJ0zmX181デフォルトの名無しさん
2022/09/11(日) 15:48:57.35ID:o5WJ0zmX まあ cast に何を期待してるんだと言われればそれまでなんだと思いますが腑に落ちませんでした
182デフォルトの名無しさん
2022/09/11(日) 19:01:47.42ID:EVjHVTpm nimってIDEやデバッガは近いうちに計画されてるの?
vscodeでもいいんだけど、ちゃんとしたデバッガは欲しいな
条件付きブレークポイントやコンテナの中身が見れる程度でいいんだが
vscodeでもいいんだけど、ちゃんとしたデバッガは欲しいな
条件付きブレークポイントやコンテナの中身が見れる程度でいいんだが
183デフォルトの名無しさん
2022/09/11(日) 19:50:17.68ID:6Wt0j/hc184デフォルトの名無しさん
2022/09/11(日) 22:55:03.70ID:EVjHVTpm やっぱりその組み合わせか
どうにも使いづらいんだよねぇ
言語仕様は理想に近いんでもっと流行ってほしいんだが、これまでの情勢からあまり期待できなさそうだな
どうにも使いづらいんだよねぇ
言語仕様は理想に近いんでもっと流行ってほしいんだが、これまでの情勢からあまり期待できなさそうだな
185デフォルトの名無しさん
2022/09/12(月) 01:44:56.16ID:I2SXXYSG >>181
seqをstringにcastしているけど、ちゃんとseqとstringの実装詳細、データ構造を理解した上で安全だという確証があってcast
seqをstringにcastしているけど、ちゃんとseqとstringの実装詳細、データ構造を理解した上で安全だという確証があってcast
186デフォルトの名無しさん
2022/09/12(月) 01:47:29.58ID:I2SXXYSG >>181
seqをstringにcastしているけど、ちゃんとseqとstringの実装詳細、データ構造を理解した上で安全だという確証があってcastしてるの?
そうでないならcast使うのはやめたほうがいいよ。
seqをstringにcastしているけど、ちゃんとseqとstringの実装詳細、データ構造を理解した上で安全だという確証があってcastしてるの?
そうでないならcast使うのはやめたほうがいいよ。
187デフォルトの名無しさん
2022/09/12(月) 02:10:20.86ID:I2SXXYSG >>181
seqやstringのデータ構造を理解しcastが何をしているか理解すれば納得できると思うよ
https://github.com/nim-lang/Nim/blob/devel/lib/system/seqs_v2.nim
https://github.com/nim-lang/Nim/blob/devel/lib/system/strs_v2.nim
そもそもseq[uint16]からstringへcastしてる時点でもうデタラメなんだよ。
seqやstringのデータ構造を理解しcastが何をしているか理解すれば納得できると思うよ
https://github.com/nim-lang/Nim/blob/devel/lib/system/seqs_v2.nim
https://github.com/nim-lang/Nim/blob/devel/lib/system/strs_v2.nim
そもそもseq[uint16]からstringへcastしてる時点でもうデタラメなんだよ。
188デフォルトの名無しさん
2022/09/12(月) 02:17:45.60ID:I2SXXYSG >>182
NimにGDBでデバッグできるようにするプラグインが付属していて
gdbでブレークポイントをおいたり変数の中身を表示したりできます。
https://internet-of-tomohiro.netlify.app/nim/gdb.ja.html
NimにGDBでデバッグできるようにするプラグインが付属していて
gdbでブレークポイントをおいたり変数の中身を表示したりできます。
https://internet-of-tomohiro.netlify.app/nim/gdb.ja.html
189デフォルトの名無しさん
2022/09/12(月) 20:00:29.06ID:YXdRRv20190デフォルトの名無しさん
2022/09/12(月) 22:26:15.30ID:I2SXXYSG >>189
castは極力使わないほうがいいのでビット演算使ってu16の値をcharに変換したほうがいいよ。
お手本コードを投稿しようとしたらcloudflareが悪意あるコードと勘違いしてブロックされた
castは極力使わないほうがいいのでビット演算使ってu16の値をcharに変換したほうがいいよ。
お手本コードを投稿しようとしたらcloudflareが悪意あるコードと勘違いしてブロックされた
191デフォルトの名無しさん
2022/09/12(月) 22:30:11.19ID:I2SXXYSG こんな感じです
let c=65u16 + n
u16[n * 2] = char(c and 0xff'u16)
u16[n * 2 + 1] = char(c shr 8)
let c=65u16 + n
u16[n * 2] = char(c and 0xff'u16)
u16[n * 2 + 1] = char(c shr 8)
192デフォルトの名無しさん
2022/09/13(火) 11:55:15.89ID:gs7UQvs1193デフォルトの名無しさん
2022/09/13(火) 12:06:13.19ID:0kBS+x4w 言語仕様としてはモダンな言語の中で1番わかりやすいし
Rustで書くほどでもない軽いスクリプトとかならNimで良いんだけど流行らんなあ
やはり個人開発者の言語が流行ることはもうないのか
Rustで書くほどでもない軽いスクリプトとかならNimで良いんだけど流行らんなあ
やはり個人開発者の言語が流行ることはもうないのか
194デフォルトの名無しさん
2022/09/13(火) 15:06:32.01ID:EXK746Ox195デフォルトの名無しさん
2022/09/13(火) 16:00:02.06ID:EXK746Ox アク禁?
196デフォルトの名無しさん
2022/09/13(火) 16:03:11.36ID:EXK746Ox var ws = newWideCString(8) # ws.len == 0
for n in 0..7: ws[n] = Utf16Char(65 + n)
# ws.len == 8
ws[7] = Utf16Char(0) # ws.len == 7
echo ws # ABCDEFG
と比べて
for n in 0..7: ws[n] = Utf16Char(65 + n)
# ws.len == 8
ws[7] = Utf16Char(0) # ws.len == 7
echo ws # ABCDEFG
と比べて
197デフォルトの名無しさん
2022/09/13(火) 16:05:36.05ID:EXK746Ox なぜ拒否られる?
198デフォルトの名無しさん
2022/09/13(火) 16:06:26.54ID:EXK746Ox 驚き最小の法則ですね
var s = newString(8) # s.len == 8
for n in 0..7: s[n] = char(65 + n)
# s.len == 8
s[7] = '\0' # s.len == 8
echo s # ABCDEFG
var s = newString(8) # s.len == 8
for n in 0..7: s[n] = char(65 + n)
# s.len == 8
s[7] = '\0' # s.len == 8
echo s # ABCDEFG
199デフォルトの名無しさん
2022/09/13(火) 16:07:15.32ID:EXK746Ox 判った char だけダメなんね
200デフォルトの名無しさん
2022/09/13(火) 16:09:20.44ID:EXK746Ox 驚き最小の法則
var ws = newWideCString(8)
echo ws.len # -> 0
for n in 0..7: ws[n] = Utf16Char(65 + n)
echo ws.len # -> 8
ws[7] = Utf16Char(0)
echo ws.len # -> 7
echo ws # ABCDEFG
と比べて
var s = newString(8)
echo s.len # -> 8
for n in 0..7: s[n] = char(65 + n)
echo s.len # -> 8
s[7] = '\0'
echo s.len # -> 8
echo s # ABCDEFG
var ws = newWideCString(8)
echo ws.len # -> 0
for n in 0..7: ws[n] = Utf16Char(65 + n)
echo ws.len # -> 8
ws[7] = Utf16Char(0)
echo ws.len # -> 7
echo ws # ABCDEFG
と比べて
var s = newString(8)
echo s.len # -> 8
for n in 0..7: s[n] = char(65 + n)
echo s.len # -> 8
s[7] = '\0'
echo s.len # -> 8
echo s # ABCDEFG
201デフォルトの名無しさん
2022/09/13(火) 16:11:32.87ID:EXK746Ox インド人もびっくり
202デフォルトの名無しさん
2022/09/13(火) 19:05:39.59ID:ketgm+4i Win土人
Nim土人
Nim土人
203デフォルトの名無しさん
2022/09/16(金) 10:37:25.88ID:8/QLgRNp proc testfunc(x: cint): cint {.exportc, cdecl, dynlib.} =
return x
と描かれたソースを
nim c --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されて
import ctypes
ctypes.cdll.LoadLibrary('./hoge.dll').testfunc(123)
と実行出来たのですが
nim cpp --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されているはずなのに
LoadLibrary のところで
FileNotFoundError: Could not find module '(fullpath)\hoge.dll' (or one of its dependencies).
Try using the full path with constructor syntax.
と言われてしまいます
多分 or one of its dependencies が引っ掛かっているのではないかと思うのですが
何が足りないのでしょう? stdc++ の shared library ?
return x
と描かれたソースを
nim c --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されて
import ctypes
ctypes.cdll.LoadLibrary('./hoge.dll').testfunc(123)
と実行出来たのですが
nim cpp --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されているはずなのに
LoadLibrary のところで
FileNotFoundError: Could not find module '(fullpath)\hoge.dll' (or one of its dependencies).
Try using the full path with constructor syntax.
と言われてしまいます
多分 or one of its dependencies が引っ掛かっているのではないかと思うのですが
何が足りないのでしょう? stdc++ の shared library ?
204デフォルトの名無しさん
2022/09/16(金) 10:57:11.84ID:8/QLgRNp libstdc++-6.dll
をコピーしてみましたがだめでした
をコピーしてみましたがだめでした
205デフォルトの名無しさん
2022/09/16(金) 11:30:30.18ID:lbCTEBn9 nimpy
nimodule
nimodule
206デフォルトの名無しさん
2022/09/16(金) 13:53:03.44ID:kdRP0PjD >>203
objdumpっていうプログラムを使えばどのdllを使っているか見れるよ。
使い方忘れたからググってね。
Nimをインストールしたときにgccもインストールしてればそのときにobjdumpも一緒にインストールされる。
他にも依存しているdllを見れるツールは色々あるけど
objdumpっていうプログラムを使えばどのdllを使っているか見れるよ。
使い方忘れたからググってね。
Nimをインストールしたときにgccもインストールしてればそのときにobjdumpも一緒にインストールされる。
他にも依存しているdllを見れるツールは色々あるけど
207デフォルトの名無しさん
2022/09/16(金) 16:11:50.14ID:fQY5NM7R >>206
windows用にもobjdumpあんの?
windows用にもobjdumpあんの?
208デフォルトの名無しさん
2022/09/16(金) 16:24:53.42ID:8/QLgRNp windows で nim 入れるときに一緒に入った mingw64 の中に objdump がありました
209デフォルトの名無しさん
2022/09/16(金) 16:34:58.81ID:8/QLgRNp >>206
objdump -p hoge.dll | findstr "dll"
で出て来たのが
libgcc_s_seh-1.dll
libstdc++-6.dll
kernel32.dll
msvcrt.dll
でした
libstdc++-6.dll
だけではなく
libgcc_s_seh-1.dll
も必要でした
無事動作しましたありがとう
objdump -p hoge.dll | findstr "dll"
で出て来たのが
libgcc_s_seh-1.dll
libstdc++-6.dll
kernel32.dll
msvcrt.dll
でした
libstdc++-6.dll
だけではなく
libgcc_s_seh-1.dll
も必要でした
無事動作しましたありがとう
210デフォルトの名無しさん
2022/09/18(日) 09:51:11.78ID:KpBP36NG211デフォルトの名無しさん
2022/09/22(木) 10:36:47.71ID:u9/ouAZs import nimpy
import nimpy/py_lib as lib
initPyLibIfNeeded()
let wx = pyImport("wx")
let app = wx.App()
let frm = wx.Frame(nil, -1, "Hello, work!")
discard frm.Show()
discard app.MainLoop()
簡単杉感嘆
import nimpy/py_lib as lib
initPyLibIfNeeded()
let wx = pyImport("wx")
let app = wx.App()
let frm = wx.Frame(nil, -1, "Hello, work!")
discard frm.Show()
discard app.MainLoop()
簡単杉感嘆
212デフォルトの名無しさん
2022/09/22(木) 15:46:35.23ID:zq3yyQIu213デフォルトの名無しさん
2022/09/23(金) 15:49:32.66ID:9eaiNZZz セルフホスティングくらいでけるのか?
214デフォルトの名無しさん
2022/09/23(金) 16:54:42.46ID:COcKyTVz215デフォルトの名無しさん
2022/09/23(金) 20:37:31.28ID:vOu7CdIL プログラミング言語でセルフホスティングっていったらコンパイラが自身の言語で実装できることだろうよ
しかしできたとしてトランスパイラをセルフホスティングと呼んでいいのか
しかしできたとしてトランスパイラをセルフホスティングと呼んでいいのか
216デフォルトの名無しさん
2022/09/23(金) 22:00:58.25ID:U9mPo3hK 出力がC言語か機械語かの違いぐらいだしトランスパイラだとしても普通にセルフホスティングって呼ぶよ
217デフォルトの名無しさん
2022/09/23(金) 22:27:48.78ID:COcKyTVz https://github.com/nim-lang/Nim
ここにNim言語のコンパイラがあるけどソースコードはNim言語で書かれている。
gccなどのCコンパイラとgitがあればソースコードからビルドできる。
ソースコードからビルドするときはまず古いバージョンのNimコンパイラをC言語に変換したものをダウンロードしてCコンパイラでビルドする。
それでビルドしたNimコンパイラで最新のNimコンパイラをビルドする。
ここにNim言語のコンパイラがあるけどソースコードはNim言語で書かれている。
gccなどのCコンパイラとgitがあればソースコードからビルドできる。
ソースコードからビルドするときはまず古いバージョンのNimコンパイラをC言語に変換したものをダウンロードしてCコンパイラでビルドする。
それでビルドしたNimコンパイラで最新のNimコンパイラをビルドする。
218デフォルトの名無しさん
2022/09/24(土) 20:13:52.60ID:7pBAspe1 わりとどうでもいいな
219デフォルトの名無しさん
2022/09/25(日) 02:56:32.67ID:z6wPsTgH Cコンパイラは一般的にC言語で実装されているが、どうやってCコンパイラをビルドするのか
あらかじめビルド済みのCコンパイラを持ってきてビルドする
ではそのビルド済みのCコンパイラはどうやってビルドされたというのか
あらかじめビルド済みのCコンパイラを持ってきてビルドする
ではそのビルド済みのCコンパイラはどうやってビルドされたというのか
220デフォルトの名無しさん
2022/09/25(日) 08:27:58.95ID:bk7Mey46 たぶん世界で最初のC言語はアセンブリかB言語かフォートランか何か別の言語で書かれていたんじゃないの?
221デフォルトの名無しさん
2022/09/26(月) 14:35:28.98ID:heiSJ5NK BigBangは未だ仮説だ
222デフォルトの名無しさん
2022/09/28(水) 12:46:44.72ID:bM9/UxvQ toSeq(0..360|24).map(rad)
と描くと
Error: type mismatch: got <SteppedSlice>
と言われて怒られたので
toSeq(0..360).filter(x => x mod 24 == 0).map(rad)
で描き治したら一応動く訳だが
0..360|24
観たいに描く方法は?
と描くと
Error: type mismatch: got <SteppedSlice>
と言われて怒られたので
toSeq(0..360).filter(x => x mod 24 == 0).map(rad)
で描き治したら一応動く訳だが
0..360|24
観たいに描く方法は?
223デフォルトの名無しさん
2022/09/28(水) 13:40:07.41ID:tqdPdMIm iterator `|`(x: HSlice; y: int): int =
みたいな演算子のイテレータを定義すればいいじゃん。
みたいな演算子のイテレータを定義すればいいじゃん。
224デフォルトの名無しさん
2022/09/28(水) 17:12:46.81ID:XnHyDYU1 nim 1.6.8 出た
225デフォルトの名無しさん
2022/09/29(木) 21:45:04.30ID:9HIV6ABQ ウィ
226デフォルトの名無しさん
2022/10/02(日) 11:50:55.49ID:tLgfuLpM >>223
iterator items(s: SteppedSlice): int =
var c = s.a
while c <= s.b:
yield c
c += s.step
を定義したらイケました
有賀豚
iterator items(s: SteppedSlice): int =
var c = s.a
while c <= s.b:
yield c
c += s.step
を定義したらイケました
有賀豚
227デフォルトの名無しさん
2022/10/16(日) 04:20:39.65ID:ccy9anmS ニンニン
228デフォルトの名無しさん
2022/10/22(土) 14:42:48.48ID:Q+2x5vm1 本日のNimConf2022期待age
229デフォルトの名無しさん
2022/11/02(水) 12:51:11.01ID:VT3BATxp 1,2ヶ月くらい前に
Nim言語のマニュアル日本語訳がOSDNのページにアップされていて
これで5年後には結構人気が出るかもと喜んでいたら
突然ページが消滅してショックだった
キャッシュを探したけど発見できないので
コピー持ってる人がいたらどこかにアップしてもらえらばありがたいです
(ライセンス上問題が無ければですが)
Nim言語のマニュアル日本語訳がOSDNのページにアップされていて
これで5年後には結構人気が出るかもと喜んでいたら
突然ページが消滅してショックだった
キャッシュを探したけど発見できないので
コピー持ってる人がいたらどこかにアップしてもらえらばありがたいです
(ライセンス上問題が無ければですが)
230デフォルトの名無しさん
2022/11/02(水) 22:26:34.03ID:AEY2Eek1 古いキャッシュならInternet Archiveにあった
https://web.archive.org/web/20201128232605/http://nim-lang-081.osdn.jp/
https://web.archive.org/web/20200928154858/http://nim-lang-081.osdn.jp/docs/manual.html
まあキャッシュ古すぎて更新追いついてないけど
https://web.archive.org/web/20201128232605/http://nim-lang-081.osdn.jp/
https://web.archive.org/web/20200928154858/http://nim-lang-081.osdn.jp/docs/manual.html
まあキャッシュ古すぎて更新追いついてないけど
231デフォルトの名無しさん
2022/11/02(水) 22:33:40.08ID:AEY2Eek1 https://ja.osdn.net/users/megumi_engines/projects/
このひとがオーナーになってるプロジェクトの1つみたいだけど、Twitterのアカウントも消えちゃってるね
プライベートが忙しくなったのかな
このひとがオーナーになってるプロジェクトの1つみたいだけど、Twitterのアカウントも消えちゃってるね
プライベートが忙しくなったのかな
232デフォルトの名無しさん
2022/11/03(木) 15:08:48.38ID:lETVCa2o Last Update: 2022-09-21 01:12
Nim プログラミング言語 - 非公式日本語版 (翻訳活動終了)に関する活動はすべて終了しました。リポジトリの再公開予定はありません。
理由はよう判らん
githubにfork無かったかな
Nim プログラミング言語 - 非公式日本語版 (翻訳活動終了)に関する活動はすべて終了しました。リポジトリの再公開予定はありません。
理由はよう判らん
githubにfork無かったかな
233デフォルトの名無しさん
2022/11/04(金) 07:27:29.10ID:7DKhUjkg 日本語訳マニュアルの代わりになるかどうかはわからんけど
amazonで日本語のNim言語の書籍が売られてるよ。
amazonで日本語のNim言語の書籍が売られてるよ。
234デフォルトの名無しさん
2022/11/05(土) 00:35:21.38ID:mvfmSa9B 当時高校生の描いたやつか
CやC++との連携について
一行しか描かれてなかったな
CやC++との連携について
一行しか描かれてなかったな
235デフォルトの名無しさん
2022/11/06(日) 13:47:02.47ID:4CeLTSQg c2nim にがっかり感なんだけど
こんなもん?
それとも使い方間違ってる?
期待し過ぎ?
こんなもん?
それとも使い方間違ってる?
期待し過ぎ?
236デフォルトの名無しさん
2022/11/06(日) 16:29:46.57ID:zKDylNc8 単純化した具体例がないとなんとも
237デフォルトの名無しさん
2022/11/06(日) 16:42:07.10ID:06z0Icrt わかっているのかもしれないけど、c2nimはどんなC言語のコードもNim言語に変換するものではない。C言語ライブラリをNim言語から使うためのバインディングをCのヘッダーファイルから生成するツールみたいなものだ。
c2nimに似たことができるこんなツールもあるよ。
https://github.com/PMunch/futhark
c2nimに似たことができるこんなツールもあるよ。
https://github.com/PMunch/futhark
238デフォルトの名無しさん
2022/11/07(月) 12:40:52.04ID:1sAmX+SP >>230
全く使えないキャッシュだな
全く使えないキャッシュだな
239デフォルトの名無しさん
2022/11/07(月) 12:44:41.58ID:1sAmX+SP240デフォルトの名無しさん
2022/11/07(月) 13:21:56.37ID:V8od12Ai ダメだこりゃ
みんなでzigに移動しよう
みんなでzigに移動しよう
241デフォルトの名無しさん
2022/11/07(月) 14:15:04.63ID:xn4jxoWB いーんだよ グリーンだよ
242デフォルトの名無しさん
2022/11/08(火) 12:57:20.87ID:CnIxTlte template hoge(fuga: string): string =
fmt"{fuga}"
観たいなときに fuga が undeclared になるんだけどなんで?
fmt"{fuga}"
観たいなときに fuga が undeclared になるんだけどなんで?
243デフォルトの名無しさん
2022/11/08(火) 13:05:00.14ID:CnIxTlte >>237
なるほど良さげ
Sounds great, what's the catch?
Futhark is currently in an alpha state.
It currently doesn't support C++, and it doesn't understand things like function-style macros.
It might also mess up on definition types I haven't seen yet in the small handful of libraries I've tested it against.
All of these things are things I hope to get fixed up.
なるほど良さげ
Sounds great, what's the catch?
Futhark is currently in an alpha state.
It currently doesn't support C++, and it doesn't understand things like function-style macros.
It might also mess up on definition types I haven't seen yet in the small handful of libraries I've tested it against.
All of these things are things I hope to get fixed up.
244デフォルトの名無しさん
2022/11/08(火) 13:15:11.71ID:CnIxTlte >>242 自己レス
出来ました本当にありがとうございました
template hoge(fuga: string): string =
block:
let injectedfuga {.inject.} = fuga
fmt"{injected_fuga}"
https://qiita.com/momeemt/items/000d1f6c384f4f00e103
出来ました本当にありがとうございました
template hoge(fuga: string): string =
block:
let injectedfuga {.inject.} = fuga
fmt"{injected_fuga}"
https://qiita.com/momeemt/items/000d1f6c384f4f00e103
245デフォルトの名無しさん
2022/11/08(火) 18:53:20.46ID:nCLZIP1Q246デフォルトの名無しさん
2022/11/08(火) 19:07:14.22ID:2BJbmpY0 Pythonスレでテンプレになってる内容をNim用に変更したので
次スレからはテンプレにしてください
-----ここから
Nimの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://glot.io/new/nim 結構使える。
ttps://play.nim-lang.org/ 本家。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
-----ここまで
次スレからはテンプレにしてください
-----ここから
Nimの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://glot.io/new/nim 結構使える。
ttps://play.nim-lang.org/ 本家。
ttp://ideone.com/ デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://pastebin.com/ まずまずシンプル。
-----ここまで
247デフォルトの名無しさん
2022/11/09(水) 22:27:24.03ID:5vHWfdFN 判り初めた my Revolution
248デフォルトの名無しさん
2022/11/10(木) 13:14:50.85ID:JZ2iIpp8 試してみた
本家 https://play.nim-lang.org/#ix=4ftO
スッキリ https://glot.io/snippets/gf9x33imvc
ダメぽよ(実行時エラー?) https://ideone.com/9BYjHA (たまに死ぬよねこのサイト)
貼るだけ? https://pastebin.com/07h9Zjrx
ideoneがダメなのはバージョンの問題?
本家 https://play.nim-lang.org/#ix=4ftO
スッキリ https://glot.io/snippets/gf9x33imvc
ダメぽよ(実行時エラー?) https://ideone.com/9BYjHA (たまに死ぬよねこのサイト)
貼るだけ? https://pastebin.com/07h9Zjrx
ideoneがダメなのはバージョンの問題?
レスを投稿する
