Te reo hootaka Julia 1.9 e waatea ana

Ko te tukunga o te reo hootaka Julia 1.9 kua whakaputaina, me te whakakotahi i nga ahuatanga penei i te mahi teitei, te tautoko mo te patopato hihiri me nga taputapu hanga-i roto mo te kaupapa whakarara. Ko te wetereo o Julia e tata ana ki te MATLAB, me etahi huānga i nama mai ia Ruby me Lisp. Ko te tikanga whawhe aho he maumahara ki a Perl. Ka tohatohahia te waehere kaupapa i raro i te raihana MIT.

Ko nga ahuatanga matua o te reo:

  • Mahinga teitei: ko tetahi o nga whainga matua o te kaupapa ko te whakatutuki i nga mahi tata ki nga kaupapa C. Ko te Kaihanga Julia kei runga i te kaupapa LLVM me te whakaputa i te waehere miihini taketake pai mo te maha o nga papaapapa kua tohua;
  • Tautoko mo nga momo tauira hotaka, tae atu ki nga huānga o te kaupapa-a-ahanoa me te kaupapa mahi. Ko te whare pukapuka paerewa e whakarato ana i nga mahi mo te I/O tukutahitore, te whakahaere tukanga, te takiuru, te tohu, me te whakahaere kete, me era atu mea;
  • Te patopato hihiko: Karekau te reo e hiahia ki te whakamaaramatanga o nga momo mo nga taurangi, ma te whakataurite ki nga reo hotaka tuhi. Ka tautokohia te aratau tauwhitiwhiti;
  • Ko te kaha ki te tautuhi i nga momo;
  • He wetereo he pai rawa atu mo nga tatauranga tau, nga tatauranga putaiao, nga punaha ako miihini me te tirohanga raraunga. Tautoko mo te maha o nga momo raraunga tau me nga taputapu mo te whakarara i nga tatauranga.
  • Te kaha ki te karanga tika i nga mahi mai i nga whare pukapuka C kaore he taapiri taapiri.

Nga huringa nui i Julia 1.9:

  • Nga ahuatanga reo hou
    • Whakaaetia kia mahia he taumahi ki tetahi atu waahanga ma te whakamahi i te "setproperty!(::Module, ::Symbol, x)".
    • Ka whakaaetia kia maha nga taumahi kaore i te tuunga whakamutunga. Hei tauira, ko te aho "a, b..., c = 1, 2, 3, 4" ka tukatukahia hei "a = 1; b…, = 2, 3; c = 4". Ka whakahaerehia tenei ma te Base.split_rest.
    • Ko nga kupu kupu kotahi e tautoko ana i te wetereo rite ki nga kupu kupu aho; aua. ka taea e te wetereo te whakaatu i nga raupapa UTF-8 muhu, e whakaaetia ana e te momo Char.
    • He tautoko taapiri mo te tohu Unicode 15.
    • Ka taea te whakamahi i nga huinga kohanga o nga tuple me nga tuple kua whakaingoatia hei tawhā momo.
    • Nga mahi hou i hangaia "getglobal(::Module, ::Symbol[, order])" me te "setglobal!(::Module, ::Symbol, x[, order])" mo te panui me te tuhi ki nga taurangi o te ao. Ko te tikanga getglobal me pai ake i te tikanga getfield mo te uru ki nga taurangi o te ao.
  • Nga huringa reo
    • Ko te tonotono "@invoke" i whakaurua ki te putanga 1.7 kua kaweake inaianei, e waatea ana hei whakamahi. Ano, ka whakamahia e ia te tikanga "Core.Typeof(x)" kaua ki te "Any" ka waiho te momo tuhipoka mo te tohenga "x". Me tika tenei kia tika ai te whakahaere i nga momo tohenga.
    • Whakahohehia te kaweake o te mahi "invokelatest" me te tonotono "@invokelatest" i whakauruhia ki te putanga 1.7.
  • Whakapai ake i te Kaihanga / Wā
    • I tino whakahekehia te wa ki te mahi tuatahi (TTFX - Te wa ki te mahi tuatahi). Ko te whakahiato-mua ka tiakina te waehere taketake i roto i te "pkgimage", ko te tikanga ko te waehere i hangaia i te wa o te whakahiatotanga karekau e hiahia ki te whakahiato i muri i te utaina o te kete. Ko te whakamahi i te aratau pkgimages ka taea te whakakore me te "--pkgimages=no" kōwhiringa.
    • Ko te raruraru e mohiotia ana o te whīwhiwhi tapawhā o te momo hīkaro kua whakatikahia, ā, i te nuinga o te wā he iti ake te pūmahara e whakamahia ana e te hīkaro. He tere ake te whakahiato i etahi keehi taha me nga mahi roa kua hangaia-aunoa (pēnei i te ModelingToolkit.jl me nga wharite wehewehe wehewehenga me nga tauira take nui.
    • Ko nga waea me nga tohenga kore-momo-motuhake inaianei ka taea te wehewehe i te Uniana mo te werohanga, te whakatau pateko ranei, ahakoa he maha nga momo kaitono tuku. Ka taea e tenei te whakapai ake i nga mahi i etahi ahuatanga kaore i te tino whakatauhia nga momo ahanoa, ma te whakatau i nga waahi waea "@nospecialize-d" me te karo i te whakahiato.
    • Ko nga whakamahinga katoa o te tonotono @pure i roto i te kaupapa Base kua whakakapia ki te Base.@assume_effects.
    • Ko nga waea ki te tono(f, invokesig, args...) me nga momo iti ake i te mea e whakamahia ana mo te f(args...) ka kore e whakahiatotia ano te kete.
  • Nga huringa tawhā raina whakahau
    • I runga i te Linux me te Matapihi, ko te whiringa "--threads=auto" inaianei ka ngana ki te whakatau i te maha o nga kaitukatuka e waatea ana i runga i te hononga o te PTM, he kopare i te nuinga o te waa ki te HPC me nga taiao kapua.
    • Kua monoa te kōwhiringa "--math-mode=fast", hei utu mo te whakamahi i te tonotono "@fastmath", kei a ia nga tohutoro kua tino tautuhia.
    • Ko te tawhā "--miro" he hōputu "aunoa | N[,aunoa|M]", ka tohua e M te maha o nga miro tauwhitiwhiti hei hanga (ko te tikanga aunoa ko te 1).
    • Kōwhiringa taapiri "--heap-size-hint= ”, e whakatakoto ana i te paepae i muri ka timata te kohi para. Ka taea te tohu te rahi ki nga paita, kiropaita (1000 KB), mekapaita (300 MB), kikipaita ranei (1,5 GB).
  • Nga Huringa Miro-maha
    • "Threads.@spawn" inaianei he tohenga tuatahi kowhiringa me te uara ": taunoa" ranei ": tauwhitiwhiti". Ko te mahi tauwhitinga he iti te roanga whakautu, he mea hoahoa kia poto, kia mahia auau. Ka haere nga mahi tauwhitiwhiti i runga i nga miro tauwhitiwhiti mena ka tohua ina timata a Julia.
    • Ka taea e nga miro i whakarewahia ki waho o te wa whakahaere a Julia (hei tauira, mai i C, Java ranei) ka taea te waea i te waehere Julia ma te whakamahi "jl_adopt_thread". Ka puta aunoa tenei ina whakauru koe i te waehere Julia ma te "cfunction" te tohu urunga "@ccallable" ranei. Ko te mutunga, ka huri te maha o nga miro i te wa e whakahaere ana.
  • Nga mahi whare pukapuka hou
    • He mahi hou "Iterators.flatmap".
    • He mahi hou "pkgversion(m::Module)" ki te tiki i te putanga o te kete i utaina i te waahanga kua homai, he rite ki te "pkgdir(m::Module)".
    • He mahi hou "stack(x)" e whakawhänui ana i te "whakaiti (hcat, x:: Vector {<: Vector})" ki tetahi inenga me te tuku i tetahi kaitahuri o nga kaitoro. Ko te tikanga "stack(f, x)" he whakawhanui "mapreduce(f, hcat, x)" a he pai ake.
    • Tonotono hōu mō te poroporo pūmahara kua tohatohahia "@allocations", he rite ki te "@allocated", engari ko te whakahoki mai i te maha o nga tohatoha mahara, kaua ko te rahi katoa o te mahara kua tohatohahia.
  • Nga ahuatanga hou o te whare pukapuka
    • "RoundFromZero" inaianei e mahi ana mo nga momo atu i te "BigFloat".
    • Ko te "Dict" ka taea te whakaheke a ringa me te "sizehint!".
    • "@time" ka tohu motuhake inaianei i te ōrau o te wā i pau ki te whakahiato tikanga muhu.
  • Nga huringa i te whare pukapuka paerewa
    • Kua whakatikahia tetahi take i roto i nga tikanga whitiwhiti mo Dict me etahi atu mea i ahu mai penei i nga taviri(::Dict), uara(::Dict) me te Tautuhi. Ka taea te karanga i enei tikanga whitiwhiti i runga i te Dict or Set in parallel on a unlimited number of miro, mena karekau he mahi hei whakarereke i te papakupu, huinga ranei.
    • Ko te whakakore i te taumahi tohu "!f" ka whakahokia he mahi hiato "(!) ∘ f" hei utu mo te mahi ingoamuna.
    • Inaianei kei te mahi nga mahi poro aahua puta noa i nga waahanga maha: "eachslice", "eachrow", me "eachcol" te whakahoki i tetahi mea "Slices" e taea ai te tuku ki te whakarato tikanga pai ake.
    • Kua tāpirihia te tonotono "@kwdef" ki te API tūmatanui.
    • Kua whakatikahia he raruraru ki te raupapa o nga mahi i roto i te "fld1".
    • Ko te whakariterite he wa-mau tonu (kua hoahoatia ano a QuickSort).
    • "Base.splat" kua kaweake inaianei. Ko te uara whakahoki he momo "Base.Splat" kaua ki te mahi ingoamuna, e taea ai te whakatau pai.
  • Kaiwhakahaere mōkihi
    • "Torohanga Paanui": he tautoko mo te uta i tetahi waahanga waehere mai i etahi atu kete kua utaina ki te huihuinga Julia. He rite te tono ki te kete "Requires.jl", engari kei te tautokohia i mua i te whakahiato me te hototahi whirihoranga.
  • Wharepukapuka LinearAlgebra
    • Na te raruraru o te rangirua me te wehewehe huānga, ka tangohia nga tikanga "a / b" me "b \ a" me te scalar "a" me te vector "b", he rite ki te "a * pinv(b)".
    • Ko nga waea BLAS me LAPACK inaianei ka whakamahi "libblastrampoline (LBT)". Ko te OpenBLAS ka tukuna ma te taunoa, engari kaore i te tautokohia te hanga whakaahua punaha me etahi atu whare pukapuka BLAS/LAPACK. Engari, e taunaki ana kia whakamahia te tikanga LBT hei whakakapi i te BLAS/LAPACK me tetahi atu huinga whare pukapuka e waatea ana.
    • Kei te tautoko a "lu" i tetahi rautaki hurihanga matrix hou "RowNonZero()" e whiriwhiri ana i te huānga hurihanga kore-kore tuatahi hei whakamahi me nga momo tatau hou me nga kaupapa ako.
    • Ko te "normalize(x, p=2)" kei te tautoko i nga mokowā vector "x", tae atu ki nga scalars.
    • Ko te tau taunoa o nga miro BLAS kua rite inaianei ki te maha o nga miro CPU i runga i te hoahoanga ARM me te haurua o te maha o nga miro CPU i etahi atu hoahoanga.
  • Printf: Nga karere hapa i mahia ano mo nga aho kua he kia pai ake te panui.
  • Kōtaha: New "Profile.take_heap_snapshot(kōnae)" mahi e hopu ana i te kōnae i roto i te JSON-e hāngai ana ".heapsnapshot" hōputu tautokona e Chrome.
  • Tupurangi: randn me randexp inaianei e mahi ana mo tetahi momo AbstractFloat e tautuhi ana i te rand.
  • HE WHAKAMAHI
    • Ko te pehi i te pahekotanga matua "Alt-e" ka whakatuwhera i te whakauru o naianei ki te kaiwhakatika. Ko te ihirangi (mehemea ka huri) ka mahia ina puta te kaiwhakatikatika.
    • Ko te horopaki kōwae o nāianei e kaha ana i roto i te REPL ka taea te whakarereke (ma te taunoa ko te Main) ma te whakamahi i te mahi "REPL.activate(::Module)" ma te whakauru ranei i te kōwae i roto i te REPL me te pehi i te matua "Alt-m" huinga.
    • Ko te aratau "tere kua tau", e tarai ana i nga tau mo ia whakaurunga me ia putanga me te penapena i nga hua i arotakea ki Out, ka taea te whakahohe ma te "REPL.numbered_prompt!()".
    • Ko te otinga ripa e whakaatu ana i nga tohenga kupu matua e waatea ana.
  • SuiteSparse: I nukuhia te waehere mo te "SuiteSparse" whakaotinga ki "SparseArrays.jl". Inaianei kua kaweake ano nga Solvers e "SuiteSparse.jl".
  • KohangaArrays
    • Kei te waatea nga kaiwhakatikatika SuiteSparse hei waahangaroto o SparseArrays.
    • Ko nga tikanga tiaki awa UMFPACK me CHOLMOD kua pai ake ma te whakakore i nga taurangi o te ao me te whakamahi raka. Miro maha "ldiv!" Ka taea te whakahaere haumaru i nga taonga UMFPACK inaianei.
    • Ko te mahi whakamatautau "SparseArrays.allowscalar(::Bool)" ka taea e koe te whakakore, te whakaahei ranei i te taupū scalar o nga raupapa iti. I hoahoatia tenei mahi ki te kite i te taurangi scalar matapōkere o nga mea "SparseMatrixCSC", he puna noa o nga raru mahi.
  • Ko te aratau ngoikore hou mo nga huinga whakamatautau ka whakamutua te oma whakamatautau inaa he rahua, he hapa ranei. Whakaritea ma te "@testset kwarg failfast = pono" ranei "kaweake JULIA_TEST_FAILFAST = pono". Me tika pea tenei i roto i nga whakarewatanga CI kia whiwhi karere hapa moata.
  • Nga Ra: Ko nga aho putua kua kore e pohehehia hei uara "Rama", "Rangi" me te "Taima" engari ka tukuna he hapa "ArgumentError" ki nga kaihanga me te poroporoaki, karekau he whakahoki mai a "tryparse".
  • Mōkihi kua tohaina
    • Ko te whirihoranga mōkihi (kaupapa hohe, "LOAD_PATH", "DEPOT_PATH") ka horahia inā ka tāpirihia ngā tukanga kaimahi ā-rohe (hei tauira me te "addprocs(N::Int)" me te haki raina whakahau "-procs=N").
    • Ko te "addprocs" mo nga mahi a nga kaimahi o te takiwa ka mau he tautohe ko "env" hei tuku i nga taurangi taiao ki nga tukanga kaimahi.
  • Waehereao: "graphemes(s, m:n)" te whakahoki i te aho iti mai i te mth ki te nth kauwhata i "s".
  • Kua tangohia te kete DelimitedFiles mai i nga whare pukapuka punaha, ka tohatohahia inaianei hei kete motuhake me tino whakauru kia whakamahia.
  • Te whakawhirinaki o waho
    • Ka kitea aunoa e Linux te putanga o te whare pukapuka punaha libstdc++ ka utaina mena he mea hou ake. Ko te whanonga tawhito o te uta i te libstdc ++ i hangaia ahakoa te ahua o te punaha ka taea te whakahoki mai ma te tautuhi i te "JULIA_PROBE_LIBSTDCXX=0" taurangi taiao.
    • I tangohia te "RPATH" mai i te julia rua, ka taea te wawahi i nga whare pukapuka i runga i te Linux kaore e taea te tautuhi i te taurangi "RUNPATH".
    • Whakapai ake i nga taputapu: Ko te putanga o "MethodError" me nga tikanga (hei tauira, mai i "tikanga(my_func)") kua whakahōputuhia me te tae kia rite ki te whakaputanga o nga tikanga i roto i nga tohu puranga.

    Source: opennet.ru

Tāpiri i te kōrero