Product Roadmap
Arnaud CharletOctober 1st 2015
Release Schedule
November: Preview release
February: Major release
July: Corrective release
Release Schedule
November: Preview release Nov 2015: 7.4.0
February: Major release Feb 2016: 7.4.1
July: Corrective release July 2016: 7.4.2
…
GNAT Pro 7.4 Overview
• 120+ new features
• Around 59 platforms (50 cross + 9 native)• Support for Ada 95, 2005, 2012, SPARK 2014• Based on GCC 4.9 & GDB 7.10
New Ports• VxWorks 7• VxWorks 653mc (aka 3.0)• ARM PikeOS• PowerPC PikeOS• Generic e500v2 Linux• Windows 10
VxWorks
• New Ports: vxworks653 3.0, arm-vxworks 7, e500v2-
vxworks 7, ppc-vxworks 7, x86_64-vxworks 7• Support for PPC VxWorks 6 Cert as a Guest OS of PPC
VxWorks 653 3.0• Support for cert runtime and APEX processes on ppc-
vx6cert
Bareboard Targets
• New pragma Volatile_Full_Access to guarantee full
object access• New restrictions
– No_Task_At_Interrupt_Priority– No_Dynamic_Sized_Objects– No_Implicit_Protected_Object_Allocations,
No_Implicit_Task_Allocations (refinement of
No_Implicit_Heap_Allocations)
Improvements on Ada Containers
• Performance improvements of “for … of” loops
• Performance improvements of various operations• Iteration over container of indefinite components• Ability to suppress container and tampering checks
for E of My_Vector loop …end loop;
pragma Suppress (Tampering_Checks);
New Constructs
• pragma Ignore_PragmaTo ease porting legacy code
• Restriction No_Use_Of_EntityTo easily detect fine grained API calls
• Type_Invariant’Class on interface types
• CPU_Set implemented– More flexible use of processors
pragma Ignore_Pragma (Global);
pragma Restrictions (No_Use_Of_Entity => Ada.Text_IO.Put);
Code Generation
• SSE floating-point extensions on x86 by defaultMore reliable fpt results, better performance
• Debug info using standard DWARF• New runtime for setjmp/longjmp exceptions• Integration of libsanitizer on Linux
Detection of invalid memory access and double deallocation
• Simplified handling of simple controlled types
Libraries• Most libraries (gnatcoll, aws, polyorb, xmlada, …) are now
installed via gprinstall• AWS
– Many improvements in support for SOAP/WSDL– URI pattern support for WebSocket registry– Certificate passphrase support
Libraries• Florist: support for shared libraries• GNATcoll
– Improved GNATCOLL.Memory (double deallocation detection, detect invalid memory access, memory usage, …)
– More flexible API and better memory management in refcounting packages
Tools• Support for Target and Runtime project attributes in most tools• Support for unused code removal under Windows (--gc-sections)• Upgrade to GDB 7.10
– Python scripting improvements– Ability to embed Python scripts in the executable and have
them automatically loaded.
Generation of C headers• From simple Ada specs to C headers• Complement (reverse) of –fdump-ada-spec
package Pack is
type T is record X : Integer; Y : Integer; end record;
procedure Proc (Param : T);
end Pack;
#include “standard.h”
#ifndef PACK_ADS#define PACK_ADStypedef struct _pack__t { integer x; integer y;} pack__t;
extern void pack__proc(const pack__t param);
#endif
GPRbuild and libgpr
• GPR API (libgpr): new basis/replacement for GNATCOLL.Projects
Provide easy to use API for parsing and modifying project files
• New tools gprls and gprname
Multi-language project-aware equivalents of gnatls and gnatname
GPS
• New C & C++ code intelligence engine based on libclang
Code completion,
Navigation,
Block folding
• HiDPI monitors support
• Better jobs control
• Improved performance
GPS
Multiple Color Themes
GNATbench
Support for
• Eclipse Mars
• Windows 64-bit
• Workbench 4
• VxWorks 653 3.0
GNATdashboard
• Aggregate data from all GNAT Pro tools using a common format
• Feed data to existing dashboard tools
GNATdashboard
GNATmetric GNATcheck GNATcoverage CodePeerSPARKGNATstack
GNATdashboard
GNATmetric GNATcheck GNATcoverage CodePeerSPARKGNATstack
SonarQube 5
SQUORE
QGen
Qualifiable code generator and verifier for Simulink
QGen
• Support of Stateflow
• Matlab 2015a/b
• Improvements of generated code
• Optimization of code for switch blocks
• Better performances both in memory usage and execution time
• Factorization of code for reference models and model libraries
What’s Next (2016-2017)?
1.2.0w
Unified product version3.9.0w
6.3.0w
7.5.0w
3.2.0w1.9w
3.4.0w
2.11.0w
1.5.0w
1.7.0w
1.9.0w
2.4.0w
2.13.0w2.2.0
w
17.0.0w
4.9.0w
1.4.0w
17.0w
Release Schedule
November: Preview release Nov 2015: 7.4.0
February: Major release Feb 2016: 7.4.1
July: Corrective release July 2016: 7.4.2
Nov 2016: 17.0
Feb 2017: 17.1
July 2017: 17.2
Nov 2017: 18.0
…
AdaCore and GitHub
https://github.comA source hosting web serviceModeled for social coding
De facto standard for public source hosting service and community management
AdaCore and GitHub• Some sources and repositories available from
libre.adacore.com• Other repositories from forge.open-do.org• In 2016, AdaCore will gradually make repositories available via
GitHub
• For example: repository for libgpr and gpr tools (gprbuild, …)
New library: libadalang
• To develop Ada analysis tools
• Created from scratch– Modern and easy to use API (Ada and Python)– High level queries (e.g. find all references, call tree)– Easy to deploy (no dependency on GNAT)– Works on incorrect code (so, no legality checking)– Incremental analysis
New library: libadalang
• Initially used as new source navigation and code completion
engine in IDEs
• New tools and rewrite of existing ones (e.g. gnatpp)
• Will also be available to everyone
What about ASIS?
• Provides similar capabilities, using an older, well established API
• Continue supporting ASIS on a stabilized branch in the long term
– Support
– Bug fixes
– Independence from GNAT version
• No new major development on ASIS (e.g. no support for Ada 2018)
• 2016: libadalang available on GitHub
• Q3 2016: IDEs and GNATpp 17.0w using libadalang
• Feb 2017: IDEs and GNATpp 17.1 using libadalang
• Feb 2018: libadalang part of GNAT Pro 18.1
Libadalang Roadmap
Customer Survey
• We need your input on how we are doing and whether our
products and services (support, consulting, …) answer your
needs
• A customer survey campaign will start November 2015