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.
- A-nis tha Pkg aâ feuchainn ri pacaidean a luchdachadh sĂŹos bho frithealaiche pacaidean a-mhĂ in ma bhios an 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.
- Faodar pròifileadh CPU fad-Ăšine stèidhichte a thòiseachadh leis an neach-cleachdaidh a-nis fhad âs a thathar aâ cur an gnĂŹomh gnĂŹomh gun a bhith aâ luchdachadh aâ phròifil ro-lĂ imh, agus thèid an aithisg a thaisbeanadh fhad âs a thathar ga chur an gnĂŹomh. Air MacOS agus FreeBSD, brĂšth ctrl-t no gairm SIGINFO. Airson Ă rd-Ăšrlaran eile, cuir SIGUSR1 an comas, i.e., % kill -USR1 $julia_pid. Windows Chan eil seo ri fhaighinn.
- 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
