Announcing Updates to learn.adacore.com
by Gustavo A. Hoffmann –
Some time ago, we announced some updates to the learn website. In the meantime, we published the Introduction To Embedded Systems Programming course and the initial parts of the Advanced Journey with Ada course. Today, we’d like to announce some updates that have been made to the learn website since then.
New contents #
We added two chapters to the Advanced Journey With Ada course, both covering access types:
a chapter on standard (typed) access types,
a chapter on anonymous access types.
These two chapters belong to the new part on Resource Management. In addition to this, we added a new section on addresses.
This is actually a substantial increase in the course’s size — although it might not seem to be that much at first glance. In fact, the PDF version of the course increased from 455 to 651 pages, which corresponds to an increase by 43%.
E‑books #
A couple of changes were made to the e‑books:
Support for the MOBI format was removed because Amazon has dropped support for this format. From now on, the EPUB format should be used instead for Kindle devices.
We replaced the fonts in PDF books for better support of Unicode characters. This is an example that is rendered correctly now:
- We revised all code examples of the Introduction to Ada course to fit into a 50-column limit. (This limit was empirically assessed on a Kindle Oasis with a typical configuration.) Now, the code examples of that course fit the screen nicely on small devices.
Zip file with code examples #
We now offer a zip file containing source-code files of each code example on the main page of the website. This includes not only the typical .ads
and .adb
files of each source-code example, but also the project files for GPRbuild. Downloading this zipfile is very useful for local, offline experiments. For example, on Linux, you can simply run:
## Get and unpack the zip file
wget https://learn.adacore.com/zip/learning-ada_code.zip
unzip learning-ada_code.zip
## Change to the directory that contains the code example
cd projects/Courses/Intro_To_Ada/Imperative_Language/Greet/cba89a34b87c9dfa71533d982d05e6ab/
## Build and run the code example
gprbuild -Pmain.gpr
./greet
Website updates #
We made several improvements to the website. Let’s review the main changes!
Google Translate #
We fixed an issue that prevented using the website with Google Translate. Now, you can translate the website to your preferred language:
Improved sidebar #
Previously, menu items of the sidebar were a bit difficult to read. This has been improved by better color selection, so that menu items are now more readable.
Dark mode #
The website now supports dark mode — in addition to the standard light mode. This mode is selected according to the operating systems or the browser settings.
Code examples with no “run” button #
Due to restrictions, some code examples of the learn website don’t have a run button. For those code examples, we now display the compile / runtime information that we would see if a button was available. For example:
(Snapshot taken from this example.)
Widget: non-tabbed view #
The non-tabbed (sequential) view of source-code examples wasn’t working correctly after a major refactoring of the widget. This is now fixed, so you can select this option in the widget settings if you don’t like the standard tabbed view.
Widget menu: compiler switches #
The widget now gives you access to compiler switches. This allows you to view the compiler switches that were used for a specific code example and set compiler switches for experimental features. Apart from two compiler switches that are always active by default and cannot be changed (-g
and -O0
), you can basically select any configuration that you want.
Note that you can get more information about each compiler switch by clicking on the button next to the compiler switch or hovering above it with the mouse pointer.
Widget menu: global settings #
Previously, changing the settings of a widget (for example, selecting “dark mode”) didn’t affect the other widgets. Now, the widget settings are global, and the settings you select are available the next time you visit the learn website.