Po 15 miesiącach prac udostępniono wersję Tcl/Tk 8.6.14 – dynamiczny język programowania dystrybuowany z wieloplatformowym frameworkiem GUI. Język Tcl jest wykorzystywany przede wszystkim jako platforma do tworzenia interfejsów użytkownika oraz jako język osadzony, ale nadaje się również do szybkiego prototypowania, tworzenia stron internetowych, tworzenia aplikacji sieciowych, administrowania systemami i testowania. Kod projektu rozpowszechniany jest na licencji BSD.
Wśród zmian:
- Normalizacja ścieżek plików i obsługa symbolu „~” w ścieżkach zostały doprowadzone do formy wieloplatformowej.
- Nazwa ścieżki zaczynająca się od „//” nie jest zastępowana przez „/”, także w Cygwin i QNX.
- Dozwolony tryb pusty w [chan create] („[chan create {} $cmd]”), aby zezwolić na wersję refchan [socket -server].
- Poprawiono wydajność rozwidlania podczas korzystania z wielowątkowości z vfork/spawn.
- Upewnij się, że getsockname(2) jest wywoływany w Tcl_MakeFileChannel(3) tylko wtedy, gdy jest to konieczne.
- Bezpieczeństwo Tcl/tclsh można zwiększyć, korzystając z funkcji pledge(2) pakietu OpenBSD lub podobnych mechanizmów.
- tcltest został dostosowany do obsługi Tcl 9 (>= tcltest 2.5.7).
- Umożliwia użycie znaku zastępczego podczas dekodowania niekompletnych sekwencji Unicode.
- Dodano sprawdzanie mknod, tcdrain i uname w skryptach kompilacji dla VxWorks i innych platform.
- 32-bitowy Cygwin zakończył swoje istnienie, więc argument „--enable-64bit” dla Cygwin nie jest już potrzebny.
- Tcl_VarEval nie jest już przestarzały.
- Problem z rokiem 2038 został rozwiązany w „[interp limit time -seconds]”.
- Opcja utf16 została usunięta z pliku win/makefile.vc.
- Zlib został zaktualizowany do wersji 1.3.1.
- Biblioteka libtommath została zaktualizowana do wersji 1.2.1.
- install-sh został zaktualizowany do wersji 2020-11-14.01.
- Dodano obsługę Unicode 15.1.
- Baza danych stref czasowych została zaktualizowana o wersję tzdata2024a.
- Metadane licencji binarnej systemu Windows wspominają o Uniwersytecie Kalifornijskim.
- Naprawiono błąd związany z nieprawidłowym formatowaniem argumentów na stronie podręcznika.
- Naprawiono błąd powodujący brak informacji o systemie Windows 11 w pliku tcl_platforms.
- Naprawiono błąd powodujący nieprawidłowe porównywanie ciągów znaków w systemach z kolejnością bajtów big endian.
- Naprawiono błąd powodujący awarię, gdy tcl_precision było równe 15..18.
- Naprawiono rzadkie awarie występujące podczas czyszczenia strumienia memchan.
- Naprawiono problem z błędem w poleceniu zip, gdy komentarz/nazwa pliku była zbyt długa lub nie była zapisana w kodowaniu iso-latin-1.
- Naprawiono problem ze zwracaniem usec z Tcl_GetTime w systemie Windows.
- Naprawiono błąd powodujący awarię podczas stosowania transformacji kanału w gnieździe TCP klienta.
- Zapobiegnięto nieprawidłowemu odczytowi w Tcl_UtfToUniChar.
- Funkcja sprintf() została uznana za przestarzałą w pakiecie SDK systemu macOS 13.
- Naprawiono przepełnienie argumentu pozycji w [scan %num$mode].
- Naprawiono błąd pojawiający się przy wołaniu „tail call”.
- Naprawiono błędy związane ze skanowaniem zegara i dodawaniem zegara w niewłaściwych przypadkach lub ze skróconymi opcjami.
- Naprawiono błąd powodujący ignorowanie niekompletnych kodowań dwubajtowych, na przykład w [encoding convertfrom gb12345 x].
- Naprawiono awarię tclvfs tkt występującą podczas wychodzenia z interpretera przy załadowanym tclvfs.
- Naprawiono problem, w wyniku którego funkcja Tcl_GetUniChar odczytywała znaki wykraczające poza długość ciągu w przypadku ciągów ASCII.
- Naprawiono błąd w wersji na system MS Windows: pliki z emoji są znajdowane za pomocą glob, ale nie są wykrywane za pomocą stwierdzenia, że plik istnieje lub jest otwarty.
- Naprawiono błąd kompilacji w wersji VC6 gałęzi core-8-6-branch: „błąd C2065: 'int16_t': niezdefiniowany identyfikator”.
- Naprawiono błędy w ClockGetdatefieldsObjCmd(): przepełnienie liczby całkowitej ze znakiem i zachowanie niezależne od platformy.
- Naprawiono błąd z inicjalizacją fakeObject.refCount w tclOO.c.
- Naprawiono błąd, w wyniku którego użycie funkcji use-after-return w AddressSanitizer powodowało uszkodzenie testów NRE i współprogramów.
- Napraw fałszywe alarmy z [format zegara].
- Naprawianie realokacji [exec %var%] w systemie MS Windows. Ta funkcja została zakazana w wersji 8.6.13.
- Poprawka dokumentacji dla Tcl_PkgRequire: wiersz specyfikacji wersji odnosi się do „package require”.
- Naprawiono błąd w [tcl_startOfPreviousWord string end-1].
- Naprawiono błąd powodujący awarię, która występowała, gdy Tcl_ReadChars było wywoływane z obiektami Unicode.
- Naprawiono pętlę przy ponownym definiowaniu proc::history.
- Naprawiono pętlę, gdy ::unknown zostało przeniesione do przestrzeni nazw.
Źródło: opennet.ru
