36
GNAT Pro Roadmap Arnaud Charlet

AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Embed Size (px)

Citation preview

Page 1: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GNAT Pro Roadmap

Arnaud Charlet

Page 2: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GNAT Pro 17 overview

• 51 platforms (46 cross, 5 native)• Support for Ada 83, 95, 2005, 2012, SPARK 2014• Including Ada 2012 COR. 1:2016

• Based on GCC 6 & GDB 7.10

Page 3: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

1.2.1

Unified product version3.9.1

6.3.1

7.5.1

3.2.11.9

3.4.1

2.11.1

1.5.1

1.7.1

1.9.1

2.4.1

2.13.12.2.1

16.0.1

4.9.1

1.4.1

17.1

Page 4: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Release Schedule

October: Preview release Oct 2016: 17.0

February: Major release Feb 2017: 17.1

July: Corrective release July 2017: 17.2

Oct 2017: 18.0

Feb 2018: 18.1

July 2018: 18.2

Page 5: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

New Ports

• Aarch64-ios (ipad)• ARM PikeOS (linux and windows hosts)• ARM Linux (Hard Float ABI)• Generic PowerPC Linux

Page 6: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

3 states of Product Support

• Fully Supported: active development, one major release and one corrective release every year, premium support, bug fixes, wavefronts.

• Long Term Support (LTS): no new features, one corrective release every year, everything else included: premium support, bug fixes, wavefronts.

• Baselined: no new releases, no wavefronts, workarounds and advice on the use of the (frozen) technology.

Page 7: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Ports on 7.4 Long Term Support

• Solaris native compilers (sparc 32 & 64 bits, x86)• Solaris hosted VxWorks 6 compilers (e500v2, x86, ppc)• AIX

Page 8: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Improved Code Generation

• Support for Intel AVX 512 instruction sets, for variants of ARM Cortex As, ...)

• Improved code optimization• Fewer Adjust/Finalize calls during object initialization• Fewer redundant checks (e.g. on type conversion)• Various packed array improvements• Reduced stack and secondary stack usage

Page 9: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Binder and Linker Improvements

• Improved elaboration order algorithm• User-defined constraints on elaboration order• Support for gold linker on Linux native• Alternate linker, usually faster

Page 10: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

C/C++

• Support for C++11, C++14• Partial support for C++17• Default mode for C is now -std=gnu11 (was -std=gnu89)• Default mode for C++ is now -std=gnu++14 (was -

std=gnu++98)• Improvements in the diagnostics machinery (more

precise locations, offering suggestions, extra command line controls, ...)

• scalar_storage_order attribute for big/little endian handling in C

Page 11: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

VxWorks Platforms

• Improved module load speed in debugger• ACATS certificates on all VxWorks 6 platforms• VxWorks 7 supported on• ARM• PowerPC 32bits (64bits under development)• e500v2• x86_64

Page 12: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

PikeOS

• Ravenscar-sfp runtime now available

Page 13: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Bare Metal Platforms

• GNAT Extended Ravenscar Profile• Multiple protected entries in protected objects• Protected entry queuing• Relative delay statements• Relaxed protected entry barrier content

• ARM: Easier runtime customization• Leon/Leon3• SMP support (leon3 only)• Hardware user initialization

Page 14: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Native Platforms

• AWS now included in GNAT Pro subscription• XMLAda, GNATcoll and AWS come precompiled with

GNAT Pro package

Page 15: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

Debugger

• Exception message now displayed by debugger when stopping on an exception

• Task switching support when debugging from a core file• New --readnever GDB command-line option, disabling

the load of debugging information.

Page 16: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPRbuild – Multipurpose Builder

• --build-script switch to generate standalone build script that allows repeating the build in a controlled environment.

• Default output redesigned to improve usability

$ gprbuild -PprjCompile

[Ada] main.adb[Ada] p.ads

Bind[gprbind] main.bexch[Ada] main.ali

Link[link] main.adb

Page 17: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPRbuild

• Improved handling of configurable runtimes• Support for response files during compilation• Enhanced support for shared libraries• Fully standalone libs supported on all linux

platforms (aka encapsulated libs)• New library kind static-pic• Exports from library can be limited to only symbols

in its interface• Distributed builds: numerous stability and usability

improvements

Page 18: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPRbuild

• gnatmake –Pproject now calls gprbuild• gprinstall allows to install separately executables and

associated debug information• gprls can display a closure of a main

Page 19: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GNATtest – Unit Testing Framework

• Improved support for stubbing• Generation of stubs for subprograms in private part• Generation of stubs for parent packages• Ability to specify unit exclusion in --stub mode

• Generation of one test driver per unit• Improved GNATcoverage integration

Page 20: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GNATcoverage – Qualified Coverage

• Support for arm-elf & native x86-windows finalized• Improved object coverage on all architectures• Support for incremental coverage analysis• Allow consolidation from intermediate results• Allow accumulation of new coverage info within a

common intermediate results file.• Support for incidental and stub coverage confinement• When unit A uses unit X, let users ignore what was

covered in unit X during tests dedicated to unit A

Page 21: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

AWS – Ada Web Server

• Enhanced support for document style SOAP messages, especially in ada2wsdl.

• Support for HTTP DELETE and PUT commands for client code

Page 22: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective

Page 23: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
Page 24: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view

Page 25: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view• Redesigned Breakpoints view

Page 26: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view• Redesigned Breakpoints view• Set breakpoints before starting the debugger

Page 27: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap
Page 28: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view• Redesigned Breakpoints view• Set breakpoints before starting the debugger• Improved call stack view

Page 29: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view• Redesigned Breakpoints view• Set breakpoints before starting the debugger• Improved call stack view• Enhanced python scripting

Page 30: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS - GNAT Pro IDE

• Improved debugger support• New default perspective• Variables Tree view• Redesigned Breakpoints view• Set breakpoints before starting the debugger• Improved call stack view• Enhanced python scripting• Improved support for embedded debugging

• OpenOCD support for flash/debug boards

Page 31: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS

• Revamp bookmarks: groups of bookmarks, drag-and-drop, bookmark notes,...• New Preferences dialog, including Key Shortcuts and

Plug-ins, as well as help messages• Menu bar for floating windows• Performance improvements (project view,

search&replace, messages load)

Page 32: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GPS

• GNAThub integration• CodePeer integration improvements

§ Faster loading of messages§ More info when reviewing messages§ Multi-message review

• Qgen integration (Visualize model, Qgen Debugger)

Page 33: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

GNATbench

• Eclipse Neon (4.6.x) support• VxWorks 653 3.1 support• Ada template code assist• AJIS examples integration

Page 34: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

CodePeer

• Incremental analysis (“persistent annotations”)§ Use CodePeer interactively (faster)§ Analyze large code bases faster or more precisely

• “No False Positive" mode§ Very few wrong messages§ Some potential errors missed

• Improved precision and new messages§ Loop unrolling§ Improved handling of static array bounds§ Improved analysis of unchecked conversions, access checks,

test always true§ Global objects used in subprograms displayed in annotations

Page 35: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro Roadmap

CodePeer

• User Interface§ Review multiple messages at once from GPS§ More info when reviewing messages§ More powerful and easier to use handling of baseline runs§ Ability to exclude complete source directories from analysis§ Faster loading of messages

• Improved support for non GNAT compilers§ Support for arbitrary (e.g. 24bit) shift intrinsic § Support for null as a System.Address value

Page 36: AdaCore Paris Tech Day 2016: Arnaud Chalet - GNAT Pro 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 2016.