The Julia Programming Language for your Windows PC!

Julia Language

Julia Language 1.10.0 (64-bit)

  -  102 MB  -  Open Source

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Julia Language 1.10.0 (64-bit).


For those interested in downloading the most recent release of Julia Language or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

  • Julia Language 1.10.0 (64-bit) Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Julia Language 1.10.0 (64-bit) Screenshot 1
  • Julia Language 1.10.0 (64-bit) Screenshot 2
  • Julia Language 1.10.0 (64-bit) Screenshot 3
  • Julia Language 1.10.0 (64-bit) Screenshot 4
  • Julia Language 1.10.0 (64-bit) Screenshot 5

What's new in this version:

New language features:
- JuliaSynta.jl is now used as the default parser, providing better diagnostics and faster parsing. Set environment variable JULIA_USE_FLISP_PARSER to 1 to switch back to the old parser if necessary (and if you find this necessary, please file an issue)
- (U+297A, leftarrowsubset) and ? (U+2977, leftarrowless) may now be used as binary operators with arrow precedence

Language changes:
- When a task forks a child, the parent task's task-local RNG (random number generator) is no longer affected. The seeding of child based on the parent task also takes a more disciplined approach to collision resistance, using a design based on the SplitMi and DotMi splittable RNG schemes
- A new more-specific rule for methods resolves ambiguities containing Union{} in favor of the method defined eplicitly to handle the Union{} argument. This makes it possible to define methods to eplicitly handle Union{} without the ambiguities that commonly would result previously. This also lets the runtime optimize certain method lookups in a way that significantly improves load and inference times for heavily overloaded methods that dispatch on Types (such as traits and constructors).
- The "h bar" ? (hslash U+210F) character is now treated as equivalent to h (hbar U+0127).
- The @simd macro now has more limited and clearer semantics: it only enables reordering and contraction of floating-point operations, instead of turning on all "fastmath" optimizations. If you observe performance regressions due to this change, you can recover previous behavior with @fastmath @simd, if you are OK with all the optimizations enabled by the @fastmath macro
- When a method with keyword arguments is displayed in the stack trace view, the tetual representation of the keyword arguments' type is simplified using the new @Kwargs{key1::Type1, ...} macro synta

Compiler/Runtime improvements:
- Updated GC heuristics to count allocated pages instead of object sizes
- The mark phase of the garbage collector is now multi-threaded
- JITLink is enabled by default on Linu aarch64 when Julia is linked to LLVM 15 or later versions
- The precompilation process now uses pidfile locks and orchestrates multiple julia processes to only have one process spend effort precompiling while the others wait. Previously all would do the work and race to overwrite the cache files.

Command-line option changes:
- New option --gcthreads to set how many threads will be used by the garbage collector

Build system changes:
- SparseArrays and SuiteSparse are no longer included in the default system image, so the core language no longer contains GPL libraries. However, these libraries are still included alongside the language in the standard binary distribution

New library functions:
- tanpi is now defined. It computes tan(p*) more accurately than tan(pi*)
- fourthroot() is now defined in Base.Math and can be used to compute the fourth root of . It can also be accessed using the unicode character ?, which can be typed by fourthroot<tab>
- Libc.memmove, Libc.memset, and Libc.memcpy are now defined, whose functionality matches that of their respective C calls.
- Base.isprecompiled(pkg::PkgId) has been added, to identify whether a package has already been precompiled

New library features:
- binomial(, k) now supports non-integer
- A CartesianInde is now treated as a "scalar" for broadcasting
- printstyled now supports italic output
- parent and parentindices support SubStrings.
- replace(string, pattern...) now supports an optional IO argument to write the output to a stream rather than returning a string
- startswith now supports seekable IO streams

Standard library changes:
- The initialized=true keyword assignment for sortperm! and partialsortperm! is now a no-op
- Printing integral Rationals will skip the denominator in Rational-typed IO contet (e.g. in arrays)

Package Manager:
- Pkg.precompile now accepts timing as a keyword argument which displays per package timing information for precompilation (e.g. Pkg.precompile(timing=true)).
- LinearAlgebra:
- AbstractQ no longer subtypes AbstractMatri. Moreover, adjoint(Q::AbstractQ) no longer wraps Q in an Adjoint type, but instead in an AdjointQ, that itself subtypes AbstractQ. This change accounts for the fact that typically AbstractQ instances behave like function-based, matri-backed linear operators, and hence don't allow for efficient indeing. Also, many AbstractQ types can act on vectors/matrices of different size, acting like a matri with contet-dependent size. With this change, AbstractQ has a well-defined API that is described in detail in the Julia documentation
- Adjoints and transposes of Factorization objects are no longer wrapped in Adjoint and Transpose wrappers, respectively. Instead, they are wrapped in AdjointFactorization and TransposeFactorization types, which themselves subtype Factorization
- New functions hermitianpart and hermitianpart! for etracting the Hermitian (real symmetric) part of a matri
- The norm of the adjoint or transpose of an AbstractMatri now returns the norm of the parent matri by default, matching the current behaviour for AbstractVectors
- eigen(A, B) and eigvals(A, B), where one of A or B is symmetric or Hermitian, are now fully supported
- eigvals/eigen(A, cholesky(B)) now computes the generalized eigenvalues (eigen: and eigenvectors) of A and B via Cholesky decomposition for positive definite B. Note: The second argument is the output of cholesky.

Printf:
- Format specifiers now support dynamic width and precision, e.g. %*s and %*.*g

REPL:
- When stack traces are printed, the printed depth of types in function signatures will be limited to avoid overly verbose output

Test:
- The @test_broken macro (or @test with broken=true) now complains if the test epression returns a non-boolean value in the same way as a non-broken test
- When a call to @test fails or errors inside a function, a larger stacktrace is now printed such that the location of the test within a @testset can be retrieved

InteractiveUtils:
- code_native and @code_native now default to intel synta instead of AT&T
- @time_imports now shows the timing of any module __init__()s that are run

Deprecated or removed:
- The @pure macro is now deprecated. Use Base.@assume_effects :foldable instead.