Dimittis de lingua Iulia 1.8 programmandi

Iuliae 1.8 linguae programmandi emissio praesto est, coniungendo qualitatibus praestantissimis faciendis, subsidia dynamica typing et constructa in instrumentis ad programmationem parallelam. Syntaxis Iuliae prope MATLAB est, quaedam elementa mutuata a Ruby et Lisp. Flexio chordae methodus simile Perl. In codice exertus licentia MIT distribuitur.

Clavis lineamentorum linguae:

  • Princeps effectus: una clavis proposita consilii est ad perficiendum proxima ad C programmata. Iulia compilator ex opere LLVM innixus est et efficax generat codicem machinae indigenae per multas suggestas target;
  • Varia programmandi paradigmata adiuvat, inclusa elementa programmationis obiecti ordinatis et functionis. Vexillum bibliothecae praebet, inter alia, munera pro asynchrono I/O, processum imperium, logging, profiling, ac sarcina procuratio;
  • Typing dynamica: lingua expressam definitionem typorum variabilium non requirit, similis programmandi linguarum scriptioni. Modus Lingva sustentatur;
  • Facultas ad libitum genera expresse specificare;
  • Syntaxis idealis computandi numerandi, computandi scientifici, discendi apparatus, et datae visualizationis. Suscipe plures notitias numerorum rationes et instrumenta parallelisationi calculi.
  • Facultas directe vocare functiones a C bibliothecas sine stratis adiectis.

Maiores mutationes in Iulia 1.8;

  • Nova lingua features
    • Agri structi mutabilis nunc pro constantibus annotare possunt, ne mutentur et optimizationi permittant.
    • Typus annotationes ad variabiles globales addi possunt.
    • Vestimenta vacua n-dimensionalia creari possunt utens multiplex semicolons intra uncis quadratis, exempli gratia "[;;;]" aciem 0x0x0 creat.
    • Conare caudices nunc optione alium scandalum habere possunt, quod statim post agmen afficitur, si sine erroribus eiecti sunt.
    • @inline and @noinline collocari possunt intra functionem corporis, sino te munus anonymi annotate.
    • @inline et @noinline nunc applicari possunt ad functionem in vocatione situs vel scandalum ut munus munus vocatum includi cogat (vel non comprehendatur).
    • , et licet ut identifier ingenia.
    • Addidit subsidium Unicode 14.0.0 specificatio.
    • Modulus (:nomen, falsum, falsum) methodus adhiberi potest ad modulum creandum qui nomina non continet, basem vel Core non importat neque ad se relationem continet.
  • Mutationes in lingua
    • Negotium obiecti nuper creatum (@spawn, @async, etc.) nunc agedum pro modos a parente Negotium creatum habebis, ad ipsum executionem permittens. Optio prior activation in Base.invokelatest methodo utens praesto est.
    • Unicode non libratae normae bidirectionis formativae nunc prohibentur in chordis et commentationibus ad injectiones vitandas.
    • Base.ifelse munus generale magis quam constructum nunc definitur, permittens sarcinas definitionem suam extendere.
    • Omnis assignationis variabilis globali nunc primum percurrit vocatio ad convertendum (Quilibet, x) vel convertendum (T, x) si variabilis globalis species declarata est T. Priusquam variabiles globales utantur, ut invarians conversio (Qualibet) , x) === x semper verum est, secus ad mores inopinatos ducere potest.
    • Muneribus inaedificata nunc generum functionibus similes sunt et programmatice modos utentes enumerari possunt.
  • Compiler / runtime improvements
    • Tabernus tempus minuitur circiter 25%.
    • LLVM-fundatur compilator a bibliotheca runtime in novam bibliothecam, libjulia-codegen separata est. Per defaltam oneratur, ut nullae sint mutationes in usu consueto. In inceptis quae compilator non egent (exempli gratia imaginum ratio in quibus omnia necessaria codicem praecipiuntur), haec bibliotheca (et eius LLVM dependentia) simpliciter omitti potest.
    • Con- ditio conditionalis nunc fieri potest ut argumentationem pro methodo transeamus. Exempli gratia, pro Base.ifelse(isa(x, Int), x, 0) redit ::Int etsi genus x ignotum est.
    • SROA (SCALAR Substitutio aggregatorum) emendatus est: tollet getfield vocat cum assiduis globalibus agris, mutabiles structuras cum campis inextinctis removet, ac perficiendum emendat et tractandum vocat Getfeild nidificatum.
    • Consequentia typus effectus varios effectus ingreditur, latus effectus et non omissis. Constans propagatio in ratione habita est, quae insigniter melioris temporis observantiam componit. In quibusdam casibus, exempli gratia, vocat ad functiones quae inclinari non possunt, sed non tangunt eventum in runtime secerni. Regulae effectuum possunt manually overscripta uti in Base.@assume_effectus macro.
    • Praecompilatio (cum praescriptionibus expressis praescriptionibus vel oneribus specificatis) nunc magis servat codicem typo definitum, inde in velociore primi temporis executione. Quaevis nova methodus / genus iuncturae per sarcinam tuam necessariam, cuiuscumque modi definitae sunt, nunc in praecompilatione fasciculi conditivo, si per methodum sarcinae tuae dicantur.
  • Mutationes Imperii linea Options
    • Defectus agendi ad declarationes vigilantiae @inbounds nunc optio autocinetorum est in "-reprehendo limites=yes|no|auto".
    • Nova "--strip-metadata" optio ad tollendas doctrinas, fontem locationis informationes et locorum variabilium nomina cum imaginem systematis creantis.
    • Nova optio "--strip-ir" permittit ut compilator ut medium fontem codicem repraesentationis removeat cum systematis imaginem aedificat. Imago consequens tantum laborabit si "--compile=all" adhibetur vel si omnia codice inquisita pre-compilaverunt.
    • Si character "-" loco nominis tabellae specificatur, tunc codice exsecutabile legitur e norma initus amnis.
  • Multithreading auxilium mutationes
    • Threads.@ Stamina per default utitur optione nova scheduling: dynamica, quae a priori modo differt in eo quod iterationes dynamice cedentur per stamina prompta opificum potius quam singulis stamina assignata. Hic modus permittit ut melius distributio loramenta ansarum nidificantium cum @spawn et @threads.
  • Nova bibliotheca munera
    • eachsplit(sp) exsequi split(sp) multipliciter.
    • allequal(itr) probare utrum omnia elementa in iteratore sint aequalia.
    • hardlink(src, dst) difficiles nexus creare potest.
    • setcpuaffinity (cmd, cpus) constituere affinitatem nuclei processus processui immissi.
    • diskstat(path=pwd()) ut orbis mutant.
    • Novus @showtime tortor ut ostenderet utramque lineam aestimatam esse et famam temporis.
    • LazyString et piger "str" ​​tortor additae sunt ad confirmandas otiosos nuntios in errore semitarum constructionem.
    • Certa concursus exitus in Dict et aliis obiectis derivatis ut claves (::Dict), valores(::Dict) et Set. Modi iterationis nunc vocari possunt in dictionario vel pone, dummodo nullae sint vocationes quae dictionarium modificant vel pone.
    • @time et @timev nunc descriptionem libitum habent, sino te fons temporis recitationis annotare, exempli gratia. @time "foo" foo ().
    • range accipit vel finem vel longitudinem ut solum eius keyword argumentum.
    • nunc suscipe subtilitatem et setprecisionem basi quasi keyword "
    • TCP obiecti nervum nunc arctissimum modum scribentis praebent et usum modi mediae aperti sustinent.
    • exlrema nunc argumentum init accipit.
    • Iteratores.count from nunc accipit quodlibet genus quod modum + definit.
    • @time nunc allatat% temporis confecti methodos componendi cum rationibus mutatis.
  • Standard Library Mutationes
    • Claves cum valore Nihil nunc remotum est ab ambitu in addenv.
    • Iteratores.reverse (and therefore last) supports eachline.
    • Longitudo functionis pro iugis quarundam generum non amplius impedit pro integris redundantia. Novum munus, checked_length, is available, continet rationem translationis dicionis logicae. Si opus est, utere SaferIntegers.jl ad genus teli construendum.
    • Iteratores. Reverse iterator instrumenti cuiusque index conversionis si fieri potest.
  • Package Manager
    • Novus et indicibus iuxta fasciculis in "pkg>" status pro quo novae versiones in promptu sunt. βŒ… indicat novas versiones institui non posse.
    • Novum outdated::Bool argumentum ad Pkg.status (-outdated vel -o in REPL modus) ut informationes de fasciculis e prioribus versionibus ostenderet.
    • Novum compat::Bool argumentum ad Pkg.status (--compat or -c in REPL modus) ut quis ostendat entries in Project.toml.
    • Novus "pkg>compat" (et Pkg.compat) modus constituendi project convenientiae viscus. Editor interactivum praebet per "pkg>compat" vel imperium directum per "pkg>Foo 0.4,0.5", quod onerare potest recentissimas tabulas per complementum. Id est "pkg> compat Fo" automatice ad "pkg> Foo 0.4,0.5" renovatur ut viscus exsistens edi possit.
    • Pkg nunc tantum tentat sarcinas ex instrumento sarcinario extrahere si minister vigilantia subcriptio in quo sarcina est.
    • Pkg.instantiate nunc commonitionem dabit cum Project.toml e sync cum Manifest.toml. Hoc facit in innixum de vestigationibus et monumentis (ceteris agri neglectis) in manifestis solvendis, ut quaevis mutatio in Project.toml deps vel compat monumenta sine re-solvente detegi possit.
    • Si "pkg>addere" sarcinam nomine posito invenire non potest, nunc fasciculos suggeret cum similibus nominibus quae addi possunt.
    • Versio Iuliae in manifesta reposita non amplius numerum aedificationis includit, dominus significatus nunc scribetur ut 1.9.0-DEV.
    • Test abort "pkg>" nunc constantius deprehendetur, et in REPL recte reddetur.
  • InteractiveUtils
    • Novus @time_importat tortor nuntiare tempus inferentes sarcinas et eorum clientelas, quatenus componunt et componunt tempus sicut recipis importat.
  • Algebra linearis
    • BLAS submodule nunc gradum sustinet 2 BLAS spr!nera.
    • Bibliotheca LinearAlgebra.jl nunc omnino independenter a SparseArrays.jl, tam a codice fonte quam perspectiva probatio unitatis. Quam ob rem vestitus sparsi non amplius redduntur (implicite) methodis a LinearAlgebra applicatis ad objecta Base vel LinearAlgebra. Praesertim hoc ducit ad sequentes mutationes fractionis;
      • Concatenationes utentes speciales matrices "sparsas" (eg diagonales) nunc densas matrices reddunt; Consequenter, D1 et D2 agros SVD res creatas per getproprietatem vocat matrices densae nunc sunt.
      • Similis(::SpecialSparseMatrix, ::Typus, ::Dims) methodus densam matricem nullam reddit. Ac per consequens producti matrices tridiagonales duplices, tria et symmetriae inter se ducunt ad generationem matricis densae. Accedit similes matrices construere cum tribus argumentis a matricibus specialibus "sparsis" a matricibus (non-static) nunc ob "nullam(::Type{Matrix{T}})".
  • Printf
    • %s et %c nunc utimur argumento textus longitudinis ad latitudinem format.
  • Profile
    • CPU onus profilingorum nunc metadata in staminibus et operibus commemorat. Profile.print() Novum groupby argumentum habet quod permittit te ut fila, munia vel subthreads/officia, munia/stamina, ac fila et munerum rationes ad eliquationem praebeant. Accedit, recipis usus nunc relatum est vel altiore vel per fila, prout linum otiosum est vel non in unoquoque exemplo. Profile.fetch() nova metadata per defaltam includit. Nam convenientia retrorsum cum externa usorum profilingarum notitiarum, transendo include_meta=falsa excludi potest.
    • Novus Profile.Allocs modulus permittit ut prouinciis memoriam profile. BIBLIOTHECA vestigium speciei et amplitudinis cuiusque destinationis memoriae memoratur, et argumentum specimen_ratei permittit numerus configurabilis prouinciis praetermittendus, effectus supra caput reducens.
    • Duratio certa CPU profiling nunc ab utente currere potest dum opera currunt sine prima profile oneratisque, et fama dum currit ostendetur. MacOS et FreeBSD, premere accidit vel vocare SIGINFO. For other platforms, activate SIGUSR1, i.e. % occidere -USR1 $julia_pid. Hoc in Fenestra praesto non est.
  • REPL
    • RadioMenu nunc additamenta claviaturae claviaturae sustinet ad electionem directam optionum.
    • Sequentia "?(x, y" premens TAB exhibet omnes modos, qui vocari possunt cum argumentis x, y, .... (Atium ducens impedit modum auxilium ingrediendi.) "MyModule.?(x; y "Inquisitionem ad "MyModule" restringit. Pressio TAB postulat ut unum saltem argumentum speciei subtilius sit quam quodvis. Vel TRANSMUTO TAB loco TAB utere ut modos quosvis compatibiles.
    • Novus error variabilis globalis te permittit ut novissimam exceptionem, moribus similem cum ultima responsione, recipias. Errantes reprints exceptione notitia.
  • SparseArrays
    • Repositorium externum movit SparseArrays e Iulia SparseArrays.jl repositorium.
    • Novae concatenationis functiones sparse_hcat, sparse_vcat, et sparse_hvcat reddit genus SparseMatrixCSC cujuscumque rationes inputationis argumentorum. Hoc necessarium factum est ut mechanismum ad conglutinationem vulvis coalescere, postquam LinearAlgebra.jl et SparseArrays.jl codicem separarunt.
  • logging
    • Vexillum logging campester InfraMinLevel, Debug, Info, Mone, Error et AboveMaxLevel nunc ex norma Logging bibliothecae exportantur.
  • forms
    • Munus isequal_normalised additur ad reprimendam aequivalentiam Unicode sine chordis normalizatis expresse construendis.
    • Munus Unicode.normalize nunc accipit charttransformes keyword, quod ad consuetudinem consuetudinis mappings adhiberi potest, et munus Unicode.Iulia_chartransformatio etiam praebetur ad usus tabularum effingere cum Iulia parser identificatores normalizet.
  • Test
    • "@test_throws "alicuius nuntius" triggers_error() nunc probare potest utrum error ostensus textus contineat errorem "aliquem nuntium", cuiuscumque generis exceptionis specificae. Regulares locutiones, chordae, ac functiones adaptationes sustentantur.
    • @testset foo() nunc adhiberi potest ad testam ex data functione creandam. Expertus casus est nomen muneris nomine appellabatur. Munus vocatum potest @test et alias definitiones @testset continere, inclusas pro vocationibus ad alia munera, omnes eventus testium intermedios notare.
    • TestLogger et LogRecord nunc exportantur e bibliotheca vexillum Test.
  • distribui
    • SSHManager nunc adiutorium stamina cum csh/tcsh involucro per modum addprocs() sustinet et concha=:csh parametrum.
  • Aliae mutationes
    • GC.enable_logging(verum) adhiberi potest ad singula purgamenta collectionis operandi cum tempore et quantitate collectae memoriae.

Source: opennet.ru