Sgaoileadh cànan prògramadh Julia 1.8

Tha sgaoileadh cànan prògramadh Julia 1.8 ri fhaighinn, a’ cothlamadh feartan leithid àrd-choileanadh, taic airson clò-bhualadh fiùghantach agus innealan togte airson prògramadh co-shìnte. Tha co-chòrdadh Julia faisg air MATLAB, a 'faighinn iasad de chuid de na h-eileamaidean bho Ruby agus Lisp. Tha an dòigh làimhseachaidh sreang coltach ri Perl. Tha còd a’ phròiseict air a sgaoileadh fo chead MIT.

Prìomh fheartan a’ chànain:

  • Coileanadh àrd: is e aon de phrìomh amasan a’ phròiseict coileanadh a choileanadh faisg air prògraman C. Tha an compiler Julia stèidhichte air obair a’ phròiseict LLVM agus a’ gineadh còd inneal dùthchasach èifeachdach airson iomadh àrd-ùrlar targaid;
  • A’ toirt taic do ghrunn phàtranan prògramaidh, a’ gabhail a-steach eileamaidean de phrògramadh a tha ag amas air nithean agus gnìomh. Tha an leabharlann àbhaisteach a’ toirt seachad, am measg rudan eile, gnìomhan airson I/O asyncronach, smachd pròiseas, logadh, pròifil, agus riaghladh pacaid;
  • Clò-bhualadh fiùghantach: chan eil feum aig a’ chànan air mìneachadh soilleir air seòrsachan airson caochladairean, coltach ri cànanan prògramaidh sgrìobhaidh. Modh eadar-ghnìomhach le taic;
  • Comas roghainneil airson seòrsaichean a shònrachadh gu soilleir;
  • Co-chòrdadh air leth freagarrach airson coimpiutaireachd àireamhach, coimpiutaireachd saidheansail, ionnsachadh innealan, agus fradharc dàta. Taic airson iomadh seòrsa dàta àireamhach agus innealan airson àireamhachadh co-shìnte.
  • Comas gnìomhan a ghairm gu dìreach bho leabharlannan C às aonais sreathan a bharrachd.

Atharrachaidhean mòra ann an Julia 1.8:

  • Feartan cànain ùra
    • Faodar raointean de structar mutable a chomharrachadh a-nis mar chuibhlichean gus an casg bho bhith air an atharrachadh agus gus optimization a cheadachadh.
    • Faodar notaichean seòrsa a chur ri caochladairean cruinneil.
    • Faodar arrays falamh n-mheudach a chruthachadh le bhith a’ cleachdadh ioma leth-choloin taobh a-staigh camagan ceàrnagach, mar eisimpleir “[;;;] ”a’ cruthachadh sreath 0x0x0.
    • Feuch faodaidh blocaichean a-nis gu roghnach bloc eile a bhith aca, a thèid a chuir gu bàs dìreach às deidh a’ phrìomh bhuidheann mura deach mearachdan a thilgeil.
    • Faodar @inline agus @noinline a chuir am broinn buidheann gnìomh, a’ toirt cothrom dhut gnìomh gun urra a chomharrachadh.
    • Faodar @inline agus @noinline a-nis a chuir an sàs ann an gnìomh ann an làrach gairm no bloc gus toirt air na gairmean gnìomh co-fhreagarrach a bhith air an toirt a-steach (no gun a bhith air an toirt a-steach).
    • Tha ∀, ∃ agus ∄ ceadaichte mar charactaran aithnichear.
    • Taic a bharrachd airson sònrachadh Unicode 14.0.0.
    • Faodar an dòigh Modal (: ainm, meallta, meallta) a chleachdadh gus modal a chruthachadh anns nach eil ainmean, nach eil a’ toirt a-steach Base no Core, agus anns nach eil iomradh air fhèin.
  • Atharraichean ann an cànan
    • Tha world_age a-nis aig nithean gnìomh a chaidh a chruthachadh às ùr (@spawn, @async, msaa) airson dòighean bhon phàrant Task nuair a thèid an cruthachadh, a’ ceadachadh coileanadh làn-leasaichte. Tha an roghainn gnìomhachaidh roimhe ri fhaighinn a’ cleachdadh an dòigh Base.invokelatest.
    • Tha stiùiridhean cruth dà-thaobhach neo-chothromach Unicode a-nis air an toirmeasg ann an sreathan agus beachdan gus in-stealladh a sheachnadh.
    • Tha Base.ifelse a-nis air a mhìneachadh mar ghnìomh coitcheann seach togalach togte, a’ leigeil le pacaidean am mìneachadh a leudachadh.
    • Bidh a h-uile sònrachadh gu caochladair cruinne a-nis a’ dol tro ghairm gu tionndadh (Sam bith, x) no tionndadh(T, x) ma chaidh an caochladair cruinne ainmeachadh mar sheòrsa T. , x) === tha x an-còmhnaidh fìor, air neo dh’ fhaodadh sin leantainn gu giùlan ris nach robh dùil.
    • Tha gnìomhan togte a-nis coltach ri gnìomhan coitcheann agus faodar an àireamhachadh gu prògramach a’ cleachdadh dhòighean.
  • Leasachaidhean cruinneachaidh / runtime
    • Lùghdaich an ùine tòiseachaidh timcheall air 25%.
    • Chaidh an inneal-cruinneachaidh stèidhichte air LLVM a sgaradh bhon leabharlann runtime gu leabharlann ùr, libjulia-codegen. Tha e air a luchdachadh gu bunaiteach, agus mar sin cha bu chòir atharrachaidhean sam bith a bhith ann rè cleachdadh àbhaisteach. Ann an cleachdadh nach eil feumach air inneal-cruinneachaidh (mar eisimpleir, ìomhaighean siostam anns a bheil a h-uile còd riatanach air a chuir ri chèile), faodar an leabharlann seo (agus an eisimeileachd LLVM aige) fhàgail air falbh.
    • Tha e comasach co-dhùnadh seòrsa cumhach a-nis le bhith a’ toirt seachad argamaid gu modh. Mar eisimpleir, airson Base.ifelse (isa (x, Int), x, 0) tillidh :: Int eadhon ged nach eil fios dè an seòrsa x.
    • Chaidh SROA (Scalar Replace of Aggregates) a leasachadh: a’ cuir às do ghairmean getfield le raointean cruinne leantainneach, a’ cuir às do structaran mutable le raointean neo-aithnichte, a’ leasachadh coileanadh agus làimhseachadh fiosan achaidh neadachaidh.
    • Bidh co-dhùnadh seòrsa a’ leantainn grunn bhuaidhean - fo-bhuaidhean agus neo-tuiteam. Thathas a’ toirt aire do ghluasad cunbhalach, a tha gu mòr a’ leasachadh coileanadh ùine cruinneachaidh. Ann an cuid de chùisean, mar eisimpleir, thèid fiosan gu gnìomhan nach gabh a chuir a-steach ach nach toir buaidh air an toradh a chuir air falbh aig àm ruith. Faodar riaghailtean airson buaidhean ath-sgrìobhadh le làimh a’ cleachdadh am macro Base.@assume_effects.
    • Bidh ro-chruinneachadh (le stiùiridhean ro-chruinneachaidh soilleir no eallach obrach sònraichte) a-nis a’ sàbhaladh barrachd còd a tha air a mhìneachadh le seòrsa, a’ leantainn gu coileanadh nas luaithe airson a’ chiad uair. Faodar cothlamadh dòigh / seòrsa ùr sam bith a dh’ fheumas do phacaid, ge bith càite an deach na dòighean sin a mhìneachadh, a thasgadh a-steach don fhaidhle ro-chruinneachaidh ma thèid an gairm le dòigh a bhuineas don phacaid agad.
  • Atharraichean air roghainnean loidhne-àithne
    • Is e an giùlan bunaiteach airson sùil a chumail air dearbhaidhean @inbounds a-nis an roghainn fèin-ghluasadach ann an "--check-bounds = tha | chan eil | auto".
    • Roghainn ùr “--strip-metadata” gus docstrings a thoirt air falbh, fiosrachadh mun àite tùsail, agus ainmean caochladairean ionadail nuair a chruthaicheas tu ìomhaigh siostam.
    • Roghainn ùr "--strip-ir" gus leigeil leis an neach-cruinneachaidh an riochdachadh còd stòr eadar-mheadhanach a thoirt air falbh nuair a bhios e a ’togail ìomhaigh an t-siostaim. Chan obraich an dealbh a thig às a seo ach ma chleachdar “--compile=all” no ma tha an còd a tha a dhìth air a chur ri chèile ro-làimh.
    • Ma thèid an caractar " -" a shònrachadh an àite ainm an fhaidhle, thèid an còd so-ghnìomhaichte a leughadh bhon t-sruth àbhaisteach ion-chuir.
  • Bidh taic ioma-threading ag atharrachadh
    • Bidh Threads.@threads gu bunaiteach a’ cleachdadh an roghainn clàraidh ùr : fiùghantach, a tha eadar-dhealaichte bhon mhodh roimhe leis gum bi tionndaidhean air an clàradh gu dinamach thairis air snàithleanan luchd-obrach a tha rim faighinn seach a bhith air an sònrachadh do gach snàithlean. Leigidh am modh seo le cuairteachadh nas fheàrr de lùban neadachaidh le @spawn agus @threads.
  • Gnìomhan leabharlainn ùr
    • eachsplit (str) gus sgoltadh (str) a chuir an gnìomh grunn thursan.
    • allequal(itr) gus dearbhadh a bheil a h-uile eileamaid ann an iterator co-ionnan.
    • Faodar hardlink(src, dst) a chleachdadh gus ceanglaichean cruaidh a chruthachadh.
    • setcpuaffinity (cmd, cpus) gus dàimh a 'phròiseis a shuidheachadh aig cridhe nam pròiseasan a chaidh a chuir air bhog.
    • diskstat (path = pwd ()) gus staitistig diosc fhaighinn.
    • Mac ùr @showtime gus an loidhne a thathar a’ measadh agus an @time aithisg a thaisbeanadh.
    • LazyString and lazy"str" ​​chaidh macro a chur ris gus taic a thoirt do thogail leisg air teachdaireachdan mearachd ann an slighean mearachd.
    • Chàirich sinn cùis concurrency ann an Dict agus nithean eile a thàinig a-mach leithid iuchraichean (:: Dict), luachan (:: Dict) agus Set. Faodar dòighean ath-aithris a chleachdadh a-nis air faclair no seata, cho fad 's nach eil fiosan ann a dh'atharraicheas am faclair no an seata.
    • Tha tuairisgeul roghainneil aig @time agus @timev a-nis, a’ toirt cothrom dhut cunntas a thoirt air tùs aithisgean ùine, mar eisimpleir. @time "A' luachadh foo" foo().
    • raon a’ gabhail an dàrna cuid stad no fad mar an aon argamaid prìomh fhacal aige.
    • tha cruinneas agus mionaideachd a-nis a’ gabhail ri bunait mar phrìomh fhacal
    • Tha nithean socaid TCP a-nis a’ toirt seachad dòigh sgrìobhaidh dlùth agus a’ toirt taic do chleachdadh modh leth-fhosgailte.
    • Tha extrema a-nis a’ gabhail ri argamaid init.
    • Tha Iterators.countfrom a-nis a’ gabhail ri seòrsa sam bith a tha a’ mìneachadh modh +.
    • @time a-nis a’ riarachadh an % den ùine a thathar a’ caitheamh ag ath-chruinneachadh dhòighean le seòrsachan atharraichte.
  • Atharraichean àbhaisteach leabharlann
    • Iuchraichean le luach Chan eil dad a-nis air a thoirt air falbh bhon àrainneachd ann an addenv.
    • Tha Iterators.reverse (agus mar sin mu dheireadh) a’ toirt taic do gach loidhne.
    • Chan eil an gnìomh faid airson raointean de sheòrsan sònraichte a’ sgrùdadh tuilleadh airson tar-shruth iomlan. Tha gnìomh ùr, checked_length, ri fhaighinn; tha loidsig smachd gluasaid bit ann. Ma tha feum air, cleachd SaferIntegers.jl gus an seòrsa raon a thogail.
    • Bidh an iterator Iterators.Reverse a’ buileachadh tionndadh gachindex ma ghabhas sin dèanamh.
  • Manaidsear pacaid
    • Comharran ùra ⌃ agus ⌅ ri taobh pacaidean san inbhe “pkg>” far a bheil dreachan ùra rim faighinn. Tha ⌅ a’ nochdadh nach gabh dreachan ùra a chuir a-steach.
    • Ùr seann-fhasanta::Bool argamaid gu Pkg.status (--seann-fhasanta no -o ann am modh REPL) gus fiosrachadh mu phasganan bho dhreachan roimhe a shealltainn.
    • Compat ùr ::argamaid Bool gu Pkg.status (--compat no -c ann am modh REPL) gus inntrigidhean [compat] sam bith ann am Project.toml a shealltainn.
    • Modh ùr “pkg> compat” (agus Pkg.compat) airson inntrigidhean co-chòrdalachd pròiseict a shuidheachadh. A’ toirt seachad deasaiche eadar-ghnìomhach tro “pkg> compat” no smachd clàran dìreach tro “pkg> Foo 0.4,0.5”, as urrainn clàran gnàthach a luchdachadh tro chrìochnachadh tab. 'S e sin, thèid "pkg> compat Fo" ùrachadh gu fèin-obrachail gu "pkg> Foo 0.4,0.5" gus an tèid inntrig a tha ann mu thràth a dheasachadh.
    • Chan fheuch Pkg a-nis ri pacaidean a luchdachadh sìos bho fhrithealaiche pacaid ma tha am frithealaiche a’ cumail sùil air a’ chlàr anns a bheil am pasgan.
    • Bheir Pkg.instantiate a-mach rabhadh a-nis nuair a tha Project.toml a-mach à sioncranachadh le Manifest.toml. Bidh e a’ dèanamh seo stèidhichte air hash de chlàran deps is compat a’ phròiseict (thèid dearmad a dhèanamh air raointean eile) anns an fhollaiseach nuair a thathar ga fhuasgladh, gus an lorgar atharrachadh sam bith air na deps Project.toml no clàran compat gun ath-fhuasgladh.
    • Mura h-urrainn do “pkg> add” pasgan a lorg leis an ainm a chaidh a thoirt seachad, molaidh e a-nis pacaidean le ainmean coltach ris a ghabhas cur ris.
    • Chan eil an dreach de julia a tha air a stòradh san fhoillseachadh a-nis a’ toirt a-steach an àireamh togail, a’ ciallachadh gum bi maighstir a-nis air a sgrìobhadh mar 1.9.0-DEV.
    • Bidh test abort "pkg>" a-nis air a lorg nas cunbhalaiche, agus thèid a thilleadh gu ceart chun REPL.
  • InteractiveUtils
    • Mac ùr @time_imports gus cunntas a thoirt air an ùine a chaidh a chaitheamh a’ toirt a-steach pacaidean agus an eisimeileachd, a’ soilleireachadh ùine cruinneachaidh is ath-chruinneachadh mar cheudad de in-mhalairt.
  • Algebra sreathach
    • Tha fo-mhodal BLAS a-nis a’ toirt taic do ghnìomhan ìre-2 BLAS spr!
    • Tha an leabharlann àbhaisteach LinearAlgebra.jl a-nis gu tur neo-eisimeileach bho SparseArrays.jl, gach cuid bho shealladh còd stòr agus deuchainn aonad. Mar thoradh air an sin, chan eil arrays gann air an tilleadh tuilleadh (gu h-obann) le dòighean bho LinearAlgebra air an cur an sàs ann an stuthan Base no LinearAlgebra. Gu sònraichte, tha seo a 'leantainn gu na h-atharrachaidhean briste a leanas:
      • Bidh co-chruinneachaidhean a' cleachdadh matrices "gann" sònraichte (me trastain) a-nis a' tilleadh matrices tiugh; Mar thoradh air an sin, tha na raointean D1 agus D2 de stuthan SVD a chaidh a chruthachadh le gairmean getproperty a-nis nan matrices dùmhail.
      • Bidh an dòigh coltach (:: SpecialSparseMatrix, :: Type, :: Dims) a’ tilleadh matrix dùmhail null. Mar thoradh air an sin, bidh toraidhean de mhatrices trì-thaobhach dà-, trì, agus co-chothromach ri chèile a’ leantainn gu gineadh matrix dùmhail. A bharrachd air an sin, tha a bhith a’ togail matrices coltach ri trì argamaidean bho mhatrics “gann” sònraichte bho mhatrices (neo-statach) a-nis a’ fàiligeadh air sgàth “neoni (:: Seòrsa{Matrix{T}})".
  • Clò-bhuail
    • Cleachdaidh %s agus %c an argamaid leud-teacsa gus an leud a chruth.
  • Cunntas
    • Tha pròifil luchdan CPU a-nis a’ clàradh meata-dàta a’ toirt a-steach snàithleanan agus gnìomhan. Tha argamaid ùr groupby aig Profile.print () a leigeas leat snàithleanan, gnìomhan no fo-snàithlean / gnìomhan, gnìomhan / snàithleanan, agus snàithleanan agus argamaidean gnìomhan a chuir còmhla gus sìoladh a thoirt seachad. A bharrachd air an sin, thathas a-nis ag aithris ceudad cleachdaidh mar àireamh iomlan no gach snàithlean, a rèir a bheil an snàithlean leisg no nach eil anns gach sampall. Tha Profile.fetch() a’ toirt a-steach am meata-dàta ùr gu bunaiteach. Airson co-chòrdalachd air ais le luchd-cleachdaidh taobh a-muigh dàta pròifil, faodar a chuir a-mach le bhith a’ dol seachad include_meta = meallta.
    • Leigidh am modal ùr Profile.Allocs leat cunntas a thoirt air cuibhreannan cuimhne. Tha lorg stac de sheòrsa is meud gach riarachadh cuimhne air a chlàradh, agus tha an argamaid sample_rate a’ ceadachadh àireamh rèiteachaidh de chuibhreannan a sheachnadh, a’ lughdachadh coileanadh os cionn.
    • Faodaidh an neach-cleachdaidh pròifil CPU fad-ùine a ruith a-nis fhad ‘s a tha gnìomhan a’ ruith gun a bhith a ’luchdachadh a’ phròifil an-toiseach, agus thèid an aithisg a thaisbeanadh fhad ‘s a tha e a’ ruith. Air macOS agus FreeBSD, brùth ctrl-t no cuir fòn gu SIGINFO. Airson àrd-ùrlaran eile, cuir an gnìomh SIGUSR1, i.e. % mharbhadh -USR1 $julia_pid. Chan eil seo ri fhaighinn air Windows.
  • REPL
    • Tha RadioMenu a-nis a’ toirt taic do gheàrr-dhealbhan meur-chlàr a bharrachd airson taghadh dìreach de roghainnean.
    • Tha an t-sreath "? (x, y" agus an uairsin a 'putadh TAB a' taisbeanadh a h-uile modh a dh'fhaodar a ghairm le argamaidean x, y, .... (Tha prìomh àite a 'cur casg ort bho bhith a' dol a-steach don mhodh cuideachaidh.)" MyModule.? y" a' cuingealachadh an rannsachaidh gu "MyModule". Ma bhriogas tu air TAB feumaidh co-dhiù aon argamaid a bhith de sheòrsa nas mionaidiche na Sam bith. No cleachd SHIFT-TAB an àite TAB gus modhan co-chosmhail sam bith a cheadachadh.
    • Leigidh am mearachd caochladair cruinne ùr leat an eisgeachd as ùire fhaighinn, coltach ri giùlan ans leis an fhreagairt mu dheireadh. Le bhith a’ cur a-steach mearachd bidh sin ag ath-chlò-bhualadh an fhiosrachaidh eisgeachd.
  • Arrays Spear
    • Ghluais sinn an còd SparseArrays bho stòr Julia gu stòr SparseArrays.jl a-muigh.
    • Bidh na gnìomhan concatenation ùr sparse_hcat, sparse_vcat, agus sparse_hvcat a’ tilleadh seòrsa SparseMatrixCSC ge bith dè an seòrsa argamaidean cuir a-steach. Dh'fhàs seo riatanach gus an uidheamachd airson matrices gluing aonachadh às deidh dhaibh an còd LinearAlgebra.jl agus SparseArrays.jl a sgaradh.
  • Logadh
    • Tha na h-ìrean logaidh àbhaisteach BelowMinLevel, Debug, Info, Warn, Error agus AboveMaxLevel a-nis air an às-mhalairt bhon leabharlann Logaidh àbhaisteach.
  • Unicode
    • Chaidh gnìomh isequal_normalized a chuir ris gus sgrùdadh a dhèanamh airson co-ionannachd Unicode gun a bhith a’ togail sreangan àbhaisteach gu sònraichte.
    • Tha an gnìomh Unicode.normalize a-nis a’ gabhail ris a’ phrìomh fhacal charttransform, a dh’ fhaodar a chleachdadh gus mapaichean caractar àbhaisteach a thoirt seachad, agus tha an gnìomh Unicode.julia_chartransform air a thoirt seachad cuideachd gus ath-riochdachadh a dhèanamh air a’ mhapadh a thèid a chleachdadh nuair a bhios parser Julia ag àbhaisteachadh aithnichearan.
  • deuchainn
    • Faodar ‘@test_throws“ cuid de theachdaireachd ”triggers_error()’ a chleachdadh a-nis gus dearbhadh a bheil mearachd “teachdaireachd air choireigin” anns an teacsa mearachd a tha air a thaisbeanadh, ge bith dè an seòrsa eisgeachd sònraichte. Thathas cuideachd a’ toirt taic do abairtean cunbhalach, liostaichean sreang, agus gnìomhan maidsidh.
    • Faodar @testset foo() a chleachdadh a-nis gus seata deuchainn a chruthachadh bho ghnìomh sònraichte. Is e ainm na cùise deuchainn ainm a’ ghnìomh ris an canar. Faodaidh @test agus mìneachaidhean eile @testset a bhith anns a’ ghnìomh ris an canar, a’ toirt a-steach fiosan gu gnìomhan eile, fhad ‘s a tha iad a’ clàradh a h-uile toradh deuchainn eadar-mheadhanach.
    • Tha TestLogger agus LogRecord a-nis air an às-mhalairt bhon leabharlann Deuchainn àbhaisteach.
  • Air a chuairteachadh
    • Tha SSHManager a-nis a’ toirt taic do snàithleanan luchd-obrach le còmhdach csh / tcsh tron ​​​​dòigh addprocs () agus am paramadair slige =: csh.
  • Atharraichean eile
    • Faodar GC.enable_logging(true) a chleachdadh gus gach obair togail sgudail a chlàradh leis an ùine agus an ìre de chuimhne a chaidh a chruinneachadh.

Source: fosgailtenet.ru

Cuir beachd ann