Ruby 2.7 подобрява събирането на боклука, съвпадението на шаблоните

Ruby 2.7, най-новата надстройка на езика за програмиране Ruby, вече е общодостъпна като производствена версия. Новото издание носи подобрения в събирането на боклука, съвпадението на шаблоните и REPL (read-eval-print-loop).

Ново в Ruby 2.7 е събирането на боклук за събиране, което се използва за дефрагментиране на фрагментирано пространство в паметта. В GC.compactметода уплътнява обектите в купчината, така че се използват по-малко страници. Членовете на екипа за разработка на Ruby обясниха, че някои многонишкови програми на Ruby могат да причинят фрагментация на паметта, което води до високо използване на паметта и деградация на скоростта.

Други подобрения в Ruby 2.7.0 включват:

  • Възможност за съвпадение на експериментален образец, която може да пресече даден обект и да присвои стойност, ако съответства на образец. Съпоставянето на образци се използва широко във функционалните езици за програмиране.
  • Многоредово редактиране вече се поддържа в irbинтерактивната обвивка на Ruby. Осигурена е и интеграция с rdoc, системата за документация на Ruby. С irb, разработчиците могат да показват справка за клас, метод или модул. Също така изходните редове, показани binding.irbи проверяват резултатите за обекти от ядрен клас, сега са оцветени.
  • Автоматичното преобразуване на ключови думи и позиционни аргументи е оттеглено. Тази функция ще бъде премахната в Ruby 3.
  • За все още експерименталния компилатор точно навреме (JIT), въведен за първи път в Ruby 2.6, JIT-кодът се прекомпилира в по-малко оптимизиран код, когато оптимизацията е обезсилена. Освен това се извършва вграждане на метод, когато методът се счита за чист. Много методи обаче все още не се считат за чисти.
  • Един Enumerable#tally брои появата на всеки елемент.
  • Също така е въведен номериран параметър като параметър на блока по подразбиране.

Можете да изтеглите Ruby 2.7 от ruby-lang.org.