เดจเดฟเด‚ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดพ เดฑเดฟเดฒเต€เดธเต 1.6.0

เด’เดฐเต เดตเตผเดทเดคเตเดคเต† เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดธเดฟเดธเตเดฑเตเดฑเด‚ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเดพเดฏ Nim 1.6 เดจเตเดฑเต† เดฑเดฟเดฒเต€เดธเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต, เด…เดคเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดŸเตˆเดชเตเดชเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เดชเดพเดธเตเด•เตฝ, C++, เดชเตˆเดคเตเดคเตบ, เดฒเดฟเดธเตเดชเต เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด’เดฐเต เด•เดฃเตเดฃเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดพเดฃเต. เดจเดฟเด‚ เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด’เดฐเต C, C++ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ JavaScript เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดธเดฎเดพเดนเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต, เดคเดคเตเดซเดฒเดฎเดพเดฏเตเดฃเตเดŸเดพเด•เตเดจเตเดจ C/C++ เด•เต‹เดกเต, เดฒเดญเตเดฏเดฎเดพเดฏ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เด‚เดชเตˆเดฒเตผ (clang, gcc, icc, Visual C++) เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเดฌเดฟเตพ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดšเต†เดฒเดตเต เดจเดฟเด™เตเด™เตพ เด•เดฃเด•เตเด•เดฟเดฒเต†เดŸเตเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, C เดจเต เด…เดŸเตเดคเตเดคเต เดชเตเดฐเด•เดŸเดจเด‚ เดจเต‡เดŸเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเดพเดฒเดฟเดจเตเดฏเด‚ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเดตเตป. เดชเตˆเดคเตเดคเดฃเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ, เดฌเตเดฒเต‹เด•เตเด•เต เดกเดฟเดฒเดฟเดฎเดฟเดฑเตเดฑเดฑเตเด•เดณเดพเดฏเดฟ เดจเดฟเด‚ เด‡เตปเดกเดจเตเดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดฎเต†เดฑเตเดฑเดพเดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดŸเต‚เดณเตเด•เดณเตเด‚ เดกเตŠเดฎเต†เดฏเตเตป-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดญเดพเดทเด•เตพ (เดกเดฟเดŽเดธเตเดŽเตฝ) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเด•เดณเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เดŽเด‚เดเดŸเดฟ เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเดฒเดพเดฃเต เดชเตเดฐเต‹เดœเด•เตเดŸเต เด•เต‹เดกเต เดจเตฝเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต.

เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเดฟเดฒเต† เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต:

  • เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เด’เดฐเต เดคเดฐเด‚ เด‡เด‚เดชเตเดฒเดฟเดฎเต†เดจเตเดฑเต‡เดทเตป เด‰เดณเตเดณ เด‡เดฑเตเดฑเดฑเดฌเดฟเตพ[T] เด•เตเดฒเดพเดธเต เดšเต‡เตผเดคเตเดคเต. เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต เดคเตเด•[T](a: เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดตเตเดจเตเดจ[T]): T = var เดซเดฒเด‚: a-เดฏเดฟเดฒเต† AI-เดฏเตโ€Œเด•เตเด•เตเดณเตเดณ T: เดซเดฒเด‚ += AI เดซเดฒเด‚ เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เดคเตเด•(iota(3)) == 0 + 1 + 2 # เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ 'iota( 3).เดคเตเด•'
  • เด‡เดซเด•เตโ€Œเดฑเตเดฑเตเด•เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต ".เดŽเดซเด•เตเดฑเตเดฑเตโ€Œเด“เดซเต" เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพเด•เตเด•เต เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด• เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต. เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ (nimHasEffectsOf): {.เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด•เด‚: "เด•เด เดฟเดจเดฎเดพเดฏ เดซเดฒเด™เตเด™เตพ".} เดฎเดฑเตเดฑเตเดณเตเดณเดต: {.pragma: effectsOf.} proc mysort(s: seq; cmp: proc(a, b: T): int) {.effectsOf: cmp. }
  • เด’เดฐเต เดชเตเดคเดฟเดฏ เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดตเดพเด•เตเดฏเด˜เดŸเดจ "เด‡เดฎเตเดชเต‹เตผเดŸเตเดŸเต เดซเต‚ {.all.}" เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดชเตŠเดคเตเดตเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดธเตเดตเด•เดพเดฐเตเดฏ เดšเดฟเดนเตเดจเด™เตเด™เดณเตเด‚ เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เดณเตเดŸเต† เดธเตเดตเด•เดพเดฐเตเดฏ เดซเต€เตฝเดกเตเด•เตพ เด†เด•เตโ€Œเดธเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, std/importutils เดฎเตŠเดกเตเดฏเต‚เดณเตเด‚ เดชเตเดฐเตˆเดตเดฑเตเดฑเต เด†เด•เตโ€Œเดธเดธเต เดŽเดชเดฟเดเดฏเตเด‚ เดšเต‡เตผเดคเตเดคเต. เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต {.all.} เดŽเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต system2 เด‡เด‚เดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดฟเดฒเตเดฒ echo system2. ThisIsSystem import os {.all.} echo weirdTarget
  • เดกเตˆเดจเดพเดฎเดฟเด•เต เดซเต€เตฝเดกเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดตเตเดจเตเดจ เดกเต‹เดŸเตเดŸเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเตผเดฎเดพเตผเด•เตเด•เต เดชเดฐเต€เด•เตเดทเดฃเดพเดคเตเดฎเด• เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต. เด‡เดฑเด•เตเด•เตเดฎเดคเดฟ std/json เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต '.?'(a: JsonNode, b: untyped{ident}): JsonNode = a[astToStr(b)] เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด• j = %*{โ€œa1โ€: {โ€œa2โ€: 10}} เด‰เดฑเดชเตเดชเดฟเด•เตเด•เตเด• j.?a1.?a2.getInt == 10
  • เดฌเตเดฒเต‹เด•เตเด•เต เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเดฟเตฝ เด…เดงเดฟเด• เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเด‚. เดŸเต†เด‚เดชเตเดฒเต‡เดฑเตเดฑเต fn(a = 1, b = 2, body1, body2) = เดจเดฟเดฐเดธเดฟเด•เตเด•เตเด• fn(a = 1): bar1 do: bar2
  • เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดจเดฟเตผเดตเดšเดฟเดšเตเดš เด…เด•เตเดทเดฐเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, "-128'bignum'"). func `'big`*(num: cstring): JsBigInt {.importjs: "BigInt(#)".} 0xffffffffffff'big == (1'big shl 64'big) - 1'big
  • เด•เดฎเดพเตปเดกเต เดฒเตˆเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด‚ เด•เดฎเดพเตปเดกเตเด•เตพ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เด‚เดชเตˆเดฒเตผ โ€œโ€”eval:cmdโ€ เด•เดฎเดพเตปเดกเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต โ€˜nim โ€”eval:โ€echo 1โ€ณโ€™.
  • เดจเดฟเด‚เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฌเดพเด•เตเด•เต†เตปเดกเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดจเตฝเด•เดฟ.
  • เดชเดฟเดถเด•เตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸ เดธเดจเตเดฆเตผเดญเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดชเดฟเดถเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดตเดณเดฐเต†เดฏเดงเดฟเด•เด‚ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเดšเตเดšเต. เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เด•เด‚เดชเตˆเดฒเตผ เดฎเตเดจเตเดจเดฑเดฟเดฏเดฟเดชเตเดชเตเด•เตพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ.
  • "--gc:arc", "--gc:orc" เดŽเดจเตเดจเต€ เดฎเดพเดฒเดฟเดจเตเดฏ เดถเต‡เด–เดฐเดฃเด•เตเด•เดพเดฐเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ.
  • เดŽเดฒเตเดฒเดพ เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เดณเตเด‚ เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏเด•เดณเตเด‚ เดซเตเดฒเต‹เดŸเตเดŸเดฟเด‚เด—เต เดชเต‹เดฏเดฟเดจเตเดฑเต เดจเดฎเตเดชเดฑเตเด•เดณเตเด‚ เดชเดพเดดเตโ€Œเดธเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเดฟเดจเตเดฑเต† เด•เตƒเดคเตเดฏเดคเดฏเตเด‚ เดชเตเดฐเด•เดŸเดจเดตเตเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.
  • เดฎเตเดฎเตเดชเต C เดฌเดพเด•เตเด•เต†เตปเดกเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเดฟเดฐเตเดจเตเดจ เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดณเตเดณ JS, VM, เดจเดฟเด‚เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เดณเตเดŸเต† เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดŸ เด…เดจเตเดฏเต‹เดœเตเดฏเดค (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, std/prelude เดฎเตŠเดกเตเดฏเต‚เตพ). C, JS, VM เดฌเดพเด•เตเด•เต†เตปเดกเตเด•เดณเตเดณเตเดณ stdlib เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เดณเตเดŸเต† เดชเดฐเดฟเดถเต‹เดงเดจ เดธเตเดฅเดพเดชเดฟเดšเตเดšเต.
  • Apple Silicon/M1 เดšเดฟเดชเตเดชเต, 32-เดฌเดฟเดฑเตเดฑเต RISC-V, armv8l, CROSSOS เดธเดฟเดธเตเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต.
  • เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ std/jsbigints, std/tempfiles, std/sysrand เดŽเดจเตเดจเดฟเดต เดšเต‡เตผเดคเตเดคเต. เดธเดฟเดธเตเดฑเตเดฑเด‚, เด—เดฃเดฟเดคเด‚, เด•เตเดฐเดฎเดฐเดนเดฟเดคเด‚, json, jsonutils, os, เดŸเตˆเดชเตเดชเตเดŸเตเดฐเต†เดฏเดฟเดฑเตเดฑเตเด•เตพ, เดฑเดพเดชเตโ€Œเดจเดฟเดฒเตเด•เตพ, เดฒเดฟเดธเตเดฑเตเดฑเตเด•เตพ, เดนเดพเดทเต เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เด•เดพเดฐเตเดฏเดฎเดพเดฏ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฒเตเด•เตพ เดตเดฐเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•