次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
次世代言語27 Nim Zig Pony Carbon Gleam http://mevius.5ch.net/test/read.cgi/tech/1659660050/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
52: デフォルトの名無しさん (ワッチョイ a5a4-n+Ky) [sage] 2022/08/18(木) 00:15:49.61 ID:uPozsGij0 どんなバイナリになるかイメージはするけど確認なんてしないだろ 最適化ビルドするとまるで想像通りじゃなくてびびったりはする http://mevius.5ch.net/test/read.cgi/tech/1659660050/52
53: デフォルトの名無しさん (ワッチョイ 827c-Z8r5) [] 2022/08/18(木) 00:23:55.46 ID:K1uqUAUE0 >>52 だよね。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/53
54: デフォルトの名無しさん (ワッチョイ e9e6-xzlL) [sage] 2022/08/18(木) 01:11:39.51 ID:yLDzsouG0 >>42 俺特殊なハードウェア用のコンパイラとか作ってたんだけど コンパイラ作ってようやくCがちゃんと理解できたよ マジでコンパイラ作らないとわらないと思う http://mevius.5ch.net/test/read.cgi/tech/1659660050/54
55: デフォルトの名無しさん (アウアウウー Saa5-oUG4) [] 2022/08/18(木) 11:25:09.48 ID:p/limWqpa https://www.kinokuniya.co.jp/f/dsg-01-9784797337952 ISBN 4797337958 http://mevius.5ch.net/test/read.cgi/tech/1659660050/55
56: デフォルトの名無しさん (ワッチョイ e9e6-xzlL) [sage] 2022/08/18(木) 12:21:45.00 ID:yLDzsouG0 >>55 これはまあまあおすすめ ただ32bitCPU時代に書かれた本なのでそこが微妙なのと 理論的なものがほとんどなく構文解析もJavaCC使ってるし コード生成も毎回演算結果をスタックにpushするようなことをやってた気がする allocaも自前で実装するし ただCのような言語をアセンブリ言語へコンパイルするための勉強としては悪くない http://mevius.5ch.net/test/read.cgi/tech/1659660050/56
57: デフォルトの名無しさん (アウアウウー Saa5-oUG4) [] 2022/08/18(木) 14:58:14.10 ID:qt1eMpHHa 著者はruby厨 racc使う予定だったらしい http://mevius.5ch.net/test/read.cgi/tech/1659660050/57
58: デフォルトの名無しさん (ワッチョイ e936-4eON) [sage] 2022/08/18(木) 21:22:03.04 ID:1X5HVpNn0 intel ISAのドキュメントがオレオレ用語多くて意味わからん http://mevius.5ch.net/test/read.cgi/tech/1659660050/58
59: デフォルトの名無しさん (ドコグロ MM4f-06yp) [] 2022/09/05(月) 00:54:15.45 ID:cFc+MJ1wM あげ http://mevius.5ch.net/test/read.cgi/tech/1659660050/59
60: デフォルトの名無しさん (ワッチョイ 5f7c-eJ3+) [] 2022/09/05(月) 01:08:51.55 ID:9iTWKe040 nimも早くnull安全にしてくれないかね。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/60
61: デフォルトの名無しさん (ワッチョイ 0701-Jj1I) [] 2022/09/05(月) 01:34:04.91 ID:ARttffD10 ドラゴンブックを見て一つ一つ実装していくのが良いですよ。 誤植が猛烈に多いのも練習問題のような気がしてきますよ。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/61
62: デフォルトの名無しさん (テテンテンテン MM8f-jyuF) [sage] 2022/09/05(月) 08:15:38.43 ID:HWNfM8e/M >>60 このあたりは偏執狂のRustの方が上手だな。 いっそのこと参照型のゼロ値は禁止すればいいのに。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/62
63: デフォルトの名無しさん (ワッチョイ 5f4b-Iguz) [sage] 2022/09/05(月) 22:33:29.07 ID:1hFtemgL0 >>60 std/options で ひとまずOK じゃないか ? http://mevius.5ch.net/test/read.cgi/tech/1659660050/63
64: デフォルトの名無しさん (ワッチョイ 4704-Ka/N) [sage] 2022/09/06(火) 04:20:51.68 ID:6xx96XME0 Not nil annotationはversion2.xで使えるようになるらしいよ。 https://github.com/nim-lang/RFCs/issues/437 http://mevius.5ch.net/test/read.cgi/tech/1659660050/64
65: デフォルトの名無しさん (テテンテンテン MMff-jyuF) [sage] 2022/09/06(火) 08:29:06.48 ID:AHhd6ypaM >>64 not nil がデフォルトになるとあるね。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/65
66: デフォルトの名無しさん (ワッチョイ 5f4b-Iguz) [sage] 2022/09/06(火) 13:26:12.50 ID:3wQQbwTr0 >>64 2.0がいつ出るかなんて全く不明 1.8.0の次は1.10.0 次は1.12.0となって。。。 恐らく5年以上先 ? http://mevius.5ch.net/test/read.cgi/tech/1659660050/66
67: デフォルトの名無しさん (テテンテンテン MM8f-jyuF) [sage] 2022/09/08(木) 12:38:55.89 ID:H4D+Re2GM スタックフレームて大抵の実行環境で使用されているのに、スタックフレームに特化した言語て無いよね。 なんでなんだろう? http://mevius.5ch.net/test/read.cgi/tech/1659660050/67
68: デフォルトの名無しさん (ワッチョイ 4704-Ka/N) [sage] 2022/09/08(木) 17:28:20.37 ID:cKTVDYCV0 世の中のほとんどのプログラムにはヒープメモリが必要だからでしょ。 実行時じゃないとサイズがわからないことがあるし、スタック上に動的にメモリ領域を確保できるようにするとかなり大きめにスタックを確保しなくてはならくなるだろうし。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/68
69: デフォルトの名無しさん (ワッチョイ e7da-ZIhe) [sage] 2022/09/08(木) 18:05:59.15 ID:U6/gufpm0 スタックフレームに特化した言語ってどういうものを想定してるの? Forthみたいなスタック指向の言語とは違うよね http://mevius.5ch.net/test/read.cgi/tech/1659660050/69
70: デフォルトの名無しさん (ワッチョイ 5fe0-InTp) [sage] 2022/09/08(木) 18:22:30.25 ID:ydRaiFc90 実CPUのスタック操作なんて仕様にいれたら足枷だしね 関数のABIとは別に仮想的なローカルスタックを扱えるかんじ? http://mevius.5ch.net/test/read.cgi/tech/1659660050/70
71: デフォルトの名無しさん (ブーイモ MM8f-W2iS) [sage] 2022/09/08(木) 18:50:48.63 ID:11l7kxGRM >>69 COBOL++でしょ http://mevius.5ch.net/test/read.cgi/tech/1659660050/71
72: デフォルトの名無しさん (テテンテンテン MM8f-jyuF) [sage] 2022/09/08(木) 19:36:15.16 ID:gDKj2SJwM >>69 スタックフレームならではの特性をコードに明記できる、といったイメージ。 例えばスタックにあるインスタンスしか受け付けない(参照)引数とかあれば、shared ptrとかunique ptrの参照渡しも安全に使える。 Rustがそこそこいい感じなんだけど、なんか中途半端。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/72
73: デフォルトの名無しさん (ブーイモ MM8f-W2iS) [sage] 2022/09/08(木) 21:06:39.94 ID:g68A8C0LM >>72 Rustなら実用上はCopyで十分 http://mevius.5ch.net/test/read.cgi/tech/1659660050/73
74: デフォルトの名無しさん (ワッチョイ 0701-Iguz) [sage] 2022/09/08(木) 22:22:15.01 ID:D8Erj63H0 >>73 rustの話は向こうのスレでお願い http://mevius.5ch.net/test/read.cgi/tech/1659660050/74
75: デフォルトの名無しさん (ワッチョイ bf8c-jyuF) [sage] 2022/09/09(金) 07:32:44.98 ID:v1OYGNdb0 >>73 そういうのが中途半端だと言っている。日本語も読めないのかよ。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/75
76: デフォルトの名無しさん (ワッチョイ a95f-Yvh5) [] 2022/09/16(金) 11:26:01.87 ID:eTFy07in0 800 デフォルトの名無しさん sage 2022/09/15(木) 23:09:10.28 ID:KFRYW2wo 次スレはこれらの言語を入れてください Zig https://ziglang.org/ja/ Jakt https://github.com/SerenityOS/jakt http://mevius.5ch.net/test/read.cgi/tech/1659660050/76
77: デフォルトの名無しさん (ワッチョイ a563-jxjI) [sage] 2022/09/16(金) 11:34:21.79 ID:CoCetj5m0 Jaktは知らないな どんな処理系かな http://mevius.5ch.net/test/read.cgi/tech/1659660050/77
78: デフォルトの名無しさん (ワッチョイ a563-FZWc) [sage] 2022/09/16(金) 11:58:16.96 ID:CoCetj5m0 パッと見の構文はRustソックリ borrow checkerはなく、代わりにARCを使って実行時にメモリ管理しようとしてるっぽい なんでRustやZig使わないんだろうと気になったけど、自作したSerenityOSのためのエコシステムはできるだけすべて自作したい、くらいの動機みたい 参考: https://awesomekling.github.io/Memory-safety-for-SerenityOS/ まあZig未満のドマイナー言語にとどまりそう http://mevius.5ch.net/test/read.cgi/tech/1659660050/78
79: デフォルトの名無しさん (ワッチョイ a563-FZWc) [sage] 2022/09/16(金) 12:01:00.82 ID:CoCetj5m0 書き忘れた jaktはC++へのトランスパイラ、ってのも特徴 SerenityOSはC++で作ってたから、C++トランスパイラにすれば移行しやすかったってことだろう http://mevius.5ch.net/test/read.cgi/tech/1659660050/79
80: デフォルトの名無しさん (アウアウウー Sa5b-8eP5) [] 2022/09/18(日) 13:44:05.76 ID:KpBP36NGa トンズラパイラに観えた http://mevius.5ch.net/test/read.cgi/tech/1659660050/80
81: デフォルトの名無しさん (ワッチョイ 1e66-JEMU) [sage] 2022/09/28(水) 19:48:23.69 ID:Tun9Z/EC0 Nim追加 Language x10 x100 x200 x400 Memory Comment -------------------------------------------------------------- Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap, caller-hash by Context(Fnv1a_64)) Nim(clang) 0.211 1.171 2.245 4.372 4.2MB (CustomCountTable,LTO,ARC,caller-hash) New C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c,binary IO,jemalloc,O4,LTO) C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c,binary IO,jemalloc,O3,LTO) Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop) Go 0.164 1.346 2.654 5.279 3.8MB (caller hash) Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash) 以下、caller-hashではない Go 0.085 0.366 0.693 1.319 61.9MB (parallel.go,reserve 65536/2)<--マルチスレッド Nim(clang) 0.218 1.255 2.401 4.691 4.2MB (CustomCountTable,LTO,ARC) New Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap) Go 0.182 1.563 3.063 6.097 3.8MB (customhash.go,reserve 65536) Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO) Nim(clang) 0.316 2.241 4.371 8.633 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC,FNV) New Nim(clang) 0.332 2.387 4.652 9.152 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC) New zig 0.10.0-dev/gcc 12.2.0/clang 15.0.0/Nim 1.6.8/go go1.19.1/rust 1.64.0 CPU Zen3@boost~4.75GHz https://github.com/benhoyt/countwords https://mevius.5ch.net/test/read.cgi/tech/1663409149/529,450,461,478 今回の検証では、「C」は定点観測用として固定。 Nim/CustomCountTableはinc呼び出しの引数string copyを抑制。 Nimが想像より遥かに速くて「Cと同程度」以上の結果が出た。 http://mevius.5ch.net/test/read.cgi/tech/1659660050/81
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 227 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s