เจฎเฉ‹เจœเฉ‹ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฌเฉ€เจŸเจพ เจฐเฉ€เจฒเฉ€เจœเจผ 1.0

ะŸั€ะตะดัั‚ะฐะฒะปะตะฝ ะฟะตั€ะฒั‹ะน ะฑะตั‚ะฐ ะฒั‹ะฟัƒัะบ ัะทั‹ะบะฐ ะฟั€ะพะณั€ะฐะผะผะธั€ะพะฒะฐะฝะธั Mojo 1.0, ะบะพั‚ะพั€ั‹ะน ะพะทะฝะฐะผะตะฝะพะฒะฐะป ัั‚ะฐะฑะธะปะธะทะฐั†ะธัŽ ัะทั‹ะบะฐ ะธ ั€ะตะฐะปะธะทะฐั†ะธัŽ ะฒัะตั… ะฑะฐะทะพะฒั‹ั… ะฒะพะทะผะพะถะฝะพัั‚ะตะน. ะ’ั‹ะฟัƒัะบ ะพั†ะตะฝะธะฒะฐะตั‚ัั ะบะฐะบ ะฟะพั‡ั‚ะธ ะณะพั‚ะพะฒั‹ะน ะบ ะฟะพะฒัะตะผะตัั‚ะฝะพะผัƒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธัŽ. ะคะธะฝะฐะปัŒะฝั‹ะน ั€ะตะปะธะท Mojo 1.0 ะพะถะธะดะฐะตั‚ัั ะฒ ะฝะฐั‡ะฐะปะต ะพัะตะฝะธ. ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะดะฐะฝะฝะพะน ะฒะตั‚ะบะธ ะฟะพะทะฒะพะปะธั‚ ะฝะฐั‡ะฐั‚ัŒ ั€ะฐะทั€ะฐะฑะฐั‚ั‹ะฒะฐั‚ัŒ ะบั€ัƒะฟะฝั‹ะต ะฟั€ะพะตะบั‚ั‹, ะฝะต ะพะฟะฐัะฐัััŒ ะฟะพัะฒะปะตะฝะธั ะฒ ัะทั‹ะบะต ะธะทะผะตะฝะตะฝะธะน, ะฝะฐั€ัƒัˆะฐัŽั‰ะธั… ัะพะฒะผะตัั‚ะธะผะพัั‚ัŒ.

ะ’ ัะพัั‚ะฐะฒ ะฟะปะฐั‚ั„ะพั€ะผั‹ ะฒะบะปัŽั‡ะตะฝั‹ ะบะพะผะฟะพะฝะตะฝั‚ั‹, ะฝะตะพะฑั…ะพะดะธะผั‹ะต ะดะปั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ะฟั€ะธะปะพะถะตะฝะธะน ะฝะฐ ัะทั‹ะบะต Mojo, ะฒะบะปัŽั‡ะฐั ะบะพะผะฟะธะปัั‚ะพั€, runtime, ะธะฝั‚ะตั€ะฐะบั‚ะธะฒะฝัƒัŽ REPL-ะพะฑะพะปะพั‡ะบัƒ ะดะปั ัะฑะพั€ะบะธ ะธ ะทะฐะฟัƒัะบะฐ ะฟั€ะพะณั€ะฐะผะผ, ะพั‚ะปะฐะดั‡ะธะบ, ะดะพะฟะพะปะฝะตะฝะธะต ะบ ั€ะตะดะฐะบั‚ะพั€ัƒ ะบะพะดะฐ Visual Studio Code (VS Code) ั ะฟะพะดะดะตั€ะถะบะพะน ะฐะฒั‚ะพะดะพะฟะพะปะฝะตะฝะธั ะฒะฒะพะดะฐ, ั„ะพั€ะผะฐั‚ะธั€ะพะฒะฐะฝะธั ะบะพะดะฐ ะธ ะฟะพะดัะฒะตั‚ะบะธ ัะธะฝั‚ะฐะบัะธัะฐ, ะผะพะดัƒะปัŒ ะดะปั ะธะฝั‚ะตะณั€ะฐั†ะธะธ ั Jupyter ะดะปั ัะฑะพั€ะบะธ ะธ ะทะฐะฟัƒัะบะฐ Mojo notebook. ะ˜ัั…ะพะดะฝั‹ะน ะบะพะด ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบะธ Mojo ะพั‚ะบั€ั‹ั‚ั‹ ะฟะพะด ะปะธั†ะตะฝะทะธะตะน Apache 2.0 c ะธัะบะปัŽั‡ะตะฝะธัะผะธ ะพั‚ ะฟั€ะพะตะบั‚ะฐ LLVM, ะดะพะฟัƒัะบะฐัŽั‰ะธะผะธ ัะผะตัˆะธะฒะฐะฝะธะต ั ะบะพะดะพะผ ะฟะพะด ะปะธั†ะตะฝะทะธะตะน GPLv2. ะ˜ัั…ะพะดะฝั‹ะน ะบะพะด ะบะพะผะฟะธะปัั‚ะพั€ะฐ ะฟะปะฐะฝะธั€ัƒัŽั‚ ะพั‚ะบั€ั‹ั‚ัŒ ะฟะพัะปะต ะทะฐะฒะตั€ัˆะตะฝะธั ัั‚ะฐะฑะธะปะธะทะฐั†ะธะธ ะฒะฝัƒั‚ั€ะตะฝะฝะตะน ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹.

เจฎเฉ‹เจœเฉ‹ เจญเจพเจธเจผเจพ LLVM เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉ‡ เจธเฉฐเจธเจฅเจพเจชเจ• เจ…เจคเฉ‡ เจฎเฉเฉฑเจ– เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจŸ เจ…เจคเฉ‡ เจธเจตเจฟเจซเจŸ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจฆเฉ‡ เจจเจฟเจฐเจฎเจพเจคเจพ เจ•เฉเจฐเจฟเจธ เจฒเฉˆเจŸเจจเจฐ เจฆเฉ€ เจ…เจ—เจตเจพเจˆ เจตเจฟเฉฑเจš เจตเจฟเจ•เจธเจค เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆเฅค เจฎเฉ‹เจœเฉ‹ เจฆเจพ เจธเฉฐเจŸเฉˆเจ•เจธ เจชเจพเจˆเจฅเจจ เจญเจพเจธเจผเจพ 'เจคเฉ‡ เจ…เจงเจพเจฐเจค เจนเฉˆ, เจ…เจคเฉ‡ เจŸเจพเจˆเจช เจธเจฟเจธเจŸเจฎ C/C++ เจฆเฉ‡ เจจเฉ‡เฉœเฉ‡ เจนเฉˆเฅค เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ†เจฎ-เจ‰เจฆเฉ‡เจธเจผ เจตเจพเจฒเฉ€ เจญเจพเจธเจผเจพ เจตเจœเฉ‹เจ‚ เจฆเจฐเจธเจพเจ‡เจ† เจ—เจฟเจ† เจนเฉˆ เจœเฉ‹ เจธเจฟเจธเจŸเจฎ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจชเจพเจˆเจฅเจจ เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเจพ เจตเจฟเจธเจคเจพเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเจพเจฒ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจฒเจˆ เจขเฉเจ•เจตเฉ€เจ‚ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เฉฑเจš-เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจตเจพเจฒเฉ‡ เจ…เฉฐเจค เจ‰เจคเจชเจพเจฆเจพเจ‚ เจฒเจˆ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฆเฉ‡ เจจเจพเจฒ เจ–เฉ‹เจœ เจตเจฟเจ•เจพเจธ เจ…เจคเฉ‡ เจคเฉ‡เจœเจผ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจชเจฟเฉฐเจ— เจฒเจˆ เจตเจฐเจคเฉ‹เจ‚ เจตเจฟเฉฑเจš เจ†เจธเจพเจจเฉ€ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฆเฉ€ เจนเฉˆเฅค

เจœเจพเจฃเฉ‡-เจชเจ›เจพเจฃเฉ‡ เจชเจพเจˆเจฅเจจ เจธเฉฐเจŸเฉˆเจ•เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจฆเฉเจ†เจฐเจพ เจธเจฐเจฒเจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เฉฐเจคเจฎ เจ‰เจคเจชเจพเจฆเจพเจ‚ เจฆเฉ‡ เจตเจฟเจ•เจพเจธ เจจเฉ‚เฉฐ เจฎเจธเจผเฉ€เจจ เจ•เฉ‹เจก, เจฎเฉˆเจฎเฉ‹เจฐเฉ€-เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฟเจงเฉ€เจ†เจ‚, เจ…เจคเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจชเฉเจฐเจตเฉ‡เจ— เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจจเจพเจฒ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจฆเฉเจ†เจฐเจพ เจธเจนเฉ‚เจฒเจค เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‰เฉฑเจš เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจตเจฟเจชเจฐเฉ€เจค เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจธเจฐเฉ‹เจคเจพเจ‚, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ GPU, เจฎเจธเจผเฉ€เจจ เจธเจฟเจ–เจฒเจพเจˆ เจฒเจˆ เจตเจฟเจธเจผเฉ‡เจธเจผ เจเจ•เจธเจฒเฉ‡เจŸเจฐ เจ…เจคเฉ‡ เจตเฉˆเจ•เจŸเจฐ เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ (SIMD) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ—เจฃเจจเจพ เจฆเฉ‡ เจธเจฎเจพเจจเจพเจ‚เจคเจฐเฉ€เจ•เจฐเจจ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจคเฉ€เจฌเจฐ เจ—เจฃเจจเจพเจตเจพเจ‚ เจฒเจˆ, เจธเจพเจฐเฉ‡ เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ— เจธเจฐเฉ‹เจคเจพเจ‚ เจฆเฉ€ เจธเจฎเจพเจจเจคเจพ เจ…เจคเฉ‡ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ C/C++ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจนเจคเจฐ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจญเจพเจธเจผเจพ เจธเจฅเจฟเจฐ เจŸเจพเจˆเจชเจฟเฉฐเจ— เจ…เจคเฉ‡ เจ˜เฉฑเจŸ-เจชเฉฑเจงเจฐเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€-เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจœเฉฐเจ—เจพเจฒ เจฆเฉ€ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจธเฉฐเจฆเจฐเจญ เจฒเจพเจˆเจซเจŸเจพเจˆเจฎ เจŸเจฐเฉˆเจ•เจฟเฉฐเจ— เจ…เจคเฉ‡ เจ‰เจงเจพเจฐ เจšเฉˆเจ•เจฐเฅค เจ‡เจธเจฆเฉ‡ เจจเจพเจฒ เจนเฉ€, เจญเจพเจธเจผเจพ เจนเฉ‡เจ เจฒเฉ‡ เจชเฉฑเจงเจฐ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจฎเฉŒเจ•เฉ‡ เจตเฉ€ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจ†เจ‡เฉฐเจŸเจฐ เจ•เจฟเจธเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจเจ•เจธเฉˆเจธ เจ•เจฐเจจเจพ, เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค SIMD เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจจเจพ, เจœเจพเจ‚ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ TensorCores เจ…เจคเฉ‡ AMX เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆเฅค

เจฎเฉ‹เจœเฉ‹ เจจเฉ‚เฉฐ JIT เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจตเจฟเจ†เจ–เจฟเจ† เจฎเฉ‹เจก เจตเจฟเฉฑเจš, เจ…เจคเฉ‡ เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจŸเฉ‡เจฌเจฒ เจซเจพเจˆเจฒเจพเจ‚ (AOT, เจธเจฎเฉ‡เจ‚ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚) เจตเจฟเฉฑเจš เจธเฉฐเจ•เจฒเจจ เจฒเจˆ เจตเจฐเจคเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจ•เฉ‹เจฒ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ“เจชเจŸเฉ€เจฎเจพเจˆเจœเฉ‡เจธเจผเจจ, เจ•เฉˆเจšเจฟเฉฐเจ— เจ…เจคเฉ‡ เจกเจฟเจธเจŸเฉเจฐเฉ€เจฌเจฟเจŠเจŸ เจ•เฉฐเจชเจพเจˆเจฒเฉ‡เจธเจผเจจ เจฒเจˆ เจฌเจฟเจฒเจŸ-เจ‡เจจ เจ†เจงเฉเจจเจฟเจ• เจคเจ•เจจเจพเจฒเฉ‹เจœเฉ€เจ†เจ‚ เจนเจจเฅค เจฎเฉ‹เจœเฉ‹ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจธเฉ‹เจฐเจธ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจเจฒเจเจฒเจตเฉ€เจเจฎ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจฆเฉเจ†เจฐเจพ เจตเจฟเจ•เจธเจค เจนเฉ‡เจ เจฒเฉ‡-เจชเฉฑเจงเจฐเฉ€ เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจ•เฉ‹เจก MLIR (เจฎเจฒเจŸเฉ€-เจฒเฉˆเจตเจฒ เจ‡เฉฐเจŸเจฐเจฎเฉ€เจกเฉ€เจเจŸ เจชเฉเจฐเจคเฉ€เจจเจฟเจงเจคเจพ) เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ•เฉฐเจชเจพเจˆเจฒเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเฉฑเจ–-เจตเฉฑเจ– เจฌเฉˆเจ•เจเจ‚เจกเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจฎเจธเจผเฉ€เจจ เจ•เฉ‹เจก เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ MLIR เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

ะกั€ะตะดะธ ะธะทะผะตะฝะตะฝะธะน ะฒ Mojo 1.0.0b1:

  • ะšะปัŽั‡ะตะฒะพะต ัะปะพะฒะพ ยซfnยป ะพะฑัŠัะฒะปะตะฝะพ ัƒัั‚ะฐั€ะตะฒัˆะธะผ โ€” ะดะปั ะพะฑัŠัะฒะปะตะฝะธั ั„ัƒะฝะบั†ะธะน ัะปะตะดัƒะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ะบะปัŽั‡ะตะฒะพะต ัะปะพะฒะพ ยซdefยป (ะฒะพะทะผะพะถะฝะพัั‚ะธ ยซfnยป ะธ ยซdefยป ะพะฑัŠะตะดะธะฝะตะฝั‹, ะธ ะฒ ยซdefยป ั€ะตะฐะปะธะทะพะฒะฐะฝะฐ ัะตะผะฐะฝั‚ะธะบะฐ ยซfnยป ะฑะตะท ะณะตะฝะตั€ะฐั†ะธะธ ะธัะบะปัŽั‡ะตะฝะธะน).
  • ะฃะฝะธั„ะธั†ะธั€ะพะฒะฐะฝะฐ ั€ะตะฐะปะธะทะฐั†ะธั ะทะฐะผั‹ะบะฐะฝะธะน (closure). ะะต ัƒั‡ะธั‚ั‹ะฒะฐัŽั‰ะธะต ะบะพะฝั‚ะตะบัั‚ ะทะฐะผั‹ะบะฐะฝะธั (stateless closure) ั‚ะตะฟะตั€ัŒ ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ะฟั€ะตะพะฑั€ะฐะทัƒัŽั‚ัั ะฒ ั„ัƒะฝะบั†ะธะธ ะฒะตั€ั…ะฝะตะณะพ ัƒั€ะพะฒะฝั ะธ ะผะพะณัƒั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั ะบะฐะบ callback-ะฒั‹ะทะพะฒั‹ ะฒ FFI (Foreign Function Interface). ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะทะฐั…ะฒะฐั‚ะฐ ะฟะพ ััั‹ะปะบะต (ref capture). ะŸั€ะธ ะพะฑัŠัะฒะปะตะฝะธะธ ั„ัƒะฝะบั†ะธะน ะดะพะฑะฐะฒะปะตะฝ ะฟั€ะธะทะฝะฐะบ ยซthinยป ะดะปั ะพะฑัŠัะฒะปะตะฝะธั ะฟั€ะพัั‚ะพะณะพ ั‚ะธะฟะฐ ัƒะบะฐะทะฐั‚ะตะปั ะฝะฐ ั„ัƒะฝะบั†ะธัŽ ะฑะตะท ะทะฐั…ะฒะฐั‚ะฐ ัะพัั‚ะพัะฝะธั.
  • ะฃะบะฐะทะฐั‚ะตะปะธ ั ั‚ะธะฟะพะผ UnsafePointer ั‚ะตะฟะตั€ัŒ ะฝะต ะผะพะณัƒั‚ ะฟั€ะธะฝะธะผะฐั‚ัŒ ะทะฝะฐั‡ะตะฝะธะต null ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ, ะฐ ะดะปั ั€ะฐะฑะพั‚ั‹ ั null-ัƒะบะฐะทะฐั‚ะตะปัะผะธ ะฝะตะพะฑั…ะพะดะธะผะพ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ ยซOptional[UnsafePointer[โ€ฆ]]ยป, ั‡ั‚ะพ ะฟะพะทะฒะพะปัะตั‚ ะธัะบะปัŽั‡ะธั‚ัŒ ะฝะฐะบะปะฐะดะฝั‹ะต ั€ะฐัั…ะพะดั‹ ะฟั€ะธ ั€ะฐะฑะพั‚ะต ั null-ัƒะบะฐะทะฐั‚ะตะปัะผะธ ะธ ัะพั…ั€ะฐะฝะธั‚ัŒ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฑะตะทะพะฟะฐัะฝะพะณะพ ะฟั€ะธะผะตะฝะตะฝะธั ะฒ FFI.
  • ะŸะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะฒ ะบะพะดะต ะดะปั CPU ะฒ ะบะพะปะปะตะบั†ะธัั… ะฒะบะปัŽั‡ะตะฝะฐ ะฟั€ะพะฒะตั€ะบะฐ ะดะพะฟัƒัั‚ะธะผั‹ั… ะณั€ะฐะฝะธั† (ะฝะฐ GPU ะฟั€ะพะฒะตั€ะบะฐ ะพั‚ะบะปัŽั‡ะตะฝะฐ ะดะปั ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ, ะฝะพ ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะฒะบะปัŽั‡ะตะฝะฐ ะฟั€ะธ ัะฑะพั€ะบะต ั ยซmojo build -D ASSERT=allยป). ะŸั€ะตะบั€ะฐั‰ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัƒะบะฐะทะฐะฝะธั ะพั‚ั€ะธั†ะฐั‚ะตะปัŒะฝั‹ั… ะทะฝะฐั‡ะตะฝะธะน ะฒ ะธะฝะดะตะบัะฐั… (ะทะฐะฟั€ะตั‰ะตะฝะพ ยซx[-1]ยป, ะฝะพ ะผะพะถะฝะพ ัƒะบะฐะทั‹ะฒะฐั‚ัŒ ยซx[len(x)-1]ยป).
  • ะ˜ะท ัั‚ะฐะฝะดะฐั€ั‚ะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบ ัƒะดะฐะปั‘ะฝ ั‚ะธะฟ NDBuffer, ะฒะผะตัั‚ะพ ะบะพั‚ะพั€ะพะณะพ ัะปะตะดัƒะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒ TileTensor.
  • ะ ะฐััˆะธั€ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ั€ะฐะฑะพั‚ั‹ ั GPU ั‡ะตั€ะตะท ะณั€ะฐั„ะธั‡ะตัะบะธะน API Metal ะฝะฐ ัะธัั‚ะตะผะฐั… Apple (ะฝะฐะฟั€ะธะผะตั€, ะฟะพัะฒะธะปะฐััŒ ะฟะพะดะดะตั€ะถะบะฐ print() ะธ ะผะฐั‚ั€ะธั‡ะฝั‹ั… ะธะฝัั‚ั€ัƒะบั†ะธะน M5). ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ัƒัะบะพั€ะธั‚ะตะปะตะน AMD MI250X ะธ NVIDIA B300.
  • ะ˜ะดะตะฝั‚ะธั„ะธะบะฐั‚ะพั€ั‹ ะฟั€ะธะผะธั‚ะธะฒะพะฒ GPU (ะธะฝะดะตะบัั‹ ะฟะพั‚ะพะบะพะฒ ะธ ะฑะปะพะบะพะฒ) ะฟะตั€ะตะฒะตะดะตะฝั‹ ะฝะฐ ะฒะพะทะฒั€ะฐั‰ะตะฝะธะต ั‚ะธะฟะฐ Int ะฒะผะตัั‚ะพ UInt.
  • ะšะพะฝั‚ะตะบัั‚ CPU (โ€˜DeviceContext(api=ยปcpuยป)โ€™) ัั‚ะฐะป ะฟะพั‚ะพะบะพะทะฐะฒะธัะธะผั‹ะผ (stream-ordered). ะ”ะปั ัƒะฟะพั€ัะดะพั‡ะตะฝะฝะพะณะพ ะฒั‹ะฟะพะปะฝะตะฝะธั ะทะฐะดะฐั‡ ะดะพะฑะฐะฒะปะตะฝั‹ ั„ัƒะฝะบั†ะธะธ enqueue_cpu_function() ะธ enqueue_cpu_range().
  • ะ’ ั‚ะธะฟะฐั… String ะธ StringSlice ะดะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะณั€ะฐั„ะตะผะฝั‹ั… ะบะปะฐัั‚ะตั€ะพะฒ (Unicode UAX #29), ะฟะพะทะฒะพะปััŽั‰ะฐั ะบะพั€ั€ะตะบั‚ะฝะพ ะฒั‹ั‡ะธัะปัั‚ัŒ ะดะปะธะฝัƒ ะธ ะพะฑั€ะตะทะฐั‚ัŒ ัั‚ั€ะพะบะธ ั emoji ะธ ะบะพะผะฑะธะฝะธั€ะพะฒะฐะฝะฝั‹ั… ัะธะผะฒะพะปะพะฒ. ะ”ะพะฑะฐะฒะปะตะฝั‹ ะผะตั‚ะพะดั‹ graphemes() ะธ count_graphemes(), ะฐ ั‚ะฐะบะถะต ัะธะฝั‚ะฐะบัะธั ัะปะฐะนัะพะฒ ยซ[grapheme=โ€ฆ]ยป.
  • ะ ะตะฐะปะธะทะพะฒะฐะฝะพ ัƒั‚ะพั‡ะฝะตะฝะธะต ั‚ะธะฟะพะฒ (Type Refinement) ะฝะฐ ัั‚ะฐะฟะต ะบะพะผะฟะธะปัั†ะธะธ ะดะปั ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะณะพ ััƒะถะตะฝะธั ั‚ะธะฟะพะฒ ะฒะฝัƒั‚ั€ะธ ะฒั‹ั€ะฐะถะตะฝะธะน ยซwhereยป, ยซifยป ะธ ยซassertยป (ะฟะพะทะฒะพะปัะตั‚ ะพะฑะพะนั‚ะธััŒ ะฑะตะท ัะฒะฝะพะณะพ ัƒะบะฐะทะฐะฝะธั trait_downcast).
  • ะŸั€ะตะดะปะพะถะตะฝ ัƒะฝะธั„ะธั†ะธั€ะพะฒะฐะฝะฝั‹ะน API ั€ะตั„ะปะตะบัะธะธ, ะฒ ะบะพั‚ะพั€ะพะผ ะฟั€ะตะดะปะพะถะตะฝะฐ ะฝะพะฒะฐั ั„ัƒะฝะบั†ะธั reflect[T](), ะฒะพะทะฒั€ะฐั‰ะฐัŽั‰ะฐั Reflected[T] ะธ ะทะฐะผะตะฝััŽั‰ะฐั ัะตะผะตะนัั‚ะฒะพ ั„ัƒะฝะบั†ะธะน struct_field_* ะธ ัั‚ะฐั€ั‹ะต ะผะตั‚ะพะดั‹ get_type_name().

ะžะดะฝะพะฒั€ะตะผะตะฝะฝะพ ัั„ะพั€ะผะธั€ะพะฒะฐะฝ ะฒั‹ะฟัƒัะบ ะดะฒะธะถะบะฐ MAX Framework 26.3, ะฟั€ะตะดะปะฐะณะฐัŽั‰ะตะณะพ ะฟะปะฐั‚ั„ะพั€ะผัƒ ะดะปั ั€ะฐะทั€ะฐะฑะพั‚ะพะบ ะฒ ะพะฑะปะฐัั‚ะธ ะผะฐัˆะธะฝะฝะพะณะพ ะพะฑัƒั‡ะตะฝะธั. MAX Framework ะดะพะฟะพะปะฝัะตั‚ ะธะฝัั‚ั€ัƒะผะตะฝั‚ะฐั€ะธะน Mojo ัั€ะตะดัั‚ะฒะฐะผะธ ะดะปั ั€ะฐะทั€ะฐะฑะพั‚ะบะธ ะธ ะพั‚ะปะฐะดะบะธ ะฟั€ะธะปะพะถะตะฝะธะน, ะธัะฟะพะปัŒะทัƒัŽั‰ะธั… ะผะพะดะตะปะธ ะผะฐัˆะธะฝะฝะพะณะพ ะพะฑัƒั‡ะตะฝะธั ะฒ ั€ะฐะทะปะธั‡ะฝั‹ั… ั„ะพั€ะผะฐั‚ะฐั… (TensorFlow, PyTorch, ONNX ะธ ั‚.ะฟ.). ะ’ ะฝะพะฒะพะน ะฒะตั€ัะธะธ MAX Framework ะดะพะฑะฐะฒะปะตะฝะฐ ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะณะตะฝะตั€ะฐั†ะธะธ ะฒะธะดะตะพ, ั€ะฐััˆะธั€ะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ั€ะฐะฑะพั‚ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ ะฝะตัะบะพะปัŒะบะธั… GPU, ะทะฝะฐั‡ะธั‚ะตะปัŒะฝะพ ะฟะพะฒั‹ัˆะตะฝะฐ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ัŒ ะธะฝั‚ะตั€ะฟั€ะตั‚ะฐั‚ะพั€ะฐ (ะฝะตะบะพั‚ะพั€ั‹ะต ะพะฟะตั€ะฐั†ะธะธ ัั‚ะฐะปะธ ะฒั‹ะฟะพะปะฝัั‚ัŒัั ะฑั‹ัั‚ั€ะตะต ะฒ 10-20 ั€ะฐะท).

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