Julia lectures update

I noticed that the Julia lectures are still using 0.6, when will it be updated to 1.0?

We’re currently in the process of updating to 1.0! Hopefully will be updated in a few weeks

Thanks for all your hard work! Do you have a status update for the lecture upgrade to 1.0?

All the lectures are updated to Julia 1.0. You could obtain the Jupyter notebook for a lecture manually through the source. The last changes before updating the website are: #52 and #67. In addition, there will be a few enhancements which will occur progressively to clean up the lectures (e.g., use of Parameters.jl, Expectations.jl, and some fresh re-writes).

First of all, again thanks for all the hard work!

I see from #67 that issue trackers existing for every lecture. The Re-writes tracker #160 has only one issue #162. Are you addressing in the re-writes tracker general enhancements and re-writes or also updates to 1.0.1?

I am asking because I run into some depreciation warnings and problems due to the new scoping rules in some of the lectures. Should I open an issues at those lectures?

Everything is updated to Julia v"1.0.z". The re-writes are only enhancements. Julia 1.0 doesn’t have the deprecations so I am assuming you mean running Julia 0.7 with the Julia 0.6 kernel? You can follow the instructions on the README to generate the latest versions of the notebooks and test them with Julia v"1.0.1".

Not exactly. I took the code for example for the Shortest Path lecture directly from the repository and run it in the REPL (Julia 0.7). I have not wrapped my head around this .toml structure yet so maybe I missing out if I can run the lecture code directly in the REPL or via Atom or not.

Hi Nicolas,

Just to clarify some points:

  1. In terms of the lectures, it’s best to consider 0.6 as the last stable release, and the rewrites as a nightly build. Like Jose said, the base code will work almost always, but some features like plots might not yet. The way to build a Jupyter notebook from the source rST is to run make jupyter from the lecture-source-jl directory, after installing QuantEcon/sphinxcontrib-jupyter. Detailed instructions are on the lecture source repo.

  2. For the TOML, the basic idea is that the Project.toml tells you what dependencies you need (like a REQUIRE file would), and the Manifest.toml specifies exact versions (unlike a REQUIRE file, which let you specify ranges of versions, etc.) The second file is optional, for when you want to pin down an exactly reproducible state. The Pkg3 solution we’ll be using for the lectures is at this repo, if you want to take a look.

  3. Specifically to the short_path lecture, the source-built version works exactly on 1.0. In terms of a global timeframe, all I know is that over the last week we had to work through a lot of infrastructure stuff (i.e., the InstantiateFromURL), and hopefully we can push forward more quickly on the lectures proper.

Hopefully this helps!

Hi Arnav,

I got caught up in the 0.6 - 0.7 transition and overlooked the impact of the new scoping rules when the code is run in the REPL in absence of Project.toml and Manifest.toml files . Jose kindly pointed to the SoftGlobalScope.jl package which simplifies the variable scoping rules for people who prefer a Vim-REPL or Atom interface over working/ developing/ teaching with Jupyter notebooks.

Maybe we should point out somewhere in the documentation or the Getting started section that copy-pasting lecture code from the website to the REPL or Atom might not work in 1.0.x anymore.

The scoping and environment questions are actually orthogonal (that is, I can activate a set of TOML files from the REPL using pkg> activate foo, and scoping wouldn’t change). Even if that TOML included SoftGlobalScope, I’d still have to use the package and apply the macro in the REPL to get mileage out of it.

That’s a good point about the warnings; we actually already have a note on this in the new “Julia Essentials” lecture. See here.

There’s a line in the current getting started which says “Note: In these lectures we assume you have version 0.6 or later,” which I think needs to be updated. Should be done soon.

Thank you so for your all your hard work and support. It is a wonderful place to Learn and Excel. Got a very good kick start on my Julia learning.

Here is a novice question. In the version of the lectures that is currently published on the lecture site, I sometimes find very small things that don’t seem to work. (This assumes I correctly carried out the instructions for obtaining a fresh installation.)

Is it still useful to report such minor issues, given that I saw that the version in the repo has already advanced quite a bit in comparison? If yes, then were are they reported best?

Hi @Janssens, this probably means there is a mismatch between the version of Julia you’re using and the lectures on the live site.

(It’s not a bad idea to list your Julia version when you mention finding errors.)

As you might have read above, we’re racing to get our new material from the repo you mention up to the live site. The delay is caused by many changes and updates, as well as a new build system that we’re implementing.

We’re hopeful the new material will be live, compatible with the latest version of Julia, as of around Nov 10.

Once the new material is live we’d love to have your feedback and we’ll quickly fix any errors!

You are right. The version in question is Julia 1.0.1 (with Anaconda 3-5.3.0 on Linux), installed and brought up-to-date yesterday.

Two minor issues I encountered are that it now seems necessary to execute using Pkg before package commands become available, as well as some changes with Array declarations, e.g. foo = Array{Float64}(undef,100) instead of foo = Array{Float64}(100).

The work of all people involved is very much appreciated and, personally, I do not expect any racing on your part.

If I notice anything after that moment, I will report it. For me, this major Julia release was a good moment to give it another look.

The lectures are now upgraded to Julia 1.0. Please have a look and we would love any reports on either errors or lack of clarity in the setup instructions/etc.