Ho lokolloa ha puo ea lenaneo la Julia 1.8

Ho lokolloa ha puo ea lenaneo la Julia 1.8 ho fumaneha, ho kopanya litšoaneleho tse kang ts'ebetso e phahameng, tšehetso ea ho thaepa ka matla le lisebelisoa tse hahiloeng bakeng sa mananeo a tšoanang. Syntax ea Julia e haufi le MATLAB, e alima likarolo tse ling ho Ruby le Lisp. Mokhoa oa ho qhekella oa likhoele o re hopotsa Perl. Khoutu ea projeke e ajoa tlasa laesense ea MIT.

Likarolo tsa bohlokoa tsa puo:

  • Ts'ebetso e phahameng: e 'ngoe ea lipheo tsa bohlokoa tsa morero ke ho fihlela ts'ebetso e haufi le mananeo a C. Moqapi oa Julia o thehiloe mosebetsing oa morero oa LLVM mme o hlahisa khoutu ea mochine oa tlhaho o sebetsang hantle bakeng sa liforomo tse ngata tse lebisitsoeng;
  • E ts'ehetsa li-paradigms tse fapaneng tsa mananeo, ho kenyeletsoa likarolo tsa mananeo a shebaneng le ntho le a sebetsang. Laeborari e tloaelehileng e fana ka, har'a tse ling, mesebetsi bakeng sa I/O e sa ts'oaneng, taolo ea ts'ebetso, ho rema lifate, ho etsa profil, le taolo ea liphutheloana;
  • Ho ngola ka matla: puo ha e hloke tlhaloso e hlakileng ea mefuta bakeng sa mefuta e fapaneng, e ts'oanang le lipuo tsa scripting programming. Mokhoa oa ho sebelisana o tšehelitsoe;
  • Bokhoni ba boikhethelo ba ho hlakisa mefuta ka ho hlaka;
  • Syntax e loketseng khomphutha ea lipalo, khomphutha ea mahlale, ho ithuta ka mochini, le pono ea data. Ts'ehetso bakeng sa mefuta e mengata ea lintlha tsa lipalo le lisebelisoa tsa ho tsamaisana ha lipalo.
  • Bokhoni ba ho letsetsa mesebetsi ka kotloloho ho tsoa lilaebraring tsa C ntle le likarolo tse ling.

Liphetoho tse kholo ho Julia 1.8:

  • Likarolo tsa puo e ncha
    • Libaka tsa sebopeho se feto-fetohang joale li ka hlalosoa e le li-constants ho li thibela ho fetoloa le ho lumella ho ntlafatsoa.
    • Litlhaloso tsa mofuta li ka eketsoa ho mefuta e fapaneng ea lefatše.
    • Li-array tse se nang letho tsa n-dimensional li ka etsoa ho sebelisoa li-semicolons tse ngata ka har'a li-square brackets, mohlala "[;;;]" e theha lethathamo la 0x0x0.
    • Li-blocks tsa leka joale li ka ba le block e 'ngoe, e tla etsoa hang ka mor'a sehlopha sa mantlha haeba ho se liphoso tse entsoeng.
    • @inline le @noinline e ka beoa ka har'a 'mele oa ts'ebetso, e u lumella ho hlakisa tšebetso e sa tsejoeng.
    • @inline le @noinline joale e ka sebelisoa ts'ebetsong sebakeng sa mohala kapa thibela ho qobella mehala e tsamaisanang le ts'ebetso hore e kenyelelitsoe (kapa e se kenyelelitsoe).
    • ∀, ∃ le ∄ li lumelletsoe joalo ka litlhaku tse khethollang.
    • Tšehetso e ekelitsoeng bakeng sa litlhaloso tsa Unicode 14.0.0.
    • Mokhoa oa Module(:lebitso, bohata, bohata) o ka sebelisoa ho theha mojule o se nang mabitso, o sa kenyeng Base kapa Core, ebile ha o na referense ka boona.
  • Liphetoho puong
    • Lintho tse sa tsoa etsoa (@spawn, @async, joalo-joalo) joale li na le world_age bakeng sa mekhoa e tsoang ho Mosebetsi oa motsoali ha e etsoa, ​​​​e lumellang ts'ebetso e ntlafalitsoeng. Khetho ea pele ea ho kenya tšebetsong e fumaneha ka mokhoa oa Base.invokelatest.
    • Litaelo tsa ho fometa tse sa leka-lekanang tsa bidirectional li se li thibetsoe ka likhoele le maikutlo ho qoba liente.
    • Base.ifelse hona joale e hlalosoa e le mosebetsi o tloaelehileng ho e-na le buildin, e lumellang liphutheloana ho atolosa tlhaloso ea eona.
    • Mosebetsi o mong le o mong oa ho feto-fetoha ha lefatše joale o qala ka pitso ea ho fetolela(Any, x) or convert(T, x) haeba ho ne ho phatlalalitsoe hore phetoho ea lefats'e ke ea mofuta oa T. Pele u sebelisa li-global variables, etsa bonnete ba hore phetoho e sa fetoheng(Any , x) === x e lula e le 'nete, ho seng joalo e ka lebisa boitšoarong bo sa lebelloang.
    • Mesebetsi e hahelletsoeng ka hare e se e tšoana le mesebetsi e akaretsang 'me e ka baloa ka mokhoa o hlophisitsoeng ho sebelisoa mekhoa.
  • Lintlafatso tsa komporo / nako ea ho sebetsa
    • Nako ea ho bula e fokotsehile ka hoo e ka bang 25%.
    • Moqapi o thehiloeng ho LLVM o arotsoe ho laeborari ea nako ea ho sebetsa ho ba laeborari e ncha, libjulia-codegen. E laoloa ke kamehla, kahoo ha hoa lokela ho ba le liphetoho nakong ea tšebeliso e tloaelehileng. Lits'ebetsong tse sa hlokeng motho ea bokellang (mohlala, litšoantšo tsa sistimi moo khoutu eohle e hlokahalang e hlophisitsoeng esale pele), laeborari ena (le ho its'etleha ha eona ho LLVM) e ka siuoa feela.
    • Tlhaloso ea mofuta o nang le maemo joale e ka khoneha ka ho fetisetsa khang ho mokhoa. Mohlala, bakeng sa Base.ifelse(isa(x, Int), x, 0) e khutlisa ::Int leha mofuta oa x o sa tsejoe.
    • SROA (Scalar Replacement of Aggregates) e ntlafalitsoe: e felisa mehala ea getfield e nang le masimo a sa khaotseng a lefats'e, e felisa meaho e feto-fetohang e nang le masimo a sa lebelloang, e ntlafatsa ts'ebetso le ho sebetsana le mehala e fumanehang.
    • Tlhaloso ea mofuta o latela litlamorao tse fapaneng - litlamorao le ho se theohe. Phatlalatso e sa khaotseng e hlokomeloa, e leng ho ntlafatsang haholo ts'ebetso ea nako ea ho bokella. Ka linako tse ling, ho etsa mohlala, mehala e eang tšebetsong e ke keng ea ngolisoa empa e sa ame sephetho, e tla lahloa nakong ea ts'ebetso. Melao ea litlamorao e ka ngoloa ka letsoho ho sebelisoa Base.@assume_effects macro.
    • Ho kopanya esale pele (ka litaelo tse hlakileng tsa ho bokella kapa mesebetsi e boletsoeng) hona joale ho boloka khoutu e hlalositsoeng ka mokhoa o eketsehileng, e leng se bakang ts'ebetso e potlakileng ea lekhetlo la pele. Metsoako efe kapa efe e ncha ea mokhoa / mofuta o hlokoang ke sephutheloana sa hau, ho sa tsotelehe hore na mekhoa eo e hlalositsoe hokae, joale e ka bolokoa ka har'a faele ea precompilation haeba e bitsoa ka mokhoa oa sephutheloana sa hau.
  • Liphetoho ho Khetho ea Mola oa Taelo
    • Boitšoaro bo sa feleng ba ho beha leihlo liphatlalatso tsa @inbounds joale ke khetho ea auto "--check-bounds=e|no|auto".
    • Khetho e ncha ea "--strip-metadata" ea ho tlosa li-docstrings, lintlha tsa sebaka sa mohloli, le mabitso a fapaneng a lehae ha u theha setšoantšo sa sistimi.
    • Khetho e ncha "--strip-ir" ho lumella moqapi hore a tlose boemeli ba khoutu ea mohloli oa mahareng ha a theha setšoantšo sa sistimi. Setšoantšo se hlahisoang se tla sebetsa feela haeba "--compile=all" e sebelisoa kapa haeba khoutu eohle e hlokahalang e se e hlophisitsoe.
    • Haeba "-" e hlalositsoe ho e-na le lebitso la faele, joale khoutu e ka phethisoang e baloa ho tsoa ho mokhoa o tloaelehileng oa ho kenya.
  • Multithreading tšehetso liphetoho
    • Threads.@threads by default e sebelisa khetho e ncha ea kemiso :dynamic, e fapaneng le mokhoa o fetileng ka hore ho pheta-pheta ho tla hlophisoa ka matla ho feta likhoele tse teng tsa basebetsi ho fapana le ho abeloa khoele ka 'ngoe. Mokhoa ona o lumella kabo e ntle ea loops e behiloeng ka @spawn le @threads.
  • Mesebetsi e mecha ea laebrari
    • eachsplit(str) ho etsa split(str) makhetlo a mangata.
    • allequal(itr) ho lekola hore na likarolo tsohle tsa iterator lia lekana.
    • hardlink(src, dst) e ka sebelisoa ho theha lihokelo tse thata.
    • setcpuaffinity(cmd, cpus) ho theha kamano ea mantlha ea processor lits'ebetsong tse qalileng.
    • diskstat(path=pwd()) ho fumana lipalo-palo tsa disk.
    • New @showtime macro ho bonts'a mohala o ntseng o hlahlojoa le tlaleho ea @time.
    • LazyString le lazy"str" ​​macro li kenyellelitsoe ho ts'ehetsa kaho e botsoa ea melaetsa ea liphoso litseleng tsa liphoso.
    • E lokisitse bothata ba lichelete ho Dict le lintho tse ling tse nkiloeng joalo ka linotlolo(::Dict), boleng(::Dict) le Set. Mekhoa ea ho pheta-pheta hona joale e ka bitsoa ho bukantswe kapa sete, ha feela ho se na mehala e fetolang bukantswe kapa sete.
    • @time le @timev joale li na le tlhaloso ea boikhethelo, e u lumellang ho hlakisa mohloli oa litlaleho tsa nako, mohlala. @time "Evaluating foo" foo().
    • range e nka ho emisa kapa bolelele e le phehisano ea eona feela ea mantsoe a sehlooho.
    • ho nepahala le ho nepahala hona joale ho amohela motheo e le lentsoe la sehlooho
    • Lintho tsa socket tsa TCP joale li fana ka mokhoa oa ho ngola haufi-ufi le ho tšehetsa tšebeliso ea mokhoa o bulehileng halofo.
    • extrema joale e amohela khang ea init.
    • Iterators.countfrom hona joale e amohela mofuta ofe kapa ofe o hlalosang mokhoa oa +.
    • @time joale e fana ka % ea nako e sebelisitsoeng ho khutlisa mekhoa e nang le mefuta e fetotsoeng.
  • Liphetoho tsa Laeborari e Tloaelehileng
    • Linotlolo tse nang le boleng Ha ho letho le seng le tlositsoe tikolohong ka addenv.
    • Iterators.reverse (mme ka hona ea ho qetela) e tšehetsa mola o mong le o mong.
    • Bolelele ba tšebetso bakeng sa mefuta ea mefuta e itseng ha e sa hlola e hlahloba palo e felletseng. Mosebetsi o mocha, checked_length, oa fumaneha; e na le lintlha tsa taolo ea phetisetso. Haeba ho hlokahala, sebelisa SaferIntegers.jl ho theha mofuta oa sebaka.
    • The Iterators.Reverse iterator e sebelisa phetolo ea index ka 'ngoe ha ho khonahala.
  • Motsamaisi oa Sephutheloana
    • Lipontšo tse ncha ⌃ le ⌅ haufi le liphutheloana tsa boemo ba "pkg>" tseo liphetolelo tse ncha li leng teng. ⌅ e bontša hore liphetolelo tse ncha ha li khone ho kengoa.
    • E ncha e siiloeng ke nako::Khang ea Bool ho Pkg.status (--o siiloe ke nako kapa -o ka mokhoa oa REPL) ho bonts'a lintlha tse mabapi le liphutheloana tsa liphetolelo tse fetileng.
    • Compat e ncha::Bool argument to Pkg.status (--compat or -c in REPL mode) ho bonts'a likenyo life kapa life tsa [compat] ho Project.toml.
    • Mokhoa o mocha oa "pkg>compat" (le Pkg.compat) bakeng sa ho beha lipehelo tsa projeke. E fana ka mohlophisi o sebetsanang le "pkg> compat" kapa taolo ea rekoto e tobileng ka "pkg> Foo 0.4,0.5", e ka kenyang lirekoto tsa morao-rao ka ho phethela li-tab. Ke hore, "pkg> compat Fo " e ntjhafatswa ho "pkg>Foo 0.4,0.5" ho dumella ho fetoswa ha se seng se seng se ntse se le teng.
    • Hona joale Pkg e leka feela ho khoasolla liphutheloana ho tsoa ho seva sa sephutheloana haeba seva se shebile ngoliso e nang le sephutheloana.
    • Hona joale Pkg.instantiate e tla fana ka temoso ha Project.toml e se e sa lumellane le Manifest.toml. E etsa sena ho ipapisitsoe le bokhabane ba projeke ea deps le compat records (mabaka a mang a hlokomolohuoa) ho manifesto ha e e rarolla, e le hore phetoho leha e le efe ho Project.toml deps kapa compat records e ka fumanoa ntle le ho rarolla hape.
    • Haeba "pkg>add" e sa fumane sephutheloana se nang le lebitso le fanoeng, joale e tla fana ka maikutlo a liphutheloana tse nang le mabitso a tšoanang a ka kenyelletsoang.
    • Mofuta oa julia o bolokiloeng ho manifest ha o sa kenyelletsa nomoro ea kaho, ho bolelang hore master e se e tla ngoloa e le 1.9.0-DEV.
    • Teko ea "pkg>" joale e tla fumanoa khafetsa, 'me e tla khutlisetsoa ho REPL ka nepo.
  • InteractiveUtils
    • New @time_imports macro ho tlaleha nako e sebelisitsoeng ho kenya liphutheloana le lintho tseo li itšetlehileng ka tsona, ho totobatsa ho bokella le ho bokella nako e le liperesente tsa thepa e tsoang kantle ho naha.
  • Linear algebra
    • Submodule ea BLAS joale e ts'ehetsa mesebetsi ea boemo ba 2 BLAS spr!.
    • Laeborari e tloaelehileng ea LinearAlgebra.jl e se e ikemetse ka botlalo ho SparseArrays.jl, ka bobeli ho tsoa ho khoutu ea mohloli le pono ea tlhahlobo ea yuniti. Ka lebaka leo, li-arrays tse fokolang ha li sa khutlisoa (ka mokhoa o hlakileng) ka mekhoa e tsoang ho LinearAlgebra e sebelisoang ho lintho tsa Base kapa LinearAlgebra. Haholo-holo, sena se lebisa liphetohong tse latelang tse senyang:
      • Likopano tse sebelisang matrices a khethehileng a "sparse" (mohlala, diagonal) joale a khutlisetsa matrices a teteaneng; Ka lebaka leo, masimo a D1 le D2 a lintho tsa SVD tse entsoeng ka mehala ea getproperty joale ke matrices a teteaneng.
      • Mokhoa o tšoanang (::SpecialSparseMatrix, ::Type, ::Dims) o khutlisa matrix a se nang letho. Ka lebaka leo, lihlahisoa tsa matrices a mabeli, a mararo, le a symmetric tridiagonal hammoho le tse ling li lebisa molokong oa matrix a teteaneng. Ho feta moo, ho aha matrices a tšoanang ka mabaka a mararo ho tsoa ho "matrices" a khethehileng a tsoang ho (non-static) joale ho hloleha ka lebaka la "zero(::Type{Matrix{T}})".
  • Printf
    • %s le %c joale li sebelisa tlhaloso ea textwidth ho fomata bophara.
  • Profile
    • CPU load profiling joale e tlaleha metadata ho kenyelletsa likhoele le mesebetsi. Profile.print() e na le ngangisano e ncha ea sehlopha e u lumellang ho hlophisa likhoele, mesebetsi kapa likhoele tse nyane/mesebetsi, mesebetsi/ likhoele, le likhoele le likhang tsa mesebetsi ho fana ka sefa. Ho feta moo, peresente ea ts'ebeliso e se e tlalehiloe e le kakaretso kapa khoele ka 'ngoe, ho latela hore na khoele ha e sebetse kapa che sampole ka 'ngoe. Profile.fetch() e kenyelletsa metadata e ncha ka ho sa feleng. Bakeng sa tšebelisano ea morao-rao le bareki ba kantle ba data ea profiling, e ka qheleloa ka thoko ka ho fetisa include_meta=false.
    • Module o motjha wa Profile.Allocs o o dumella ho etsa profaele dikabo tsa memori. Palo ea mofuta le boholo ba kabo ea memori e 'ngoe le e' ngoe e tlalehiloe, 'me khang ea sampole_rate e lumella palo e lokiselitsoeng ea likabo hore e tlosoe, ho fokotsa ts'ebetso.
    • Nako e tsitsitseng profiling ea CPU joale e ka tsamaisoa ke mosebelisi ha mesebetsi e ntse e sebetsa ntle le ho kenya profil pele, mme tlaleho e tla hlahisoa ha e ntse e sebetsa. Ho MacOS le FreeBSD, tobetsa ctrl-t kapa letsetsa SIGINFO. Bakeng sa li-platform tse ling, kenya tšebetsong SIGUSR1, ke hore. % bolaea -USR1 $julia_pid. Sena ha se fumanehe ho Windows.
  • PUSA
    • Hona joale RadioMenu e tšehetsa likhutšoane tse ling tsa keyboard bakeng sa khetho e tobileng ea likhetho.
    • Tatelano "?(x, y" e lateloang ke ho tobetsa TAB e bontša mekhoa eohle e ka bitsoang ka likhang x, y, .... (Sebaka se ka sehloohong se u thibela ho kena mocheng oa thuso.) "MyModule.?(x, y "e thibela ho batlisisa ho "MyModule". Ho tobetsa TAB ho hloka hore bonyane khang e le 'ngoe e be ea mofuta o itseng ho feta Any.Kapa sebelisa SHIFT-TAB ho e-na le TAB ho lumella mekhoa efe kapa efe e lumellanang.
    • Phoso e ncha ea lefats'e e u lumella ho fumana mokhelo oa morao-rao, o ts'oanang le boitšoaro ba ans le karabo ea ho qetela. Ho kenya phoso ho hatisa lintlha tse ling hape.
  • SparseArrays
    • E tsamaisitse khoutu ea SparseArrays ho tloha polokelong ea Julia ho e isa sebakeng sa kantle sa SparseArrays.jl.
    • Khokahano e ncha e sebetsa sparse_hcat, sparse_vcat, le sparse_hvcat e khutlisa mofuta oa SparseMatrixCSC ho sa tsotelehe mefuta ea likhang tsa tlhahiso. Sena se ile sa hlokahala ho kopanya mochine oa gluing matrices ka mor'a ho arola LinearAlgebra.jl le SparseArrays.jl khoutu.
  • Ho kena lipalaneng
    • Maemo a tloaelehileng a ho rema lifate ka tlase hoMinLevel, Debug, Info, Temoso, Phoso le AboveMaxLevel joale a rometsoe kantle ho laeborari e tloaelehileng ea ho Rema Mereho.
  • Unicode
    • E kentse ts'ebetso ea isequal_normalized ho lekola ho lekana ha Unicode ntle le ho etsa likhoele tse tloaelehileng tse hlakileng.
    • Mosebetsi oa Unicode.normalize hona joale o amohela lentsoe la sehlooho la charttransform, le ka sebelisoang ho fana ka 'mapa oa litlhaku tse tloahelehileng, 'me mosebetsi oa Unicode.julia_chartransform o boetse o fanoe ho hlahisa 'mapa o sebelisoang ha mohlahlobi oa Julia a tloaeleha ho khetholla.
  • mamella teko
    • '@test_throws "molaetsa o mong" triggers_error()' joale e ka sebelisoa ho lekola hore na mongolo oa phoso o hlahisitsoeng o na le phoso ea "molaetsa o itseng", ho sa tsotelehe mofuta o ikhethileng. Lipolelo tse tloaelehileng, manane a likhoele, le mesebetsi e bapisang le tsona lia tšehetsoa.
    • @testset foo() joale e ka sebelisoa ho theha sete ea liteko ho tsoa tšebetsong e fanoeng. Lebitso la nyeoe ea teko ke lebitso la tšebetso e ntseng e bitsoa. Mosebetsi o bitswang o kanna wa ba le @test le ditlhaloso tse ding tsa @testset, ho kenyeletswa le mehala ho ditshebetso tse ding, ha o ntse o rekota diphetho tsohle tsa diteko tsa mahareng.
    • Hona joale TestLogger le LogRecord li romelloa kantle ho laebrari e tloaelehileng ea liteko.
  • E tsamaisoa
    • Hona joale SSHManager e tšehetsa likhoele tsa basebetsi ka csh/tcsh wrapper ka mokhoa oa addprocs() le shell=:csh parameter.
  • Liphetoho tse ling
    • GC.enable_logging('nete) e ka sebelisoa ho kenya ts'ebetso e' ngoe le e 'ngoe ea pokello ea lithōle ka nako le boholo ba mohopolo o bokeletsoeng.

Source: opennet.ru

Eketsa ka tlhaloso