Ruby 2.7 verbessert die Speicherbereinigung und den Mustervergleich

Ruby 2.7, das neueste Upgrade der Ruby-Programmiersprache, ist jetzt allgemein als Produktionsversion verfügbar. Die neue Version bringt Verbesserungen bei der Speicherbereinigung, beim Mustervergleich und bei REPL (Read-Eval-Print-Loop).

Neu in Ruby 2.7 ist die Speicherbereinigung für die Komprimierung, mit der ein fragmentierter Speicherplatz defragmentiert wird. Die GC.compactMethode komprimiert die Objekte im Heap, sodass weniger Seiten verwendet werden. Mitglieder des Ruby-Entwicklungsteams erklärten, dass einige Ruby-Programme mit mehreren Threads eine Speicherfragmentierung verursachen können, was zu einer hohen Speicherauslastung und einer Verschlechterung der Geschwindigkeit führt.

Weitere Verbesserungen in Ruby 2.7.0 sind:

  • Eine experimentelle Musteranpassungsfunktion, die ein bestimmtes Objekt durchlaufen und einen Wert zuweisen kann, wenn es mit einem Muster übereinstimmt. Pattern Matching wird häufig in funktionalen Programmiersprachen verwendet.
  • Die mehrzeilige Bearbeitung wird jetzt in irbder interaktiven Ruby-Shell unterstützt. Die Integration mit rdoc, dem Ruby-Dokumentationssystem, wird ebenfalls bereitgestellt. Mit irbkönnen Entwickler die Referenz für eine Klasse, Methode oder ein Modul anzeigen. Außerdem werden die Quelllinien, die unter angezeigt binding.irbund die Ergebnisse auf Objekte der Kernklasse überprüft werden, jetzt eingefärbt.
  • Die automatische Konvertierung von Schlüsselwort- und Positionsargumenten ist veraltet. Diese Funktion wird in Ruby 3 entfernt.
  • Für den noch experimentellen Just-in-Time-Compiler (JIT), der erstmals in Ruby 2.6 eingeführt wurde, wird JIT-ed-Code nach Ungültigmachung einer Optimierung in weniger optimierten Code neu kompiliert. Ferner wird ein Methodeninlining durchgeführt, wenn ein Verfahren als rein angesehen wird. Viele Methoden gelten jedoch noch nicht als rein.
  • An Enumerable#tally zählt das Auftreten jedes Elements.
  • Außerdem wird ein nummerierter Parameter als Standardblockparameter eingeführt.

Sie können Ruby 2.7 von ruby-lang.org herunterladen.