30 października wydano 0.10.0 konsolowego interpreter i wbudowanej biblioteki języka Pluto – alternatywna implementacja języka Lua 5.4 z wieloma zmianami i usprawnieniami w składni, standardowej bibliotece i interpretatorze.
Uczestnicy projektu pracują również nad biblioteką Soup oraz prosty system budowy projektów w C++ Sun. Projekty napisane są w języku C++ i są rozpowszechniane na licencji MIT.
Lista zmian:
- dodano porównanie łańcuchowe (na przykład, 1 <= i <= #t);
- do klas dodano prywatne metody;
- prywatne pola i metody można teraz deklarować i uzyskiwać do nich dostęp w dowolnym miejscu klasy;
- teraz Pluto automatycznie określa, czy należy uwzględnić lub wyłączyć niekompatybilne słowa kluczowe w zależności od ich użycia;
- do teraz można używać zamiast then i begin;
- wyrażenia if nie są już przestarzałe, ale wymagają użycia słowa kluczowego end (na przykład, print(if a then b else c end));
- operator $define teraz wymaga przypisania;
- naprawiono ładowanie modułów Lua C w Linuxie;
- dodano bibliotekę canvas;
- dodano bibliotekę ffi;
- dodano bibliotekę regex (niezależna implementacja w bibliotece Soup);
- dodano funkcję assert.contains;
- dodano funkcje bigint.eq, bigint.lt i bigint.le;
- dodano funkcje crypto.ripemd160, crypto.exportkey, crypto.importkey i crypto.decompress;
- dodano funkcje string.tohex i string.fromhex;
- dodano funkcje table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues i table.chunk;
- dodano funkcje socket.getpeer, socket.peek, socket.getside, socket.istls i socket.isopen;
- do funkcji string.split dodano opcjonalny argument limit;
- do funkcji io.currentdir dodano aliasy io.cwd i io.chdir;
- socket.starttls można teraz używać w gniazdach serwerowych;
- optymalizacja json.encode z użyciem __order;
- w funkcjach crypto.encrypt, crypto.decrypt i crypto.sign poprawiono obsługę nieważnego klucza prywatnego RSA.
Źródło: linux.org.ru
