Asụsụ mmemme Julia 1.9 dị

Ebipụtala ntọhapụ nke asụsụ mmemme Julia 1.9, na-ejikọta àgwà ndị dị ka arụmọrụ dị elu, nkwado maka ntinye ike na ngwaọrụ arụnyere maka mmemme yiri ya. syntax nke Julia dị nso na MATLAB, yana ụfọdụ ihe agbaziri site na Ruby na Lisp. Usoro nhazi eriri na-echetara Perl. A na-ekesa koodu ọrụ n'okpuru ikikere MIT.

Isi njirimara asụsụ:

  • Ịrụ ọrụ dị elu: otu n'ime ihe mgbaru ọsọ bụ isi nke ọrụ ahụ bụ iji nweta arụmọrụ dị nso na mmemme C. Onye nchịkọta Julia dabere na ọrụ LLVM ma na-emepụta koodu igwe nke ọma maka ọtụtụ nyiwe ebumnuche;
  • Nkwado maka usoro mmemme dị iche iche, gụnyere ihe ndị dabere na ihe mmemme na arụ ọrụ. Ọbá akwụkwọ ọkọlọtọ na-enye ọrụ maka asynchronous I/O, njikwa usoro, ịde osisi, profaịlụ, na njikwa ngwugwu, n'etiti ihe ndị ọzọ;
  • Mpịnye dị ike: Asụsụ a anaghị achọ nkọwa doro anya maka ụdịdị maka mgbanwe, site na ntụnyere na asụsụ mmemme ide edemede. Na-akwado ọnọdụ mmekọrịta;
  • Ikike nhọrọ ịkọwapụta ụdị n'ụzọ doro anya;
  • Syntax nke mara mma maka ngụkọ ọnụọgụgụ, ngụkọ sayensị, sistemụ mmụta igwe na nhụta data. Nkwado maka ọtụtụ ụdị data ọnụọgụ na ngwaọrụ maka ngụkọ ọnụ.
  • Ikike ịkpọ ọrụ ozugbo site na ọba akwụkwọ C na-enweghị ọkwa ọzọ.

Nnukwu mgbanwe na Julia 1.9:

  • Njirimara asụsụ ọhụrụ
    • Kwe ka emee ọrụ na modul ọzọ site na iji "setproperty!(:: Module, :: Akara, x)".
    • A na-anabata ọtụtụ ọrụ na-anọghị n'ọnọdụ ikpeazụ. Dịka ọmụmaatụ, a ga-ahazi eriri "a, b…, c = 1, 2, 3, 4" dị ka "a = 1; b…, = 2, 3; c = 4". A na-edozi nke a site na Base.split_rest.
    • Otu agwa nkịtị ugbu a na-akwado otu syntax dị ka eriri nkịtị; ndị ahụ. syntax ahụ nwere ike ịnọchite anya usoro UTF-8 na-ezighi ezi, dịka ụdị Char kwadoro.
    • Nkwado agbakwunyere maka nkọwapụta Unicode 15.
    • Enwere ike iji ngwakọta akwu nke tuples na agwa tuples akpọrọ aha ugbu a dị ka paramita ụdị.
    • Ọrụ arụnyere ọhụrụ "getglobal(:: Module, :: Akara [, order])" na "setglobal!(:: Module, :: Symbol, x[, order])" maka ịgụ na ide naanị maka mgbanwe ụwa. Ekwesịrị ịkachasị usoro getglobal ugbu a karịa usoro getfield maka ịnweta mgbanwe mgbanwe ụwa.
  • Mgbanwe asụsụ
    • Macro "@invoke" ewebatara na ụdị 1.7 na-ebupụ ugbu a ma dị maka ojiji. Na mgbakwunye, ọ na-eji usoro "Core.Typeof(x)" karịa "Ọ bụla" n'ọnọdụ ebe ewepụrụ ụdị nkọwa maka arụmụka "x". Nke a dị mkpa iji hụ na ụdị gafere ka a na-edozi arụmụka nke ọma.
    • Kwanyere mbupụ nke ọrụ "invokelatest" yana nnukwu "@invokelatest", ewebata na ụdị 1.7.
  • Mmelite ndị nchịkọta/ọsọ ọsọ
    • Obere oge nke ukwuu na ogbugbu mbụ (TTFX - Oge na-egbu mbụ). Ịchịkọta ngwugwu ugbu a na-echekwa koodu ala na "pkgimage", nke pụtara na koodu ewepụtara site na usoro nchịkọta mbụ agaghị adị mkpa ka achịkọtaghachi ya mgbe ebuchara ngwugwu ahụ. Enwere ike gbanyụọ iji ụdị pkgimages site na iji nhọrọ "--pkgimages=enweghị".
    • Edozila okwu mgbagwoju anya akụkụ anọ amaara nke ụdị nrịbama, na ntinye na-eji obere ebe nchekwa n'ozuzu ya. Ụfọdụ ọnụ okwu nwere ogologo ọrụ ewepụtara na-akpaghị aka (dị ka ModelingToolkit.jl nwere nha anya dị iche na nnukwu ihe kpatara) na-achịkọta ngwa ngwa.
    • Oku nwere arụmụka na-enweghị ụdị ihe nwere ike ịbụ Union-kewaa kachasị maka ịgba ntụtụ ma ọ bụ mkpebi kwụ ọtọ, ọbụlagodi na enwere ọtụtụ ụdị dị iche iche maka izipu. Nke a nwere ike imeziwanye arụmọrụ n'ọnọdụ ụfọdụ ebe ụdị ihe anaghị edozi ya nke ọma, site na idozi saịtị oku "@nospecialize-d" n'ụzọ kwụ ọtọ na izere nchikota.
    • Ejila Base.@assume_effects dochie ojiji niile @pure macro dị na modul Base.
    • Oku ịkpọku (f, invokesig, args...) nwere ụdị dị obere karịa nke a na-ejikarị maka f(args...) anaghịzi eme ka achịkọta ngwugwu ahụ.
  • Mgbanwe oke ahịrị iwu
    • Na Linux na Windows, nhọrọ "--threads=auto" na-anwa ugbu a ịchọpụta ọnụọgụ ndị nrụpụta dị na-adabere na njikọ CPU, ihe nkpuchi na-emekarị na HPC na gburugburu igwe ojii.
    • “--math-mode=fast” parameter bụ nkwarụ, kama nke a na-atụ aro ka ị jiri “@fastmath” macro, nke kọwapụtala usoro ọmụmụ n'ụzọ doro anya.
    • Nhọrọ "--threads" dị ugbu a n'ụdị "auto | N[,auto|M]", ebe M na-egosi ọnụọgụ nke eriri mmekọrịta iji mepụta (ugbu a akpaaka pụtara 1).
    • Nhọrọ agbakwunyere "-heap-size-hint=" ", nke na-edobe ọnụ ụzọ mgbe nke ahụ gasịrị nchịkọta mkpofu na-arụ ọrụ na-amalite. Enwere ike ịkọwa nha ya na bytes, kilobytes (1000 KB), megabyte (300 MB), ma ọ bụ gigabytes (1,5 GB).
  • Mgbanwe na multithreading
    • "Threads.@spawn" nwere ugbu a nhọrọ nhọrọ nwere uru ":default" ma ọ bụ ": mmekọrịta". Ọrụ mmekọrịta chọrọ nkwụsị nzaghachi dị ala ma emebere ya ka ọ dị mkpụmkpụ ma ọ bụ rụọ ọrụ ugboro ugboro. Ọrụ mmekọrịta ga-arụ ọrụ na eriri mmekọrịta ma ọ bụrụ na akọwapụtara ha mgbe ịmalite Julia.
    • Eriri na-agba ọsọ na-abụghị oge oge Julia (dị ka nke C ma ọ bụ Java) nwere ike ịkpọ Julia koodu site na iji "jl_adopt_thread". Nke a na-eme na-akpaghị aka mgbe ị na-abanye koodu Julia site na "cfunction" ma ọ bụ ebe ntinye "@ccallable". N'ihi ya, ọnụ ọgụgụ nke eri nwere ike ịgbanwe ugbu a n'oge egbu.
  • Ọrụ ọba akwụkwọ ọhụrụ
    • Ọrụ ọhụrụ "Iterators.flatmap".
    • Ọrụ ọhụrụ "pkgversion (m :: Module)" iji nweta ụdị ngwugwu nke bujuru modul enyere, dị ka "pkgdir (m :: Module)".
    • Ọrụ ọhụrụ "stack(x)" nke na-achịkọta "belata(hcat, x :: Vector{<:Vector})" n'akụkụ ọ bụla ma na-enye ohere ka onye ọ bụla na-emegharị ihe. Usoro "stack(f, x)" na-achịkọta "mapreduce(f, hcat, x)" ma na-arụ ọrụ nke ọma.
    • Macro ọhụrụ maka nyochaa ebe nchekwa ekenyela "@allocations", dị ka "@allocated", belụsọ na ọ na-eweghachi ọnụọgụ ebe nchekwa, karịa mkpokọta ebe nchekwa ekenyere.
  • Atụmatụ ọba akwụkwọ ọhụrụ
    • "RoundFromZero" na-arụ ọrụ ugbu a maka ụdị ndị ọzọ karịa "BigFloat".
    • Enwere ike iji aka belata "Dict" site na iji "sizehint!"
    • "@time" ugbu a na-akọwapụta pasentị oge eji achịkọta ụzọ na-ezighi ezi.
  • Mgbanwe na ọba akwụkwọ ọkọlọtọ
    • Edoziri okwu concurrency na usoro iteration maka Dict na ihe ndị ọzọ ewepụtara dị ka igodo(:: Dict), ụkpụrụ(:: Dict) na Set. Enwere ike ịkpọ ụzọ nkwughachi ndị a na Dict ma ọ bụ Set n'otu oge maka ọnụọgụ eri na-akparaghị ókè, ọ bụrụhaala na ọ nweghị omume na-agbanwe akwụkwọ ọkọwa okwu ma ọ bụ ịtọ.
    • Ịkwụsị ọrụ predicate "!f" na-eweghachite ọrụ mejupụtara "(!) ∘ f" kama ọrụ amaghị aha.
    • Ọrụ iberi akụkụ ugbu a na-arụ ọrụ n'ofe akụkụ dị iche iche: "slice ọ bụla", "eachrow" na "eachcol" na-eweghachi ihe "Slices" nke na-enye ohere izipu iji nye ụzọ dị mma karị.
    • Etinyere nnukwu "@kwdef" na API ọha.
    • Doziri nsogbu na usoro ọrụ na "fld1".
    • Nhazi ugbu a na-akwụsi ike mgbe niile (QuickSort emezigharịrị ya).
    • "Base.splat" na-ebupụ ugbu a. Uru nloghachi bụ ụdị "Base.Splat" karịa ọrụ amaghị aha, na-enye ohere ka ọ pụta nke ọma.
  • Onye njikwa ngwugwu
    • "Ngwunye ngwungwu": Nkwado maka ịkwanye snippet koodu sitere na ngwugwu ndị ọzọ kwajuru na nnọkọ Julia. Ngwa ahụ yiri ngwungwu "Requires.jl", mana akwadoro nchikota na nhazi ntọala.
  • Ọbá akwụkwọ Algebra Linear
    • N'ihi ihe ize ndụ nke mgbagwoju anya na nkewa-amamihe, wepụrụ ụzọ "a/b" na "b\a" na scalar "a" na vector "b", nke bụ "a * pinv(b)".
    • Ịkpọ BLAS na LAPACK na-eji "libblastrampoline (LBT)" ugbu a. Enyere OpenBLAS na ndabara, mana akwadoghị iji ụlọ akwụkwọ BLAS/LAPACK ndị ọzọ wulite onyonyo sistemụ. Kama, a na-atụ aro ka iji usoro LBT dochie BLAS/LAPACK na ọba akwụkwọ ọzọ dị adị.
    • "lu" na-akwado atụmatụ ntụgharị matriks ọhụrụ, "RowNonZero()", nke na-ahọrọ ihe mbụ na-abụghị efu maka iji ụdị mgbakọ ọhụrụ na maka ebumnuche ọzụzụ.
    • "normalize(x, p=2)" na-akwado oghere vector ọ bụla ahaziri ahazi "x", gụnyere scalars.
    • Ọnụ ọgụgụ ndabara nke eriri BLAS ugbu a hà nhata nke eriri CPU na ụlọ ọrụ ARM yana ọkara ọnụọgụ CPU na ụlọ ndị ọzọ.
  • Printf: Ozi njehie arụgharịrị arụgharịrị maka eriri ahazighị ezighi ezi maka ịgụta nke ọma.
  • Profaịlụ: Ọrụ ọhụrụ "Profile.take_heap_snapshot(faịlụ)", nke na-ede faịlụ n'ụdị "heapsnapshot" dabere na JSON nke akwadoro na Chrome.
  • Random: randn na randexp na-arụ ọrụ ugbu a maka ụdị AbstractFloat ọ bụla na-akọwa rand.
  • Gbanwee
    • Ịpị nchikota igodo "Alt-e" na-emepe ndenye dị ugbu a na nchịkọta akụkọ. A ga-eme ọdịnaya ahụ (ọ bụrụ na gbanwetụrụ) mgbe ị na-apụ na nchịkọta akụkọ.
    • Ọnọdụ modul dị ugbu a na-arụ ọrụ na REPL nwere ike ịgbanwe (Isi na ndabara) site na iji ọrụ "REPL.activate(:: Module)" ma ọ bụ site na ịbanye modul na REPL wee pịa igodo nchikota "Alt-m".
    • Ụdị "ọnụọgụgụ" nke na-ebipụta nọmba maka ntinye na mmepụta ọ bụla ma na-echekwa rịzọlt a nwetara na Out, nwere ike ịgbalite site na iji "REPL.numbered_prompt!()".
    • Mmecha tab na-egosiputa arụmụka isiokwu dị.
  • SuiteSparse: Koodu ebugara maka ihe mgbaze "SuiteSparse" gaa na "SparseArrays.jl". "SuiteSparse.jl" na-ebupụkwa ihe ngwọta ugbu a.
  • Ngwa ngwa ngwa
    • Ihe ngwọta "SuiteSparse" dị ugbu a dị ka "SparseArrays" submodules.
    • UmPACK na CHOLMOD eri na-echebe ụdịdị mma site na iwepu mgbanwe mgbanwe ụwa na iji mkpọchi. Multi-threaded "ldiv!" Enwere ike igbu ihe UMFPACK ugbu a n'enweghị nsogbu.
    • Ọrụ nnwale "SparseArrays.allowscalar(:: Bool)" na-enye gị ohere gbanyụọ ma ọ bụ mee ka scalar indexing nke sparse arrays. Emebere ọrụ a iji chọpụta akara ngosi scalar na-enweghị usoro nke ihe "SparseMatrixCSC", bụ isi mmalite nke nsogbu arụmọrụ.
  • Ụdị adịghị mma ọhụrụ maka ụlọ nyocha na-akwụsị ule n'oge ma ọ bụrụ na ọdịda ma ọ bụ mperi. Tọọ site na “@testset kwarg failfast=true” ma ọ bụ “bupu JULIA_TEST_FAILFAST=ezi”. Nke a na-adị mkpa mgbe ụfọdụ na CI na-agba ọsọ iji nweta ozi njehie n'oge.
  • Ụbọchị: A naghị atụgharị ụdọ efu na-ezighi ezi dị ka ụkpụrụ "DateTime", "Ụbọchị" ma ọ bụ "Oge" kama tụba "ArgumentError" na ndị na-arụ ọrụ na ntugharị, ebe "tryparse" na-alaghachighị ihe ọ bụla.
  • Ekesara ngwugwu
    • A na-agbasa nhazi ngwugwu (ọrụ na-arụsi ọrụ ike, "LOAD_PATH", "DEPOT_PATH") mgbe ị na-agbakwunye usoro ndị ọrụ mpaghara (dịka iji "addprocs (N :: Int)" ma ọ bụ iji akara ọkọlọtọ "--procs = N").
    • "addprocs" maka usoro ndị ọrụ mpaghara na-anabata arụmụka akpọrọ "env" iji nyefee mgbanwe gburugburu ebe obibi na usoro ndị ọrụ.
  • Unicode: "graphemes(s, m:n)" na-eweghachi mkpụrụokwu site na mth ruo nth grapheme na "s".
  • Ewepụla ngwungwu DelimitedFiles na ọba akwụkwọ sistemụ wee kesaa ya ugbu a dị ka ngwugwu dị iche nke a ga-etinyerịrị nke ọma ka ejiri ya mee ihe.
  • Ndabere na mpụga
    • Na Linux, a na-achọpụta ụdị ọba akwụkwọ sistemụ libstdc++ na-akpaghị aka, ma ọ bụrụ na ọ dị ọhụrụ, a na-eju ya. Omume nbudata ochie libstdc++ arụnyere n'ime, n'agbanyeghị ụdị sistemụ, enwere ike iweghachite site na ịtọ mgbanwe gburugburu "JULIA_PROBE_LIBSTDCXX=0".
    • Wepụrụ "RPATH" na ọnụọgụ abụọ julia, nke nwere ike imebi ọba akwụkwọ na Linux nke na-akọwaghị mgbanwe "RUNPATH".
    • Ngwá ọrụ ndozi: The mmepụta nke "MethodError" na ụzọ (dịka ọmụmaatụ si "ụzọ(my_func)") ugbu a formatted na agba dị ka ụkpụrụ nke mmepụta nke ụzọ na a tojupụtara Chọpụta.

    isi: opennet.ru

Tinye a comment