ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ язык программирования Julia 1.11

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

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

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

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

  • НовыС возмоТности языка
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ‚ΠΈΠΏ Memory, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Ρ‚ΠΈΠΏΡƒ Array. Π’ΠΈΠΏ Memory Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ быстрый конструктор, являясь ΠΏΡ€ΠΈ этом Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ Array Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π½Π΅ трСбуСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΅Π³ΠΎ возмоТностСй. НапримСр, ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ массивы. Π’ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, большая Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ‚ΠΈΠΏΠ° Array Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ²Π΅Ρ€Ρ… Ρ‚ΠΈΠΏΠ° Memory, Ρ‡Ρ‚ΠΎ сущСствСнно ускорило Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ push.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово «public». Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ «public», Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ внСшний ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ с ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом «export» Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Но основноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ «public» ΠΈ «export» Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π°, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Π΅ «public», Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² контСкст модуля ΠΏΡ€ΠΈ использования «using» Π² зависимых модулях.
    • ΠŸΠ°ΠΊΠ΅Ρ‚ ScopedValue Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΏΡ€ΠΈ использовании Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Threads/tasks.
    • Π€Π°ΠΉΠ» Manifest.toml Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Manifest-v{major}.{minor}.toml для использования ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсиСй Julia. НапримСр Ρ„Π°ΠΉΠ» Manifest-v1.11.toml Π±ΡƒΠ΄Π΅Ρ‚ использован вСрсиСй 1.11, Π° Ρ„Π°ΠΉΠ» Manifest.toml Π² Ρ‚ΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ вСрсиями Julia.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Unicode 15.1.
  • ИзмСнСния Π² языкС
    • Π’ процСссС прСкомпиляции ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ «atexit» запускаСтся Π΄ΠΎ формирования Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ бСзопасно Π·Π°Π²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ ΠΈΠ»ΠΈ пСриодичСскиС оповСщСния), Π° Ρ‚Π°ΠΊΠΆΠ΅ явно Π²Ρ‹ΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Ρ‚ΡŒ рСсурсы ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.
    • Π€Π°ΠΉΠ»Ρ‹ покрытия ΠΊΠΎΠ΄Π° ΠΈ выдСлСния памяти большС Π½Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² процСссС прСкомпиляции. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² этих Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… кэши pkgimage ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ тСсты покрытия (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для julia-actions/julia-runtest) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ кэши pkgimage для всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит тСстируСмый. Π­Ρ‚ΠΎ позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ тСстированиС.
    • Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ Π² JULIA_DEPOT_PATH Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обрабатываСтся ΠΈΠ½Π°Ρ‡Π΅. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот ΠΏΡƒΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ вставлСн Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ DEPOT_PATH. Если послСдним символом являСтся «:», Ρ‚ΠΎ пСрСмСнная DEPOT_PATH ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, содСрТащСС всё Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π΄ΠΎ «:», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ систСмных ΠΏΡƒΡ‚Π΅ΠΉ, Π³Π΄Π΅ находится Julia.
    • Π€Π°ΠΉΠ»Ρ‹ кэша ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ компиляции Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, Π° ΠΈΡ… Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ провСряСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…Π΅ΡˆΠ° содСрТимого исходных Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ «mtime».
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ компилятора/срСды выполнСния
    • ОбновлСна эвристика сборщика мусора, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со страницами памяти Π² Ρ†Π΅Π»ΠΎΠΌ вмСсто ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° аннотирования Base.@assume_effects Π² ΠΊΠΎΠ΄Π΅.
  • ИзмСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
    • Π’ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠ°ΠΊ Main.main(args). Π’ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° макросом @main (см. Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ). Если Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° Π·Π°Π΄Π°Π½Π° Π² скриптС, запускаСмом Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ «julia script.jl ΠΈΠ»ΠΈ julia -e expr»), julia запустит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Main.main автоматичСски. Π­Ρ‚ΠΎ сдСлано для ΡƒΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ исполнСния скриптов ΠΈ ΠΈΡ… компиляции, ΠΊΠΎΠ³Π΄Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ для компиляции, Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Main.main Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° этапС запуска исполняСмого Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΈ использовании Julia Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π΅Ρ‚. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄ исполняСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. АргумСнты «—compiled-modules» ΠΈ «—pkgimages» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ выставлСны Π² Ρ€Π΅ΠΆΠΈΠΌ existing, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заставляСт Julia ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ кэши, Π½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅.
    • АргумСнт «—project» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ @script для указания размСщСния Ρ„Π°ΠΉΠ»Π° Project.toml ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ запускаСмого скрипта. НапримСр «—project=@script/foo» для ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ foo. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ «—project=@script», это Π±ΡƒΠ΄Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ «—project=@.», ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ» Project.toml ищСтся Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.
  • ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Π΅ измСнСния
    • Π’ макросС Threads.@threads ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° :greedy, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠ΄ΠΎΠ±Π΅Π½ для Π½Π΅Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Новая структура (со спСцификатором public, Π½ΠΎ Π½Π΅ export) «struct Base.Lockable{T, L<:AbstractLock}» прСдставляСт собой ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ для упорядочивания ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ доступа ΠΊ элСмСнтам составных Ρ‚ΠΈΠΏΠΎΠ², Π² Ρ†Π΅Π»ΠΎΠΌ упрощая ΠΊΠΎΠ΄.
  • ИзмСнСния систСмы сборки
    • Π€Π°ΠΉΠ» Makefile для сборки Julia ΠΈ LLVM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ стратСгии ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ PGO ΠΈ LTO. Π‘ΠΌ. contrib/pgo-lto/Makefile.
  • НовыС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ‚Ρ€ΠΈ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ΄Π΅ΠΈ тСкста с Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ — Pair{Symbol, Any}, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ‘:lang => «en»‘ ΠΈΠ»ΠΈ ‘:face => :magenta’. Если это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚ΠΎ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² процСссС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ строками, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Ρ†ΠΈΠΈ.
    • ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ AnnotatedString Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ AbstractString. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ являСтся ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ Π½Π°Π΄ строкой, позволяя Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρƒ символов. Π’ΠΈΠΏ AnnotatedString ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½ΠΎΠ²ΠΎΠΉ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ StyledStrings для отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° экранС со стилСм.
    • ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ AnnotatedChar Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ AbstractChar. ЯвляСтся ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ Π½Π°Π΄ символом ΠΈ позволяСт ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ список Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ ΠΊ Π½Π΅ΠΌΡƒ.
    • ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ AnnotatedIOBuffer Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ IO, повторяСт интСрфСйс Ρ‚ΠΈΠΏΠ° IOBuffer, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ спСциализированныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ read/write для аннотирования ΠΏΠΎΡ‚ΠΎΠΊΠ°. ΠœΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ строк ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ срСдство склСйки Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «in!(x, s::AbstractSet)» всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true. Но Ссли элСмСнт x Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² s, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ вставлСн.
    • Новая функция Libc.mkfifo являСтся ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΠΎΠΉ C-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ mkfifo для Unix ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «logrange(start, stop; length)» создаёт Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ количСством, вмСсто фиксированного шага.
    • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ «copyuntil(out, io, delim)» ΠΈ «copyline(out, io)» ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° io Π² ΠΏΠΎΡ‚ΠΎΠΊ out::IO.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «eachrsplit(string, pattern)» Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΏΠΎ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ΠΌ элСмСнтам строки справа Π½Π°Π»Π΅Π²ΠΎ.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ Sys.username() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
    • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Sys.isreadable(), Sys.iswritable() ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для опрСдСлСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈ запись Π΄Π°Π½Π½Ρ‹Ρ….
    • ΠœΠ΅Ρ‚ΠΎΠ΄ GC.logging_enabled() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true Ссли ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ сборщика мусора Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· GC.enable_logging.
    • Π’ΠΈΠΏ IdSet Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ экспортируСтся ΠΈΠ· Base ΠΈ являСтся общСдоступным.
    • ΠœΠ°ΠΊΡ€ΠΎΡ «@time» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ сообщаСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счётчика ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ReentrantLock, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ. А Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ макрос «@lock_conflicts», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ этот счётчик.
    • ΠœΠ°ΠΊΡ€ΠΎΡ Base.Cartesian.@ncallkw Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Base.Cartesian.@ncall, Π½ΠΎ позволяСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов для Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • Новая функция Docs.hasdoc(module, symbol) сообщаСт ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ΅ имя symbol описания docstring.
    • Новая функция Docs.undocumented_names(module) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° Π½Π΅Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ модуля module.
  • НовыС возмоТности извСстных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²
    • ΠœΠ΅Ρ‚ΠΎΠ΄ invmod(n, T) для ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° T Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ вычисляСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ Ρ†Π΅Π»ΠΎΠ΅ n ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ invmod(n) прСдоставляСт ΡΠΎΠΊΡ€Π°Ρ‰Ρ‘Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π²Ρ‹Π·ΠΎΠ²Π° invmod(n, typeof(n)) для Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².
    • ΠœΠ΅Ρ‚ΠΎΠ΄ replace(string, pattern…) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ IO для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния Π² ΠΏΠΎΡ‚ΠΎΠΊ вмСсто Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° строки Ρ‚ΠΈΠΏΠ° String.
    • НовыС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ allequal(f, itr) ΠΈ allunique(f, itr) с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Π°.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ sizehint!(s, n) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΡ†ΠΈΡŽ «shrink», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ отсСчку элСмСнтов.
    • ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° IOBuffer ΠΊΠ°ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° stdout ΠΏΡ€ΠΈ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ процСссов, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΏΠΎΠ»Π½ΠΎΠΉ синхронизациСй «wait» ΠΈΠ»ΠΈ «success», поэтому Π² Base.BufferStream Π½Π΅Ρ‚ большС нСобходимости ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ доступности.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «closewrite» большС Π½Π΅ вызываСтся автоматичСски для ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° послС закрытия процСсса. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ «wait» для процСсса, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ «closewrite». Или ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΡ€ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° open с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для автоматичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ закрытия.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «@timed» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции ΠΈ пСрСкомпиляции, обусловлСнной Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ‚ΠΈΠΏΠΎΠ².
    • ΠœΠ΅Ρ‚ΠΎΠ΄ «filter» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с NamedTuple.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ Iterators.cycle(iter, n) запускаСтся Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ «iter» фиксированноС n число Ρ€Π°Π·.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ zero(::AbstractArray) примСняСтся рСкурсивно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ zero([[1,2],[3,4,5]]) ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Π΅Ρ‚ [[0,0],[0,0,0]] вмСсто Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ошибки.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ include_dependency(path; track_content=true) ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ зависимости Π½Π° основС Ρ…ΡΡˆ-значСния ΠΏΡ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ mtime.
  • ИзмСнСния Π±Π°Π·ΠΎΠ²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ
    • ΠœΠ΅Ρ‚ΠΎΠ΄ write(::IO, ::AbstractArray) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рСкурсивного Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² «write» для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта массива, Π½ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ записываСтся прСдставлСниС Π² памяти ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния. НапримСр, Π²Ρ‹Π·ΠΎΠ² write(io, ‘a’:’b’) Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ 4 Π±Π°ΠΉΡ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа, вмСсто сокращСнного прСдставлСния UTF-8 для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…. Новый Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ совмСстим с Array, дСлая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ «read!» для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ чтСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
    • НСвозмоТно ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ «length» для ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² с состояниСм Π² ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅. Π’ связи с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Stateful, ΠΌΠ΅Ρ‚ΠΎΠ΄ length(::Stateful) ΡƒΠ΄Π°Π»Ρ‘Π½.
    • StyledStrings
      • Новая стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для стилСвого прСдставлСния строк.
      • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Faces являСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ стилСвой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (Ρ†Π²Π΅Ρ‚, Π΄Π΅ΠΊΠΎΡ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΏΡ€.), Π° Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт каркас ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠ³ΠΎ (via addface!), ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ (с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Faces.toml ΠΈ loadfaces!) ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ содСрТимого со стилями.
      • ΠœΠ°ΠΊΡ€ΠΎΡ @styled_str прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ создания Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк AnnotatedString с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ-стилями. НапримСр, StyledStrings.addface!(:orange => StyledStrings.Face(foreground = 0xFF7700)) styled»{orange:this is orange text}»
    • Libdl
      • Новый Ρ‚ΠΈΠΏ LazyLibrary экспортируСтся ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Libdl для создания Π»Π΅Π½ΠΈΠ²Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JLL.
    • LinearAlgebra
      • ΠœΠ΅Ρ‚ΠΎΠ΄ cbrt(::AbstractMatrix{<:Real}) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΡ€Π½Π΅ΠΉ для Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.
      • ΠœΠ΅Ρ‚ΠΎΠ΄ вычислСния собствСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ «eigvals/eigen(A, bunchkaufman(B)) and eigvals/eigen(A, lu(B))» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Bunchkaufman (LDL) ΠΈ LU Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ B, соотвСтствСнно, для эффСктивного вычислСния ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… собствСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ (eigen: ΠΈ eigenvectors) ΠΎΡ‚ A ΠΈ B. Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° пСрСдаётся Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² bunchkaufman ΠΈΠ»ΠΈ lu.
      • Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ «eigvals/eigen(::Hermitian{<:Tridiagonal})», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для симмСтричных Ρ‚Ρ€ΠΈΠ΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ† ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ срСдства LAPACK.
      • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ оси Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ…(для Symmetric/Hermitian/AbstractTriangular/UpperHessenberg), Π»ΠΈΠ±ΠΎ оси Π³Π»Π°Π²Π½Ρ‹Ρ… Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»Π΅ΠΉ (для Π»Π΅Π½Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ†).
      • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ bunchkaufman ΠΈ bunchkaufman! Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ для Ρ‚ΠΈΠΏΠΎΠ² AbstractFloat, Rational ΠΈ ΠΈΡ… комплСксных Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄ bunchkaufman Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΈΠΏΡ‹ Integer, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ прСобразуя ΠΈΡ… ΠΊ Rational{BigInt}. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция inertia, которая вычисляСт ΠΈΠ½Π΅Ρ€Ρ†ΠΈΡŽ диагонального Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ BunchKaufman для ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ симмСтричной ΠΈΠ»ΠΈ Π­Ρ€ΠΌΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Для комплСксных симмСтричных ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΌΠ΅Ρ‚ΠΎΠ΄ inertia Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вычисляСт количСство собствСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ диагонального Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°.
      • ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ умноТСния mul! с сигнатурой mul!(::AbstractMatrix, ::MyMatrix, ::AbstractMatrix, ::Number, ::Number) большС Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, взаимодСйствуя с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ LinearAlgebra. Π Π°Π½Π΅Π΅ ΠΏΡ€ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ нСоднозначности ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ MyMatrix ΠΈ структурированными ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ, прСдоставляСмыми ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ LinearAlgebra, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ AbstractTriangular. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ устранСны для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ mul! с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°-Π²Π΅ΠΊΡ‚ΠΎΡ€.
      • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ lu ΠΈ issuccess(::LU) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ allowsingular. Если ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, допустимая факторизация с Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ U с нСдостаточным Ρ€Π°Π½Π³ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ, Π° Π½Π΅ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π’Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ ΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»Π΅ΠΉ вмСстС с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ «rank-deficient», Π° Π½Π΅ сообщСния «Failed Factorization».
    • Random
      • ΠœΠ΅Ρ‚ΠΎΠ΄ rand Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ Tuple.
      • ΠœΠ΅Ρ‚ΠΎΠ΄ rand Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… Π² Pair.
      • Для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ запуска Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл RNG модуля Random Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа.
      • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° случайных чисСл Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° строкой, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ seed!(rng, «a random seed»).
    • REPL
      • НаТатиС Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Tab для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ подсказки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ подсвСчиваСтся свСтлым ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ. Для Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ этого Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Base.active_repl.options.hint_tab_completes = false ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ Π² скриптС startup.jl: if VERSION >= v»1.11.0-0″ atreplinit() do repl repl.options.hint_tab_completes = false end end
      • Meta-M с пустым ΠΏΡ€ΠΈΠ³Π»Π°ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ контСкстный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ нСосновным контСкстным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΈ основным, упрощая ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΡƒΠ΄Π° ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
    • Dates
      • НСдокумСнтированная функция adjust большС Π½Π΅ экспортируСтся, Π½ΠΎ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π°.
    • Statistics
      • ΠŸΠ°ΠΊΠ΅Ρ‚ Statistics Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся обновляСмым Π±Π΅Π· всСго ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Julia.
    • Distributed
      • ΠœΠ΅Ρ‚ΠΎΠ΄ pmap Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ CachingPool.
  • Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹
    • ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Base.map, Iterators.map, ΠΈ foreach с СдинствСнным Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ большС Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ.
  • Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ зависимости
    • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libuv ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° с вСрсии 1.44.2 Π΄ΠΎ 1.48.0.
    • ΠœΠ΅Ρ‚ΠΎΠ΄ tput большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ возмоТностСй Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. Он Π·Π°ΠΌΠ΅Π½Ρ‘Π½ срСдствами Ρ€Π°Π·Π±ΠΎΡ€Π° terminfo, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° Julia.
    • Terminfo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Если Π² систСмС ΠΎΠ½ отсутствуСт, Ρ‚ΠΎ Julia ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ собрана с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ Makefile WITH_TERMINFO=0.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ инструмСнтов
    • CI Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выполняСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΎ всСх запросах слияния.

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