Rodin Platform 3.5 Release Notes: Difference between revisions
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} | {{TOCright}} | ||
== Dedication to Ken Robinson == | |||
This release of the Rodin Platform is dedicated to the memory of Ken Robinson (University of New South Wales) who passed away the 5th of September 2020. Ken was a vibrant member of the Event-B community and an important user of the Rodin platform: he did not hesitate to complain loudly when the platform was not running as he expected. His regular feedback allowed us to greatly improve Rodin for the great good of the whole community. Ken was also the author of the [https://www3.hhu.de/stups/handbook/rodin/current/html/files/EventB-Summary.pdf Event-B Cheat Sheet] available with the Rodin handbook. | |||
== What's New in Rodin 3.5? == | == What's New in Rodin 3.5? == | ||
Rodin 3.5 brings several bug fixes | Rodin 3.5 brings lexicographical variants and several bug fixes. It also upgrades the underlying Eclipse to 2020-06, which can be run by all modern Java Runtimes (Java 8 up to 13). | ||
The new lexicographical variant feature means that from now on a machine can contain several variant elements, which are to be understood as a tuple combination (in order of appearance). For instance, if a machine contains the two variants ''V1'' and ''V2'' declared in that order, then a converging event must either decrease ''V1'', or not modify ''V1'' and decrease ''V2''. | |||
Please note that we | Please note that we only provide 64-bit binary versions of the Rodin platform. | ||
=== Changes for plug-in developers === | === Changes for plug-in developers === | ||
Line 13: | Line 19: | ||
There is no API change within Rodin Core. | There is no API change within Rodin Core. | ||
Following to the introduction of lexicographical variants, a machine can now contain several variant elements. Moreover, variant elements now carry a label attribute. The Rodin tools contain a compatibility layer that allows to read existing machine containing a single unlabelled variant and present it with the new API (using the hardcoded label <code>vrn</code> available from the <code>org.eventb.core.IVariant.DEFAULT_LABEL</code> constant). | |||
== Installing == | == Installing == | ||
Line 23: | Line 29: | ||
=== Upgrading from a previous version of Rodin 3.x === | === Upgrading from a previous version of Rodin 3.x === | ||
If you run Rodin 3.1, 3.2, 3.3, or 3.4, then you can upgrade your Rodin Platform by clicking Help > Check for Updates, then select Rodin 3.5 in the popup window and accept the licence terms. Note that the upgrading process can take quite a long time. | |||
Take care that Rodin 3.5 brings a new version of Eclipse. This means that once you have opened a workspace with Rodin 3.5, you will not be able to open it with a prior version of Rodin anymore. Please consider copying your workspace for Rodin 3.5 to avoid any disaster. | |||
If you run Rodin 3.0 or prior, you cannot upgrade to 3.5. You need to download the platform from SourceForge and reinstall your external plugins. | |||
== Requirements - Compatibility == | == Requirements - Compatibility == | ||
* | === Supported operating systems === | ||
Rodin will work on the following operating systems | |||
* macOS 64-bit | |||
* Linux 64-bit | |||
* Windows 64-bit | |||
=== Java Runtime requirement === | |||
You need to have a 64-bit Java JRE (version 8 or later) installed on your computer. The Rodin application will not work with a previous version or with a 32-bit JRE. | |||
=== macOS specific requirements === | |||
The Rodin application is not notarized. This means that when you download it from SourceForge, macOS will quarantine the application and tell you that it is broken. Just run the command <code>xattr -rc Rodin.app</code> in a Terminal to remove the quarantine tag. | |||
The Atelier B provers (not part of Rodin Platform, but very useful) do not work on macOS Catalina and newer. This is because they use a 32-bit binary program. | |||
=== Linux specific requirements === | |||
Package <code>libc6-amd64:i386</code> must be installed, in particular in order to run external prover binaries depending on the distribution, you could instead need these packages: <code>lib32z1</code>, <code>lib32ncurses5</code>, <code>lib32bz2-1.0</code>. | |||
=== Windows specific requirements === | |||
Atelier B provers may work more slowly; it can cause ML to not automatically discharge some sequents that it discharges on windows 32-bit, due to its timeout. A workaround is to download a custom profile: [http://sourceforge.net/projects/rodin-b-sharp/files/DefaultAuto_ML800 DefaultAuto_ML800], then Window > Preferences > Event-B > Sequent Prover > Auto/Post Tactic > Profiles (tab) > Import..., point to the downloaded file, 'Select All' profiles (there are 2), OK. Then in 'Auto/Post Tactic' tab, select 'Default Auto Tactic Profile (ML 800)' profile for auto-tactics. It is the same as the 'Default Auto Tactic Profile', except ML has a longer timeout (800 ms). You can of course change this timeout by editing the 'ML (800)' profile. | |||
We have not noticed this problem for Linux 64-bit, nor for other platforms; however if you do, the same workaround applies. | |||
=== Math fonts === | |||
To enhance your proving experience, the eclipse font settings (size, aspect...) are available from the preferences (General > Appearance > Colors and Fonts > Rodin). These settings allow you to modify the properties set on the Event-B Keyboard Text Font which is used in many views of the Proving UI. However, to enjoy these functionalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link [http://sourceforge.net/projects/rodin-b-sharp/files/Font_%20Brave%20Sans%20Mono/0.12/ here]. | |||
== External plug-ins == | == External plug-ins == | ||
Line 92: | Line 104: | ||
=== Rodin is not notarized === | === Rodin is not notarized === | ||
Apple asks that all applications are notarized before they can be run since macOS Mojave. Unfortunately, we did not have time to put this in place for Rodin 3.5. We expect this to be solved for Rodin 3.6. See [[#macOS_specific_requirements|macOS requirements]] for a workaround. | |||
=== macOS in dark mode === | === macOS in dark mode === | ||
See [http://sourceforge.net/p/rodin-b-sharp/bugs/785 Bug 785]. | |||
== Thanks == | |||
A big thank you to | |||
* Yamine Ait-Ameur (IRIT) who lead the Event-B-Rodin-Plus initiative for resuming work on the Theory plug-in and the Rodin Platform. | |||
* Thai Son Hoang (University of Southampton) who made the port to Eclipse 2020-06. | |||
* Colin Snook (University of Southampton) and Michael Leuschel (University of Dusseldorf) for making sure that their plug-ins work with Rodin 3.5 and useful feedback. | |||
* Marc Pantel (IRIT) for bringing the macOS workaround. | |||
* Ilya Shchepetkov (Ivannikov Institute for System Programming) and Fredrik Öhrström for their useful feedback on the release candidate. | |||
* All users and contributors that I have forgotten to remember. | |||
== Disclaimer == | == Disclaimer == | ||
Since Rodin is continuously maintained, several unsoundness bugs which have been encountered were investigated and fixed. However, despite the total commitment of our teams to ensure the soundness of the platform, some unexpected and unknown soundness issues could remain. We would be grateful if you would report these issues to the [mailto:rodin-b-sharp-devel@lists.sourceforge.net development mailing list]. | Since Rodin is continuously maintained, several unsoundness bugs which have been encountered were investigated and fixed. However, despite the total commitment of our teams to ensure the soundness of the platform, some unexpected and unknown soundness issues could remain. We would be grateful if you would report these issues to the [mailto:rodin-b-sharp-devel@lists.sourceforge.net development mailing list]. | ||
== About == | == About == | ||
Rodin Platform with git commit: | Rodin Platform with git commit: <code>74e0e4188</code><br/> | ||
User Release date : | User Release date : 2020/09/11. | ||
[[Category:Rodin Platform Release Notes]] | [[Category:Rodin Platform Release Notes]] |
Latest revision as of 13:09, 11 September 2020
Dedication to Ken Robinson
This release of the Rodin Platform is dedicated to the memory of Ken Robinson (University of New South Wales) who passed away the 5th of September 2020. Ken was a vibrant member of the Event-B community and an important user of the Rodin platform: he did not hesitate to complain loudly when the platform was not running as he expected. His regular feedback allowed us to greatly improve Rodin for the great good of the whole community. Ken was also the author of the Event-B Cheat Sheet available with the Rodin handbook.
What's New in Rodin 3.5?
Rodin 3.5 brings lexicographical variants and several bug fixes. It also upgrades the underlying Eclipse to 2020-06, which can be run by all modern Java Runtimes (Java 8 up to 13).
The new lexicographical variant feature means that from now on a machine can contain several variant elements, which are to be understood as a tuple combination (in order of appearance). For instance, if a machine contains the two variants V1 and V2 declared in that order, then a converging event must either decrease V1, or not modify V1 and decrease V2.
Please note that we only provide 64-bit binary versions of the Rodin platform.
Changes for plug-in developers
Rodin 3.5 is built on top of Eclipse 4.16 (2020-06), which requires Java 8, just as the previous versions.
There is no API change within Rodin Core.
Following to the introduction of lexicographical variants, a machine can now contain several variant elements. Moreover, variant elements now carry a label attribute. The Rodin tools contain a compatibility layer that allows to read existing machine containing a single unlabelled variant and present it with the new API (using the hardcoded label vrn
available from the org.eventb.core.IVariant.DEFAULT_LABEL
constant).
Installing
Downloading
Upgrading from a previous version of Rodin 3.x
If you run Rodin 3.1, 3.2, 3.3, or 3.4, then you can upgrade your Rodin Platform by clicking Help > Check for Updates, then select Rodin 3.5 in the popup window and accept the licence terms. Note that the upgrading process can take quite a long time.
Take care that Rodin 3.5 brings a new version of Eclipse. This means that once you have opened a workspace with Rodin 3.5, you will not be able to open it with a prior version of Rodin anymore. Please consider copying your workspace for Rodin 3.5 to avoid any disaster.
If you run Rodin 3.0 or prior, you cannot upgrade to 3.5. You need to download the platform from SourceForge and reinstall your external plugins.
Requirements - Compatibility
Supported operating systems
Rodin will work on the following operating systems
- macOS 64-bit
- Linux 64-bit
- Windows 64-bit
Java Runtime requirement
You need to have a 64-bit Java JRE (version 8 or later) installed on your computer. The Rodin application will not work with a previous version or with a 32-bit JRE.
macOS specific requirements
The Rodin application is not notarized. This means that when you download it from SourceForge, macOS will quarantine the application and tell you that it is broken. Just run the command xattr -rc Rodin.app
in a Terminal to remove the quarantine tag.
The Atelier B provers (not part of Rodin Platform, but very useful) do not work on macOS Catalina and newer. This is because they use a 32-bit binary program.
Linux specific requirements
Package libc6-amd64:i386
must be installed, in particular in order to run external prover binaries depending on the distribution, you could instead need these packages: lib32z1
, lib32ncurses5
, lib32bz2-1.0
.
Windows specific requirements
Atelier B provers may work more slowly; it can cause ML to not automatically discharge some sequents that it discharges on windows 32-bit, due to its timeout. A workaround is to download a custom profile: DefaultAuto_ML800, then Window > Preferences > Event-B > Sequent Prover > Auto/Post Tactic > Profiles (tab) > Import..., point to the downloaded file, 'Select All' profiles (there are 2), OK. Then in 'Auto/Post Tactic' tab, select 'Default Auto Tactic Profile (ML 800)' profile for auto-tactics. It is the same as the 'Default Auto Tactic Profile', except ML has a longer timeout (800 ms). You can of course change this timeout by editing the 'ML (800)' profile.
We have not noticed this problem for Linux 64-bit, nor for other platforms; however if you do, the same workaround applies.
Math fonts
To enhance your proving experience, the eclipse font settings (size, aspect...) are available from the preferences (General > Appearance > Colors and Fonts > Rodin). These settings allow you to modify the properties set on the Event-B Keyboard Text Font which is used in many views of the Proving UI. However, to enjoy these functionalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link here.
External plug-ins
Rodin Update Site
Available from http://rodin-b-sharp.sourceforge.net/updates
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
SMT Solvers | 1.5.0 | available | 14th January 2022 | Laurent Voisin | Automatic prover using SMT solvers | ||
Relevance Filter | 1.1.1 | available | ?.x.x | Improves chance of automatic proof by selecting relevant hypotheses | |||
B2Latex export | 0.7.0 | available | 2.5.x | 27th May 2015 | Laurent Voisin | generates a Latex documentation of the Event-B | |
Rose editor | 1.7.0 | available | 3.x.x | 4 Nov 2018 | umlb | Tree-structured editor for Event-B EMF that handles extensions without modification. Mainly useful for Plug-in developers. | |
CODA | CODA Component Diagrams | 6.0.1 | available | 3.x.x | ? | umlb | Component diagrams with timed channels. (Not compatible with latest UML-B. Will be up-issued on Soton update site.) |
CODA | CODA Simulator for Component Diagrams | 3.0.1 | available | 3.x.x | ? | umlb | Component based simulation. (Not compatible with latest UML-B. Will be up-issued on Soton update site.) |
Project Diagram | 1.0.1 | available | 3.x.x | 1st Feb. 2015 | umlb | Machine - Context relationship diagram. (Not compatible with latest UML-B. Will be up-issued on Soton update site.) | |
UML-B | 2.3.0 | available | 3.x.x | 18th Oct. 2014 | umlb | Original UML-B modelling environment | |
Shared Event Composition | 1.7.1 | not checked | 5th July 2017 | umlb | Compatible with Rodin 3.x.x | ||
Decomposition | 1.3.1 | not checked | 4th July 2017 | umlb | Compatible with Rodin 3.x.x | ||
Refactory | 1.3.0 | not checked | 3.x.x | 6th May 2014 | umlb | Compatible with Rodin 3.0.x. | |
Theory Plug-in | 4.0.4 | available | 1st April 2022 | Guillaume Verdier | |||
Code Generation | 0.2.5 | not checked | 29th Aug. 2013 | umlb | For Java, Ada, and OpenMP C code | ||
Isabelle for Rodin | not checked | 2.x.x | |||||
Pattern | 0.9.0 | not checked | 3.x.x | 13th March 2015 | Thai Son Hoang | ||
Qualitative Probability | 0.2.3 | not working | 3.x.x | 9th October 2015 | Thai Son Hoang | Needs updating to be compatible with changes in Rodin 3.5 | |
Generic Instantiation (Soton) | 1.0.1 | not checked | 05th March 2013 | Asieh | |||
Records | 2.0.0 | not checked | 2.x.x | 16th Oct. 2010 | umlb | no longer supported - use CamilleX instead | |
Teamwork | 1.2.0 | not checked | 3.2.x | 5th Sept. 2016 | umlb | No longer supported - use CamilleX instead. Provides a synchronised copy of Machines and Contexts for committing into a repository. | |
UML-B Statemachine Animation | 1.3.0 | not checked | 3.x.x | 18th Oct. 2014 | umlb | no longer supported - use new UML-B from Soton update site instead | |
iUML-B plugins | not checked | 3.x.x | umlb | New versions are now available on the Soton Update Site. |
Atelier B Update Site
Available from http://methode-b.com/update_site/atelierb_provers
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
Atelier B provers | 2.3.0 | available | 3.3.0 | 2 Dec 2020 |
ProB Update Site
Available from http://www.stups.hhu.de/prob_updates_rodin3
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
ProB | 3.0.10 | available | 3.5.0 | 4 Sep 2020 | The ProB animator and model checker | ||
ProB (Dis)Prover | 3.0.9 | available | 3.5.0 | 4 Sep 2020 | The ProB counter-example finder and prover | ||
ProB Symbolic constants support | 3.0.9 | available | 3.5.0 | 4 Sep 2020 |
Southampton Releases Update Site
Available from http://eventb-soton.github.io/updateSite/releases
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
CamilleX | 2.0.2 | new release | 3.4.x | 21 Jan 2021 | Thai Son Hoang | CamilleX provides text editors for Event-B models and support modelling mechanisms such as machine inclusion. | |
UML-B Class Diagrams | 3.0.0 | new release | 3.x.x | 11 Sept 2020 | umlb | UML-B Class diagrams translate into Event-B Machines. | |
UML-B State-machines | 4.0.1 | new release | 3.x.x | 13 Aug 2020 | umlb | UML-B State-machines translate into Event-B Machines. | |
UML-B State-machine Animation | 3.0.0 | new release | 3.x.x | 13 Aug 2020 | umlb | Animate UML-B State-machines. Compatible with UML-B statemachines 4.x.x and ProB 3.0.x. | |
Scenario Checker | 0.0.0 | new release | 3.4.x | 31 July 2020 | umlb | Validation tool for recording and replaying scenarios |
The following framework plug-ins are also provided on the Southampton Releases Update Site. These plugins are installed automatically when required and are not usually installed explicitly by users.
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
Event-B EMF framework | 6.1.0 | new release | 3.x.x | 4 July 2020 | umlb | Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required. | |
Event-B EMF extensions | 6.1.0 | new release | 3.x.x | 4 July 2020 | umlb | Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required. | |
UML-B diagrams | 8.0.1 | new release | 3.2.x | 13 Aug 2020 | umlb | Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required. | |
ProB Support | 0.0.0 | new release | 3.4.x | 28 July 2020 | umlb | Provided for plug-in developers. End users should not need to install this framework. It will be installed automatically by other plug-ins as required. |
Fixed Bugs and Implemented Features
Bugs
783 Launching problem with Java 13 782 Launching error with Java 11 781 Problem with the Rodin proof generator 780 Useless local hypotheses in NAT PO 779 No information when failing to launch external provers 777 Missing refresh in Rodin Editor for event convergence status 776 Rodin Handbook URL broken 774 Java SE 6 required to run Rodin V3.4 on macOS High Sierra ? 775 Editors misinterpret 'generated = false' 773 Update VM arguments for Java 9 772 crash of Rodin V3.4 when opening workspace 771 Proof view: unreadable formulas (white on white) 770 AtelierB plug-in 2.2.0 broken 769 Statistics columns have non uniform widths 765 Generalized Modus Ponens turns goal into "false" 756 Null reasoner input 754 Dropins folder is available again by default 753 Section color preferences are not taken into account 741 Tactic Profile Editing very slow performance 698 Using 'Open With' context menu on PO does not load the PO 618 Proposed name in refine action
Feature Requests
355 Simplify POs for anticipated event further 314 Lexicographic variant
Known Issues
See known bugs on SourceForge.
Rodin is not notarized
Apple asks that all applications are notarized before they can be run since macOS Mojave. Unfortunately, we did not have time to put this in place for Rodin 3.5. We expect this to be solved for Rodin 3.6. See macOS requirements for a workaround.
macOS in dark mode
See Bug 785.
Thanks
A big thank you to
- Yamine Ait-Ameur (IRIT) who lead the Event-B-Rodin-Plus initiative for resuming work on the Theory plug-in and the Rodin Platform.
- Thai Son Hoang (University of Southampton) who made the port to Eclipse 2020-06.
- Colin Snook (University of Southampton) and Michael Leuschel (University of Dusseldorf) for making sure that their plug-ins work with Rodin 3.5 and useful feedback.
- Marc Pantel (IRIT) for bringing the macOS workaround.
- Ilya Shchepetkov (Ivannikov Institute for System Programming) and Fredrik Öhrström for their useful feedback on the release candidate.
- All users and contributors that I have forgotten to remember.
Disclaimer
Since Rodin is continuously maintained, several unsoundness bugs which have been encountered were investigated and fixed. However, despite the total commitment of our teams to ensure the soundness of the platform, some unexpected and unknown soundness issues could remain. We would be grateful if you would report these issues to the development mailing list.
About
Rodin Platform with git commit: 74e0e4188
User Release date : 2020/09/11.