เชจเชฟเชฎ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชญเชพเชทเชพ เชฐเชฟเชฒเซ€เช 1.6.0

เชตเชฟเช•เชพเชธเชจเชพ เชเช• เชตเชฐเซเชท เชชเช›เซ€, เชธเชฟเชธเซเชŸเชฎ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชจเชฟเชฎ 1.6 เชจเซเช‚ เชชเซเชฐเช•เชพเชถเชจ เชชเซเชฐเช•เชพเชถเชฟเชค เชฅเชฏเซเช‚, เชœเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช• เชŸเชพเชˆเชชเชฟเช‚เช—เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเชพเชธเซเช•เชฒ, C++, เชชเชพเชฏเชฅเซ‹เชจ เช…เชจเซ‡ เชฒเชฟเชธเซเชช เชชเชฐ เชจเชœเชฐ เชฐเชพเช–เซ€เชจเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชจเชฟเชฎ เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชจเซ‡ C, C++ เช…เชฅเชตเชพ JavaScript เชฐเชœเซ‚เช†เชคเชฎเชพเช‚ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชคเซเชฏเชพเชฐเชฌเชพเชฆ, เชชเชฐเชฟเชฃเชพเชฎเซ€ C/C++ เช•เซ‹เชก เช•เซ‹เชˆเชชเชฃ เช‰เชชเชฒเชฌเซเชง เช•เชฎเซเชชเชพเชˆเชฒเชฐ (clang, gcc, icc, เชตเชฟเชเซเชฏเซเช…เชฒ C++) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเช•เซเชเชฟเช•เซเชฏเซเชŸเซ‡เชฌเชฒ เชซเชพเช‡เชฒเชฎเชพเช‚ เช•เชฎเซเชชเชพเชˆเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ C เชจเซ€ เชจเชœเซ€เช• เชชเชฐเชซเซ‹เชฐเซเชฎเชจเซเชธ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เชœเซ‹ เชคเชฎเซ‡ เชšเชฒเชพเชตเชตเชพเชจเชพ เช–เชฐเซเชšเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชจ เชฒเซ‹. เช•เชšเชฐเซ‹ เชเช•เชคเซเชฐ เช•เชฐเชจเชพเชฐ. เชชเชพเชฏเชฅเซ‹เชจเชจเซ€ เชœเซ‡เชฎ เชœ, เชจเชฟเชฎ เชฌเซเชฒเซ‹เช• เชกเชฟเชฒเชฟเชฎเชฟเชŸเชฐ เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชกเซ‡เชจเซเชŸเซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชฎเซ‡เชŸเชพเชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชŸเซ‚เชฒเซเชธ เช…เชจเซ‡ เชกเซ‹เชฎเซ‡เชจ-เชตเชฟเชถเชฟเชทเซเชŸ เชญเชพเชทเชพเช“ (DSLs) เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เช•เซเชทเชฎเชคเชพเช“ เชธเชชเซ‹เชฐเซเชŸเซ‡เชก เช›เซ‡. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช•เซ‹เชก MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชจเชตเชพ เชชเซเชฐเช•เชพเชถเชจเชฎเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡:

  • เชชเซเชจเชฐเชพเชตเชฐเซเชคเช•เซ‹ เชฎเชพเชŸเซ‡ เชเช• เชชเซเชฐเช•เชพเชฐ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชธเชพเชฅเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค[T] เชตเชฐเซเช— เช‰เชฎเซ‡เชฐเซเชฏเซ‹. เชจเชฎเซ‚เชจเซ‹ เชธเชฐเชตเชพเชณเซ‹[T](a: เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค[T]): T = var เชชเชฐเชฟเชฃเชพเชฎ: A เชฎเชพเช‚ ai เชฎเชพเชŸเซ‡ T: เชชเชฐเชฟเชฃเชพเชฎ += ai เชชเชฐเชฟเชฃเชพเชฎ เชเชธเชฐเซเชŸ sum(iota(3)) == 0 + 1 + 2 # เช…เชฅเชตเชพ 'iota( 3) เชธเชฐเชตเชพเชณเซ‹'
  • เชชเชธเช‚เชฆเช—เซ€เชฏเซเช•เซเชค เชฐเซ€เชคเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ ".effectOf" เชเชจเซ‹เชŸเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚. เชœเซเชฏเชพเชฐเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡(nimHasEffectsOf): {.เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช•: "เช•เชกเช• เช…เชธเชฐ".} else: {.pragma: effectsOf.} proc mysort(s: seq; cmp: proc(a, b: T): int) {. effectsOf: cmp. }
  • เชเช• เชจเชตเซ‹ เช†เชฏเชพเชค เชตเชพเช•เซเชฏเชฐเชšเชจเชพ "เช‡เชฎเซเชชเซ‹เชฐเซเชŸ foo {.all.}" เชชเซเชฐเชธเซเชคเชพเชตเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ เชฎเชพเชคเซเชฐ เชธเชพเชฐเซเชตเชœเชจเชฟเช• เชœ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช–เชพเชจเช—เซ€ เชชเซเชฐเชคเซ€เช•เซ‹ เชชเชฃ เช†เชฏเชพเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช‘เชฌเซเชœเซ‡เช•เซเชŸเชจเชพ เช–เชพเชจเช—เซ€ เช•เซเชทเซ‡เชคเซเชฐเซ‹เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, std/importutils เชฎเซ‹เชกเซเชฏเซเชฒ เช…เชจเซ‡ เช–เชพเชจเช—เซ€Access API เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เชธเชฟเชธเซเชŸเชฎ {.all.} เชฎเชพเช‚เชฅเซ€ system2 เช†เชฏเชพเชค เชถเซ‚เชจเซเชฏ echo system2.ThisIsSystem เช†เชฏเชพเชค os {.all.} echo weirdTarget
  • เชกเซ‹เชŸ เช“เชชเชฐเซ‡เชŸเชฐเซ‹ เชฎเชพเชŸเซ‡ เชชเซเชฐเชพเชฏเซ‹เช—เชฟเช• เชธเชฎเชฐเซเชฅเชจ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช—เชคเชฟเชถเซ€เชฒ เช•เซเชทเซ‡เชคเซเชฐเซ‹เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. std/json เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เช†เชฏเชพเชค เช•เชฐเซ‹ '.?'(a: JsonNode, b: untyped{ident}): JsonNode = a[astToStr(b)] เชšเชพเชฒเซ‹ j = %*{โ€œa1โ€: {โ€œa2โ€: 10}} assert 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(#)".} assert 0xffffffffffffffff'big == (1'big shl 64'big) - 1'big
  • เช•เชฎเซเชชเชพเชˆเชฒเชฐ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏเชฎเชพเช‚เชฅเซ€ เชจเชฟเชฎ เช†เชฆเซ‡เชถเซ‹เชจเซ‡ เชธเซ€เชงเชพ เชœ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ โ€œโ€”eval:cmdโ€ เช†เชฆเซ‡เชถเชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ โ€˜nim โ€”eval:โ€echo 1โ€ณ.
  • เชจเชฟเชฎเชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฌเซ‡เช•เชเชจเซเชก เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เชเช•เซเชธเซเชŸเซ‡เชจเซเชถเชจเซเชธ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.
  • เชญเซ‚เชฒ เชธเชพเชฅเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เชธเช‚เชฆเชฐเซเชญ เชฌเชคเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชญเซ‚เชฒ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชตเชฟเชธเซเชคเซƒเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เช•เชธเซเชŸเชฎ เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชšเซ‡เชคเชตเชฃเซ€เช“ เชฒเชพเช—เซ เช•เชฐเซ€.
  • "--gc:arc" เช…เชจเซ‡ "--gc:orc" เช—เชพเชฐเซเชฌเซ‡เชœ เช•เชฒเซ‡เช•เซเชŸเชฐเซเชธเชจเซเช‚ เชชเซเชฐเชฆเชฐเซเชถเชจ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชธเซเชงเชพเชฐเซ‡เชฒ เช›เซ‡.
  • เชคเชฎเชพเชฎ เชฌเซ‡เช•เชเชจเซเชกเซ‡ เชชเซ‚เชฐเซเชฃเชพเช‚เช•เซ‹ เช…เชจเซ‡ เชซเซเชฒเซ‹เชŸเชฟเช‚เช— เชชเซ‹เชˆเชจเซเชŸ เชจเช‚เชฌเชฐเซ‹เชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชกเชจเซ€ เชšเซ‹เช•เชธเชพเชˆ เช…เชจเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช‚ เชธเซเชงเชพเชฐเซ‹ เช•เชฐเซเชฏเซ‹ เช›เซ‡.
  • เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชธเชพเชฅเซ‡ JS, VM เช…เชจเซ‡ เชจเชฟเชฎเชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฌเซ‡เช•เชเชจเซเชกเชจเซ€ เชธเซเชงเชพเชฐเซ‡เชฒ เชธเซเชธเช‚เช—เชคเชคเชพ เช•เซ‡ เชœเซ‡ เช…เช—เชพเช‰ เชฎเชพเชคเซเชฐ C เชฌเซ‡เช•เชเชจเซเชก เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเชพ เชนเชคเชพ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, std/prelude เชฎเซ‹เชกเซเชฏเซเชฒ). C, JS เช…เชจเซ‡ VM เชฌเซ‡เช•เชเชจเซเชก เชธเชพเชฅเซ‡ stdlib เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡.
  • Apple Silicon/M1 เชšเชฟเชช, 32-bit RISC-V, armv8l เช…เชจเซ‡ CROSSOS เชธเชฟเชธเซเชŸเชฎเซ‹ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเชพเชฏเซ‡เชฒ เชธเชฎเชฐเซเชฅเชจ.
  • เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ std/jsbigints, std/tempfiles เช…เชจเซ‡ std/sysrand เช‰เชฎเซ‡เชฐเซเชฏเชพ. เชธเชฟเชธเซเชŸเชฎ, เช—เชฃเชฟเชค, เชฐเซ‡เชจเซเชกเชฎ, json, jsonutils, os, typetraits, wrapnils, lists เช…เชจเซ‡ hashes เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชฎเชพเช‚ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชธเซเชงเชพเชฐเชพเช“ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹