Programming Language Julia Releases Version 1.7

Julia 1.7 now uses a much smaller state of the Xoshiro256 family of RNGs to put a state in every task and fork it on each task creation.

Julia recently announced the release of its latest version Julia 1.7. The new update comes with several enhancements and fixes to previous issues. Julia 1.7 now uses a much smaller state of the Xoshiro256 family of RNGs to put a state in every task and fork it on each task creation. This makes random numbers depend only on the task spawning structure of a program, and not on the parallel execution schedule.

Support for atomic access to mutable struct fields has been added to provide more efficient build blocks for working with threads via a set of @atomic macros and their corresponding generic functions. This work is based on the “Atomics Manifesto” that described how Julia envisioned threading to be a key part of the language’s future.

The REPL has long featured “paste mode”, where a user could paste in an example session, such as the ones above, directly into the REPL; it would automatically strip out the prompts, recognize user input, and generally do the right thing. This has now been extended to all of the REPL modes (pkg, shell, and help) in addition to the normal mode; it even switches modes automatically based on the prompt string in the pasted text. In case a module is missing a docstring (not uncommon, especially with small packages), help will look around in the package directory for a README file and print the one closest to the module in question. In any case, it will print the list of exported names.

Whenever a user adds a package in Julia, the package manager (Pkg) writes out a TOML file called the “manifest” with the exact version of all the dependencies of that package. In version 1.7, a change has been introduced to this manifest format so that all dependencies are instead put under a common [deps] key. This frees up the global namespace so that a julia_version entry can be added. It also opens up the possibility of adding future useful data to the manifest. The ability to read such manifests will also be backported to Julia 1.6 and thus be in Julia 1.6.2 and forward. 

This release comes with many type inference improvements. With these improvements, Julia 1.7 will more “smartly” infer types of your program and improve performance for free. Version 1.7 can propagate type constraints that can be derived from isa and === conditions inter-procedurally (i.e., across any function calls). Another remarkable improvement is more eager constant propagation. Julia 1.7 can substitute more runtime computations with pre-computed constants and eliminate dead code by resolving conditional branches at compile time. 

Julia’s new version has also added syntax to enable writing for multidimensional arrays. This new syntax makes multidimensional arrays much easier to manipulate in Julia than they were before, and it compares favourably with the creation of multidimensional arrays in other languages.

Julia v1.7 is the first release that runs on Apple Silicon for the M1 family of ARM CPUs. Planning for this feature actually started more than one year ago, shortly after Apple’s announcement of their new chips. The Julia User & Developer Survey 2021 showed that 5% of Julia users were already running it on this platform before an official stable version for it was released. 

You can download and check the new features of Julia 1.7 using the link here

Download our Mobile App

Victor Dey
Victor is an aspiring Data Scientist & is a Master of Science in Data Science & Big Data Analytics. He is a Researcher, a Data Science Influencer and also an Ex-University Football Player. A keen learner of new developments in Data Science and Artificial Intelligence, he is committed to growing the Data Science community.

Subscribe to our newsletter

Join our editors every weekday evening as they steer you through the most significant news of the day.
Your newsletter subscriptions are subject to AIM Privacy Policy and Terms and Conditions.

Our Upcoming Events

Career Building in ML & AI

31st May | Online

31st May - 1st Jun '23 | Online

Rakuten Product Conference 2023

15th June | Online

Building LLM powered applications using LangChain

Jun 23, 2023 | Bangalore

MachineCon 2023 India

26th June | Online

Accelerating inference for every workload with TensorRT

MachineCon 2023 USA

Jul 21, 2023 | New York

Cypher 2023

Oct 11-13, 2023 | Bangalore

3 Ways to Join our Community

Telegram group

Discover special offers, top stories, upcoming events, and more.

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Subscribe to our Daily newsletter

Get our daily awesome stories & videos in your inbox