Ede Eto Eto Julia 1.8 Tu silẹ

Itusilẹ ti ede siseto Julia 1.8 wa, apapọ iru awọn agbara bii iṣẹ ṣiṣe giga, atilẹyin fun titẹ agbara ati awọn irinṣẹ ti a ṣe sinu fun siseto afiwe. Sintasi Julia sunmo MATLAB, yiya diẹ ninu awọn eroja lati Ruby ati Lisp. Ọna ifọwọyi okun jẹ iranti ti Perl. Koodu ise agbese ti pin labẹ iwe-aṣẹ MIT.

Awọn ẹya pataki ti ede naa:

  • Išẹ giga: ọkan ninu awọn ibi-afẹde bọtini ti iṣẹ akanṣe ni lati ṣaṣeyọri iṣẹ ṣiṣe ti o sunmọ awọn eto C. Olupilẹṣẹ Julia da lori iṣẹ ti iṣẹ akanṣe LLVM ati ṣiṣe koodu ẹrọ abinibi daradara fun ọpọlọpọ awọn iru ẹrọ ibi-afẹde;
  • Ṣe atilẹyin fun ọpọlọpọ awọn ilana siseto, pẹlu awọn eroja ti ohun-iṣalaye ati siseto iṣẹ. Ile-ikawe boṣewa n pese, laarin awọn ohun miiran, awọn iṣẹ fun I/O asynchronous, iṣakoso ilana, gedu, profaili, ati iṣakoso package;
  • Titẹ ti o ni agbara: ede naa ko nilo itumọ ti o fojuhan ti awọn oriṣi fun awọn oniyipada, iru si awọn ede siseto kikọ. Ipo ibaraenisepo ni atilẹyin;
  • Agbara iyan lati pato awọn iru;
  • Apejuwe sintasi fun iṣiro nọmba, iṣiro imọ-jinlẹ, ẹkọ ẹrọ, ati iworan data. Atilẹyin fun ọpọlọpọ awọn oriṣi data nomba ati awọn irinṣẹ fun isọdọkan ti awọn iṣiro.
  • Agbara lati pe awọn iṣẹ taara lati awọn ile-ikawe C laisi awọn ipele afikun.

Awọn ayipada nla ni Julia 1.8:

  • Awọn ẹya ede titun
    • Awọn aaye ti ẹya iyipada le jẹ asọye ni bayi bi awọn iduro lati ṣe idiwọ wọn lati yipada ati gba iṣapeye laaye.
    • Iru awọn asọye le ṣe afikun si awọn oniyipada agbaye.
    • Ofo n-onisẹpo awọn akojọpọ le ṣee ṣẹda nipa lilo ọpọ semicolons inu awọn biraketi onigun mẹrin, fun apẹẹrẹ "[;;;]" ṣẹda akojọpọ 0x0x0.
    • Gbiyanju awọn bulọọki le ni yiyan ni bulọọki miiran, eyiti o ṣe lẹsẹkẹsẹ lẹhin ti ara akọkọ ti ko ba si awọn aṣiṣe ti o ju.
    • @inline ati @noinline ni a le gbe sinu ara iṣẹ kan, gbigba ọ laaye lati ṣe alaye iṣẹ ailorukọ kan.
    • @inline ati @noinline ni a le lo si iṣẹ kan ni aaye ipe kan tabi dina lati fi ipa mu awọn ipe iṣẹ ti o baamu lati wa pẹlu (tabi kii ṣe pẹlu).
    • ∀, ∃ ati ∄ ni a gba laaye bi awọn ohun kikọ idamọ.
    • Ṣe afikun atilẹyin fun Unicode 14.0.0 sipesifikesonu.
    • Ọna Module (: orukọ, eke, eke) le ṣee lo lati ṣẹda module ti ko ni awọn orukọ ninu, ko gbe wọle Base tabi Core, ati pe ko ni itọkasi si ararẹ.
  • Ayipada ninu ede
    • Awọn nkan iṣẹ-ṣiṣe tuntun ti a ṣẹda (@spawn, @async, ati bẹbẹ lọ) ni bayi ni world_age fun awọn ọna lati ọdọ Iṣẹ-ṣiṣe obi nigbati o ba ṣẹda, gbigba fun imudara iṣapeye. Aṣayan imuṣiṣẹ iṣaaju wa ni lilo ọna Base.invokelatest.
    • Awọn itọsọna ọna kika bidirectional ti ko ni iwọntunwọnsi Unicode ti ni idinamọ ni awọn gbolohun ọrọ ati awọn asọye lati yago fun awọn abẹrẹ.
    • Base.ifelse ti wa ni asọye bayi bi iṣẹ jeneriki kuku ju ti a ṣe sinu, gbigba awọn idii lati fa itumọ rẹ pọ si.
    • Gbogbo iṣẹ iyansilẹ si oniyipada agbaye ni akọkọ lọ nipasẹ ipe lati yipada (Eyikeyi, x) tabi iyipada (T, x) ti o ba jẹ pe oniyipada agbaye jẹ ti iru T. Ṣaaju lilo awọn oniyipada agbaye, rii daju pe iyipada ti ko yipada (Eyikeyi , x) === x nigbagbogbo jẹ otitọ, bibẹẹkọ o le ja si ihuwasi airotẹlẹ.
    • Awọn iṣẹ ti a ṣe sinu jẹ bayi iru si awọn iṣẹ jeneriki ati pe o le ṣe iṣiro eto ni lilo awọn ọna.
  • Awọn ilọsiwaju akopo / asiko isise
    • Akoko bata dinku nipasẹ isunmọ 25%.
    • Olupilẹṣẹ ti o da lori LLVM ti yapa kuro ninu ile-ikawe asiko asiko sinu ile-ikawe tuntun, libjulia-codegen. O ti kojọpọ nipasẹ aiyipada, nitorinaa ko yẹ ki o jẹ awọn ayipada lakoko lilo deede. Ninu awọn imuṣiṣẹ ti ko nilo alakojọ (fun apẹẹrẹ, awọn aworan eto ninu eyiti gbogbo koodu pataki ti ṣajọ tẹlẹ), ile-ikawe yii (ati igbẹkẹle LLVM rẹ) le jiroro ni yọkuro.
    • Itọkasi iru ipo ni bayi ṣee ṣe nipa gbigbe ariyanjiyan si ọna kan. Fun apẹẹrẹ, fun Base.ifelse (isa (x, Int), x, 0) pada :: Int paapaa ti iru x jẹ aimọ.
    • SROA (Rirọpo Scalar ti Awọn akojọpọ) ti ni ilọsiwaju: imukuro awọn ipe getfield pẹlu awọn aaye agbaye ti o tẹpẹlẹ, yọkuro awọn ẹya iyipada pẹlu awọn aaye ti ko ni ibẹrẹ, ṣe ilọsiwaju iṣẹ ati mimu awọn ipe getfield itẹwọgba kuro.
    • Iru inference tọpasẹ awọn ipa oriṣiriṣi — awọn ipa ẹgbẹ ati ti kii silẹ. Itankale igbagbogbo ni a ṣe akiyesi, eyiti o ṣe ilọsiwaju iṣẹ ṣiṣe-akoko ni pataki. Ni awọn igba miiran, fun apẹẹrẹ, awọn ipe si awọn iṣẹ ti ko le ṣe itọka ṣugbọn ti ko ni ipa lori abajade yoo jẹ asonu ni akoko ṣiṣe. Awọn ofin fun awọn ipa le jẹ kọ pẹlu ọwọ nipa lilo Base.@assume_effects macro.
    • Iṣaaju (pẹlu awọn itọsọna iṣapejọ ti o fojuhan tabi awọn iṣẹ ṣiṣe pàtó) ni bayi ṣafipamọ iru koodu asọye diẹ sii, ti o mu abajade ṣiṣe ni iyara akọkọ-akoko. Ọna tuntun eyikeyi / iru awọn akojọpọ ti o nilo nipasẹ package rẹ, laibikita ibiti wọn ti ṣalaye awọn ọna wọnyẹn, le jẹ cache ni bayi ninu faili iṣaju ti wọn ba pe nipasẹ ọna ti o jẹ ti package rẹ.
  • Awọn iyipada si Awọn aṣayan Laini aṣẹ
    • Ihuwasi aifọwọyi fun ṣiṣe abojuto awọn ikede @inbounds jẹ aṣayan adaṣe ni bayi ni "--check-bounds=bẹẹni|bẹẹẹkọ|afọwọṣe”.
    • Aṣayan tuntun "--strip-metadata" lati yọ awọn gbolohun ọrọ kuro, alaye ibi orisun, ati awọn orukọ oniyipada agbegbe nigba ṣiṣẹda aworan eto kan.
    • Aṣayan tuntun "--strip-ir" lati gba alakojo laaye lati yọ aṣoju koodu orisun agbedemeji nigba kikọ aworan eto naa. Aworan ti o jade yoo ṣiṣẹ nikan ti a ba lo "--compile=all" tabi ti gbogbo koodu ti a beere ba ti ṣajọ tẹlẹ.
    • Ti ohun kikọ "-" ba jẹ pato dipo orukọ faili, lẹhinna koodu ti o le ṣiṣẹ ni a ka lati inu ṣiṣan titẹ sii boṣewa.
  • Multithreading support ayipada
    • Threads.@threads nipa aiyipada nlo aṣayan eto eto tuntun:dynamic, eyiti o yatọ si ipo iṣaaju ni pe awọn iterations yoo wa ni iṣeto ni agbara laarin awọn okun oṣiṣẹ ti o wa dipo ki o pin si okun kọọkan. Ipo yii ngbanilaaye fun pinpin to dara julọ ti awọn iyipo itẹ-ẹiyẹ pẹlu @spawn ati @threads.
  • New ìkàwé awọn iṣẹ
    • kọọkansplit (str) lati ṣiṣẹ pipin (str) ni igba pupọ.
    • allequal (itr) lati ṣe idanwo boya gbogbo awọn eroja ti o wa ninu aṣetunṣe jẹ dogba.
    • hardlink(src, dst) le ṣee lo lati ṣẹda awọn ọna asopọ lile.
    • setcpuaffinity (cmd, cpus) lati ṣeto ijora ti ero isise si awọn ilana ifilọlẹ.
    • diskstat(ona=pwd()) lati gba awọn iṣiro disk.
    • New @showtime Makiro lati ṣafihan laini ti n ṣe iṣiro mejeeji ati ijabọ akoko @time.
    • LazyString ati lazy"str" ​​Makiro ni a ti ṣafikun lati ṣe atilẹyin ikole ọlẹ ti awọn ifiranṣẹ aṣiṣe ni awọn ọna aṣiṣe.
    • Ti o wa titi a concurrency oro ni Dict ati awọn miiran ti ari ohun bi awọn bọtini (:: Dict), iye (:: Dict) ati Ṣeto. Awọn ọna aṣetunṣe le ni bayi pe lori iwe-itumọ tabi ṣeto, niwọn igba ti ko si awọn ipe ti o ṣe atunṣe iwe-itumọ tabi ṣeto.
    • @time ati @timev ni bayi ni apejuwe yiyan, gbigba ọ laaye lati ṣe alaye orisun ti awọn ijabọ akoko, fun apẹẹrẹ. @time "Ayẹwo foo" foo ().
    • ibiti o gba boya idaduro tabi ipari bi ariyanjiyan koko nikan rẹ.
    • konge ati setprecision bayi gba mimọ bi a Koko
    • Awọn nkan iho TCP bayi pese ọna kikọ silẹ ati atilẹyin lilo ipo ṣiṣi idaji.
    • extrema bayi gba ohun init ariyanjiyan.
    • Iterators.countfrom bayi gba eyikeyi iru ti o asọye a + ọna.
    • @time bayi pin % ti akoko ti o lo awọn ọna atunkopọ pẹlu awọn oriṣi ti o yipada.
  • Standard Library Ayipada
    • Awọn bọtini pẹlu iye Ko si ohun ti wa ni bayi kuro lati awọn ayika ni addenv.
    • Iterators.reverse (ati nitorina kẹhin) ṣe atilẹyin laini kọọkan.
    • Iṣẹ ipari fun awọn sakani ti awọn iru kan ko ṣe ṣayẹwo fun ṣiṣan odidi mọ. Iṣẹ tuntun kan, checked_length, wa; o ni ọgbọn iṣakoso gbigbe bit ninu. Ti o ba jẹ dandan, lo SaferIntegers.jl lati kọ iru ibiti o wa.
    • The Iterators.Reverse iterator ṣe iyipada atọka kọọkan ti o ba ṣeeṣe.
  • Package Manager
    • Tuntun ⌃ ati awọn itọkasi ⌅ lẹgbẹẹ awọn idii ni ipo “pkg>” eyiti awọn ẹya tuntun wa. ⌅ tọka pe awọn ẹya tuntun ko le fi sii.
    • Ti igba atijọ :: ariyanjiyan Bool si Pkg.status (--igba atijọ tabi -o ni ipo REPL) lati ṣafihan alaye nipa awọn akojọpọ lati awọn ẹya ti tẹlẹ.
    • Kompat tuntun :: ariyanjiyan Bool si Pkg.status (--compat tabi -c ni ipo REPL) lati ṣafihan eyikeyi awọn titẹ sii [compat] ni Project.toml.
    • Ipo tuntun "pkg>compat" (ati Pkg.compat) fun tito awọn titẹ sii ibamu iṣẹ akanṣe. Pese olootu ibaraenisepo nipasẹ “pkg>compat” tabi iṣakoso igbasilẹ taara nipasẹ “pkg>Foo 0.4,0.5”, eyiti o le gbe awọn igbasilẹ lọwọlọwọ nipasẹ ipari taabu. Iyẹn ni, "pkg> compat Fo" jẹ imudojuiwọn laifọwọyi si "pkg> Foo 0.4,0.5" ki titẹ sii ti o wa tẹlẹ le ṣe atunṣe.
    • Pkg ni bayi gbiyanju lati ṣe igbasilẹ awọn idii lati ọdọ olupin package ti olupin ba n ṣe abojuto iforukọsilẹ ti o ni package ninu.
    • Pkg.instantiate yoo funni ni ikilọ kan nigbati Project.toml ko ni amuṣiṣẹpọ pẹlu Manifest.toml. O ṣe eyi ti o da lori elile ti awọn deps ise agbese ati awọn igbasilẹ compat (awọn aaye miiran ti wa ni aibikita) ni ifarahan nigbati o ba yanju rẹ, ki iyipada eyikeyi si Project.toml deps tabi awọn igbasilẹ compat le ṣee wa-ri laisi tun-ipinnu.
    • Ti “pkg>fikun” ko ba le rii package kan pẹlu orukọ ti a fun, yoo daba awọn idii pẹlu awọn orukọ ti o jọra ti o le ṣafikun.
    • Ẹya ti julia ti a fipamọ sinu iṣafihan ko pẹlu nọmba kikọ mọ, afipamo pe oluwa yoo kọ bi 1.9.0-DEV.
    • Idanwo iṣẹyun “pkg>” ni yoo rii ni deede diẹ sii, ati pe yoo da pada ni deede si REPL.
  • InteractiveUtils
    • Tuntun @time_imports Makiro lati jabo akoko ti o lo awọn akopọ gbigbe wọle ati awọn igbẹkẹle wọn, ti n ṣe afihan iṣakojọpọ ati akoko iṣakojọpọ bi ipin ogorun awọn agbewọle lati ilu okeere.
  • Aljebra laini
    • Submodule BLAS ni bayi ṣe atilẹyin awọn iṣẹ ipele-2 BLAS spr!
    • Ile-ikawe boṣewa LinearAlgebra.jl ti ni ominira patapata ti SparseArrays.jl, mejeeji lati koodu orisun ati irisi idanwo ẹyọkan. Nitoribẹẹ, awọn akojọpọ fọnka ko ni dapadabọ mọ (nitọtọ) nipasẹ awọn ọna lati LinearAlgebra ti a lo si awọn ohun elo Base tabi LinearAlgebra. Ni pato, eyi yori si awọn iyipada fifọ wọnyi:
      • Concatenations ni lilo awọn matiri "fiwọn" pataki (fun apẹẹrẹ diagonal) ni bayi da awọn matiri ipon pada; Bi abajade, awọn aaye D1 ati D2 ti awọn nkan SVD ti a ṣẹda nipasẹ awọn ipe ohun-ini jẹ bayi awọn matiri ipon.
      • Iru (:: SpecialSparseMatrix, :: Iru, :: Dims) ọna pada a ipon asan matrix. Bi abajade, awọn ọja ti meji-, mẹta-, ati awọn matrices tridiagonal asymmetric pẹlu ara wọn yori si iran ti matrix ipon. Ni afikun, ṣiṣe awọn matiri ti o jọra pẹlu awọn ariyanjiyan mẹta lati awọn matiri “fiwọn” pataki lati awọn matiriki (ti kii ṣe aimi) kuna ni bayi nitori “odo(:: Iru {Matrix{T}})”.
  • Printf
    • %s ati %c lo ariyanjiyan ọrọ-ọrọ lati ṣe ọna kika iwọn.
  • Profaili
    • Profaili fifuye Sipiyu ni bayi ṣe igbasilẹ metadata pẹlu awọn okun ati awọn iṣẹ ṣiṣe. Profile.print () ni ariyanjiyan ẹgbẹ tuntun ti o fun ọ laaye lati ṣe akojọpọ awọn okun, awọn iṣẹ-ṣiṣe tabi awọn abẹlẹ / awọn iṣẹ-ṣiṣe, awọn iṣẹ-ṣiṣe / awọn okun, ati awọn okun ati awọn ariyanjiyan iṣẹ lati pese sisẹ. Ni afikun, ipin-iṣamulo ni a royin ni bayi boya gẹgẹbi apapọ tabi fun o tẹle ara, da lori boya o tẹle ara ko ṣiṣẹ tabi kii ṣe ninu ayẹwo kọọkan. Profile.fetch() pẹlu metadata tuntun nipasẹ aiyipada. Fun ibamu sẹhin pẹlu awọn onibara ita ti data profaili, o le yọkuro nipa gbigbe pẹlu_meta=eke.
    • Awọn titun Profile.Allocs module faye gba o lati profaili iranti ipin. Atọpa akopọ ti iru ati iwọn ti ipin iranti kọọkan ti wa ni igbasilẹ, ati ariyanjiyan sample_rate ngbanilaaye nọmba atunto ti awọn ipin lati fo, dinku iṣẹ ṣiṣe.
    • Profaili Sipiyu ti o wa titi le jẹ ṣiṣe nipasẹ olumulo lakoko awọn iṣẹ ṣiṣe laisi ikojọpọ profaili akọkọ, ati pe ijabọ naa yoo han lakoko ṣiṣe. Lori MacOS ati FreeBSD, tẹ ctrl-t tabi pe SIGINFO. Fun awọn iru ẹrọ miiran, mu SIGUSR1 ṣiṣẹ, i.e. % pa -USR1 $ julia_pid. Eyi ko si lori Windows.
  • Sọ
    • RadioMenu ni bayi ṣe atilẹyin afikun awọn ọna abuja keyboard fun yiyan taara awọn aṣayan.
    • Ọkọọkan "?(x, y" atẹle nipa titẹ TAB ṣe afihan gbogbo awọn ọna ti o le pe pẹlu awọn ariyanjiyan x, y, .... (Aaye asiwaju kan ṣe idiwọ fun ọ lati titẹ si ipo iranlọwọ.) "MyModule. y" ni ihamọ wiwa si "MyModule" Titẹ TAB nilo pe o kere ju ariyanjiyan kan jẹ iru kan pato ju Eyikeyi lọ. Tabi lo SHIFT-TAB dipo TAB lati gba awọn ọna ibaramu eyikeyi laaye.
    • Aṣiṣe oniyipada agbaye tuntun gba ọ laaye lati gba imukuro tuntun, iru si ihuwasi ti ans pẹlu idahun to kẹhin. Titẹ awọn aṣiṣe tẹjade alaye imukuro.
  • SparseArrays
    • Ti gbe koodu SparseArrays lati ibi ipamọ Julia si ibi ipamọ SparseArrays.jl ita.
    • Awọn iṣẹ iṣipopada tuntun sparse_hcat, sparse_vcat, ati sparse_hvcat da pada iru SparseMatrixCSC kan laibikita iru awọn ariyanjiyan igbewọle. Eyi di dandan lati ṣọkan ẹrọ fun gluing matrices lẹhin yiya sọtọ LinearAlgebra.jl ati koodu SparseArrays.jl.
  • gedu
    • Awọn ipele gedu boṣewa ni isalẹMinLevel, yokokoro, Alaye, Kilọ, Aṣiṣe ati AboveMaxLevel ti wa ni okeere ni bayi lati ile-ikawe Logging boṣewa.
  • Unicode
    • Ṣafikun isequal_normalized iṣẹ lati ṣayẹwo fun ibaramu Unicode laisi kọ awọn gbolohun ọrọ deede.
    • Iṣẹ Unicode.normalize ni bayi gba koko-ọrọ charttransform, eyiti o le ṣee lo lati pese awọn maapu ihuwasi aṣa, ati pe iṣẹ Unicode.julia_chartransform tun pese lati ṣe ẹda aworan agbaye ti a lo nigbati Julia parser ṣe deede awọn idamọ.
  • igbeyewo
    • '@test_throws "diẹ ninu ifiranṣẹ" triggers_error()' le ṣee lo lati ṣe idanwo boya ọrọ aṣiṣe ti o han ni aṣiṣe "diẹ ninu ifiranṣẹ" kan, laibikita iru iyasọtọ pato. Awọn ikosile deede, awọn atokọ okun, ati awọn iṣẹ ibaramu tun ni atilẹyin.
    • @testset foo() le ṣee lo lati ṣẹda eto idanwo lati iṣẹ ti a fun. Orukọ ọran idanwo ni orukọ iṣẹ ti a n pe. Iṣẹ ti a pe le ni @test ati awọn asọye @testset miiran, pẹlu fun awọn ipe si awọn iṣẹ miiran, lakoko gbigbasilẹ gbogbo awọn abajade idanwo agbedemeji.
    • TestLogger ati LogRecord ti wa ni okeere bayi lati ile-ikawe Idanwo boṣewa.
  • Pinpin
    • SSHManager ni bayi ṣe atilẹyin awọn okun oṣiṣẹ pẹlu csh/tcsh wrapper nipasẹ ọna addprocs () ati ikarahun = paramita csh.
  • Awọn iyipada miiran
    • GC.enable_logging (otitọ) le ṣee lo lati wọle si iṣẹ ikojọpọ idoti kọọkan pẹlu akoko ati iye iranti ti a gba.

orisun: opennet.ru

Fi ọrọìwòye kun