tech days 2015: adacore roadmap

33
Product Roadmap Arnaud Charlet October 1 st 2015

Upload: adacore

Post on 21-Jan-2017

397 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Tech Days 2015: AdaCore Roadmap

Product Roadmap

Arnaud CharletOctober 1st 2015

Page 2: Tech Days 2015: AdaCore Roadmap

Release Schedule

November: Preview release

February: Major release

July: Corrective release

Page 3: Tech Days 2015: AdaCore Roadmap

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

Page 4: Tech Days 2015: AdaCore Roadmap

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

Page 5: Tech Days 2015: AdaCore Roadmap

New Ports• VxWorks 7• VxWorks 653mc (aka 3.0)• ARM PikeOS• PowerPC PikeOS• Generic e500v2 Linux• Windows 10

Page 6: Tech Days 2015: AdaCore Roadmap

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

Page 7: Tech Days 2015: AdaCore Roadmap

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)

Page 8: Tech Days 2015: AdaCore Roadmap

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);

Page 9: Tech Days 2015: AdaCore Roadmap

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);

Page 10: Tech Days 2015: AdaCore Roadmap

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

Page 11: Tech Days 2015: AdaCore Roadmap

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

Page 12: Tech Days 2015: AdaCore Roadmap

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

Page 13: Tech Days 2015: AdaCore Roadmap

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.

Page 14: Tech Days 2015: AdaCore Roadmap

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

Page 15: Tech Days 2015: AdaCore Roadmap

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

Page 16: Tech Days 2015: AdaCore Roadmap

GPS

• New C & C++ code intelligence engine based on libclang

Code completion,

Navigation,

Block folding

• HiDPI monitors support

• Better jobs control

• Improved performance

Page 17: Tech Days 2015: AdaCore Roadmap

GPS

Multiple Color Themes

Page 18: Tech Days 2015: AdaCore Roadmap

GNATbench

Support for

• Eclipse Mars

• Windows 64-bit

• Workbench 4

• VxWorks 653 3.0

Page 19: Tech Days 2015: AdaCore Roadmap

GNATdashboard

• Aggregate data from all GNAT Pro tools using a common format

• Feed data to existing dashboard tools

Page 20: Tech Days 2015: AdaCore Roadmap

GNATdashboard

GNATmetric GNATcheck GNATcoverage CodePeerSPARKGNATstack

Page 21: Tech Days 2015: AdaCore Roadmap

GNATdashboard

GNATmetric GNATcheck GNATcoverage CodePeerSPARKGNATstack

SonarQube 5

SQUORE

Page 22: Tech Days 2015: AdaCore Roadmap

QGen

Qualifiable code generator and verifier for Simulink

Page 23: Tech Days 2015: AdaCore Roadmap

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

Page 24: Tech Days 2015: AdaCore Roadmap

What’s Next (2016-2017)?

Page 25: Tech Days 2015: AdaCore Roadmap

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

Page 26: Tech Days 2015: AdaCore Roadmap

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

Page 27: Tech Days 2015: AdaCore Roadmap

AdaCore and GitHub

https://github.comA source hosting web serviceModeled for social coding

De facto standard for public source hosting service and community management

Page 28: Tech Days 2015: AdaCore Roadmap

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, …)

Page 29: Tech Days 2015: AdaCore Roadmap

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

Page 30: Tech Days 2015: AdaCore Roadmap

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

Page 31: Tech Days 2015: AdaCore Roadmap

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)

Page 32: Tech Days 2015: AdaCore Roadmap

• 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

Page 33: Tech Days 2015: AdaCore 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