Skip to content

Early Access Preview 5

Pre-release
Pre-release
Compare
Choose a tag to compare
@Tobias-Kohn Tobias-Kohn released this 30 May 21:14
· 47 commits to master since this release

This release includes three major changes:

  • Switched to Jython "Standalone", which includes all the libraries;
  • First support for existing TigerJython libraries;
  • New file management system.

TigerJython Libraries

The libraries included in this preview are the same as in TigerJython 2.18, with a few minor adaptions due to missing support functions in TigerJython itself. The current preview also supports repeat loops, as well as some of TigerJython's built-in functions (such as makeColor()).

In contrast to TigerJython 2.x, programs are now launched and executed in a separate process. Some existing libraries like turtle graphics do not honour this change and do not properly shutdown when a window is closed. It might be necessary to manually stop a program in that case (using the "stop" button).

Support for TigerJython will still be limited for a while. First priority at the moment is on the editor itself. Once the editor works well enough, the runtime system itself will be overhauled, including proper support for all the built-in functions and repear loops. Right now, repeat loops are emulated by replacing them in the Python-file on the disk just moments before execution. Once the program has been started, the code in the file is changed back. Due to this trick, the Python interpreters never see a repeat statements, but only common for loops—however in some cases of unfortunate timing, the change back to the version with repeat loop happens before the program has actually been started, resulting in an error stating that repeat is illegal. As mentioned above, this is only a temporary solution and will be fully amended once we complete work on the runtime system.

File Management

In line with the model of persistency that TigerJython 3 strives for, files/documents are fully restored when the application is started again, with both the text and the position within the file preserved. The idea is that each user creates a "personal" collection of Python files and modules, which might be physically located at various places, but are always readily accessible from within the application itself. Opening a file in the classical way thus amounts to adding a new external document to this collection.

As a second step, this should eventually allow to connect TigerJython to user accounts in the cloud so that students can not only interrupt their work at school at any time and resume a week later, say, but also resume their work from home, for instance, or even use WebTigerJython.

Nonetheless, the new file management system is not and never will be as powerful as project-based management, Git, or similar. Given that it is an educational tool, however, that is neither its purpose nor its intent. There are already excellent tools and IDEs available that are more oriented towards professionals.

Be careful when working on your projects: TigerJython will manipulate and rewrite your original files without warning!

User Identity

TigerJython now generates a quasi-unique "user number" the first time it is run on a new system. This user number is a sequence of 48 (pseudo-)randomly generated bytes, encoded as base64. Its purpose is to allow assigning submissions in scientific studies to different users without identifying the users themselves. TigerJython itself does not collect any personal information (however, we are working on a possibility to send anonymous usage statistics on an opt-in basis).

The generated pseudo-random number is not guaranteed to be unique and is not suited to act as an identifier for individual users. The name "user number" instead of "user identity" or similar is meant to reflect that it is just number and nothing more.

4th Preview

We used the 4th preview only internally for various test purposes, but did not upload it to GitHub. That's why it looks like there was a jump in versioning.