Pas dy vjetësh e gjysmë zhvillimi, u prezantua lëshimi i gjuhës dinamike të programimit Clojure 1.12, e bazuar në konstruksionet e gjuhës Lisp dhe duke bashkuar mundësitë e programimit funksional dhe shumëfishtë me karakteristika të gjuhëve moderne të skriptimit. Kodi i programeve në gjuhën Clojure përkthehet në kodin byte të Java dhe ekzekutohet në makinën virtuale JVM. Kodi i kompilatorit Clojure, bibliotekave dhe komponenteve runtime shpërndahet nën licencën Eclipse Public License.
Ndër ndryshimet në versionin e ri:
- Funksione janë shtuar për ngarkimin dinamik të bibliotekave në modin interaktiv REPL (Read-Eval-Print Loop) pa e rinisur JVM-në dhe pa humbur gjendjen e ekzekutimit.
- Në Clojure CLI është shtuar funksioni invoke-tool për thirrjen e funksioneve ndihmëse në procese të veçanta.
- Në përputhje me clojure.java.shell, është shtuar një hapësirë e re emrash clojure.java.process, e cila thjeshtëson nisjen e proceseve të jashtme dhe organizimin e shkëmbimit të të dhënave me to.
- ĂshtĂ« ofruar mundĂ«sia pĂ«r tĂ« aksesuar metodat Java si funksione tĂ« zakonshme (kompilatori automatikisht do tĂ« gjenerojĂ« njĂ« mbĂ«shtjellĂ«s).
- Shtuar mbështetje për sintaksën e re të thirrjes së metodave duke especificuar emrin e klasës ku ato janë definiruar: Class/method (thirrje e metodit statik), Class/.method (thirrje e metodit të instancës) dhe Class/new (thirrje e konstruktorit).
- Ofrohet mundësia e qasjes në array, duke përdorur sintaksën «ComponentClass/#dimensions», për shembull, për të referuar një klasë me array dy-dimensional stringash mund të specifikohet «String/2».
- Rregulluar një vulnerabilitet (CVE-2024-22871) që çon në bllokim kur lexohet në një mënyrë të caktuar objekti i serializuar.
Burimi: opennet.ru
