Выпуск языка программирования Julia 1.8

ДоступСн Ρ€Π΅Π»ΠΈΠ· языка программирования Julia 1.8, ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ качСства ΠΊΠ°ΠΊ высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° динамичСской Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ встроСнныС срСдства для ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Бинтаксис Julia Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ MATLAB с заимствованиСм Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов ΠΈΠ· Ruby ΠΈ Lisp. ΠœΠ΅Ρ‚ΠΎΠ΄ манипуляции строками Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Perl. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности языка:

  • Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся достиТСниС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ Π½Π° языкС Π‘ΠΈ. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Julia основан Π½Π° Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° LLVM ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ эффСктивный Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ;
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌ программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ элСмСнты ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° прСдоставляСт Π² Ρ‚ΠΎΠΌ числС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°, управлСния процСссами, вСдСния Π»ΠΎΠ³ΠΎΠ², профилирования ΠΈ управлСния ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ;
  • ДинамичСская типизация: язык Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного опрСдСлСния Ρ‚ΠΈΠΏΠΎΠ² для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ со скриптовыми языками программирования. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹;
  • ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ явного указания Ρ‚ΠΈΠΏΠΎΠ²;
  • Бинтаксис, прСвосходно подходящий для числСнных вычислСний, Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… расчётов, систСм машинного обучСния ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΈΡ… числовых Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ срСдств для распараллСливания вычислСний.
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прямого Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π° языкС Π‘ΠΈ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… прослоСк.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ измСнСнияв Julia 1.8:

  • НовыС возмоТности языка
    • Поля измСняСмой структуры (mutable struct) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ константы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡ… измСнСния ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.
    • Аннотации Ρ‚ΠΈΠΏΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ.
    • ΠŸΡƒΡΡ‚Ρ‹Π΅ n-ΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ нСсколько Ρ‚ΠΎΡ‡Π΅ΠΊ с запятой Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобок, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «[;;;]» создаёт массив 0×0×0.
    • Π‘Π»ΠΎΠΊΠΈ try Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π»ΠΎΠΊ else, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся сразу послС основного Ρ‚Π΅Π»Π°, Ссли Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π°Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ошибок.
    • @inline ΠΈ @noinline ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π»Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ позволяСт Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ.
    • @inline ΠΈ @noinline Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° сайтС Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ»ΠΈ Π² Π±Π»ΠΎΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ (ΠΈΠ»ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ) ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.
    • ∀, ∃ ΠΈ ∄ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ Π² качСствС символов ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° спСцификации Unicode 14.0.0.
    • ΠΌΠ΅Ρ‚ΠΎΠ΄ Module(:name, false, false) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания модуля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ содСрТит ΠΈΠΌΠ΅Π½, Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Base ΠΈΠ»ΠΈ Core ΠΈ Π½Π΅ содСрТит ссылки Π½Π° сСбя.
  • ИзмСнСния Π² языкС
    • Π’Π½ΠΎΠ²ΡŒ созданныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Task (@spawn, @async ΠΈ Ρ‚.Β Π΄.) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ world_age для ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΠ· Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Task ΠΏΡ€ΠΈ создании, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… исполнСниС. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ доступСн ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Base.invokelatest.
    • Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ нСсбалансированного Π΄Π²ΡƒΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠ³ΠΎ форматирования Unicode Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹ Π² строках ΠΈ коммСнтариях Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠΈ ΠΈΠ½ΡŠΠ΅ΠΊΡ†ΠΈΠΉ.
    • Base.ifelse Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ опрСдСляСтся ΠΊΠ°ΠΊ общая функция, Π° Π½Π΅ ΠΊΠ°ΠΊ встроСнная, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡ‚ΡŒ Π΅Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
    • КаТдоС присвоСниС глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сначала ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² convert(Any, x) ΠΈΠ»ΠΈ convert(T, x), Ссли для глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Ρ‹Π» объявлСн Ρ‚ΠΈΠΏ T. ΠŸΠ΅Ρ€Π΅Π΄ использованиСм Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ convert(Any, x) === x всСгда истинСн, ΠΈΠ½Π°Ρ‡Π΅ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию.
    • ВстроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ пСрСчислСны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ компилятора/срСды выполнСния
    • ВрСмя Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ сокращСно ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° 25%.
    • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π½Π° основС LLVM Π±Ρ‹Π» ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½ ΠΎΡ‚ runtime-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² Π½ΠΎΠ²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ libjulia-codegen. Он загруТаСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, поэтому ΠΏΡ€ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ использовании ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. Π’ развёртываниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Π½ΡƒΠΆΠ΅Π½ компилятор (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, систСмныС ΠΎΠ±Ρ€Π°Π·Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилирован), эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ (ΠΈ Π΅Ρ‘ LLVM-Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ) ΠΌΠΎΠΆΠ½ΠΎ просто ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ.
    • Π’Ρ‹Π²ΠΎΠ΄ условного Ρ‚ΠΈΠΏΠ° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ. НапримСр, для Base.ifelse(isa(x, Int), x, 0) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ::Int, Π΄Π°ΠΆΠ΅ Ссли Ρ‚ΠΈΠΏ x нСизвСстСн.
    • SROA (Scalar Replacement of Aggregates) ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π°: ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²Ρ‹ getfield с постоянными Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ полями, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ измСняСмыС структуры с Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ полями, ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² getfield.
    • Π’Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ² отслСТиваСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ эффСкты — ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ измСнСния ΠΈ отсутствиС отбрасывания. УчитываСтся распространСния констант, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ врСмя компиляции. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ встроСны ΠΏΠΎ мСсту Π²Ρ‹Π·ΠΎΠ²Π°, Π½ΠΎ Π½Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π½Π° врСмя выполнСния. ΠŸΡ€Π°Π²ΠΈΠ»Π° для эффСктов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ макроса Base.@assume_effects.
    • ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ компиляция (с явными Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сохраняСт большС ΠΊΠΎΠ΄Π°, опрСдСляСмого Ρ‚ΠΈΠΏΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ запуска. Π›ΡŽΠ±Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²/Ρ‚ΠΈΠΏΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ эти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ прСкомпиляции, Ссли ΠΎΠ½ΠΈ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠΌ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ.
  • ИзмСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
    • ПовСдСниС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для наблюдСния Π·Π° объявлСниями @inbounds Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся ΠΎΠΏΡ†ΠΈΠ΅ΠΉ auto Π² «—check-bounds=yes|no|auto».
    • Новая опция «—strip-metadata» для удалСния строк Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± исходном мСстополоТСнии ΠΈ ΠΈΠΌΡ‘Π½ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ создании ΠΎΠ±Ρ€Π°Π·Π° систСмы.
    • Новая опция «—strip-ir» ​​для удалСния компилятором ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прСдставлСния исходного ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ сборкС ΠΎΠ±Ρ€Π°Π·Π° систСмы. Π Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±Ρ€Π°Π· Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ «—compile=all» ΠΈΠ»ΠΈ Ссли вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилирован.
    • Если вмСсто ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° ΡƒΠΊΠ°Π·Π°Π½ символ «-«, Ρ‚ΠΎ исполняСмый ΠΊΠΎΠ΄ читаСтся ΠΈΠ· стандартного ΠΏΠΎΡ‚ΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π°.
  • ИзмСнСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ многопоточности
    • Threads.@threads ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ расписания :dynamic, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ динамичСски для доступных Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π½Π΅ Π·Π°ΠΊΡ€Π΅ΠΏΠ»ΡΡ‚ΡŒΡΡ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ Ρ€Π΅ΠΆΠΈΠΌ позволяСт Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ с @spawn ΠΈ @threads.
  • НовыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • eachsplit(str) для ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ³ΠΎ выполнСния split(str).
    • allequal(itr) для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ равСнства всСх элСмСнтов Π² ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅.
    • hardlink(src, dst) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Тёстких ссылок.
    • setcpuaffinity(cmd, cpus) для установки соотвСтствия ядра процСссора запускаСмым процСссам.
    • diskstat(path=pwd()) для получСния статистики ΠΎ дискС.
    • Новый макрос @showtime для отобраТСния ΠΊΠ°ΠΊ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ строки, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Π° @time.
    • LazyString ΠΈ макрос lazy»str» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ построСния сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² путях ошибок.
    • УстранСна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа Π² Dict ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ keys(::Dict), values(::Dict) ΠΈ Set. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ для словаря ΠΈΠ»ΠΈ мноТСства, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΈΠ»ΠΈ мноТСство.
    • @time ΠΈ @timev Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ описаниС, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ источник ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. @time «Evaluating foo» foo().
    • range ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π»ΠΈΠ±ΠΎ stop, Π»ΠΈΠ±ΠΎ length Π² качСствС СдинствСнного Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова.
    • precision ΠΈ setprecision Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ base Π² качСствС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова
    • ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ сокСтов TCP Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ closewrite ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ использованиС ΠΏΠΎΠ»ΡƒΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°.
    • extrema Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ init.
    • Iterators.countfrom Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ любой Ρ‚ΠΈΠΏ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ +.
    • @time Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выдСляСт % Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ.
  • ИзмСнСния стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
    • ΠšΠ»ΡŽΡ‡ΠΈ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Nothing Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· срСды Π² addenv.
    • Iterators.reverse (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, last) ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ eachline.
    • Ѐункция length для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² большС Π½Π΅ провСряСт цСлочислСнноС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Доступна новая функция checked_length, содСрТит Π»ΠΎΠ³ΠΈΠΊΡƒ контроля пСрСноса разряда. ΠŸΡ€ΠΈ нСобходимости, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SaferIntegers.jl, дляпостроСнии Ρ‚ΠΈΠΏΠ° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
    • Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Iterators.Reverse Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ eachindex, Ссли это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
  • ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²
    • НовыС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ⌃ ΠΈ ⌅ рядом с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² статусС «pkg>», для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… доступны Π½ΠΎΠ²Ρ‹Π΅ вСрсии. ⌅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹Π΅ вСрсии Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ установлСны.
    • Новый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ outdated::Bool для Pkg.status (—outdated ΠΈΠ»ΠΈ -o Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ REPL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсии.
    • Новый Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ compat::Bool для Pkg.status (—compat ΠΈΠ»ΠΈ -c Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ REPL), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ записи [compat] Π² Project.toml.
    • Новый Ρ€Π΅ΠΆΠΈΠΌ «pkg> compat» (ΠΈ Pkg.compat) для настройки записСй совмСстимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ‡Π΅Ρ€Π΅Π· «pkg> compat» ΠΈΠ»ΠΈ прямоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ записью Ρ‡Π΅Ρ€Π΅Π· «pkg> Foo 0.4,0.5», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ записи Ρ‡Π΅Ρ€Π΅Π· Π°Π²Ρ‚ΠΎΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ табуляции. Π’ΠΎ Π΅ΡΡ‚ΡŒ «pkg> compat Fo<TAB>» автоматичСски дополняСтся Π΄ΠΎ «pkg> Foo 0.4,0.5», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ запись.
    • Π’Π΅ΠΏΠ΅Ρ€ΡŒ Pkg пытаСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с сСрвСра ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли сСрвСр отслСТиваСт рССстр, содСрТащий ΠΏΠ°ΠΊΠ΅Ρ‚.
    • Pkg.instantiate Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Project.toml Π½Π΅ синхронизирован с Manifest.toml. Он Π΄Π΅Π»Π°Π΅Ρ‚ это Π½Π° основС Ρ…ΡΡˆ записСй deps ΠΈ compat ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (Π΄Ρ€ΡƒΠ³ΠΈΠ΅ поля ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ) Π² манифСстС ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ любоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² deps Project.toml ΠΈΠ»ΠΈ записях compat Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.
    • Если «pkg> add» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.
    • ВСрсия julia, хранящаяся Π² манифСстС, большС Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ сборки, Ρ‚. Π΅. master Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ 1.9.0-DEV.
    • ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ тСста «pkg>» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π΅Π΅, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π² REPL.
  • InteractiveUtils
    • Новый макрос @time_imports для ΠΎΡ‚Ρ‡Π΅Ρ‚Π° ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠΌ Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… зависимостСй, с Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции ΠΈ пСрСкомпиляции Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚.
  • ЛинСйная Π°Π»Π³Π΅Π±Ρ€Π°
    • ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ BLAS Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ level-2 BLAS Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ spr!.
    • Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° LinearAlgebra.jl Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ нСзависима ΠΎΡ‚ SparseArrays.jl ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния исходного ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊ ΠΈ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ тСстирования. Как слСдствиС, Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Π΅ массивы большС Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ (нСявно) ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΈΠ· LinearAlgebra, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Base ΠΈΠ»ΠΈ LinearAlgebra. Π’ частности, это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ критичСским измСнСниям:
      • ΠšΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ с использованиСм ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… «Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ…» ΠΌΠ°Ρ‚Ρ€ΠΈΡ† (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, диагональная) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΠ»ΠΎΡ‚Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹; Как слСдствиС, поля D1 ΠΈ D2 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² SVD, созданныС ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π°Ρ… getproperty, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ»ΠΎΡ‚Π½Ρ‹ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ.
      • ΠœΠ΅Ρ‚ΠΎΠ΄ similar(::SpecialSparseMatrix, ::Type, ::Dims) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠ»ΠΎΡ‚Π½ΡƒΡŽ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ. Как слСдствиС, произвСдСния Π΄Π²ΡƒΡ…-, Ρ‚Ρ€Π΅Ρ…- ΠΈ симмСтричных Ρ‚Ρ€Π΅Ρ…Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π° приводят ΠΊ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠ»ΠΎΡ‚Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, построСниС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† с трСмя Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… «Ρ€Π°Π·Ρ€Π΅ΠΆΠ΅Π½Π½Ρ‹Ρ…» ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈΠ· (нСстатичСских) ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ удаСтся ΠΈΠ·-Π·Π° «zero(::Type{Matrix{T}})».
  • Printf
    • Π’Π΅ΠΏΠ΅Ρ€ΡŒ для форматирования ΡˆΠΈΡ€ΠΈΠ½Ρ‹ %s ΠΈ %c ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ textwidth.
  • Profile
    • ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ процСссора Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ записываСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. Profile.print() ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ groupby, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ/Π·Π°Π΄Π°Ρ‡ΠΈ, Π·Π°Π΄Π°Ρ‡ΠΈ/ΠΏΠΎΡ‚ΠΎΠΊΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ threads ΠΈ tasks для обСспСчСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ использования Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сообщаСтся ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠΉ, ΠΈΠ»ΠΈ ΠΏΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, простаиваСт Π»ΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅. Profile.fetch() Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости с внСшними потрСбитСлями Π΄Π°Π½Π½Ρ‹Ρ… профилирования Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π² include_meta=false.
    • Новый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Profile.Allocs позволяСт ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти. ЗаписываСтся трассировка стСка, Ρ‚ΠΈΠΏ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ выдСлСния памяти, Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ sample_rate позволяСт ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ настраиваСмоС количСство распрСдСлСний, сниТая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
    • ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ процСссора с фиксированной ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π²ΠΎ врСмя выполнСния Π·Π°Π΄Π°Ρ‡ Π±Π΅Π· ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ профиля, ΠΈ ΠΎΡ‚Ρ‡Ρ‘Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния. Π’ MacOS ΠΈ FreeBSD Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ctrl-t ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ SIGINFO. Для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ SIGUSR1, Ρ‚.Π΅. % kill -USR1 $julia_pid. Π’ Windows это нСдоступно.
  • REPL
    • RadioMenu Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сочСтания клавиш для прямого Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².
    • ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ «?(x, y», Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ TAB, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ x, y, …. (ΠŸΡ€ΠΎΠ±Π΅Π» Π² Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ позволяСт Π²ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ справки). «MyModule.?(x, y» ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ поиск «MyModule». НаТатиС TAB Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄ΠΈΠ½ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠ΅Π» Ρ‚ΠΈΠΏ, Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ, Ρ‡Π΅ΠΌ Any. Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SHIFT-TAB вмСсто TAB, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ совмСстимыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹.
    • Новая глобальная пСрСмСнная err позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послСднСС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ans с послСдним ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ. Π’Π²ΠΎΠ΄ err ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ.
  • SparseArrays
    • Код SparseArrays ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ ΠΈΠ· рСпозитория Julia Π²ΠΎ внСшний Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ SparseArrays.jl.
    • НовыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ sparse_hcat, sparse_vcat ΠΈ sparse_hvcat Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Ρ‚ΠΈΠΏ SparseMatrixCSC нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ² Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΎ стало Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ для ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° склСйки ΠΌΠ°Ρ‚Ρ€ΠΈΡ† послС раздСлСния ΠΊΠΎΠ΄Π° LinearAlgebra.jl ΠΈ SparseArrays.jl.
  • Logging
    • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΡƒΡ€ΠΎΠ²Π½ΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² BelowMinLevel, Debug, Info, Warn, Error ΠΈ AboveMaxLevel Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Logging.
  • Unicode
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция isequal_normalized для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ эквивалСнтности Unicode Π±Π΅Π· явного построСния Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк.
    • Ѐункция Unicode.normalize Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово chartransform, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прСдоставлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сопоставлСний символов, Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСтся функция Unicode.julia_chartransform для воспроизвСдСния сопоставлСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² синтаксичСским Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ Julia.
  • Test
    • ‘@test_throws «some message» triggers_error()’ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΎΠ³ΠΎ, содСрТит Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ тСкст ошибки «some message», нСзависимо ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ рСгулярныС выраТСния, списки строк ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сопоставлСния.
    • @testset foo() Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π½Π°Π±ΠΎΡ€Π° тСстов ΠΈΠ· Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Имя тСстового Π½Π°Π±ΠΎΡ€Π° — это имя Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ВызываСмая функция ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ @test ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ опрСдСлСния @testset, Π² Ρ‚ΠΎΠΌ числС для Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈ этом записывая всС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования.
    • TestLogger ΠΈ LogRecord Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Test.
  • Distributed
    • SSHManager Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ с ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ csh/tcsh Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ addprocs() ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ shell=:csh.
  • ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ измСнСния
    • GC.enable_logging(true) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для рСгистрации ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сборки мусора с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ объСма собранной памяти.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru