ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° програмскиот јазик Ruby 3.1

ОбјавСн Π΅ Ruby 3.1.0, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ програмски јазик кој Π΅ ΠΌΠ½ΠΎΠ³Ρƒ СфикасСн Π²ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ ΠΈ Π³ΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ карактСристики Π½Π° Perl, Java, Python, Smalltalk, Eiffel, Ada ΠΈ Lisp. ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ дистрибуиран ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†ΠΈΡ‚Π΅ BSD (β€ž2-ΠΊΠ»Π°ΡƒΠ·ΡƒΠ»Π° BSDLβ€œ) ΠΈ β€žRubyβ€œ, ΡˆΡ‚ΠΎ сС однСсува Π½Π° Π½Π°Ρ˜Π½ΠΎΠ²Π°Ρ‚Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° GPL ΠΈ Π΅ цСлосно ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½Π° со GPLv3.

Π“Π»Π°Π²Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ°:

  • Π”ΠΎΠ΄Π°Π΄Π΅Π½ Π΅ Π½ΠΎΠ² СкспСримСнталСн ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ Π·Π° JIT Π²ΠΎ процСс, YJIT, создадСн ΠΎΠ΄ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π·Π° Π΅-Ρ‚Ρ€Π³ΠΎΠ²ΠΈΡ˜Π° Shopify ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚ΠΈΠ²Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅ Ruby ΠΊΠΎΠΈ ја користат Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Rails ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ. ΠšΠ»ΡƒΡ‡Π½Π°Ρ‚Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ користСниот ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ MJIT JIT, кој сС заснова Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ†Π΅Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ користи Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ Π²ΠΎ Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ C, Π΅ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ YJIT користи Lazy Basic Block Versioning (LBBV) ΠΈ содрТи ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ JIT ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€. Π‘ΠΎ LBBV, JIT ΠΏΡ€Π²ΠΎ Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° само ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚, Π° остатокот Π³ΠΎ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° Π½Π΅ΠΊΠΎΠ΅ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎΠ΄ΠΎΡ†Π½Π°, ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС ΡƒΡ‚Π²Ρ€Π΄Π°Ρ‚ Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΊΠΎΠΈ сС користат ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ. ΠŸΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° YJIT, Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ΠΎ Π΅ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС Π·Π° 22% ΠΏΡ€ΠΈ ΠΈΠ·Π²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° тСстот Π½Π° railsbench ΠΈ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ 39% Π²ΠΎ тСстот Π·Π° Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ тСчност. YJIT ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΎ Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми слични Π½Π° unix Π½Π° систСми со Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° x86-64 ΠΈ Π΅ стандардно ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ (Π·Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅, Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ Π³ΠΎ Π·Π½Π°ΠΌΠ΅Ρ‚ΠΎ β€ž--yjitβ€œ Π²ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π½Π°Ρ‚Π° линија).
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ пСрформанси Π½Π° стариот ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ MJIT JIT. Π—Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΊΠΎΠΈ користат Rails, стандардната максимална Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° Π½Π° ΠΊΠ΅ΡˆΠΎΡ‚ (--jit-max-cache) Π΅ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½Π° ΠΎΠ΄ 100 Π½Π° 10000 инструкции. ΠŸΡ€Π΅ΡΡ‚Π°Π½Π° Π΄Π° користи JIT Π·Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ со повСќС ΠΎΠ΄ 1000 инструкции. Π—Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π½Π° Zeitwerk of Rails, JIT ΠΊΠΎΠ΄ΠΎΡ‚ вСќС Π½Π΅ сС ΠΎΡ‚Ρ„Ρ€Π»Π° ΠΊΠΎΠ³Π° TracePoint Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π·Π° настани ΠΎΠ΄ класата.
  • Π’ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° цСлосно ΠΏΡ€Π΅Π½Π°ΠΏΠΈΡˆΠ°Π½ Π΄Π΅Π±Π°Π³Π΅Ρ€ Π·Π° Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅. ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚ REPL, Π½ΡƒΠ΄ΠΈ Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ моТности Π·Π° слСдСњС, ΠΌΠΎΠΆΠ΅ Π΄Π° снима ΠΈ Ρ€Π΅ΠΏΡ€ΠΎΠ΄ΡƒΡ†ΠΈΡ€Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈ ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ‚. ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ½ΡƒΠ΄Π΅Π½ΠΈΠΎΡ‚ Π΄Π΅Π±Π°Π³Π΅Ρ€ lib/debug.rb Π΅ отстранСт ΠΎΠ΄ основната Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π°.
    ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° програмскиот јазик Ruby 3.1
  • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π²ΠΈΠ·ΡƒΠ΅Π»Π½ΠΎ ΠΈΡΡ‚Π°ΠΊΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈΡ‚Π΅ Π·Π° слСдСњС Π½Π° ΠΏΠΎΠ²Ρ€Π°Ρ‚Π΅Π½ ΠΏΠΎΠ²ΠΈΠΊ. ΠžΠ·Π½Π°Ρ‡ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ΠΎ со помош Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ ΠΈ стандардно ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ gem ΠΏΠ°ΠΊΠ΅Ρ‚ error_highlight. Π—Π° Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ ΠΎΠ·Π½Π°Ρ‡ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја користитС поставката β€ž--disable-error_highlightβ€œ. $ ruby ​​· test.rb test.rb:1:in " ": Π½Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ "time" Π·Π° 1:Integer (NoMethodError) 1.time {} ^^^^^ Π”Π°Π»ΠΈ сакашС Π΄Π° каТСш? Π²Ρ€Π΅ΠΌΠΈΡšΠ°
  • Π¨ΠΊΠΎΠ»ΠΊΠ°Ρ‚Π° ΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ прСсмСтки IRB (REPL, Read-Eval-Print-Loop) ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° автоматско ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° внСсСниот ΠΊΠΎΠ΄ (ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°Ρ‚Π΅, сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π½Π°Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ со ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅, ΠΌΠ΅Ρ“Ρƒ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π΄Π²ΠΈΠΆΠΈΡ‚Π΅ со Tab ΠΈΠ»ΠΈ Shift+ ΠšΠΎΠΏΡ‡Π΅ Tab). ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС ја ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° Π·Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΡƒΠ²Π°ΡšΠ΅, Π²ΠΎ Π±Π»ΠΈΠ·ΠΈΠ½Π° сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° дијалог-ΠΊΡƒΡ‚ΠΈΡ˜Π° ΡˆΡ‚ΠΎ ја ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΠΎΠ²Ρ€Π·Π°Π½Π° со ΠΈΠ·Π±Ρ€Π°Π½Π°Ρ‚Π° ставка. ΠšΡ€Π°Ρ‚Π΅Π½ΠΊΠ°Ρ‚Π° Π½Π° тастатурата Alt+d ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° пристап Π΄ΠΎ цСлосната Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°.
    ΠžΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° програмскиот јазик Ruby 3.1
  • ΠˆΠ°Π·ΠΈΡ‡Π½Π°Ρ‚Π° синтакса сСга Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π° врСдноститС Π²ΠΎ Ρ…Π°Ρˆ-Π±ΡƒΠΊΠ²Π°Π»ΠΈΡ‚Π΅ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π·Π° ΠΊΠ»ΡƒΡ‡Π½ΠΈ Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ Π΄Π° сС прСскокнат ΠΏΡ€ΠΈ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, намСсто ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚ β€ž{x: x, y: y}β€œ сСга ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ β€ž{x:, y:}β€œ, Π° намСсто β€žfoo(x: x, y: y)β€œ - foo( x:, y: )β€œ.
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΡΠΎΠ²ΠΏΠ°Ρ“Π°ΡšΠ΅ Π½Π° шСма со Π΅Π΄Π½Π° линија (ary => [x, y, z]), ΠΊΠΎΠΈ повСќС Π½Π΅ сС ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈ ΠΊΠ°ΠΊΠΎ СкспСримСнтални.
  • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΡ‚ β€ž^β€œ Π²ΠΎ ΡΠΎΠ²ΠΏΠ°Ρ“Π°ΡšΠ° со шаблони сСга ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Prime.each_cons(2).lazy.find_all{_1 Π²ΠΎ [n, ^(n + 2)]}.take(3).to_a #= > ? [[3, 5], [5, 7], [11, 13]]
  • Π’ΠΎ ΡΠΎΠ²ΠΏΠ°Ρ“Π°ΡšΠ°Ρ‚Π° со шаблони со Π΅Π΄Π½Π° линија, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ ΠΈΡΠΏΡƒΡˆΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€Π°Π΄ΠΈΡ‚Π΅: [0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2
  • ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ Π·Π° ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ RBS, кој Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚Π΅ структурата Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΈ користСнитС Ρ‚ΠΈΠΏΠΎΠ²ΠΈ, Π΄ΠΎΠ΄Π°Π΄Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π³ΠΎΡ€Π½Π°Ρ‚Π° Π³Ρ€Π°Π½ΠΈΡ†Π° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ симболот β€ž<β€œ, Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° псСвдоними Π½Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ‡ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ²ΠΈ, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π·Π±ΠΈΡ€ΠΊΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со скапоцСни камСња, ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈ пСрформанси ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Π½ΠΎΠ²ΠΈ потписи Π·Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΈ стандардни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  • ЕкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ Ρ€Π°Π·Π²ΠΎΡ˜Π½ΠΈ срСдини Π΅ Π΄ΠΎΠ΄Π°Π΄Π΅Π½Π° Π²ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° статички Ρ‚ΠΈΠΏ TypePro, кој Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° RBS ΠΏΡ€ΠΈΠ±Π΅Π»Π΅ΡˆΠΊΠΈ Π²Ρ€Π· основа Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΊΠΎΠ΄ Π±Π΅Π· Сксплицитни ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΡ‚ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ Π΅ Π΄ΠΎΠ΄Π°Ρ‚ΠΎΠΊ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° TypePro со ΡƒΡ€Π΅Π΄ΡƒΠ²Π°Ρ‡ΠΎΡ‚ VSCode).
  • РСдослСдот Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° повСќС Π·Π°Π΄Π°Ρ‡ΠΈ Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΎΡ‚ β€žfoo[0], bar[0] = baz, quxβ€œ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π°Π° ΠΏΠΎ рСдослСд baz, qux, foo, bar, Π½ΠΎ сСга foo, bar, baz, qux.
  • Π”ΠΎΠ΄Π°Π΄Π΅Π½Π° Π΅ СкспСримСнтална ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° распрСдСлба Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° Π·Π° стрингови со помош Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ VWA (Variable Width Allocation).
  • АТурирани Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ со скапоцСни камСња ΠΈ ΠΎΠ½ΠΈΠ΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. ΠŸΠ°ΠΊΠ΅Ρ‚ΠΈΡ‚Π΅ net-ftp, net-imap, net-pop, net-smtp, matrix, prime ΠΈ debug сС Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€