Ukukhutshwa kolwimi lweprogram ye-Julia 1.10 ishicilelwe, idibanisa iimpawu ezifana nokusebenza okuphezulu, inkxaso yokuchwetheza okuguquguqukayo kunye nezixhobo ezakhelwe ngaphakathi kwiprogram efanayo. I-syntax kaJulia isondele kwiMATLAB, iboleka ezinye izinto kwiRuby kunye neLisp. Indlela yokuguqula umtya ikhumbuza iPerl. Ikhowudi yeprojekthi ihanjiswa phantsi kwelayisenisi ye-MIT.
Iimpawu eziphambili zolwimi:
- Ukusebenza okuphezulu: enye yeenjongo eziphambili zeprojekthi kukuphumeza ukusebenza kufutshane neenkqubo zeC. I-Julia compiler isekelwe kumsebenzi weprojekthi ye-LLVM kwaye ivelisa ikhowudi yomatshini wendalo esebenzayo kwiiplatifomu ezininzi ezijoliswe kuzo;
- Ixhasa iiparadigms ezahlukeneyo zeprogram, kubandakanywa izinto ezijoliswe kwinto kunye neprogram esebenzayo. Ilayibrari eqhelekileyo ibonelela, phakathi kwezinye izinto, imisebenzi ye-I/O engahambelaniyo, ulawulo lwenkqubo, ukugawulwa kwemithi, iprofayili, kunye nolawulo lwephakheji;
- Ukuchwetheza ngamandla: ulwimi alufuni ngcaciso icacileyo yeendidi zezinto eziguquguqukayo, ezifana neelwimi zenkqubo yokubhala. Imowudi yonxibelelwano iyaxhaswa;
- Ukukwazi ukukhetha ukukhankanya ngokucacileyo iindidi;
- Isivakalisi esifanelekileyo kwikhompuyutha yamanani, ikhompuyutha yesayensi, ukufunda ngomatshini, kunye nokubonwa kwedatha. Inkxaso kwiintlobo ezininzi zedatha yamanani kunye nezixhobo zokuhambelana nokubala.
- Ukukwazi ukubiza ngokuthe ngqo imisebenzi evela kumathala eencwadi e-C ngaphandle kweemaleko ezongezelelweyo.
Utshintsho olukhulu kuJulia 1.10:
- Iimpawu zolwimi olutsha
- Ngokungagqibekanga, i-JuliaSyntax.jl parser entsha nephuculweyo yenziwe yasebenza. Ukuba ufuna ukubuyela kwendala, kufuneka usete umahluko wemeko-bume JULIA_USE_FLISP_PARSER ukuya ku-1.
- Iisimboli ⥺ (U+297A, \leftarrowsubset) kunye ⥷ (U+2977, \leftarrowless) ngoku zingasetyenziswa njengabasebenzisi bokubini ngokuqala kotolo.
- Utshintsho kulwimi
- Xa uvelisa imisebenzi yomntwana, i-RNG yendawo (inombolo ye-random generator) yomsebenzi womzali ayisachaphazeleki. Isicwangciso esitsha sokuqalisa inombolo ye-random generator sifana ne-SplitMix kunye nokuphunyezwa kwe-DotMix.
- Umgaqo omtsha wendlela yokukhetha uye wandululwa ukuba ungagxininisi udidi "Umanyano{}" ngokuthanda indlela echazwe ngokucacileyo yokusingatha ingxoxo yodidi "Umanyano{}".
- Uphawu "h bar" ℏ (\hslash U+210F) ngoku iphathwa njengelingana no-ħ (\hbar U+0127).
- I-"@simd" macro ngoku inee-semantics ezithile: ivumela kuphela ukucwangciswa ngokutsha kweendawo ezidadayo kunye nokuthenwa endaweni yokwenza konke ukusebenzela "@fastmath". Ukuba iinkqubo ezisebenzayo zifumana ukuthotywa kokusebenza ngenxa yolu tshintsho, ngoko indlela yokuziphatha yangaphambili inokubuyiselwa kusetyenziswa "@fastmath @simd".
- Xa iboniswe kwindlela yokulandelela istaki yendlela enamagama angundoqo, ukumelwa okubhaliweyo kwamagama angundoqo ngoku kwenziwa lula kusetyenziswa i-syntax entsha enkulu "@Kwargs{key1::Type1, ...}".
- Umqokeleli/uphuculo lwexesha lokusebenza
- Umqokeleli wenkunkuma ngoku wenza ukhetho olunemisonto emininzi yezinto zokulahla.
- I-JITLInk yenziwe ngokungagqibekanga kwiinkqubo zeLinux ezisekwe kwi-aarch64 xa kusakha iJulia ngeLLVM 15 okanye kamva.
- Inkqubo yangaphambili ibandakanya ukutshixa iifayile zepid. Inye kuphela inkqubo yejulia eyenza i-precompilation ngexesha. Ngaphambili, zonke iinkqubo zihamba ngokuhambelana, kwaye bekukho ingozi yokonakalisa iifayile ze-cache zokuqokelela ngenxa yeemeko zobuhlanga.
- Utshintsho kwiiKhetho zeLayini yoMyalelo
- Kongezwe "--gcthreads" ukhetho, olukuvumela ukuba uchaze ukuba mingaphi imisonto enxuseneyo eya kusetyenziswa ngumqokeleli wenkunkuma. Ixabiso elingagqibekanga ngu "N / 2", apho i-N inani lemisonto yabasebenzi ("-imisonto") esetyenziswa nguJulia.
- Yakha utshintsho lwenkqubo
- Iinowudi ze "SparseArrays" kunye ne "SuiteSparse" azibandakanywanga kumfanekiso wenkqubo ngokungagqibekanga. Iphakheji yesiseko seJulia ayisaqulathanga amathala eencwadi anelayisenisi ye-GPL. Nangona kunjalo, la mathala asabandakanywa nolwimi kunikezelo oluqhelekileyo lokubini.
- Imisebenzi yethala leencwadi elitsha
- "tanpi" ibala "tan(π*x)" ngokuchanekileyo kuno"tan(pi*x)".
- "fourroot(x)" ichazwa kwi-Base.Math kwaye ingasetyenziselwa ukubala ingcambu yesine ka-"x". Igama elifutshane lale ndlela ngumbhalo we-Unicode ∜, onokungenwa kusetyenziswa umyalelo \fourthroot.
- Imisebenzi eyongeziweyo "Libc.memmove", "Libc.memset" kunye ne "Libc.memcpy", umsebenzi wayo ohambelana nokusebenza kweefowuni ze-C ezihambelanayo.
- Kongezwe "Base.isprecompiled(pkg::PkgId)" indlela ebuyisela "inyani" ukuba umqulu sele uhlanganiswe kwangaphambili.
- Iinketho zoMsebenzi weThala leeNcwadi
- "binomial(x, k)" ngoku ixhasa non-integer "x".
- "I-CartesianIndex" ngoku iphathwa njenge "scalar" yosasazo.
- Indlela ethi "printstyled" ngoku ixhasa imveliso ekekeleyo.
- Iindlela zika-"parent" kunye ne "parentindices" ngoku zixhasa udidi lwe-"SubStrings".
- "Replace(umtya,pattern...)" indlela ngoku ixhasa ukhetho "IO" ingxoxo yokukhupha umsinga kunokubuyisela umtya.
- Indlela ethi "startswith" ngoku ixhasa imisonto ye-I/O.
- Utshintsho kwilayibrari esisiseko
- Ukusuka kwiindlela ze-“sortperm!” kunye ne “partialsortperm!” kususwe igama elingundoqo elithi "initialized=true", elinokukhokelela ekuziphatheni okungakhuselekanga.
- Xa uprinta "Rational" uhlobo lwamanani apheleleyo, idinomineyitha yawo ngoku iyatsitywa kumxholo wemijelo echwetheziweyo ethi "Rational" (efana ne-arrays).
- Umphathi wePhakeji
- Indlela ye "Pkg.precompile" ngoku ithatha "ixesha" njengengxoxo engundoqo, ibonisa ulwazi lwexesha lokuqulunqa kwangaphambili kwiphakheji nganye - "Pkg.precompile(ixesha=yinyaniso)".
- LinearAlgebra
- Uhlobo "AbstractQ" ayiselulo udidi olusezantsi lwe-"AbstractMatrix". Ngaphezu koko, indlela "yokudityaniswa (Q::AbstractQ)" ayisasonge u-"Q" kudidi lwe-"Adjoint", endaweni yayo ngo-"AdjointQ", yona ngokwayo iludidi olusezantsi lwe-"AbstractQ". Olu tshintsho lubangelwe kukuba ngokwesiqhelo "AbstractQ" iimeko ziziphatha njengabasebenzi bomgca ngokusekwe kwimisebenzi kunye neematriki kwaye azifikeleleki ngesalathiso. Ukongeza, uninzi lweentlobo ze-"AbstractQ" zinokusebenza kwiivekhtha / iimatriki ezinobukhulu obahlukeneyo, zisebenza njengematrix enobungakanani obuxhomekeke kumxholo. Ngolu tshintsho, uhlobo lwe "AbstractQ" ngoku lune-interface echazwe kakuhle, echazwe ngokubanzi kumaxwebhu kaJulia.
- Iziphumo zeFactorization azisasongelwe kwiintlobo zokusonga ze-"Adjoint" kunye ne "Transpose". Endaweni yoko, iindidi "AdjointFactorization" kunye ne "TranposeFactorization" ziye zongezwa, zona ngokwazo ziyi-subtypes "Factorization".
- Imisebenzi emitsha "i-hermitianpart" kunye ne "hermitianpart!" ukufumana iHermitian (i-symmetric ngokwenene) inxalenye ye-matrix.
- Indlela "yesiqhelo" yendlela yokutshintshwa komntwana yohlobo "AbstractMatrix" ngoku ibuyisela isiqhelo sematrix yomzali ngokungagqibekanga, ehambelana nokuziphatha kwangoku kwe "AbstractVectors".
- Iindlela ezongeziweyo zokubala ii-eigenvectors "eigen(A, B)" kunye ne "eigvals(A, B)" kwimeko apho enye ka-A okanye u-B i-symmetric okanye iHermitian.
- Iindlela ze-"eigvals/eigen(A, cholesky(B))" ngoku zibala i-eigenvalues ngokubanzi (eigen: kunye ne-eigenvectors) ka-A kunye no-B ngokwandisa iCholesky kwi-positive definite B.
- Shicilela
- Izicacisi zefomathi ngoku zixhasa ububanzi obuguquguqukayo kunye nokuchaneka, okufana ne "%*s" kunye ne "%*.*g".
- Phendula
- Xa ushicilela umkhondo wokupakisha, ubunzulu beentlobo ezishicilelweyo kutyikityo lomsebenzi buthintelwe ukunqanda imveliso yeverbose egqithisileyo.
- uvavanyo
- I-"@test_broken" macro (okanye "@test" ene-"broken=true") ngoku iphosa impazamo ukuba imbonakalo yovavanyo ayibuyisi bubuxoki/yinyani.
- Ukuba kukho impazamo xa ufowunela u-"@test" okanye impazamo ngaphakathi komsebenzi, umkhondo wokupakisha oneenkcukacha ngoku unikiwe ukunceda ukuqonda indawo yovavanyo kwi-"@tesset".
- InteractiveUtils
- "code_native" kunye "@code_native" ngoku sebenzisa i-Intel syntax endaweni ye-AT&T.
- "@time_imports" ngoku ibonisa ixesha lokwenziwa kwe "__init__()" kwiimodyuli ezithathwe ngaphandle.
- Iphelelwe lixesha kwaye ixhomekeke kwizakhiwo zokususa
- I-"@pure" macro iye yarhoxiswa. "Base.@assume_effects :foldable" kufuneka isetyenziswe endaweni yoko.
umthombo: opennet.ru
