Na een jaar van ontwikkeling is de functionele programmeertaal Erlang 25 vrijgegeven, gericht op de ontwikkeling van gedistribueerde fouttolerante applicaties die gelijktijdige verwerking van verzoeken in real-time mogelijk maken. De taal is verspreid in gebieden zoals telecommunicatie, banksystemen, e-commerce, computetelefonie en instant messaging-structuren. Tegelijkertijd is release OTP 25 (Open Telecom Platform) uitgebracht - een bijbehorende set bibliotheken en componenten voor het ontwikkelen van gedistribueerde systemen in de Erlang-taal.
Belangrijkste vernieuwingen:
- Een nieuwe constructie “maybe … end” is geïmplementeerd voor het groeperen van meerdere expressies in één blok, vergelijkbaar met “begin … end”, maar zonder dat variabelen uit het blok worden geëxporteerd.
- Ondersteuning voor selectieve activatie van functionaliteiten is toegevoegd, waardoor het mogelijk wordt om nieuwe en potentieel incompatibele functies van de taal en runtime te testen en geleidelijk in te voeren zonder de werking van bestaande code te verstoren. Functionaliteiten kunnen zowel tijdens de compilatie als met behulp van de directive feature() in codebestanden in- en uitgeschakeld worden. Bijvoorbeeld, om de nieuwe expressie maybe in code in te schakelen, kan men “feature(maybe_expr,enable)” opgeven.
- Optimalisaties zijn geïmplementeerd in de JIT-compiler op basis van informatie over gegevenstypen en ondersteuning voor 64-bits ARM-processors (AArch64) is toegevoegd. De ondersteuning voor de utilities perf en gdb is verbeterd, waarbij informatie over de regels in de code wordt doorgegeven.
- Een nieuwe peer-module is toegevoegd met functies voor het starten van gekoppelde Erlang-knooppunten. Na het verlies van de controleverbinding met een knooppunt wordt het knooppunt automatisch gesloten.
- Ondersteuning voor OpenSSL 3.0 is toegevoegd.
- In de module maps zijn de functies groups_from_list/2 en groups_from_list/3 toegevoegd voor het groeperen van een lijst met elementen.
- In de module lists zijn de functies uniq/1, uniq/2, enumerate/1 en enumerate/2 toegevoegd voor het filteren van duplicaten in een lijst en het genereren van een lijst met tuples met elementnummers.
- In de module rand is een nieuwe, zeer snelle generator voor pseudorandom getallen geïmplementeerd.
Bron: opennet.ru
