tech days 2015: adacore roadmap

Post on 21-Jan-2017

397 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related