Po roku opracowywania publikowane jest wydanie Ruby 2.6.0, dynamiczny, zorientowany obiektowo język programowania, charakteryzujący się wysoką wydajnością tworzenia oprogramowania i zawierający najlepsze cechy Perl, Java, Python, Smalltalk, Eiffel, Ada i Lisp.
Kod projektu jest rozpowszechniany na licencji BSD („2-klauzula BSDL”) i „Ruby”, która odnosi się do najnowszej licencji GPL i jest w pełni zgodna z GPLv3.
Ruby 2.6 to szósta wersja główna, przygotowywany w ramach zaplanowanego procesu rozwojowego, który polega na przeznaczeniu roku na przygotowanie usprawnień funkcjonalnych i tworzenie wersji korygujących co 2-3 miesiące.
Główne nowe funkcje w Rubim 2.6.0
Wraz z nową wersją Ruby dodano eksperymentalną implementację kompilatora JIT, co pozwala znacznie poprawić wydajność aplikacji w języku Ruby.
W przeciwieństwie do tradycyjnych kompilatorów JIT, które generują instrukcje maszynowe w locie, proponowany kompilator JIT w Ruby najpierw zapisuje kod C na dysku, a następnie wywołuje zewnętrzny kompilator C w celu wygenerowania instrukcji maszynowych (obsługiwane przez GCC, Clang i Microsoft VC ++).
Aby włączyć JIT, musisz określić opcję „–jit” podczas uruchamiania programu Ruby lub ustawić tę opcję w zmiennej środowiskowej RUBYOPT.
W porównaniu do Ruby 2.5, włączenie JIT jest średnio 1.7 razy wydajniejsze niż aplikacje intensywnie wykorzystujące procesor.
Jednocześnie rozwój jest nadal eksperymentalny i źle dostosowany do obciążeń związanych z intensywną pracą pamięci.
Inne ulepszenia, które uzyskano w tej wersji, to RubyVM :: AbstractSyntaxTree moduł eksperymentalny, który zapewnia metodę analizy, która przetwarza przekazane ciągi jako kod Ruby i zwraca abstrakcyjne drzewo składni (AST) dla tego kodu.
Teraz alias "#then" może być użyty do uzyskania dostępu do metody "Kernel # yield_self". W przypadku metod „Array # |” a „Array # -” zasugerował bardziej czytelne aliasy „Array # union” i „Array # Difference”.
Nazwy stałe mogą teraz rozpoczynać się wielkimi literami innymi niż ASCII.
Zapewniono również wsparcie dla Transient Heap, mapy przeznaczonej dla obiektów o krótkiej żywotności przy użyciu określonych klas (Array, Hash, Object, Struct).
Na przykład dzięki theap tworzenie małych, krótkotrwałych istniejących skrótów jest teraz dwukrotnie szybsze. Test rdoc wykazał wzrost wydajności o 6-7%.
Aby zwiększyć wydajność przełączania kontekstu, proponowane są natywne implementacje programów dla architektur arm32, arm64, ppc64le, win32, win64, x86 i amd64. „Fiber.yield” i „Fiber # resume” w 64-bitowych systemach Linux działają teraz prawie 5 razy szybciej.
Ogólnie rzecz biorąc, programy intensywne wykazują wzrost wydajności o 5%.
Główne ulepszenia w Rubim 2.6.0
Otrzymano zaktualizowaną wersję RubyGems 3.0.1, w którym zaprzestano obsługi opcji „–ri” i „–rdoc”, zamiast których należy używać „–document” i „–no-document”.
Bundler jest teraz domyślnie instalowany w celu zarządzania zależnościami gem.
Dodano obsługę niedokończonych zakresów, na przykład „ary [1 ..]” lub „(1 ..). Każdy {…} ".
Spośród innych ulepszeń, na które można zwrócić uwagę, można znaleźć:
- Opcja wyjątku została dodana do metody systemowej Kernel #, aby zgłosić wyjątek w przypadku błędu zamiast zwracać fałsz.
- Tryb oneshot był dodany do modułu pokrycia, który sprawdza, czy każdy wiersz jest wykonywany co najmniej raz.
- Klasa Enumerator :: Chain oraz zaimplementowane w niej metody „Enumerable # chain” i „Enumerator # +” są dodawane w celu utworzenia łańcuchów wyliczanych wartości.
- Obsługa operatorów «<<» i «>>» została dodana do modułów Proc and Method, na przykład konstrukcja «(f << g). Call (3)» jest identyczna z «f (g (3) )) ”.
Jak zainstalować Ruby 2.6.0 w systemie Linux?
Aby otrzymać nową wersję Rubiego, po prostu otwórz terminal w swoim systemie i wpisz jedno z poniższych poleceń
Debian, Ubuntu i pochodne
sudo apt-get install ruby-full
CentOS, Fedora i RHEL
sudo yum install ruby
Gentoo
sudo emerge dev-lang/ruby
Arch Linux, Manjaro, Antergos i pochodne
sudo pacman -S ruby
openSUSE
sudo zypper install ruby
Polecenia apt-get yum etc przechodzą do domyślnych repozytoriów dystrybucji, które są generalnie stare i nie będziesz mieć wersji 2.6, ale inną starą wersję.