Uscita del linguaggio di programmazione Tcl 8.6.14

Dopo 15 mesi di sviluppo, è stata pubblicata la versione Tcl/Tk 8.6.14, un linguaggio di programmazione dinamico distribuito insieme a una libreria multipiattaforma di elementi base per interfacce grafiche. Tcl è principalmente utilizzato come piattaforma per la creazione di interfacce utente e come linguaggio embedded, ma è anche adatto per la prototipazione rapida, lo sviluppo web, la creazione di applicazioni di rete, l'amministrazione di sistemi e il testing. Il codice del progetto è distribuito con licenza BSD.

Tra le novità:

  • Normalizzazione dei percorsi dei file e gestione del simbolo «~» nei percorsi standardizzati per piattaforme multipiattaforma.
  • Un nome di percorso che inizia con ‘//’ non viene sostituito da ‘/’, anche in Cygwin e QNX.
  • Consentito l'uso di modalità vuote in [chan create] («[chan create {} $cmd]») per consentire la versione refchan di [socket -server].
  • Migliorata le prestazioni di fork utilizzando multithreading tramite vfork/spawn.
  • Effettuato il richiamo di getsockname(2) in Tcl_MakeFileChannel(3) solo quando necessario.
  • La sicurezza di Tcl/tclsh è stata potenziata tramite la funzione pledge(2) in OpenBSD o meccanismi simili.
  • tcltest adattato per supportare Tcl 9 (>= tcltest 2.5.7).
  • Impostato l'uso di un simbolo sostitutivo durante la decodifica di sequenze Unicode incomplete.
  • Aggiunte verifiche per mknod, tcdrain e uname negli script di build per VxWorks o altre piattaforme.
  • La versione a 32 bit di Cygwin ha cessato di esistere, quindi non è più necessario l'argomento «--enable-64bit» per Cygwin.
  • Tcl_VarEval non è più considerato obsoleto.
  • Nel «[interp limit time -seconds]» risolta la questione del 2038.
  • Rimossa l'opzione utf16 da win/makefile.vc.
  • zlib aggiornato alla versione 1.3.1.
  • libtommath aggiornato alla versione 1.2.1.
  • install-sh aggiornato alla versione 2020-11-14.01.
  • Aggiunta la compatibilità con Unicode 15.1.
  • Il database dei fusi orari è stato aggiornato alla release tzdata2024a.
  • Nelle informazioni di licenza sui file binari per Windows è menzionata l'Università della California.
  • Corretto un errore di formattazione degli argomenti nella pagina man.
  • Corretto un errore di mancanza di informazioni su Windows 11 in tcl_platforms.
  • Corretto un errore di confronto non corretto delle stringhe sui sistemi con ordine dei byte big endian.
  • Corretto un errore di crash quando tcl_precision è compreso tra 15 e 18.
  • Corrette raramente manifestate cadute durante la pulizia del flusso memchan.
  • Corretto un problema con l'uscita di errore nel comando zip quando il commento del file/nome file è troppo lungo o non è in codifica iso-latin-1.
  • Corretto un problema con il ritorno di usec da Tcl_GetTime in Windows.
  • Corretto un crash durante l'applicazione di una trasformazione del canale in un socket TCP client.
  • Prevenuto un'errata lettura in Tcl_UtfToUniChar.
  • Nell'SDK di macOS 13, la funzione sprintf() è stata dichiarata obsoleta.
  • Corretto un overflow dell'argomento posizione in [scan %num$mode].
  • Corretto un crash durante la chiamata alla coda.
  • Corrette le problematiche riscontrate in clock scan e clock add in situazioni di errore o con opzioni abbreviate.
  • Corretto un problema di ignorare sequenze di byte doppie incomplete, ad esempio in [encoding convertfrom gb12345 x].
  • Risolto un crash di tclvfs tkt quando si esce dall'interprete con tclvfs caricato.
  • Corretto un problema relativo al caso in cui Tcl_GetUniChar leggesse caratteri oltre la lunghezza della stringa per stringhe ASCII.
  • Corretto un errore nella versione per MS Windows: i file con emoji vengono trovati tramite glob, ma non riconosciuti tramite file exists o open.
  • Corretto un errore di compilazione secondo VC6 nella versione core-8-6-branch: «error C2065: ‘int16_t’ : undeclared identifier».
  • Corrette le problematiche in ClockGetdatefieldsObjCmd(): overflow di interi firmati e comportamento indipendente dalla piattaforma.
  • Corretto un errore di inizializzazione di fakeObject.refCount in tclOO.c.
  • Corretto un errore di use-after-return in AddressSanitizer che rompeva i test NRE e le coroutine.
  • Correzione degli errori falsi da [clock format].
  • Correzione della riallocazione di [exec %var%] in MS Windows. Questo era vietato in 8.6.13.
  • Correzione della documentazione per Tcl_PkgRequire: la riga con la specifica della versione fa riferimento a «package require».
  • Corretto un errore in [tcl_startOfPreviousWord string end-1].
  • Risolto un crash che si verificava quando Tcl_ReadChars veniva chiamato con oggetti Unicode.
  • Risolto un ciclo infinito durante la ridefinizione di proc ::history.
  • Risolto un ciclo infinito nel caso in cui ::unknown venga spostato nello spazio dei nomi.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster