Lëshimi i gjuhës së programimit Julia 1.8.

Në dispozicion është lëshimi i gjuhës së programimit Julia 1.8, e cila kombinon cilësi të tilla si performanca e lartë, mbështetje për tipizimin dinamik dhe mjete të integruara për programimin paralel. Sintaksa e Julia është e ngjashme me atë të MATLAB, duke huazuar disa elemente nga Ruby dhe Lisp. Metoda për manipulimin e vargjeve i ngjan asaj në Perl. Kodi i projektit shpërndahet nën licencën MIT.

Veçoritë kyçe të gjuhës:

  • PerformancĂ« e lartĂ«: NjĂ« nga qĂ«llimet kryesore tĂ« projektit Ă«shtĂ« arritja e performancĂ«s afĂ«r programeve nĂ« gjuhĂ«n C. Kompilatori i Julia-s bazohet nĂ« punĂ«t e projektit LLVM dhe gjeneron kod tĂ« efektshĂ«m tĂ« makinĂ«s natyrore pĂ«r shumĂ« platforma tĂ« synuara;
  • MbĂ«shtetje pĂ«r paradigmat tĂ« ndryshme tĂ« programimit, duke pĂ«rfshirĂ« elemente tĂ« programimit objekt-orientuar dhe funksional. Biblioteka standarde ofron gjithashtu funksione pĂ«r hyrje/dalje asinkrone, menaxhimin e proceseve, regjistrimin, profilimin dhe menaxhimin e pakot;
  • Tipizimi dinamik: gjuha nuk kĂ«rkon pĂ«rcaktimin e qartĂ« tĂ« tipave pĂ«r variablat, ngjashĂ«m me gjuhĂ«t e programimit tĂ« skriptimit. MbĂ«shtetet njĂ« mod i ndĂ«rveprueshĂ«m;
  • MundĂ«si opsionale pĂ«r tĂ« specifikuar qartĂ« tipet;
  • Sintaksa, e cila pĂ«rshtatet shkĂ«lqyeshĂ«m pĂ«r llogaritjet numerike, llogaritjet shkencore, sistemet e mĂ«simit tĂ« makinerive dhe vizualizimin e tĂ« dhĂ«nave. MbĂ«shtetje pĂ«r shumĂ« lloje tĂ« tĂ« dhĂ«nave numerike dhe mjete pĂ«r paralelizimin e llogaritjeve.
  • MundĂ«sia pĂ«r tĂ« thirrur drejtpĂ«rdrejt funksionet nga bibliotekat nĂ« gjuhĂ«n C pa shtresa tĂ« tjera.

Ndryshimet kryesore në Julia 1.8:

  • MundĂ«si tĂ« reja tĂ« gjuhĂ«s
    • Fushat e strukturĂ«s sĂ« ndryshueshme (mutable struct) tani mund tĂ« annotohen si constante pĂ«r tĂ« parandaluar ndryshimet dhe pĂ«r tĂ« mundĂ«suar optimizim.
    • Annotimet e tipeve mund tĂ« shtohen nĂ« variablat globale.
    • MĂ«nyra pĂ«r tĂ« krijuar array tĂ« zbrazĂ«t n-dimensional mund tĂ« bĂ«het duke pĂ«rdorur disa pika me presje brenda kllapave katrore, pĂ«r shembull «[;;;]» krijon njĂ« array 0×0×0.
    • Blloqet try tani mund tĂ« kenĂ« gjithashtu njĂ« bllok else, i cili ekzekutohet menjĂ«herĂ« pas trupit kryesor, nĂ«se nuk ka ndodhur ndonjĂ« gabim.
    • @inline dhe @noinline mund tĂ« vendosen brenda trupit tĂ« funksionit, qĂ« lejon annotimin e funksionit anonim.
    • @inline dhe @noinline tani mund tĂ« aplikohen nĂ« funksionin nĂ« vendin e thirrjes ose nĂ« bllok, pĂ«r tĂ« detyruar pĂ«rfshirjen (ose pĂ«r tĂ« mos pĂ«rfshirĂ«) thirrjet pĂ«rkatĂ«se tĂ« funksioneve.
    • ∀, ∃ dhe ∄ janĂ« tĂ« lejuara si simbole identifikues.
    • Shtuar mbĂ«shtetje pĂ«r specifikimin Unicode 14.0.0.
    • metoda Module(:name, false, false) mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar njĂ« modul qĂ« nuk pĂ«rmban emra, nuk importon Base ose Core dhe nuk ka referenca pĂ«r veten.
  • Ndryshime nĂ« gjuhĂ«
    • Objektet e reja Task (@spawn, @async etj.) tani kanĂ« world_age pĂ«r metodat nga Task prind gjatĂ« krijimit, duke lejuar optimizimin e ekzekutimit tĂ« tyre. Versioni i mĂ«parshĂ«m i aktivizimit Ă«shtĂ« nĂ« dispozicion nĂ«pĂ«rmjet metodĂ«s Base.invokelatest.
    • DirektivĂ«t e formatimit tĂ« pavendosur dy drejtues Unicode tani janĂ« tĂ« ndaluara nĂ« vargje dhe komente pĂ«r tĂ« shmangur injeksionet.
    • Base.ifelse tani pĂ«rcaktohet si njĂ« funksion i pĂ«rgjithshĂ«m, jo si njĂ« tĂ« integruar, çka lejon paketat tĂ« zgjasin pĂ«rcaktimin e saj.
    • Çdo caktim i njĂ« variabli global tani kalon fillimisht pĂ«rmes thirrjes convert(Any, x) ose convert(T, x), nĂ«se pĂ«r variablin global Ă«shtĂ« shpallur tipi T. Para pĂ«rdorimit tĂ« variablave globalĂ«, sigurohuni qĂ« invarianti convert(Any, x) === x tĂ« jetĂ« gjithmonĂ« i vĂ«rtetĂ«, pĂ«rndryshe mund tĂ« sjellĂ« sjellje tĂ« papritur.
    • Funksionet e integruara tani janĂ« tĂ« ngjashme me funksionet universale dhe mund tĂ« enumerohen nĂ« mĂ«nyrĂ« programatike me metoda.
  • PĂ«rmirĂ«sime tĂ« kompiluesit/ambientit tĂ« ekzekutimit.
    • Koha e ngarkesĂ«s fillestare Ă«shtĂ« reduktuar me rreth 25%.
    • Kompilatori i bazuar nĂ« LLVM Ă«shtĂ« ndarĂ« nga biblioteka e runtime nĂ« njĂ« bibliotekĂ« tĂ« re libjulia-codegen. Ai ngarkohet automatikisht, kĂ«shtu qĂ« pĂ«r pĂ«rdorim tĂ« zakonshĂ«m nuk duhet tĂ« ketĂ« ndryshime. NĂ« shpĂ«rndarjet qĂ« nuk kanĂ« nevojĂ« pĂ«r kompilator (pĂ«r shembull, imazhe sistemesh ku gjithĂ« kodi i nevojshĂ«m Ă«shtĂ« e kompiluar paraprakisht), kjo bibliotekĂ« (dhe varĂ«sia e saj LLVM) mund tĂ« pĂ«rjashtohet thjesht.
    • Dalja e tipit tĂ« kushteve tani Ă«shtĂ« e mundur pĂ«rmes kalimit tĂ« argumentit nĂ« metodĂ«. PĂ«r shembull, pĂ«r Base.ifelse(isa(x, Int), x, 0) kthehet ::Int, edhe nĂ«se tipi x Ă«shtĂ« i panjohur.
    • SROA (ZĂ«vendĂ«simi Skalar i AgregatĂ«ve) Ă«shtĂ« pĂ«rmirĂ«suar: pĂ«rjashtohen thirrjet getfield me fusha globale tĂ« qĂ«ndruara, pĂ«rjashton struktura tĂ« ndryshueshme me fusha tĂ« pa inicializuara, rrit produktivitetin dhe pĂ«rpunimin e thirrjeve tĂ« brendshme getfield.
    • Dalja e tipeve ndjek efekte tĂ« ndryshme — ndryshime anĂ«sore dhe mungesĂ« hedhjesh. Merren parasysh pĂ«rhapjet e constanteve, çka e rrit ndjeshĂ«m produktivitetin gjatĂ« kompilimit. NĂ« disa raste, pĂ«r shembull, thirrjet e funksioneve, tĂ« cilat nuk mund tĂ« integrohen nĂ« vendngjarje, por qĂ« nuk ndikon nĂ« rezultat, do tĂ« hidhen nĂ« kohĂ«n e ekzekutimit. Rregullat pĂ«r efekte mund tĂ« pĂ«rditĂ«sohen manualisht me makron Base.@assume_effects.
    • Kompilimi paraprak (me drejtime tĂ« dukshme pĂ«r kompilimin paraprak ose ngarkesa tĂ« pĂ«rcaktuara) tani ruan mĂ« shumĂ« kod tĂ« pĂ«rcaktuar nga tipi, çka shkakton njĂ« reduktim tĂ« kohĂ«s sĂ« fillimit tĂ« parĂ«. Çdo kombim tĂ« ri tĂ« metodave/tipave, qĂ« i nevojitet paketĂ«s tuaj, pavarĂ«sisht se ku ato metoda janĂ« pĂ«rcaktuar, tani mund tĂ« ruhet nĂ« skedarin e parakomplikuar nĂ«se ato thirren nga njĂ« metodĂ« qĂ« i takon paketĂ«s suaj.
  • Ndryshimet nĂ« parametrat e komandĂ«s
    • SidoqoftĂ«, sjellja e parazgjedhur pĂ«r monitorimin e shpalljeve @inbounds tani Ă«shtĂ« njĂ« opsion auto nĂ« «—check-bounds=yes|no|auto».
    • Opcioni i ri «—strip-metadata» pĂ«r tĂ« hequr rreshtat e dokumentacionit, informacionin mbi vendndodhjen burimore dhe emrat e variablave lokalĂ« gjatĂ« krijimit tĂ« njĂ« imazhi tĂ« sistemit.
    • Opsioni i ri «—strip-ir» pĂ«r tĂ« hequr pĂ«rfaqĂ«simin e ndĂ«rmjetĂ«m tĂ« kodit burimor gjatĂ« ndĂ«rtimit tĂ« imazhit tĂ« sistemit. Imazhi i rezultatit do tĂ« funksionojĂ« vetĂ«m nĂ«se pĂ«rdoret «—compile=all» ose nĂ«se e gjithĂ« kodi i nevojshĂ«m Ă«shtĂ« pĂ«rpiluar paraprakisht.
    • NĂ«se simboli «-« pĂ«rmendet nĂ« vend tĂ« emrit tĂ« skedarit, kodi ekzekutiv lexohet nga rrjedha standarde e hyrjes.
  • Ndryshime nĂ« mbĂ«shtetje tĂ« shumĂ«fishtĂ«.
    • Threads.@threads pĂ«r tĂ« paracaktuar pĂ«rdor parametrin e ri tĂ« programimit :dynamic, i cili ndryshon nga mĂ«nyra e mĂ«parshme, pasi iteraçÔes do tĂ« planifikohen dinamikisht pĂ«r threads e disponueshme, jo tĂ« caktohen pĂ«r çdo thread. Kjo mĂ«nyrĂ« lejon shpĂ«rndarjen mĂ« tĂ« mirĂ« tĂ« cikleve tĂ« thella me @spawn dhe @threads.
  • Funksionet e reja tĂ« bibliotekĂ«s
    • eachsplit(str) pĂ«r tĂ« realizuar shumĂ« herĂ« split(str).
    • allequal(itr) pĂ«r tĂ« kontrolluar barazinĂ« e tĂ« gjithĂ« elementeve nĂ« iterator.
    • hardlink(src, dst) mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar lidhje tĂ« forta.
    • setcpuaffinity(cmd, cpus) pĂ«r tĂ« vendosur pĂ«rputhshmĂ«rinĂ« e bĂ«rthamĂ«s sĂ« procesorit me proceset e ekzekutimit.
    • diskstat(path=pwd()) pĂ«r tĂ« marrĂ« statistikat pĂ«r disqet.
    • Makro i ri @showtime pĂ«r tĂ« shfaqur si stringun e vlerĂ«suar, ashtu edhe raportin @time.
    • LazyString dhe makroja lazy»str» janĂ« shtuar pĂ«r tĂ« mbĂ«shtetur ndĂ«rtimin e vonuar tĂ« mesazheve tĂ« gabimeve nĂ« rrugĂ«t e gabimeve.
    • Problemi i qasjes sĂ« shumĂ«fishtĂ« nĂ« Dict dhe objekte tĂ« tjera tĂ« derived, si keys(::Dict), values(::Dict) dhe Set Ă«shtĂ« zgjidhur. Metodat e iterimit tani mund tĂ« thirren pĂ«r fjalorin ose shumĂ«sinĂ«, me kusht qĂ« tĂ« mos ketĂ« thirrje qĂ« ndryshojnĂ« fjalorin ose shumĂ«sinĂ«.
    • @time dhe @timev tani kanĂ« njĂ« pĂ«rshkrim opsional, qĂ« lejon annotimin e burimit tĂ« raporteve pĂ«r kohĂ«n, pĂ«r shembull. @time «Evaluating foo» foo().
    • range pranon ose stop, ose length si argumentin e vetĂ«m tĂ« fjalĂ«s kyçe.
    • precision dhe setprecision tani pranojnĂ« base si fjalĂ« kyçe.
    • Objektet e socket TCP tani ofrojnĂ« metodĂ«n closewrite dhe mbĂ«shtesin pĂ«rdorimin nĂ« modalitetin e pjesshĂ«m tĂ« hapur.
    • extrema tani pranon argumentin init.
    • Iterators.countfrom tani pranon çdo tip qĂ« pĂ«rcakton metodĂ«n +.
    • @time tani ndan % e kohĂ«s sĂ« shpenzuar pĂ«r ripĂ«rpilim tĂ« metodave me tipe tĂ« ndryshuara.
  • Ndryshime nĂ« bibliotekĂ«n estĂĄndar
    • ÇelĂ«sat me vlerĂ«n Nothing tani hiqen nga mjedisi nĂ« addenv.
    • Iterators.reverse (dhe, pĂ«r rrjedhojĂ«, last) mbĂ«shtet eachline.
    • Funksioni length pĂ«r gamat e kufizuara nuk kontrollon mĂ« mbivendosjen e numrave tĂ« plotĂ«. NjĂ« funksion i ri checked_length Ă«shtĂ« disponibilizuar, i cili pĂ«rmban logjikĂ«n e kontrollit tĂ« riprodhimit tĂ« numrave. NĂ«se Ă«shtĂ« e nevojshme, pĂ«rdorni SaferIntegers.jl pĂ«r ndĂ«rtimin e tipit tĂ« gamĂ«s.
    • Iterator Iterators.Reverse implementon inverzimin e eachindex, nĂ«se Ă«shtĂ« e mundur.
  • Menaxheri i paketave
    • TĂ« reja indikatorĂ«t ⌃ dhe ⌅ pranĂ« pakteve nĂ« statusin «pkg>», pĂ«r tĂ« cilat janĂ« tĂ« disponueshme versione tĂ« reja. ⌅ tregon se versionet e reja nuk mund tĂ« instalohen.
    • Argumenti i ri outdated::Bool pĂ«r Pkg.status (—outdated ose -o nĂ« modalitetin REPL), pĂ«r tĂ« shfaqur informacionin pĂ«r pakete tĂ« versioneve tĂ« mĂ«parshme.
    • Argumenti i ri compat::Bool pĂ«r Pkg.status (—compat ose -c nĂ« modalitetin REPL), pĂ«r tĂ« shfaqur çdo rekord [compat] nĂ« Project.toml.
    • NjĂ« modalitet i ri «pkg> compat» (dhe Pkg.compat) pĂ«r tĂ« konfigurimin e recetave tĂ« pĂ«rputhshmĂ«risĂ« pĂ«r projektin. Ofron njĂ« redaktor interaktiv pĂ«rmes «pkg> compat» ose menaxhimin e drejtpĂ«rdrejtĂ« tĂ« regjistrit pĂ«rmes «pkg> Foo 0.4,0.5», i cili mund tĂ« ngarkojĂ« regjistrat aktualĂ« pĂ«rmes autocompletion me tab. Pra, «pkg> compat Fo<TAB>» automatikisht plotĂ«son deri nĂ« «pkg> Foo 0.4,0.5», nĂ« mĂ«nyrĂ« qĂ« tĂ« mund tĂ« redaktoni regjistrin ekzistues.
    • Tani Pkg pĂ«rpiqet tĂ« ngarkojĂ« paketat me server paketat vetĂ«m nĂ«se serveri ndjek regjistrin qĂ« pĂ«rmban paketĂ«n.
    • Pkg.instantiate tani do tĂ« shfaqĂ« njĂ« paralajmĂ«rim kur Project.toml nuk Ă«shtĂ« sinkronizuar me Manifest.toml. Ai e bĂ«n kĂ«tĂ« bazuar nĂ« hash-in e regjistrave tĂ« deps dhe compat tĂ« projektit (fushat e tjera injorohen) nĂ« manifest gjatĂ« zgjidhjes, nĂ« mĂ«nyrĂ« qĂ« tĂ« mund tĂ« zbulojĂ« çdo ndryshim nĂ« deps tĂ« Project.toml ose regjistrat e compat pa nevojĂ«n pĂ«r njĂ« zgjidhje tĂ« pĂ«rsĂ«ritur.
    • NĂ«se «pkg> add» nuk mund tĂ« gjejĂ« njĂ« paket me emrin e caktuar, tani do tĂ« proponohen paketa me emra tĂ« ngjashĂ«m qĂ« mund tĂ« shtohen.
    • Versioni i julia, i ruajtur nĂ« manifest, nuk pĂ«rfshin mĂ« numrin e ndĂ«rtimit, dmth. master tani do tĂ« regjistrohet si 1.9.0-DEV.
    • NdĂ«rprerja e testit «pkg>» tani do tĂ« zbulohet mĂ« stabilisht dhe do tĂ« kthehet saktĂ« nĂ« REPL.
  • InteractiveUtils
    • Makro i ri @time_imports pĂ«r raportimin e kohĂ«s sĂ« shpenzuar nĂ« importimin e paketeve dhe varĂ«sive tĂ« tyre, me ndarjen e kohĂ«s sĂ« pĂ«rpilimit dhe ripĂ«rpilimit nĂ« pĂ«rqindje gjatĂ« importit.
  • Algebra lineare
    • NĂ«ndermoduli BLAS tani mbĂ«shtet funksionet e nivelit-2 BLAS spr!.
    • Biblioteka e standardeve LinearAlgebra.jl tani Ă«shtĂ« plotĂ«sisht e pavarur nga SparseArrays.jl, si nĂ« aspektin e kodit burimor ashtu edhe nĂ« aspektin e testimit modular. Si pasojĂ«, matrica tĂ« holluara tani nuk kthehen (implicit) nga metodat e LinearAlgebra kur pĂ«rdoren nĂ« objektet Base apo LinearAlgebra. NĂ« veçanti, kjo çon nĂ« ndĂ«rrime kritike si vijon:
      • Kombinimet duke pĂ«rdorur mata tĂ« veçanta "tĂ« holluara" (p.sh., diagonale) tani kthejnĂ« matrica tĂ« densa; si rezultat, fushat D1 dhe D2 tĂ« objekteve SVD, tĂ« krijuara gjatĂ« thirrjeve tĂ« getproperty, tani janĂ« matrica tĂ« densa.
      • Metoda similar(::SpecialSparseMatrix, ::Type, ::Dims) kthen njĂ« matricĂ« tĂ« dendur zero. Si pasojĂ«, prodhimi i dy, tre dhe matricave simetrike tridimensionale njĂ«ra mbi tjetrĂ«n çon nĂ« krijimin e njĂ« matrice tĂ« dendur. Gjithashtu, ndĂ«rtimi i matriceve tĂ« ngjashme me tre argumente nga matrica "tĂ« holluara" (jo statike) tani dĂ«shton pĂ«r shkak tĂ« "zero(::Type{Matrix{T}})."
  • Printf
    • Tani pĂ«r formatimin e gjerĂ«sisĂ« %s dhe %c pĂ«rdoret argumenti textwidth.
  • Profile
    • Profilimi i ngarkesĂ«s sĂ« procesorit tani regjistron metadatat, duke pĂ«rfshirĂ« rrjedhat dhe detyrat. Profile.print() tani ka njĂ« argument tĂ« ri groupby, i cili lejon grupimin e rrjedhave, detyrave ose rrjedhave/ detyrave tĂ« ngulitura, si dhe argumentet threads dhe tasks pĂ«r tĂ« mundĂ«suar filtrimin. PĂ«r mĂ« tepĂ«r, pĂ«rqindja e pĂ«rdorimit tani raportohhet ose si e pĂ«rgjithshme, ose pĂ«r rrjedhat, nĂ« varĂ«si tĂ« faktit nĂ«se rrjedha Ă«shtĂ« nĂ« pritje apo jo nĂ« çdo mostĂ«r. Profile.fetch() pĂ«rfshin metadat tĂ« reja si parazgjedhje. PĂ«r tĂ« ruajtur kompatibilitetin me konsumatorĂ«t e jashtĂ«m tĂ« tĂ« dhĂ«nave tĂ« profilimit, mund tĂ« pĂ«rjashtohet duke kaluar include_meta=false.
    • Moduli i ri Profile.Allocs lejon profilimin e alokimeve tĂ« memories. Regjistrohet gjurmimi i stackut, lloji dhe madhĂ«sia e çdo alokimi memorie, dhe argumenti sample_rate lejon kalimin e njĂ« numri tĂ« personalizuar tĂ« shpĂ«rndarjeve, duke reduktuar ngarkesĂ«n nĂ« performancĂ«.
    • Profilimi i procesorit me kohĂ« tĂ« fikstuar tani mund tĂ« nisĂ« nga pĂ«rdoruesi gjatĂ« ekzekutimit tĂ« detyrave pa nevojĂ«n pĂ«r ngarkimin e profilit paraprakisht, dhe raporti do tĂ« shfaqet gjatĂ« ekzekutimit. NĂ« MacOS dhe FreeBSD shtypni ctrl-t ose thirrni SIGINFO. PĂ«r platforma tĂ« tjera aktivizoni SIGUSR1, pra % kill -USR1 $julia_pid. NĂ« Windows kjo nuk Ă«shtĂ« e disponueshme.
  • REPL
    • RadioMenu tani mbĂ«shtet kombinime shtesĂ« tĂ« çelĂ«save pĂ«r zgjedhje tĂ« drejtpĂ«rdrejta tĂ« opsioneve.
    • Sekuenca "?(x, y", pasuar nga shtypja e TAB, shfaq tĂ« gjitha metodat qĂ« mund tĂ« thirren me argumentet x, y, 
. (HapĂ«sira nĂ« fillim nuk mundĂ«son hyrjen nĂ« modin e ndihmĂ«s). "MyModule.?(x, y" kufizon kĂ«rkimin nĂ« "MyModule." Shtypja e TAB kĂ«rkon qĂ« tĂ« paktĂ«n njĂ« argument tĂ« ketĂ« njĂ« tip mĂ« tĂ« veçantĂ« se Any. Ose pĂ«rdorni SHIFT-TAB nĂ« vend tĂ« TAB pĂ«r tĂ« lejuar çdo metodĂ« tĂ« pĂ«rshtatshme.
    • Variabla globale e re err lejon qĂ« tĂ« marrĂ«sh pĂ«rjashtimin mĂ« tĂ« fundit, duke ngjashmĂ«ruar sjelljen e ans me pĂ«rgjigjen e fundit. Shkruani err pĂ«r tĂ« ribotuar informacionin mbi pĂ«rjashtimin.
  • SparseArrays
    • Kodi i SparseArrays Ă«shtĂ« zhvendosur nga depoja e Julia nĂ« njĂ« depo tĂ« jashtme SparseArrays.jl.
    • Funksionet e reja tĂ« kombinimit sparse_hcat, sparse_vcat dhe sparse_hvcat kthejnĂ« tipin SparseMatrixCSC pavarĂ«sisht llojeve tĂ« argumenteve hyrĂ«se. Kjo Ă«shtĂ« bĂ«rĂ« e nevojshme pĂ«r tĂ« unifikuar mekanizmin e bashkimit tĂ« matriceve pas ndarjes sĂ« kodit LinearAlgebra.jl dhe SparseArrays.jl.
  • Regjistrimi
    • Niveli standard i regjistrit BelowMinLevel, Debug, Info, Warn, Error dhe AboveMaxLevel tani eksportohen nga biblioteka standarde Logging.
  • Unicode
    • Funksioni isequal_normalized Ă«shtĂ« shtuar pĂ«r tĂ« kontrolluar ekuivalencĂ«n Unicode pa ndĂ«rtuar shfaqur pĂ«r strings e normalizuara.
    • Funksioni Unicode.normalize tani pranon fjalĂ«kalimin chartransform, i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« ofruar pĂ«rputhje simbolesh tĂ« personalizuara, si dhe ofrohet funksioni Unicode.julia_chartransform pĂ«r tĂ« riprodhuar pĂ«rputhjen e pĂ«rdorur gjatĂ« normalizimit tĂ« identifikatorĂ«ve nga analizuesi sintaksor i Julia.
  • Test
    • '@test_throws "some message" triggers_error()' tani mund tĂ« pĂ«rdoret pĂ«r tĂ« provuar nĂ«se teksti i shfaqur pĂ«rmban gabim "some message", pa marrĂ« parasysh llojin konkret tĂ« pĂ«rjashtimit. PĂ«r mĂ« tepĂ«r, pĂ«rkrahim shprehjet e rregullta, shtrirje strings dhe funksione pĂ«r pĂ«rputhje.
    • @testset foo() tani mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar njĂ« grup testesh nga njĂ« funksion tĂ« caktuar. Emri i grupit tĂ« testit Ă«shtĂ« emri i funksionit tĂ« thirrur. Funksioni i thirrur mund tĂ« pĂ«rmbajĂ« @test dhe definicionet e tjera @testset, pĂ«rfshirĂ« thirrjet e funksioneve tĂ« tjera, duke regjistruar tĂ« gjitha rezultatet ndĂ«rmjetĂ«se tĂ« testimit.
    • TestLogger dhe LogRecord tani eksportohen nga biblioteka standarde Test.
  • Distribuar
    • SSHManager tani mbĂ«shtet rrjedhat e punĂ«s me mbĂ«shtjellĂ«s csh/tcsh pĂ«rmes metodĂ«s addprocs() dhe parametrin shell=:csh.
  • Ndryshime tĂ« tjera
    • GC.enable_logging(true) mund tĂ« pĂ«rdoret pĂ«r tĂ« regjistruar çdo operacion tĂ« grumbullimit tĂ« plehrave me specifikimin e kohĂ«s dhe sasisĂ« sĂ« memories sĂ« mbledhur.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster