Hoʻokuʻu ʻia ka ʻōlelo hoʻolālā Julia 1.8

Loaʻa ka hoʻokuʻu ʻana o ka ʻōlelo hoʻolālā Julia 1.8, e hui pū ana i nā ʻano like me ka hana kiʻekiʻe, ke kākoʻo no ka paʻi ʻana a me nā mea hana i kūkulu ʻia no ka hoʻolālā like. ʻO ka syntax a Julia kokoke i MATLAB, e hōʻaiʻē i kekahi mau mea mai Ruby a me Lisp. Hoʻomanaʻo ʻia ke ʻano hana hoʻopunipuni iā ​​Perl. Hāʻawi ʻia ke code papahana ma lalo o ka laikini MIT.

Nā hiʻohiʻona nui o ka ʻōlelo:

  • Hana kiʻekiʻe: ʻo kekahi o nā pahuhopu nui o ka papahana e hoʻokō i ka hana kokoke i nā papahana C. Hoʻokumu ʻia ka mea hōʻuluʻulu ʻo Julia ma ka hana o ka papahana LLVM a hoʻopuka i ka code mīkini ʻōiwi kūpono no ka nui o nā papa kuhikuhi;
  • Kākoʻo i nā paradigms hoʻonohonoho like ʻole, me nā mea o ka hoʻonohonoho ʻana i ka mea a me ka hoʻolālā hana. Hāʻawi ka waihona maʻamau, ma waena o nā mea ʻē aʻe, nā hana no ka I/O asynchronous, ka hoʻokele kaʻina hana, logging, profiling, a me ka hoʻokele pūʻolo;
  • ʻO ke kikokiko paʻakiki: ʻaʻole koi ka ʻōlelo i ka wehewehe kikoʻī o nā ʻano no nā ʻano like ʻole, e like me ka hoʻopaʻa ʻana i nā ʻōlelo papahana. Kākoʻo ʻia ke ʻano pāʻani;
  • ʻO ka hiki ke koho pono e wehewehe i nā ʻano;
  • He syntax kūpono no ka helu helu, ʻepekema ʻepekema, aʻo mīkini, a me ka ʻike ʻikepili. Kākoʻo no nā ʻano ʻikepili helu a me nā mea hana no ka hoʻohālikelike ʻana i nā helu.
  • ʻO ka hiki ke kāhea pololei i nā hana mai nā hale waihona puke C me ka ʻole o nā papa ʻē aʻe.

Nā hoʻololi nui ma Julia 1.8:

  • Nā hiʻohiʻona ʻōlelo hou
    • Hiki ke hoʻokaʻawale ʻia nā māla o kahi ʻano hoʻololi i kēia manawa ma ke ʻano he mau mau e pale ai iā lākou mai ka hoʻololi ʻia a ʻae ʻia ka hoʻonui ʻana.
    • Hiki ke hoʻohui ʻia nā ʻano anootation i nā ʻano hoʻololi honua.
    • Hiki ke hana ʻia nā ʻāpana n-dimensional me ka hoʻohana ʻana i nā semicolons he nui i loko o nā bracket square, no ka laʻana "[;;;]" hana i kahi ʻano 0x0x0.
    • Hiki i nā poloka hoʻāʻo i kēia manawa ke loaʻa i kahi poloka ʻē aʻe, e hoʻokō koke ʻia ma hope o ke kino nui inā ʻaʻohe hewa i hoʻolei ʻia.
    • Hiki ke hoʻokomo ʻia @inline a me @noinline i loko o kahi kino hana, e ʻae iā ʻoe e hōʻike i kahi hana inoa ʻole.
    • Hiki ke hoʻohana ʻia ka @inline a me @noinline i kahi hana i loko o kahi kahua kelepona a i ʻole poloka e koi ai i nā kelepona hana pili e hoʻokomo ʻia (a ʻaʻole hoʻokomo ʻia).
    • Ua ʻae ʻia ʻo ∀, ∃ a me ∄ ma ke ʻano he mau huaʻōlelo ʻike.
    • Hoʻohui i ke kākoʻo no Unicode 14.0.0 kikoʻī.
    • Hiki ke hoʻohana ʻia ke ʻano Module(:name, false, false) no ka hana ʻana i kahi module i loaʻa ʻole nā ​​inoa, ʻaʻole hoʻokomo i ka Base a i ʻole Core, a ʻaʻole i loaʻa kahi kuhikuhi iā ia iho.
  • Hoʻololi i ka ʻōlelo
    • ʻO nā mea hana hou (@spawn, @async, a me nā mea ʻē aʻe) i kēia manawa he world_age no nā ʻano hana mai ka hana makua ke hana ʻia, e ʻae ana i ka hoʻokō pono ʻia. Loaʻa ka koho hoʻāla mua me ka hoʻohana ʻana i ke ala Base.invokelatest.
    • ʻAʻole ʻae ʻia nā ʻōlelo kuhikuhi unicode unbalanced bidirectional formatting i nā kaula a me nā ʻōlelo e pale aku ai i nā injections.
    • Ua wehewehe ʻia ʻo Base.ifelse ma ke ʻano he hana maʻamau ma mua o kahi i kūkulu ʻia, e ʻae ana i nā pūʻolo e hoʻonui i kona wehewehe.
    • ʻO kēlā me kēia haʻawina i kahi hoʻololi honua i kēia manawa e hele mua ma ke kelepona e hoʻololi (Kekahi, x) a i ʻole hoʻololi (T, x) inā ua haʻi ʻia ka hoʻololi honua he ʻano T. , x) === ʻoiaʻiʻo mau ka x, inā ʻaʻole hiki ke alakaʻi i ka hana i manaʻo ʻole ʻia.
    • Ua like nā hana i kūkulu ʻia i kēia manawa me nā hana maʻamau a hiki ke helu ʻia ma ka papahana me nā ʻano hana.
  • Hoʻomaikaʻi ʻana i ka mea hoʻopili / runtime
    • Hoʻemi ʻia ka manawa boot ma kahi o 25%.
    • Ua hoʻokaʻawale ʻia ka mea hoʻopili LLVM mai ka waihona runtime i kahi waihona hou, libjulia-codegen. Hoʻouka ʻia e ka paʻamau, no laila ʻaʻohe mea e hoʻololi i ka wā hoʻohana maʻamau. Ma nā hoʻolālā ʻaʻole pono i kahi mea hoʻopili (no ka laʻana, nā kiʻi ʻōnaehana kahi i hoʻopili mua ʻia ai nā code pono āpau), hiki ke waiho wale ʻia kēia waihona (a me kona hilinaʻi LLVM).
    • Hiki ke hoʻohālikelike ʻano kūlana i kēia manawa ma ka hāʻawi ʻana i kahi hoʻopaʻapaʻa i kahi ala. No ka laʻana, no Base.ifelse(isa(x, Int), x, 0) hoʻi ::Int inā ʻaʻole ʻike ʻia ke ʻano o x.
    • Ua hoʻomaikaʻi ʻia ʻo SROA (Scalar Replacement of Aggregates): hoʻopau i nā kelepona getfield me nā kahua honua hoʻomau, hoʻopau i nā hale hiki ke hoʻololi ʻia me nā kahua ʻike ʻole, hoʻomaikaʻi i ka hana a me ka lawelawe ʻana i nā kelepona getfield nested.
    • Hoʻopili ke ʻano inference i nā hopena like ʻole - nā hopena ʻaoʻao a me ka hāʻule ʻole. Lawe ʻia ka hoʻolaha mau ʻana, kahi e hoʻomaikaʻi nui ai i ka hana compile-time. I kekahi mau hihia, no ka laʻana, e hoʻolei ʻia nā kelepona i nā hana i hiki ʻole ke hoʻopili ʻia akā ʻaʻole pili i ka hopena i ka wā holo. Hiki ke kākau lima ʻia nā lula no nā hopena me ka hoʻohana ʻana i ka Base.@assume_effects macro.
    • ʻO ka precompilation (me nā kuhikuhi precompilation a i ʻole nā ​​haʻahaʻa hana i ʻōlelo ʻia) i kēia manawa e mālama i nā code i wehewehe ʻia, e hopena i ka wikiwiki o ka hana mua. ʻO nā ʻano hui hou a me nā ʻano hui e pono ai e kāu pūʻolo, me ka nānā ʻole i kahi i wehewehe ʻia ai kēlā mau ʻano, hiki ke hūnā ʻia i ka faila precompilation inā kāhea ʻia lākou e kahi ʻano o kāu pūʻolo.
  • Hoʻololi i nā koho laina kauoha
    • ʻO ka hana paʻamau no ka nānā ʻana i nā ʻōlelo hoʻolaha @inbounds i kēia manawa ke koho kaʻa i "--check-bounds=yes|no|auto".
    • He koho "--strip-metadata" hou e wehe i nā docstrings, ka ʻike wahi kumu, a me nā inoa hoʻololi kūloko i ka wā e hana ai i kahi kiʻi ʻōnaehana.
    • ʻO ke koho hou "--strip-ir" e ʻae i ka mea hōʻuluʻulu e wehe i ka hōʻike code kumu waena i ke kūkulu ʻana i ke kiʻi ʻōnaehana. E hana wale ana ke kiʻi i loaʻa inā hoʻohana ʻia ka "--compile=all" a i ʻole e hoʻopili mua ʻia nā code i makemake ʻia.
    • Inā kuhikuhi ʻia ke ʻano "-" ma kahi o ka inoa faila, a laila heluhelu ʻia ke code executable mai ke kahawai hoʻokomo maʻamau.
  • Hoʻololi kākoʻo multithreading
    • Hoʻohana ʻo Threads.@threads i ke koho hoʻonohonoho hou: dynamic, ʻokoʻa ia mai ke ʻano mua i kēlā me kēia ʻano e hoʻonohonoho ikaika ʻia ma nā loina limahana i loaʻa ma mua o ka hāʻawi ʻia ʻana i kēlā me kēia pae. Hāʻawi kēia ʻano hana no ka hoʻohele maikaʻi ʻana i nā puka puka me @spawn a me @threads.
  • Nā hana waihona hou
    • eachsplit(str) e hoʻokō i ka split(str) i nā manawa he nui.
    • allequal(itr) e ho'āʻo ai inā like nā mea a pau i loko o ka mea hoʻohālikelike.
    • hardlink(src, dst) hiki ke hoʻohana ʻia e hana i nā loulou paʻakikī.
    • setcpuaffinity(cmd, cpus) e hoʻonohonoho i ka pili o ka ʻōnaehana kumu i nā kaʻina hana.
    • diskstat(path=pwd()) e kiʻi i nā helu ʻikepili.
    • Mea hou @showtime macro e hōʻike i ka laina e loiloi ʻia a me ka hōʻike @time.
    • Ua hoʻohui ʻia ʻo LazyString a me lazy "str" ​​​​makro e kākoʻo i ka hana palaualelo o nā memo hewa i nā ala hewa.
    • Hoʻoponopono i kahi pilikia concurrency ma Dict a me nā mea i loaʻa e like me nā kī (:: Dict), nā waiwai (:: Dict) a me Set. Hiki ke kāhea ʻia nā ʻano hana hoʻomaʻamaʻa ma kahi puke wehewehe ʻōlelo a hoʻonohonoho paha, inā ʻaʻohe kelepona e hoʻololi i ka puke wehewehe ʻōlelo a i ʻole hoʻonohonoho.
    • Loaʻa iā @time a me @timev kahi wehewehe koho, e ʻae iā ʻoe e hōʻike i ke kumu o nā hōʻike manawa, no ka laʻana. @time "Evaluating foo" foo().
    • ʻO ka laulā e hoʻomaha a lōʻihi paha ma ke ʻano he kumu hoʻopaʻapaʻa huaʻōlelo wale nō.
    • ʻae ʻia ka precision a me ka setprecision i ka waihona ma ke ʻano he huaʻōlelo
    • Hāʻawi nā mea socket TCP i kēia manawa i kahi ala kākau kokoke a kākoʻo i ka hoʻohana ʻana i ke ʻano hāmama.
    • ʻAe ʻo extrema i kēia manawa i ka hoʻopaʻapaʻa init.
    • ʻAe ʻo Iterators.countfrom i kēia manawa i kekahi ʻano e wehewehe ana i kahi ala +.
    • Hoʻokaʻawale ʻo @time i ka % o ka manawa i hoʻopau ʻia i nā ʻano hana me nā ʻano i hoʻololi ʻia.
  • Nā Hoʻololi Waihona Puke
    • Nā kī me ka waiwai ʻAʻohe mea i wehe ʻia mai ke kaiapuni ma addenv.
    • Kākoʻo ʻo Iterators.reverse (a no laila ka hope) i kēlā me kēia laina.
    • ʻAʻole nānā hou ka hana lōʻihi no nā pae o kekahi mau ʻano no ka overflow integer. Loaʻa kahi hana hou, checked_length; loaʻa iā ia ka manaʻo mana hoʻololi bit. Inā pono, e hoʻohana iā SaferIntegers.jl e kūkulu i ke ʻano laulā.
    • Hoʻohana ka Iterators.Reverse iterator i kēlā me kēia hoʻihoʻi kuhikuhi inā hiki.
  • Luna Hoʻokele
    • Nā hōʻailona ⌃ a me ⌅ hou ma ka ʻaoʻao o nā pūʻolo ma ke kūlana “pkg>” i loaʻa nā mana hou. ⌅ hōʻike ʻaʻole hiki ke hoʻokomo ʻia nā mana hou.
    • Hou kahiko::Bool hoʻopaʻapaʻa iā Pkg.status (--outdated a i ʻole -o ma REPL mode) e hōʻike i ka ʻike e pili ana i nā pūʻolo mai nā mana o mua.
    • Hoʻopaʻa hou:: hoʻopaʻapaʻa Bool iā Pkg.status (--compat a i ʻole -c ma ke ʻano REPL) e hōʻike i nā mea komo [compat] ma Project.toml.
    • ʻO ke ʻano hou "pkg>compat" (a me Pkg.compat) no ka hoʻonohonoho ʻana i nā mea hoʻokomo hoʻohālikelike papahana. Hāʻawi i ka mea hoʻoponopono pili ma o "pkg>compat" a i ʻole ka mana hoʻopaʻa moʻolelo pololei ma o "pkg>Foo 0.4,0.5", hiki ke hoʻouka i nā moʻolelo o kēia manawa ma o ka hoʻopau ʻana i ka pā. ʻO ia hoʻi, "pkg> compat Fo " hoʻololi 'akomi 'ia i "pkg>Foo 0.4,0.5" no ka ʻae ʻana i ka hoʻoponopono ʻana i ke komo ʻana.
    • Ke hoʻāʻo wale nei ʻo Pkg e hoʻoiho i nā pūʻolo mai kahi kikowaena pūʻolo inā e nānā ana ke kikowaena i ka papa inoa i loko o ka pūʻolo.
    • E hoʻopuka ʻo Pkg.instantiate i kahi ʻōlelo aʻo i ka wā ʻaʻole like ʻo Project.toml me Manifest.toml. Hana ʻia kēia ma muli o ka hash o nā deps a me nā moʻolelo compat o ka papahana (ʻaʻole mālama ʻia nā kahua ʻē aʻe) i ka hōʻike i ka wā e hoʻoholo ai, i ʻike ʻia kekahi hoʻololi i ka Project.toml deps a i ʻole nā ​​moʻolelo compat me ka hoʻoponopono hou ʻole.
    • Inā ʻaʻole hiki iā "pkg>add" ke loaʻa i kahi pūʻolo me ka inoa i hāʻawi ʻia, e hōʻike ʻo ia i nā pūʻolo me nā inoa like e hiki ke hoʻohui ʻia.
    • ʻO ka mana o julia i mālama ʻia i loko o ka hōʻike ʻaʻole i komo hou i ka helu kūkulu, ʻo ia hoʻi e kākau ʻia ka haku ma ke ʻano he 1.9.0-DEV.
    • E ʻike mau ʻia ka hoʻāʻo abort "pkg>", a e hoʻihoʻi pololei ʻia i ka REPL.
  • InteractiveUtils
    • New @time_imports macro e hōʻike i ka manawa i hoʻohana ʻia i ka lawe ʻana i nā pūʻolo a me ko lākou mau hilinaʻi, e hōʻike ana i ka hōʻuluʻulu ʻana a me ka hoʻopili hou ʻana i ka manawa ma ke ʻano he pākēneka o nā lawe mai.
  • Algebra laina
    • Kākoʻo ka submodule BLAS i nā hana pae-2 BLAS spr!.
    • He kūʻokoʻa loa ka waihona maʻamau LinearAlgebra.jl iā SparseArrays.jl, mai ke kumu kumu a me ka ʻike hoʻāʻo ʻana. ʻO ka hopena, ʻaʻole i hoʻihoʻi ʻia nā ʻāpana liʻiliʻi (implicitly) e nā ala mai LinearAlgebra i hoʻopili ʻia i nā mea Base a LinearAlgebra. ʻO ka mea nui, alakaʻi kēia i nā loli hoʻololi:
      • ʻO nā hui pū me ka hoʻohana ʻana i nā matrices "sparse" kūikawā (eg diagonal) i kēia manawa e hoʻihoʻi i nā matrices mānoanoa; ʻO ka hopena, ʻo nā māla D1 a me D2 o nā mea SVD i hana ʻia e getproperty calls i kēia manawa he matrices paʻa.
      • ʻO ke ala like (::SpecialSparseMatrix, ::Type, ::Dims) e hoʻihoʻi i kahi matrix null. ʻO ka hopena, alakaʻi nā huahana o nā matrices tridiagonal ʻelua-, ʻekolu-, a symmetric me kekahi i kekahi i ka hoʻokumu ʻana i kahi matrix dense. Eia kekahi, ʻaʻole hiki ke kūkulu ʻana i nā matrices like me ʻekolu mau manaʻo mai nā matrices "sparse" kūikawā mai nā matrices (non-static) i kēia manawa ma muli o "zero(::Type{Matrix{T}})".
  • Printf
    • Ke hoʻohana nei ʻo %s a me %c i ka hoʻopaʻapaʻa textwidth e hōʻano i ka laulā.
  • Profile
    • Hoʻopaʻa ʻia ka hoʻopili ʻana o ka CPU load profiling i nā metadata me nā pae a me nā hana. Loaʻa iā Profile.print () kahi hoʻopaʻapaʻa hui hou e hiki ai iā ʻoe ke hui pū i nā loina, nā hana a i ʻole nā ​​​​subthreads/tasks, nā hana/threads, a me nā loina a me nā hoʻopaʻapaʻa hana e hāʻawi i ka kānana. Eia hou, ua hōʻike ʻia ka pākēneka o ka hoʻohana ʻana ma ke ʻano holoʻokoʻa a i ʻole kēlā me kēia pae, ma muli o ka palaualelo a i ʻole ka pae i kēlā me kēia laʻana. Aia ka Profile.fetch() i ka metadata hou ma ka paʻamau. No ka hoʻokuʻi ʻana i hope me nā mea kūʻai aku o ka ʻikepili profiling, hiki ke hoʻokaʻawale ʻia ma ke kau ʻana i include_meta=false.
    • ʻO ka module Profile.Allocs hou e ʻae iā ʻoe e hōʻike i nā ʻāpana hoʻomanaʻo. Hoʻopaʻa ʻia kahi ʻāpana o ke ʻano a me ka nui o kēlā me kēia hoʻomanaʻo hoʻomanaʻo, a ʻo ka sample_rate argument e hiki ai i kahi helu configurable o ka hoʻokaʻawale ʻana e lele ʻia, e hōʻemi ana i ka hana ma luna.
    • Hiki i ka mea hoʻohana ke holo i ka manawa paʻa o ka CPU profiling i ka wā e holo ana nā hana me ka ʻole o ka hoʻouka mua ʻana i ka ʻaoʻao, a e hōʻike ʻia ka hōʻike i ka wā e holo ana. Ma MacOS a me FreeBSD, e kaomi i ka ctrl-t a i ʻole e kāhea iā SIGINFO. No nā paepae ʻē aʻe, e hoʻāla iā SIGUSR1, ʻo ia hoʻi. % pepehi -USR1 $julia_pid. ʻAʻole loaʻa kēia ma Windows.
  • REPL
    • Kākoʻo ʻo RadioMenu i nā pōkole kīpē hou no ke koho pololei ʻana i nā koho.
    • ʻO ke kaʻina "?(x, y" ma hope o ke kaomi ʻana i ka TAB e hōʻike ana i nā ʻano hana āpau e hiki ke kapa ʻia me nā hoʻopaʻapaʻa x, y, ... y " hoʻopaʻa i ka huli ʻana iā "MyModule". ʻO ka paʻi ʻana i ka TAB e koi i hoʻokahi kumu hoʻopaʻapaʻa ma kahi ʻano kikoʻī ma mua o kekahi.
    • ʻO ka hewa hoʻololi honua hou e ʻae iā ʻoe e kiʻi i ka ʻokoʻa hou loa, e like me ke ʻano o ans me ka pane hope. ʻO ke komo ʻana i ka hewa e paʻi hou i ka ʻike hoʻokoe.
  • ʻAi ʻAi
    • Ua hoʻoneʻe i ka code SparseArrays mai ka waihona Julia i ka waihona waho SparseArrays.jl.
    • ʻO ka hana concatenation hou sparse_hcat, sparse_vcat, a me sparse_hvcat e hoʻihoʻi i kahi ʻano SparseMatrixCSC me ka nānā ʻole i ke ʻano o nā manaʻo hoʻokomo. Ua lilo kēia i mea pono e hoʻohui i ka mīkini no ka hoʻopili ʻana i nā matrices ma hope o ka hoʻokaʻawale ʻana i ke code LinearAlgebra.jl a me SparseArrays.jl.
  • kālai lāʻauʻana
    • Ke lawe ʻia nei nā pae logging maʻamau BelowMinLevel, Debug, Info, Warn, Error a me AboveMaxLevel mai ka waihona Logging maʻamau.
  • Unicode
    • Hoʻohui ʻia ka hana isequal_normalized e nānā i ka kūlike Unicode me ka ʻole o ke kūkulu ʻana i nā kaula maʻamau.
    • Ua ʻae ka hana Unicode.normalize i kēia manawa i ka huaʻōlelo charttransform, hiki ke hoʻohana ʻia no ka hāʻawi ʻana i nā palapala palapala maʻamau, a ua hāʻawi pū ʻia ka hana Unicode.julia_chartransform e hana hou i ka palapala ʻāina i hoʻohana ʻia i ka wā e hoʻohālikelike ai ka Julia parser i nā mea hōʻike.
  • hōʻike
    • Hiki ke hoʻohana '@test_throws "kekahi memo" triggers_error()' i kēia manawa e ho'āʻo ai inā loaʻa ka hewa "kekahi memo" i ka kikokikona i hōʻike ʻia, me ka nānā ʻole i ke ʻano ʻokoʻa. Kākoʻo ʻia nā ʻōlelo maʻamau, nā papa inoa aho, a me nā hana hoʻohālikelike.
    • @testset foo() hiki ke hoʻohana i kēia manawa no ka hana ʻana i hoʻonohonoho hoʻāʻo mai kahi hana i hāʻawi ʻia. ʻO ka inoa pahu hoʻāʻo ka inoa o ka hana i kāhea ʻia. Loaʻa i ka hana i kapa ʻia ʻo @test a me nā wehewehe ʻē aʻe @testset, me nā kelepona i nā hana ʻē aʻe, ʻoiai e hoʻopaʻa ana i nā hopena hoʻokolohua waena.
    • Hoʻokuʻu ʻia ʻo TestLogger a me LogRecord mai ka waihona hōʻike maʻamau.
  • Kahiia
    • Kākoʻo ʻo SSHManager i kēia manawa i nā kaula limahana me kahi wīwī csh/tcsh ma o ke ʻano addprocs() a me ka shell=:csh parameter.
  • Nā hoʻololi hou aʻe
    • Hiki ke hoʻohana iā GC.enable_logging(ʻoiaʻiʻo) e hoʻopaʻa inoa i kēlā me kēia hana ohi ʻōpala me ka manawa a me ka nui o ka hoʻomanaʻo i hōʻiliʻili ʻia.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka