What's new in this version: New language features: - (; a, b) = x can now be used to destructure properties a and b of x. This syntax is equivalent to a = getproperty(x, :a); b = getproperty(x, :b) - Implicit multiplication by juxtaposition is now allowed for radical symbols (e.g. x√y and x∛y) - The short-circuiting operators && and || can now be dotted to participate in broadcast fusion as .&& and .|| - ⫪ (U+2AEA, Top, downvDash) and ⫫ (U+2AEB, Bot, upvDash, indep) may now be used as binary operators with comparison precedence - Repeated semicolons can now be used inside array concatenation expressions to separate dimensions of an array, with the number of semicolons specifying the dimension. Just as a single semicolon in [A; B] has always described concatenating in the first dimension (vertically), now two semicolons [A;; B] do so in the second dimension (horizontally), three semicolons ;;; in the third, and so on - A backslash () before a newline inside a string literal now removes the newline while also respecting indentation. This can be used to split up long strings without newlines into multiple lines of code - A backslash before a newline in command literals now always removes the newline, similar to standard string literals, whereas the result was not well-defined before
Language changes: - macroexpand, @macroexpand, and @macroexpand1 no longer wrap errors in a LoadError. To reduce breakage, @test_throws has been modified so that many affected tests will still pass - The middle dot · (cdotp U+00b7) and the Greek interpunct · (U+0387) are now treated as equivalent to the dot operator ⋅ (cdot U+22c5) - The minus sign − (minus U+2212) is now treated as equivalent to the hyphen-minus sign - (U+002d) - Destructuring will no longer mutate values on the left-hand side while iterating through values on the right-hand side. In the example of an array x, x[2], x[1] = x will now swap the first and second elements of x, whereas it used to fill both entries with x[1] because x[2] was mutated during the iteration of x - The default random number generator has changed, so all random numbers will be different (even with the same seed) unless an explicit RNG object is used. See the section on the Random standard library below - Iterators.peel(itr) now returns nothing when itr is empty instead of throwing a BoundsError - Multiple successive semicolons in an array expresion were previously ignored (e.g., [1 ;; 2] == [1 ; 2]). This syntax is now used to separate dimensions (see New language features).
Compiler/Runtime improvements: Command-line option changes: - The Julia --project option and the JULIA_PROJECT environment variable now support selecting shared environments like .julia/environments/myenv the same way the package management console does: use julia [email protected] resp. export JULIA_PROJECT="@myenv" - Multi-threading changes: - Intrinsics for atomic pointer operations are now defined for certain byte sizes - Support for declaring and using individual fields of a mutable struct as atomic has been added; see the new @atomic macro - If the JULIA_NUM_THREADS environment variable is set to auto, then the number of threads will be set to the number of CPU threads - Every Task object has a local random number generator state, providing reproducible (schedule-independent) execution of parallel simulation code by default. The default generator is also significantly faster in parallel than in previous versions - Tasks can now migrate among threads when they are re-scheduled. Previously, a Task would always run on whichever thread executed it first
Build system changes: New library functions: - Two argument methods findmax(f, domain), argmax(f, domain) and the corresponding min versions - isunordered(x) returns true if x is a value that is normally unordered, such as NaN or missing - New keepat!(vector, inds) function which is the inplace equivalent of vector[inds] for a list inds of integers - Two arguments method lock(f, lck) now accepts a Channel as the second argument - New functor Returns(value), which returns value for any arguments - New macros @something and @coalesce which are short-circuiting versions of something and coalesce, respectively - New function redirect_stdio for redirecting stdin, stdout and stderr - New macro [email protected] f(arg1::T1, arg2::T2; kwargs...) provides an easier syntax to call invoke(f, Tuple{T1,T2}, arg1, arg2; kwargs...) - New macro [email protected] f(args...; kwargs...) providing a convenient way to call Base.invokelatest(f, args...; kwargs...)
New library features: - The optional keyword argument context of sprint can now be set to a tuple of :key => value pairs to specify multiple attributes - bytes2hex and hex2bytes are no longer limited to arguments of type Union{String,AbstractVector{UInt8}} and now only require that they're iterable and have a length - stat(file) now has a more detailed and user-friendly show method
Standard library changes: - count and findall now accept an AbstractChar argument to search for a character in a string - New methods range(start, stop) and range(start, stop, length) - range now supports start as an optional keyword argument - Some operations on ranges will return a StepRangeLen instead of a StepRange, to allow the resulting step to be zero. Previously, λ .* (1:9) gave an error when λ = 0 - islowercase and isuppercase are now compliant with the Unicode lower/uppercase categories - iseven and isodd functions now support non-Integer numeric types - escape_string now accepts a collection of characters via the keyword keep that are to be kept as they are - getindex for NamedTuples now accepts a tuple of symbols in order to index multiple values - Subtypes of AbstractRange now correctly follow the general array indexing behavior when indexed by Bools, erroring for scalar Bools and treating arrays (including ranges) of Bool as logical indices - keys(::RegexMatch) is now defined to return the capture's keys, by name if named, or by index if not - keys(::Generator) is now defined to return the iterator's keys - RegexMatch is now iterable, giving the captured substrings - lpad/rpad are now defined in terms of textwidth - [email protected] now accepts broken and skip boolean keyword arguments, which mimic [email protected]_broken and [email protected]_skip behavior, but allows skipping tests failing only under certain conditions. - @lock is now exported from Base - The experimental function Base.catch_stack() has been renamed to current_exceptions(), exported from Base and given a more specific return type - Some degree trigonometric functions, sind, cosd, tand, asind, acosd, asecd, acscd, acotd, atand now accept a square matrix - replace(::String) now accepts multiple patterns, which will be applied left-to-right simultaneously, so only one pattern will be applied to any character, and the patterns will only be applied to the input text, not the replacements - New replace methods to replace elements of a Tuple
Package Manager: - If a package is using or imported from the julia> prompt that isn't found but is available from a registry, a pkg> add prompt now offers to install the package into the current environment, precompile it, and continue to load it - A new Manifest.toml format is now used that captures extensible metadata fields, including the julia version that generated the manifest. Old format manifests are still supported and will be maintained in their original format, unless the user runs Pkg.upgrade_manifest() to upgrade the format of the current environment's manifest without re-resolving - pkg> precompile will now precompile new versions of packages that are already loaded, rather than postponing to the next session (the ?-marked dependencies) - pkg> rm, pin, and free now accept the --all argument to call the action on all packages. - Registries downloaded from the Pkg Server (not git) are no longer uncompressed into files but instead read directly from the compressed tarball into memory. This improves performance on filesystems which do not handle a large number of files well. To turn this feature off, set the environment variable JULIA_PKG_UNPACK_REGISTRY=true. - It is now possible to use an external git executable instead of the default libgit2 library for the downloads that happen via the Git protocol by setting the environment variable JULIA_PKG_USE_CLI_GIT=true. - Registries downloaded from the Pkg Server (not git) is now assumed to be immutable. Manual changes to their files might not be picked up by a running Pkg session. - Adding packages by directory name in the REPL mode now requires prepending ./ to the name if the package is in the current directory; e.g. add ./Package is required instead of add Package. This is to avoid confusion between the package name Package and the local directory Package. - The mode keyword for PackageSpec has been removed
LinearAlgebra: - Use Libblastrampoline to pick a BLAS and LAPACK at runtime. By default it forwards to OpenBLAS in the Julia distribution. The forwarding mechanism can be used by packages to replace the BLAS and LAPACK with user preferences - On aarch64, OpenBLAS now uses an ILP64 BLAS like all other 64-bit platforms - OpenBLAS is updated to 0.3.13 - SuiteSparse is updated to 5.8.1 - The shape of an UpperHessenberg matrix is preserved under certain arithmetic operations, e.g. when multiplying or dividing by an UpperTriangular matrix - Real quasitriangular Schur factorizations S can now be efficiently converted to complex upper-triangular form with Schur{Complex}(S) - cis(A) now supports matrix arguments - dot now supports UniformScaling with AbstractMatrix - qr[!] and lu[!] now support LinearAlgebra.PivotingStrategy (singleton type) values as their optional pivot argument: defaults are qr(A, NoPivot()) (vs. qr(A, ColumnNorm()) for pivoting) and lu(A, RowMaximum()) (vs. lu(A, NoPivot()) without pivoting); the former Val{true/false}-based calls are deprecated - det(M::AbstractMatrix{BigInt}) now calls det_bareiss(M), which uses the Bareiss algorithm to calculate precise values
Markdown: Printf: Random: - The default random number generator has been changed from Mersenne Twister to Xoshiro256++. The new generator has smaller state, better performance, and superior statistical properties. This generator is the one used for reproducible Task-local randomness - REPL: - Long strings are now elided using the syntax "head" ⋯ 12345 bytes ⋯ "tail" when displayed in the REPL - Pasting repl examples into the repl (prompt pasting) now supports all repl modes (julia, pkg, shell, help?) and switches mode automatically - help?> for modules without docstrings now returns a list of exported names and prints the contents of an associated README.md if found
SparseArrays: - new sizehint!(::SparseMatrixCSC, ::Integer) method - cholesky() now fully preserves the user-specified permutation - issparse now applies consistently to all wrapper arrays, including nested, by checking issparse on the wrapped parent array
Dates: - The Dates.periods function can be used to get the Vector of Periods that comprise a CompoundPeriod
Downloads: - If a cookie header is set in a redirected request, the cookie will now be sent in following requests - If a ~/.netrc file exists, it is used to get passwords for authenticated websites - Server Name Indication is now sent with all TLS connections, even when the server's identity is not verified (see NetworkOptions; ull/114). - When verifying TLS connections on Windows, if the certificate revocation server cannot be reached, the connection is allowed; this matches what other applications do and how revocation is performed on macOS - There is now a 30-second connection timeout and a 20-second timeout if no data is sent; in combination, this guarantees that connections must make some progress or they will timeout in under a minute
Statistics: Sockets: Tar: - Tar.extract now ignores the exact permission mode in a tarball and normalizes modes in the same way that Tar.create does, which is, in turn the same way that git normalizes them ( - Functions that consume tarballs now handle hard links: the link target must be a previously seen file; Tar.list lists the entry with :hardlink type and .link field giving the path to the target; other functions — Tar.extract, Tar.rewrite, Tar.tree_hash — treat a hard link as a copy of the target file - The standard format generated by Tar.create and Tar.rewrite now includes entries for non-empty directories; this shouldn't be neccessary, but some tools that consume tarballs (including docker) are confused by the absence of these directory entries - Tar now accepts tarballs with leading spaces in octal integer header fields: this is technically not a valid format according to the POSIX spec, but old Solaris tar commands produced tarballs like this so this format does occur in the wild, and it seems harmless to accept it - Tar.extract now takes a set_permissions keyword argument, which defaults to true; if false is passed instead, the permissions of extracted files are not modified on extraction
Distributed: UUIDs: Mmap: - mmap is now exported
DelimitedFiles: - readdlm now defaults to use_mmap=false on all OSes for consistent reliability in abnormal filesystem situations
Julia Language 1.7.0 (64-bit) 相關參考資料
Download Julia
x86-64 (64-bit), Tier 1. 11.4+, ARMv8 (64-bit), Tier 1. 10.6+, i686 (32-bit) / x86-64 (64-bit), Tier 3. Windows, 10+, x86-64 (64-bit), Tier 1. i686 (32-bit) ...
https://julialang.org
Downloading Julia Language 1.7.0 (64-bit) ...
Julia Language is dynamically-typed, feels like a scripting language, and has good support for interactive use. Julia has a rich language of descriptive ...
https://www.filehorse.com
Julia 64 bit 1.7
2021年12月1日 — Description: high-level, high-performance dynamic programming language for numerical computing. It provides a sophisticated compiler, ...
https://www.npackd.org
Julia Downloads (Old releases)
The official website for the Julia Language. Julia is a language that is fast, dynamic, easy to use, and open source. Click here to learn more.
https://julialang.org
Julia Language 1.7.0 (64-bit) Download
2021年12月1日 — Download Julia Language 1.7.0 (64-bit) for Windows PC from FileHorse. 100% Safe and Secure ✓ Free Download (32-bit/64-bit) Software ...
https://www.filehorse.com
Julia Language 1.7.0 (64-bit) for Windows 軟體資訊交流 - winXmac ...
Julia Language 1.7.0 (64-bit) for Windows 軟體資訊交流、介紹、教學與下載,Julia 語言64 位是動態鍵入的,感覺就像是一種腳本語言,並且對交互使用具有良好的支持 ...
https://winxmac.com
Julia Language 1.7.0 (64-bit) 軟體資訊介紹 | 電腦資訊007情報站
Julia Language 1.7.0 (64-bit). 檔案名稱 julia-1.7.0-win64.exe. 檔案大小. 系統 Windows XP / Vista / Windows 7 / Windows 8 / Windows 10. 軟體類型 開源軟體. 作者 ...
https://file007.com
Julia語言- 維基百科,自由的百科全書
Julia是一種進階通用動態程式語言,它最初是為了滿足高效能數值分析和計算科學的需要而設計的,不需要直譯器,速度快,也可用於客戶端和伺服器的Web用途、低階系統程式 ...
https://zh.wikipedia.org
running specific Julia versions · Issue #180
2021年11月29日 — I may have missed it, but I couldn't figure out a way to run a specific Julia version without changing it to the default.
https://github.com
The Julia Language - GitHub
2021年12月7日 — The documentation is also available in PDF format: julia-1.7.0.pdf ... 64. -2^63. 2^63 - 1. UInt64. 64. 0. 2^64 - 1. Int128. ✓. 128. -2^127. 2^ ...
https://raw.githubusercontent.
|