Rodin Platform 3.0 Release Notes: Difference between revisions
imported>Nicolas m Link to migration guide |
imported>Nicolas |
||
(18 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Rodin 3.0 | For developers, see [[Rodin 3.0 Plug-in Migration Guide]]. | ||
{{TOCright}} | |||
== What's New in Rodin 3.0? == | |||
=== General Interface === | |||
==== Tactic profiles ==== | |||
The tactic profiles are now quickly available while proving: from Proof Control, click the green triangle dropdown list and choose the profile, it is applied immediately. | |||
[[Image:Proof_Control_Profiles.png]]<br/> | |||
==== Menus ==== | |||
Commands available from the Event-B explorer have been refactored and reorganized.<br/> | |||
See changes on the images below.<br/> | |||
::* At the project level : | |||
[[Image:Rodin_File_Commands.png|650px]]<br/> | |||
::* At the component level : | |||
[[Image:Rodin_Root_Commands.png|450px]] | |||
==== Modelling ==== | |||
Consolidation of the Rodin Editor<br> The Rodin editor has been lifted up to provide its users with basic edition functionnalities such as navigation actions, edition actions, etc. The undo-redo actions have also been fixed. | |||
==== Proving ==== | |||
The automated reasoners that try to match predicates (HYP, HYP_OR, CNTR, GEN_MP) now use a fuzzy algorithm which succeeds more often. This increases the rate of automated proofs. | |||
Add specific support for empty sets and projections in the normalizer. | |||
The prover now has an explicit notion of rewriting in hypotheses (which was only simulated before). This avoids strange behaviors that could happen when a proof obligation changes several times. | |||
Better integration of the Theory plug-in in proofs. | |||
=== Changes for plugin-developers === | |||
==== Separation of symbols translation and UI related translation ==== | |||
The dependency on the Event-B UI plug-in has been removed by splitting text translation from translation within graphical components. | |||
<tt>org.rodinp.keyboard.core</tt> plug-in contains the textual translation utilities, | |||
<tt>org.rodinp.keyboard.ui</tt> plug-in contains the UI translation capabilities that where available from the legacy <tt>org.rodinp.keyboard</tt> plug-in. | |||
==== [[Stronger AST Library]] ==== | |||
The API of the AST library has been strengthened to mitigate risks of unsoundness when mixing several formula factories. Now, every AST node carries the formula factory with which it was built, and the AST operations that combine several formulas check that formula factories are compatible. | |||
The AST library now offers support for immutable type environments, which simplifies the code of the Sequent prover (no need to make defensive copies anymore). | |||
==== Stronger sequent prover ==== | |||
In order to improve the reliability of the proof status when working with mathematical extensions, the reasoners can be declared as context-dependent. The proofs that use a context dependent reasoner will not be trusted merely based on their dependencies, but instead they will be replayed in order to update their status. This applies in particular to Theory Plug-in reasoners, that depend on the mathematical language and proof rules defined in theories, which change over time. | |||
==== Parent-child relationship enforcement ==== | |||
Parent-child relationship were moved apart from UI to the EventB core. | |||
A dedicated page [[Element Hierarchy Extension Point & Library]] exist and documents the performed changes. | |||
== Installing == | |||
== | === Downloading === | ||
[http://sourceforge.net/projects/rodin-b-sharp/files/Core_Rodin_Platform/3.0/ Download Rodin 3.0 now !] | |||
=== (Not) Upgrading from Rodin 2.x === | |||
For this major release, upgrading from Rodin 2.x is not supported. | |||
This is due to limitations in Eclipse p2 (about conflict resolutions) and would work only if no plug-ins are installed... which makes it close to useless ! | |||
* | In case some would be interested anyway, here are the steps: | ||
* Upgrade Rodin Handbook to the latest version (2.5.0.201310101603) | |||
* Add Eclipse 3.8 Update Site: http://download.eclipse.org/eclipse/updates/3.8/ | |||
* Upgrade to Rodin 3 using the 'Core Rodin Updates' site | |||
== Requirements - Compatibility == | == Requirements - Compatibility == | ||
Line 40: | Line 73: | ||
** Windows 32-bit | ** Windows 32-bit | ||
** Windows 64-bit | ** Windows 64-bit | ||
** Mac 64-bit | ** Mac OS X 64-bit | ||
* You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE. | * You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE. | ||
Line 46: | Line 79: | ||
* 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 functionnalities, 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]. | * 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 functionnalities, 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]. | ||
* Linux 64-bit: | |||
: 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 64-bit: | |||
: Atelier B provers 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. | |||
== External plug-ins == | == External plug-ins == | ||
{{:Rodin_Platform_3.0.0_External_Plug-ins}} | |||
== | == Fixed Bugs and Implemented Features == | ||
Fixed bugs: | |||
<pre> | |||
705 AssertionError building WD of 'min' with math extensions | |||
704 Can't display information about VAR and NAT PO | |||
702 Temporary root still visible after deletion | |||
699 Exception when using profile with auto inference rules | |||
697 NPE in Static Checker, FormulaFreeIdentsModule | |||
696 Paste sometimes operates in the abstraction | |||
695 Exceptions when attempting to evaluate Overlay.isActive() | |||
694 Caret placement on line delimiters creates IllegalArgumentException | |||
693 Can not undo a move operation | |||
692 Keyboard widget translation create side-effects | |||
691 Wizards allow modification of generated components | |||
690 Hypothesis has disappeared | |||
689 Auto Rewriter does not remove trivial hypotheses | |||
687 unsound datatype translation | |||
686 Math symbols not translated if present as subchain | |||
685 ac.soton.composition - failed to load due to missing class | |||
683 EventB editor - IllegalStateException when autobuilding | |||
673 Wrong placement of caret when deleting elements | |||
667 NPE in POLoader.readPO() | |||
652 Multiple exceptions in EventB Explorer when updating with Teamwork | |||
642 NPE in systerel editor | |||
636 Typo in Rodin User's Handbook, range restriction | |||
601 proof support for prj1 and prj2 | |||
554 Heterogenous cursors in proving GUI | |||
382 editor extension - clause names defined in wrong element | |||
362 Fix "new" actions | |||
</pre> | |||
Implemented features: | |||
<pre> | |||
318 Dynamic tactic buttons in proving UI | |||
312 copy/paste from Type Environment | |||
309 Consider variants in HYP, CNTR and GenMP | |||
298 Add auto rewrites about emptyness | |||
119 non-emptiness of a set of total functions | |||
</pre> | |||
== Known Issues == | == Known Issues == | ||
See [http://sourceforge.net/p/rodin-b-sharp/bugs known bugs on SourceForge]. | |||
On Linux platforms, a crash may occur when closing the Welcome page. After restarting Rodin, everything works fine.<br/> | |||
This is a known Eclipse bug: [https://bugs.eclipse.org/bugs/show_bug.cgi?id=400626] | |||
== Disclaimer == | == Disclaimer == | ||
Line 71: | Line 140: | ||
== About == | == About == | ||
Rodin Platform up to | Rodin Platform up to e3d282b.<br> | ||
Developer Release date : | Developer Release date : 17/03/2014.<br> | ||
User Release date : | User Release date : 20/03/2014. | ||
[[Category:Rodin Platform Release Notes]] | [[Category:Rodin Platform Release Notes]] | ||
Latest revision as of 16:35, 9 July 2014
For developers, see Rodin 3.0 Plug-in Migration Guide.
What's New in Rodin 3.0?
General Interface
Tactic profiles
The tactic profiles are now quickly available while proving: from Proof Control, click the green triangle dropdown list and choose the profile, it is applied immediately.
Menus
Commands available from the Event-B explorer have been refactored and reorganized.
See changes on the images below.
- At the project level :
- At the component level :
Modelling
Consolidation of the Rodin Editor
The Rodin editor has been lifted up to provide its users with basic edition functionnalities such as navigation actions, edition actions, etc. The undo-redo actions have also been fixed.
Proving
The automated reasoners that try to match predicates (HYP, HYP_OR, CNTR, GEN_MP) now use a fuzzy algorithm which succeeds more often. This increases the rate of automated proofs.
Add specific support for empty sets and projections in the normalizer.
The prover now has an explicit notion of rewriting in hypotheses (which was only simulated before). This avoids strange behaviors that could happen when a proof obligation changes several times.
Better integration of the Theory plug-in in proofs.
Changes for plugin-developers
The dependency on the Event-B UI plug-in has been removed by splitting text translation from translation within graphical components. org.rodinp.keyboard.core plug-in contains the textual translation utilities, org.rodinp.keyboard.ui plug-in contains the UI translation capabilities that where available from the legacy org.rodinp.keyboard plug-in.
Stronger AST Library
The API of the AST library has been strengthened to mitigate risks of unsoundness when mixing several formula factories. Now, every AST node carries the formula factory with which it was built, and the AST operations that combine several formulas check that formula factories are compatible.
The AST library now offers support for immutable type environments, which simplifies the code of the Sequent prover (no need to make defensive copies anymore).
Stronger sequent prover
In order to improve the reliability of the proof status when working with mathematical extensions, the reasoners can be declared as context-dependent. The proofs that use a context dependent reasoner will not be trusted merely based on their dependencies, but instead they will be replayed in order to update their status. This applies in particular to Theory Plug-in reasoners, that depend on the mathematical language and proof rules defined in theories, which change over time.
Parent-child relationship enforcement
Parent-child relationship were moved apart from UI to the EventB core. A dedicated page Element Hierarchy Extension Point & Library exist and documents the performed changes.
Installing
Downloading
(Not) Upgrading from Rodin 2.x
For this major release, upgrading from Rodin 2.x is not supported. This is due to limitations in Eclipse p2 (about conflict resolutions) and would work only if no plug-ins are installed... which makes it close to useless !
In case some would be interested anyway, here are the steps:
- Upgrade Rodin Handbook to the latest version (2.5.0.201310101603)
- Add Eclipse 3.8 Update Site: http://download.eclipse.org/eclipse/updates/3.8/
- Upgrade to Rodin 3 using the 'Core Rodin Updates' site
Requirements - Compatibility
- Configurations supported (and for which binaries are provided)
- Linux 32-bit
- Linux 64-bit
- Windows 32-bit
- Windows 64-bit
- Mac OS X 64-bit
- You need to have a Java JRE (6.0 or later) installed on your computer. The Rodin product will not work with a previous version. To run Rodin 64-bit, you need a 64-bit JRE.
- 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 functionnalities, you need to install the Brave Sans Mono font on your system. You can download this font from the link here.
- Linux 64-bit:
- 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 64-bit:
- Atelier B provers 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.
External plug-ins
Rodin Update Site
http://rodin-b-sharp.sourceforge.net/updates
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
Event-B State-machines | 2.2.0 | available | 19th Aug. 2014 | State-machines contained in Event-B Machines. [Requires adding the following update site for dependencies: http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/] | |||
Event-B State-machine Animation | 2.1.1 | available | 27th May 2014 | Compatible with Event-B statemachines 2.x.x and ProB 3.0.x. | |||
UML-B | 2.3.0 | available | 18th Oct. 2014 | Original UML-B modelling environment | |||
UML-B Statemachine Animation | 1.3.0 | available | 18th Oct. 2014 | Compatible with UML-B 2.3 and ProB 3.0 | |||
Event-B EMF framework | 4.1.0 | available | 27th May 2014 | 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 support for extensions | 3.1.0 | available | 27th May 2014 | 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 support for diagrams | 4.1.0 | available | 27th May 2014 | 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. [Requires adding the following update site for dependencies: http://download.eclipse.org/modeling/gmp/gmf-tooling/updates/releases/] | |||
Isabelle for Rodin | not checked | 2.x.x | |||||
Rose | 1.5.0 | available | 27th May 2014 | Mainly useful for Plug-in developers. Tree-structured editor that handles extensions without modification | |||
Records | 1.0.1 | not checked | 16th Oct. 2010 | No longer actively supported - please email if you wish to use this plugin | |||
Teamwork | 1.1.0 | not checked | 15th Oct. 2010 | No longer actively supported - please email if you wish to use this plugin | |||
Shared Event Composition | 1.7.0 | available | 25th Nov. 2014 | Compatible with Rodin 3.0.x | |||
Refactory | 1.3.0 | available | 3.x.x | 6th May 2014 | Compatible with Rodin 3.0.x. | ||
Decomposition | 1.3.0 | available | 25th Nov. 2014 | Compatible with Rodin 3.0.x. | |||
Project Diagram | 1.0.0 | not checked | 15th Nov. 2010 | Machine - Context relationship diagram | |||
Relevance Filter | 1.1.1 | not checked | 2.x.x | ||||
Theory Plug-in | 2.0.2 | not checked | 10th July 2014 | Compatible with Rodin 2.8 only. | |||
Code Generation | 0.2.5 | not checked | 29th Aug. 2013 | For Java, Ada, and OpenMP C code | |||
SMT Solvers | 1.2.1 | available | 3.0 | 14th March 2014 | Laurent Voisin | ||
Qualitative Probability | 0.2.1 | not checked | 2.3.x | 23rd November 2011 | Thai Son Hoang | ||
B2Latex export | 0.5.4 | available | 2.5.x | 16th April 2012 | |||
Generic Instantiation (Soton) | 1.0.1 | not checked | 05th March 2013 |
B Method Update Site
http://methode-b.com/update_site/atelierb_provers
Plug-in name | Version | Status | MCV* | Release Date | Contact | Additional info | |
---|---|---|---|---|---|---|---|
Atelier-B provers | 2.1.0 | available | 3.x.x | 18th March 2014 | Read the instructions concerning 64-bit compatibility : here |
Other Update Sites
*MCV stands for the Rodin's Maximum Compatible Version
Known plug-in incompatibilities
It unfortunately might exists some incompatibilities between plug-ins. This list might be non exhaustive and is updated accorded to user experiences. If you encounter some conflict while installing or using plug-ins, please send a mail to the Rodin User List or feel free to complete the following table.
Plug-in name | Incompatible with |
---|
Fixed Bugs and Implemented Features
Fixed bugs:
705 AssertionError building WD of 'min' with math extensions 704 Can't display information about VAR and NAT PO 702 Temporary root still visible after deletion 699 Exception when using profile with auto inference rules 697 NPE in Static Checker, FormulaFreeIdentsModule 696 Paste sometimes operates in the abstraction 695 Exceptions when attempting to evaluate Overlay.isActive() 694 Caret placement on line delimiters creates IllegalArgumentException 693 Can not undo a move operation 692 Keyboard widget translation create side-effects 691 Wizards allow modification of generated components 690 Hypothesis has disappeared 689 Auto Rewriter does not remove trivial hypotheses 687 unsound datatype translation 686 Math symbols not translated if present as subchain 685 ac.soton.composition - failed to load due to missing class 683 EventB editor - IllegalStateException when autobuilding 673 Wrong placement of caret when deleting elements 667 NPE in POLoader.readPO() 652 Multiple exceptions in EventB Explorer when updating with Teamwork 642 NPE in systerel editor 636 Typo in Rodin User's Handbook, range restriction 601 proof support for prj1 and prj2 554 Heterogenous cursors in proving GUI 382 editor extension - clause names defined in wrong element 362 Fix "new" actions
Implemented features:
318 Dynamic tactic buttons in proving UI 312 copy/paste from Type Environment 309 Consider variants in HYP, CNTR and GenMP 298 Add auto rewrites about emptyness 119 non-emptiness of a set of total functions
Known Issues
See known bugs on SourceForge.
On Linux platforms, a crash may occur when closing the Welcome page. After restarting Rodin, everything works fine.
This is a known Eclipse bug: [1]
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 up to e3d282b.
Developer Release date : 17/03/2014.
User Release date : 20/03/2014.