Po roku prac wdrożono funkcjonalny język programowania Erlang 25, który jest skierowany na rozwój rozproszonych aplikacji odpornych na błędy, zapewniających równoległe przetwarzanie zapytań w czasie rzeczywistym. Język znalazł zastosowanie w takich dziedzinach jak telekomunikacja, systemy bankowe, e-commerce, telefonia komputerowa i organizacja szybkiej wymiany wiadomości. Jednocześnie wydano także wersję OTP 25 (Open Telecom Platform) – zestaw bibliotek i komponentów do tworzenia rozproszonych systemów w języku Erlang.
Główne nowości:
- Wprowadzono nową konstrukcję „maybe … end” do grupowania kilku wyrażeń w jednym bloku, podobną do „begin … end”, ale nie powodującą eksportu zmiennych z bloku.
- Dodano wsparcie dla selektywnej aktywacji funkcji, co pozwala testować i stopniowo wprowadzać nowe i potencjalnie niosące ryzyko zmiany funkcje języka oraz runtime bez zaburzania działania istniejącego kodu. Funkcje mogą być włączane i wyłączane zarówno podczas kompilacji, jak i za pomocą dyrektywy feature() w plikach z kodem. Na przykład, aby włączyć nowe wyrażenie maybe w kodzie, można określić „feature(maybe_expr,enable)”.
- W kompilatorze JIT wprowadzono optymalizacje oparte na informacjach o typach danych oraz dodano wsparcie dla 64-bitowych procesorów ARM (AArch64). Ulepszono wsparcie narzędzi perf i gdb, które teraz przekazują informacje o numerach linii w kodzie.
- Dodano nowy moduł peer z funkcjami do uruchamiania powiązanych węzłów Erlang. Po utracie połączenia zarządzającego z węzłem, praca węzła jest automatycznie kończona.
- Dodano wsparcie dla OpenSSL 3.0.
- Do modułu maps dodano funkcje groups_from_list/2 oraz groups_from_list/3 do grupowania listy elementów.
- W module lists dodano funkcje uniq/1, uniq/2, enumerate/1 oraz enumerate/2 do eliminacji duplikatów w liście i generowania listy krotek z numerami elementów.
- W module rand wprowadzono nowy, bardzo szybki generator liczb pseudo-losowych.
Źródło: opennet.ru
