Ukukhutshwa kweJulia 1.10 ulwimi lwenkqubo

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

Yongeza izimvo