เจจเจฟเจฎ 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 เจฎเฉ‹เจกเฉ€เจŠเจฒ เจ…เจคเฉ‡ privateAccess API เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค เจธเจฟเจธเจŸเจฎ เจคเฉ‹เจ‚ {.all.} as system2 import nil echo system2.ThisIsSystem import os {.all.} echo weirdTarget
  • เจกเฉŒเจŸ เจ“เจชเจฐเฉ‡เจŸเจฐเจพเจ‚ เจฒเจˆ เจชเฉเจฐเจฏเฉ‹เจ—เจพเจคเจฎเจ• เจธเจนเจพเจ‡เจคเจพ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ, เจœเจฟเจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ—เจคเฉ€เจธเจผเฉ€เจฒ เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆเฅค เจ‡เฉฐเจชเฉ‹เจฐเจŸ เจ•เจฐเฉ‹ 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 เจ…เจคเฉ‡ nimscript เจฌเฉˆเจ•เจเจ‚เจก เจฆเฉ€ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเจพเจฒ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจธเจฟเจฐเจซเจผ 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, เจŸเจพเจˆเจชเจŸเฉเจฐเฉ‡เจŸเจธ, เจฐเฉˆเจชเจจเฉ€เจฒ, เจธเฉ‚เจšเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจนเฉˆเจธเจผ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจเฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹