ACCU Conference 2016

Products, the Universe and Everything from Products, the Universe and Everything

In late April we exhibited at the ACCU Conference (#accuconf), which in many ways is our conference home. The first time we went was all the way back in 2007, and believe it or not we've not missed a single year since then.

The conference is a great event filled with amazing people, and it's a privilege to have been able to be a part of it for the past decade.

Mouse InvadersMouse Invaders.

We normally attend the sessions as delegates and also run an exhibition stand (which makes for some rather hectic juggling!), but this year was a little different as our founder Anna also presented the closing keynote "Comfort Zone" (which she describes as being about "Puppies, Spiders, User Interface Cheese-Moving and the Neuroscience of Anger"....).

As ever, it was an interesting (and quite exhausting) week...but more than that, it was a week when the people who make ACCU what it is stood up and really showed what a truly amazing group of people they are. I'll talk about that specifically in a follow-up post shortly, but suffice it to say that we came away understanding just how lucky we are to have found this particular organisation...

Of course if you went, you'll know all this already. If you didn't, here's a handful of photos to give you an idea what you missed this time...

The Bristol suite at #accuconf#accuconf keynotes were presented in the Bristol suite of the Marriot. Pete Goodliffe presenting "The Codealow - a developer's bedtime story"Pete Goodliffe presenting "The Codealow - a developer's bedtime story" during the Lightning Talks on Wednesday evening. Don't panic - it's just the conference dinner!Don't panic - it's just the conference dinner! "Set the controls for the heart of the pudding"Set the controls for the heart of the pudding. Our founder Anna presented the closing keynoteOK. Now would be the time for Anna to panic... Anna-Jayne Metcalfe from Riverblade presenting the closing keynote "Comfort Zone". Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone" Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone" Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone" Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone" Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone" Comfort ZoneAnna-Jayne Metcalfe of Riverblade presenting the ACCU 2016 closing keynote "Comfort Zone"

If you'd like to see the keynote, there's a video of it on YouTube and the slides are here.

ACCU Conference 2016

Products, the Universe and Everything from Products, the Universe and Everything

In late April we exhibited at the ACCU Conference (#accuconf), which in many ways is our conference home. The first time we went was all the way back in 2007, and believe it or not we've not missed a year since!

Invaders...from Bournemouth

Invaders...from Bournemouth

We normally attend the sessions as delegates and also run an exhibition stand (which makes for some rather hectic juggling!), but this year was a little different as our founder Anna also presented the closing keynote "Comfort Zone" (which she describes as being about "Puppies, Spiders, User Interface Cheese-Moving and the Neuroscience of Anger"....).

Anna-Jayne Metcalfe presenting the closing keynote 'Comfort Zone'

Anna-Jayne Metcalfe from Riverblade presenting the closing keynote "Comfort Zone"

As ever, it was an interesting (and quite exhausting) week...but more than that, it was a week when the people who make ACCU what it is stood up and really showed what a truly amazing group of people they are. I'll talk about that specifically in a follow-up post shortly, but suffice it to say that we came away understanding just how lucky we are to have found this particular organisation...

Of course if you went, you'll know all this already. If you didn't, here's a handful of photos to give you an idea what you missed this time...

The Bristol suite at #accuconf

The Bristol suite at #accuconf

The Bristol suite at #accuconf.

This is where the keynotes take place on Wednesday, Thursday and Friday morning...and at the close of the conference on Saturday afternoon


Pete Goodliffe presenting 'The Codealow - a developer's bedtime story' on Wednesday evening

Pete Goodliffe presenting "The Codealow - a developer's bedtime story" during the Lightning Talks on Wednesday evening


Don't panic - it's just the conference dinner!

Don't panic - it's just the conference dinner!


Set the controls for the heart of the pudding...

Set the controls for the heart of the pudding...


OK. *Now* would be  the time to panic...

OK. Now would be the time to panic...


Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Anna-Jayne Metcalfe presenting the ACCU 2016 closing keynote "Comfort Zone"


If you'd like to see the keynote, there's a video of it on YouTube and the slides are here.

ACCU Conference 2016

Products, the Universe and Everything from Products, the Universe and Everything

In late April we exhibited at the ACCU Conference (#accuconf), which in many ways is our conference home. The first time we went was all the way back in 2007, and believe it or not we've not missed a year since!

Invaders...from Bournemouth

Invaders...from Bournemouth

We normally attend the sessions as delegates and also run an exhibition stand (which makes for some rather hectic juggling!), but this year was a little different as our founder Anna also presented the closing keynote "Comfort Zone" (which she describes as being about "Puppies, Spiders, User Interface Cheese-Moving and the Neuroscience of Anger"....).

Anna-Jayne Metcalfe presenting the closing keynote 'Comfort Zone'

Anna-Jayne Metcalfe from Riverblade presenting the closing keynote "Comfort Zone"

As ever, it was an interesting (and quite exhausting) week...but more than that, it was a week when the people who make ACCU what it is stood up and really showed what a truly amazing group of people they are. I'll talk about that specifically in a follow-up post shortly, but suffice it to say that we came away understanding just how lucky we are to have found this particular organisation...

Of course if you went, you'll know all this already. If you didn't, here's a handful of photos to give you an idea what you missed this time...

The Bristol suite at #accuconf

The Bristol suite at #accuconf

The Bristol suite at #accuconf.

This is where the keynotes take place on Wednesday, Thursday and Friday morning...and at the close of the conference on Saturday afternoon


Pete Goodliffe presenting 'The Codealow - a developer's bedtime story' on Wednesday evening

Pete Goodliffe presenting "The Codealow - a developer's bedtime story" during the Lightning Talks on Wednesday evening


Don't panic - it's just the conference dinner!

Don't panic - it's just the conference dinner!


Set the controls for the heart of the pudding...

Set the controls for the heart of the pudding...


OK. *Now* would be  the time to panic...

OK. Now would be the time to panic...


Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Anna-Jayne Metcalfe presenting the ACCU 2016 closing keynote "Comfort Zone"


If you'd like to see the keynote, there's a video of it on YouTube and the slides are here.

ACCU Conference 2016

Products, the Universe and Everything from Products, the Universe and Everything

In late April we exhibited at the ACCU Conference (#accuconf), which in many ways is our conference home. The first time we went was all the way back in 2007, and believe it or not we've not missed a year since!
Invaders...from Bournemouth Invaders...from Bournemouth
We normally attend the sessions as delegates and also run an exhibition stand (which makes for some rather hectic juggling!), but this year was a little different as our founder Anna also presented the closing keynote "Comfort Zone" (which she describes as being about "Puppies, Spiders, User Interface Cheese-Moving and the Neuroscience of Anger"....).
Anna-Jayne Metcalfe presenting the closing keynote 'Comfort Zone' Anna-Jayne Metcalfe from Riverblade presenting the closing keynote "Comfort Zone"
As ever, it was an interesting (and quite exhausting) week...but more than that, it was a week when the people who make ACCU what it is stood up and really showed what a truly amazing group of people they are. I'll talk about that specifically in a follow-up post shortly, but suffice it to say that we came away understanding just how lucky we are to have found this particular organisation... Of course if you went, you'll know all this already. If you didn't, here's a handful of photos to give you an idea what you missed this time...
The Bristol suite at #accuconf

The Bristol suite at #accuconf The Bristol suite at #accuconf.

This is where the keynotes take place on Wednesday, Thursday and Friday morning...and at the close of the conference on Saturday afternoon

Pete Goodliffe presenting 'The Codealow - a developer's bedtime story' on Wednesday evening Pete Goodliffe presenting "The Codealow - a developer's bedtime story" during the Lightning Talks on Wednesday evening
Don't panic - it's just the conference dinner! Don't panic - it's just the conference dinner!
Set the controls for the heart of the pudding... Set the controls for the heart of the pudding...
OK. *Now* would be  the time to panic... OK. Now would be the time to panic...
Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone

Comfort Zone
Anna-Jayne Metcalfe presenting the ACCU 2016 closing keynote "Comfort Zone"
If you'd like to see the keynote, there's a video of it on YouTube and the slides are here.

PC-lint Plus is coming – and with it, full support for C++ 11 and C++ 14

Products, the Universe and Everything from Products, the Universe and Everything

Gimpel have just announced a beta of PC-lint Plus - a new product which will sit alongside PC-lint. To understand the (rather complex, I'm afraid) background and the background to why a beta of PC-lint Plus has been announced rather than one for the long awaited 9.00m patch, please keep reading... It is no secret that PC-lint 9.0 struggles with some C++ 11/14 code - and especially any code making use of C++ 11 variadic templates. The result is errors - and nasty, hard to work around ones at that. Under Windows, this is particularly noticable when analysing projects written for Visual Studio 2013 and 2015, which both use variadic templates in their system headers (Visual Studio 2012 and earlier did not). A glance at the C++ 11 support page on the Gimpel website illustrates this rather well, with the following C++ 11 features shown as not yet being supported as of PC-lint 9.00L:
  • Allowing move constructors to throw [noexcept] (N3050)
  • Variadic templates (N2242)
  • Extending variadic template template parameters (N2555)
  • Initializer lists (N2672)
  • Generalized attributes (N2761)
  • Generalized constant expressions (N2235)
  • Inheriting constructors(N2540)
  • Unicode string literals (N2442)
  • Raw string literals (N2442)
  • Universal character names in literals (N2170)
  • User-defined literals (N2765)
  • Inline namespaces (N2535)
  • Unrestricted unions (N2544)
  • Minimal support for garbage collection and reachability-based leak detection (N2670)
  • Extended integral types (N1988)
That's just of course from C++ 11, and with C++ 14 also out and C++ 17 (which like C++ 11 promises major changes to the language) is just around the corner, keeping up has been getting more and more difficult. As Jim Gimpel said to us recently:
Unfortunately, keeping up with the evolving C++ standards which seemed to know no bounds, became more and more difficult as Gimpel Software did have bounds.
It is worth remembering that PC-lint was first introduced in 1985, so presumably the C++ front end in 9.00L is a direct descendent of that in the original product rather than one of the standard C++ front ends (EDG, Clang, GCC etc.) our industry has effectively settled upon since. As a result, every change in the language no doubt requires comparable changes in the PC-lint front end. Given how much C++ has evolved recently (and continues to evolve, looking forward to C++ 17 and beyond), that's potentially a huge ongoing task. Like many others, for some time we have been asking Gimpel for an estimate of roughly when an update addressing the remaining C++ 11 issues were realistically likely to become available. Although throughout last year we thought that support for variadic templates issue (the missing feature which seemed to be catching most people out) would be resolved with 9.00L in the Autumn sadly it was not to be, and by the start of this year it became obvious to us that we would have to put into place a workaround to allow customers to analyse Visual Studio 2013 and 2015 projects. Hence the system headers compatibility thunk described in Visual Studio 2013, PC-lint and C++ 11 Variadic Templates and available in Visual Lint 4.5.9.239 onwards. Around the same time, Gimpel also updated us on their future plans, and how they intended to offer complete C++ 11/14 support. Although we couldn't talk about that publicly at the time, now that they have announced the beta we are free to do so. The bottom line is that rather than continue to try to keep the existing PC-lint front end up to date with changes in the C++ Standard, Gimpel have decided to develop a spin-off product using the industry standard Clang front-end. The existing PC-lint 9.0 and Flexelint 9.0 products will continue to be supported for the foreseeable future. This is of course a major development, and in consequence is one that couldn't have been released as a PC-lint 9.0 patch anyway. As the Clang source requires a modern C++ compiler to compile it, this makes distributing PC-lint Plus as obfuscated source (as Flexelint currently is) impractical as many compilers for non-x86 platforms would not be able to compile it. The move to Clang also means that in future PC-lint Plus will be able to keep up with changes in the C++ standard as fast as new versions of Clang can be integrated. So, if (for example) the C++ Module System proposals (N4465/N4466) (which allow imports of compiled units to replace #includes of header files, thus drastically reducing build times) make it into C++ 17, PC-lint will be able to keep up without another major hiatus. For Windows, both 32 bit (pclp32.exe) and 64 bit (pclp64.exe) binaries will be provided along with full support for C++ 11/14, Visual Studio 2013 and 2015. For Linux, a pre-built x86 binary will be available which should simplify things for developers on that platform (and potentially allow the pricing of the Linux version of PC-lint to become more competitive with the Windows variant). For non-x86 platforms etc., Flexelint will continue to be available in its current form. The new product supports a considerable number of new messages (far too many to list!). In addition, obsolete options such as +linebuf and +macros have been removed. As far as our own products are concerned, Visual Lint 5.0.6.254 onwards are aware of PC-lint Plus (we've actually been testing with alpha builds since the summer) and should work with beta versions. Support for 64 bit builds of PC-lint will become available in the New Year, and now that the beta has been announced we will be adding documentation for the new messages to the message database installed with the product as information becomes available. Overall this is a huge step forward, but we are aware that it may come as a shock to many who were expecting PC-lint 9.00m. As soon as we know the details of Gimpel's PC-lint 9.0 to PC-lint Plus upgrade policy rest assured we will be talking about it. In the meantime, please do join the beta programme and help test it! Gimpel's beta announcement can be found in the blogpost Upcoming Support for C++14/VS2015.

PC-lint Plus is coming – and with it, full support for C++ 11 and C++ 14

Products, the Universe and Everything from Products, the Universe and Everything

Gimpel have just announced a beta of PC-lint Plus - a new product which will sit alongside PC-lint. To understand the (rather complex, I'm afraid) background and the background to why a beta of PC-lint Plus has been announced rather than one for the long awaited 9.00m patch, please keep reading...

It is no secret that PC-lint 9.0 struggles with some C++ 11/14 code - and especially any code making use of C++ 11 variadic templates. The result is errors - and nasty, hard to work around ones at that.

Under Windows, this is particularly noticeable when analysing projects written for Visual Studio 2013 and 2015, which both use variadic templates in their system headers (Visual Studio 2012 and earlier did not).

A glance at the PC-lint 9.0 C++ 11 support page on the Gimpel website illustrates this rather well, with the following C++ 11 features shown as not yet being supported as of PC-lint 9.00L:

  • Allowing move constructors to throw [noexcept] (N3050)
  • Variadic templates (N2242)
  • Extending variadic template template parameters (N2555)
  • Initializer lists (N2672)
  • Generalized attributes (N2761)
  • Generalized constant expressions (N2235)
  • Inheriting constructors(N2540)
  • Unicode string literals (N2442)
  • Raw string literals (N2442)
  • Universal character names in literals (N2170)
  • User-defined literals (N2765)
  • Inline namespaces (N2535)
  • Unrestricted unions (N2544)
  • Minimal support for garbage collection and reachability-based leak detection (N2670)
  • Extended integral types (N1988)

That's just of course from C++ 11, and with C++ 14 also out and C++ 17 (which like C++ 11 promises major changes to the language) is just around the corner, keeping up has been getting more and more difficult. As Jim Gimpel said to us recently:

Unfortunately, keeping up with the evolving C++ standards which seemed to know no bounds, became more and more difficult as Gimpel Software did have bounds.

It is worth remembering that PC-lint was first introduced in 1985, so presumably the C++ front end in 9.00L is a direct descendent of that in the original product rather than one of the standard C++ front ends (EDG, Clang, GCC etc.) our industry has effectively settled upon since. As a result, every change in the language no doubt requires comparable changes in the PC-lint front end. Given how much C++ has evolved recently (and continues to evolve, looking forward to C++ 17 and beyond), that's potentially a huge ongoing task.

Like many others, for some time we have been asking Gimpel for an estimate of roughly when an update addressing the remaining C++ 11 issues were realistically likely to become available. Although throughout last year we thought that support for variadic templates issue (the missing feature which seemed to be catching most people out) would be resolved with 9.00L in the Autumn sadly it was not to be, and by the start of this year it became obvious to us that we would have to put into place a workaround to allow customers to analyse Visual Studio 2013 and 2015 projects. Hence the system headers compatibility thunk described in the blogpost Visual Studio 2013, PC-lint and C++ 11 Variadic Templates which became available in Visual Lint 4.5.9.239 onwards.

Around the same time, Gimpel also updated us on their future plans, and how they intended to offer complete C++ 11/14 support. Although we couldn't talk about that publicly at the time, now that they have announced the beta we are free to do so.

The bottom line is that rather than continue to try to keep the existing PC-lint front end up to date with changes in the C++ Standard, Gimpel have decided to develop a spin-off product using the industry standard Clang front-end. The existing PC-lint 9.0 and Flexelint 9.0 products will continue to be supported for the foreseeable future.

This is of course a major development, and in consequence is one that couldn't have been released as a PC-lint 9.0 patch anyway. As the Clang source requires a modern C++ compiler to compile it, this makes distributing PC-lint Plus as obfuscated source (as Flexelint currently is) impractical as many compilers for non-x86 platforms would not be able to compile it.

The move to Clang also means that in future PC-lint Plus will be able to keep up with changes in the C++ standard as fast as new versions of Clang can be integrated. So, if (for example) the C++ Module System proposals (N4465/N4466) (which allow imports of compiled units to replace #includes of header files, thus drastically reducing build times) make it into C++ 17, PC-lint will be able to keep up without another major hiatus.

For Windows, both 32 bit (pclp32.exe) and 64 bit (pclp64.exe) binaries will be provided along with full support for C++ 11/14, Visual Studio 2013 and 2015. For Linux, a pre-built x86 binary will be available which should simplify things for developers on that platform (and potentially allow the pricing of the Linux version of PC-lint to become more competitive with the Windows variant). For non-x86 platforms etc., Flexelint will continue to be available in its current form.

The new product supports a considerable number of new messages (far too many to list!). In addition, obsolete options such as +linebuf and +macros have been removed.

As far as our own products are concerned, Visual Lint 5.0.6.254 onwards are aware of PC-lint Plus (we've actually been testing with alpha builds since the summer) and should work with beta versions. Support for 64 bit builds of PC-lint will become available in the New Year, and now that the beta has been announced we will be adding documentation for the new messages to the message database installed with the product as information becomes available.

Overall this is a huge step forward, but we are aware that it may come as a shock to many who were expecting PC-lint 9.00m. As soon as we know the details of Gimpel's PC-lint 9.0 to PC-lint Plus upgrade policy rest assured we will be talking about it. In the meantime, please do join the beta programme and help test it!

Gimpel's beta announcement can be found in their blogpost Upcoming Support for C++14/VS2015.

PC-lint Plus is coming – and with it, full support for C++ 11 and C++ 14

Products, the Universe and Everything from Products, the Universe and Everything

Gimpel have just announced a beta of PC-lint Plus - a new product which will sit alongside PC-lint. To understand the (rather complex, I'm afraid) background and the background to why a beta of PC-lint Plus has been announced rather than one for the long awaited 9.00m patch, please keep reading...

It is no secret that PC-lint 9.0 struggles with some C++ 11/14 code - and especially any code making use of C++ 11 variadic templates. The result is errors - and nasty, hard to work around ones at that.

Under Windows, this is particularly noticable when analysing projects written for Visual Studio 2013 and 2015, which both use variadic templates in their system headers (Visual Studio 2012 and earlier did not).

A glance at the C++ 11 support page on the Gimpel website illustrates this rather well, with the following C++ 11 features shown as not yet being supported as of PC-lint 9.00L:

  • Allowing move constructors to throw [noexcept] (N3050)
  • Variadic templates (N2242)
  • Extending variadic template template parameters (N2555)
  • Initializer lists (N2672)
  • Generalized attributes (N2761)
  • Generalized constant expressions (N2235)
  • Inheriting constructors(N2540)
  • Unicode string literals (N2442)
  • Raw string literals (N2442)
  • Universal character names in literals (N2170)
  • User-defined literals (N2765)
  • Inline namespaces (N2535)
  • Unrestricted unions (N2544)
  • Minimal support for garbage collection and reachability-based leak detection (N2670)
  • Extended integral types (N1988)

That's just of course from C++ 11, and with C++ 14 also out and C++ 17 (which like C++ 11 promises major changes to the language) is just around the corner, keeping up has been getting more and more difficult. As Jim Gimpel said to us recently:

Unfortunately, keeping up with the evolving C++ standards which seemed to know no bounds, became more and more difficult as Gimpel Software did have bounds.

It is worth remembering that PC-lint was first introduced in 1985, so presumably the C++ front end in 9.00L is a direct descendent of that in the original product rather than one of the standard C++ front ends (EDG, Clang, GCC etc.) our industry has effectively settled upon since. As a result, every change in the language no doubt requires comparable changes in the PC-lint front end. Given how much C++ has evolved recently (and continues to evolve, looking forward to C++ 17 and beyond), that's potentially a huge ongoing task.

Like many others, for some time we have been asking Gimpel for an estimate of roughly when an update addressing the remaining C++ 11 issues were realistically likely to become available. Although throughout last year we thought that support for variadic templates issue (the missing feature which seemed to be catching most people out) would be resolved with 9.00L in the Autumn sadly it was not to be, and by the start of this year it became obvious to us that we would have to put into place a workaround to allow customers to analyse Visual Studio 2013 and 2015 projects. Hence the system headers compatibility thunk described in Visual Studio 2013, PC-lint and C++ 11 Variadic Templates and available in Visual Lint 4.5.9.239 onwards.

Around the same time, Gimpel also updated us on their future plans, and how they intended to offer complete C++ 11/14 support. Although we couldn't talk about that publicly at the time, now that they have announced the beta we are free to do so.

The bottom line is that rather than continue to try to keep the existing PC-lint front end up to date with changes in the C++ Standard, Gimpel have decided to develop a spin-off product using the industry standard Clang front-end. The existing PC-lint 9.0 and Flexelint 9.0 products will continue to be supported for the foreseeable future.

This is of course a major development, and in consequence is one that couldn't have been released as a PC-lint 9.0 patch anyway. As the Clang source requires a modern C++ compiler to compile it, this makes distributing PC-lint Plus as obfuscated source (as Flexelint currently is) impractical as many compilers for non-x86 platforms would not be able to compile it.

The move to Clang also means that in future PC-lint Plus will be able to keep up with changes in the C++ standard as fast as new versions of Clang can be integrated. So, if (for example) the C++ Module System proposals (N4465/N4466) (which allow imports of compiled units to replace #includes of header files, thus drastically reducing build times) make it into C++ 17, PC-lint will be able to keep up without another major hiatus.

For Windows, both 32 bit (pclp32.exe) and 64 bit (pclp64.exe) binaries will be provided along with full support for C++ 11/14, Visual Studio 2013 and 2015. For Linux, a pre-built x86 binary will be available which should simplify things for developers on that platform (and potentially allow the pricing of the Linux version of PC-lint to become more competitive with the Windows variant). For non-x86 platforms etc., Flexelint will continue to be available in its current form.

The new product supports a considerable number of new messages (far too many to list!). In addition, obsolete options such as +linebuf and +macros have been removed.

As far as our own products are concerned, Visual Lint 5.0.6.254 onwards are aware of PC-lint Plus (we've actually been testing with alpha builds since the summer) and should work with beta versions. Support for 64 bit builds of PC-lint will become available in the New Year, and now that the beta has been announced we will be adding documentation for the new messages to the message database installed with the product as information becomes available.

Overall this is a huge step forward, but we are aware that it may come as a shock to many who were expecting PC-lint 9.00m. As soon as we know the details of Gimpel's PC-lint 9.0 to PC-lint Plus upgrade policy rest assured we will be talking about it. In the meantime, please do join the beta programme and help test it!

Gimpel's beta announcement can be found in the blogpost Upcoming Support for C++14/VS2015.

PC-lint Plus is coming – and with it, full support for C++ 11 and C++ 14

Products, the Universe and Everything from Products, the Universe and Everything

Gimpel have just announced a beta of PC-lint Plus - a new product which will sit alongside PC-lint. To understand the (rather complex, I'm afraid) background and the background to why a beta of PC-lint Plus has been announced rather than one for the long awaited 9.00m patch, please keep reading...

It is no secret that PC-lint 9.0 struggles with some C++ 11/14 code - and especially any code making use of C++ 11 variadic templates. The result is errors - and nasty, hard to work around ones at that.

Under Windows, this is particularly noticable when analysing projects written for Visual Studio 2013 and 2015, which both use variadic templates in their system headers (Visual Studio 2012 and earlier did not).

A glance at the C++ 11 support page on the Gimpel website illustrates this rather well, with the following C++ 11 features shown as not yet being supported as of PC-lint 9.00L:

  • Allowing move constructors to throw [noexcept] (N3050)
  • Variadic templates (N2242)
  • Extending variadic template template parameters (N2555)
  • Initializer lists (N2672)
  • Generalized attributes (N2761)
  • Generalized constant expressions (N2235)
  • Inheriting constructors(N2540)
  • Unicode string literals (N2442)
  • Raw string literals (N2442)
  • Universal character names in literals (N2170)
  • User-defined literals (N2765)
  • Inline namespaces (N2535)
  • Unrestricted unions (N2544)
  • Minimal support for garbage collection and reachability-based leak detection (N2670)
  • Extended integral types (N1988)

That's just of course from C++ 11, and with C++ 14 also out and C++ 17 (which like C++ 11 promises major changes to the language) is just around the corner, keeping up has been getting more and more difficult. As Jim Gimpel said to us recently:

Unfortunately, keeping up with the evolving C++ standards which seemed to know no bounds, became more and more difficult as Gimpel Software did have bounds.

It is worth remembering that PC-lint was first introduced in 1985, so presumably the C++ front end in 9.00L is a direct descendent of that in the original product rather than one of the standard C++ front ends (EDG, Clang, GCC etc.) our industry has effectively settled upon since. As a result, every change in the language no doubt requires comparable changes in the PC-lint front end. Given how much C++ has evolved recently (and continues to evolve, looking forward to C++ 17 and beyond), that's potentially a huge ongoing task.

Like many others, for some time we have been asking Gimpel for an estimate of roughly when an update addressing the remaining C++ 11 issues were realistically likely to become available. Although throughout last year we thought that support for variadic templates issue (the missing feature which seemed to be catching most people out) would be resolved with 9.00L in the Autumn sadly it was not to be, and by the start of this year it became obvious to us that we would have to put into place a workaround to allow customers to analyse Visual Studio 2013 and 2015 projects. Hence the system headers compatibility thunk described in Visual Studio 2013, PC-lint and C++ 11 Variadic Templates and available in Visual Lint 4.5.9.239 onwards.

Around the same time, Gimpel also updated us on their future plans, and how they intended to offer complete C++ 11/14 support. Although we couldn't talk about that publicly at the time, now that they have announced the beta we are free to do so.

The bottom line is that rather than continue to try to keep the existing PC-lint front end up to date with changes in the C++ Standard, Gimpel have decided to develop a spin-off product using the industry standard Clang front-end. The existing PC-lint 9.0 and Flexelint 9.0 products will continue to be supported for the foreseeable future.

This is of course a major development, and in consequence is one that couldn't have been released as a PC-lint 9.0 patch anyway. As the Clang source requires a modern C++ compiler to compile it, this makes distributing PC-lint Plus as obfuscated source (as Flexelint currently is) impractical as many compilers for non-x86 platforms would not be able to compile it.

The move to Clang also means that in future PC-lint Plus will be able to keep up with changes in the C++ standard as fast as new versions of Clang can be integrated. So, if (for example) the C++ Module System proposals (N4465/N4466) (which allow imports of compiled units to replace #includes of header files, thus drastically reducing build times) make it into C++ 17, PC-lint will be able to keep up without another major hiatus.

For Windows, both 32 bit (pclp32.exe) and 64 bit (pclp64.exe) binaries will be provided along with full support for C++ 11/14, Visual Studio 2013 and 2015. For Linux, a pre-built x86 binary will be available which should simplify things for developers on that platform (and potentially allow the pricing of the Linux version of PC-lint to become more competitive with the Windows variant). For non-x86 platforms etc., Flexelint will continue to be available in its current form.

The new product supports a considerable number of new messages (far too many to list!). In addition, obsolete options such as +linebuf and +macros have been removed.

As far as our own products are concerned, Visual Lint 5.0.6.254 onwards are aware of PC-lint Plus (we've actually been testing with alpha builds since the summer) and should work with beta versions. Support for 64 bit builds of PC-lint will become available in the New Year, and now that the beta has been announced we will be adding documentation for the new messages to the message database installed with the product as information becomes available.

Overall this is a huge step forward, but we are aware that it may come as a shock to many who were expecting PC-lint 9.00m. As soon as we know the details of Gimpel's PC-lint 9.0 to PC-lint Plus upgrade policy rest assured we will be talking about it. In the meantime, please do join the beta programme and help test it!

Gimpel's beta announcement can be found in the blogpost Upcoming Support for C++14/VS2015.

ResOrg 2.0.6.25 has been released

Products, the Universe and Everything from Products, the Universe and Everything

This is a maintenance update for ResOrg 2.0. The following changes are included:

  • Added support for Visual Studio 2015.
  • Added support for Windows 10.
  • Added a helpfile.
  • Removed support for Windows 2000.
  • ResOrgApp now declares itself as system DPI aware to reduce the likelyhood of DPI virtualization.
  • Icons used within the ResOrg displays now reflect the current system defined icon sizes rather than being hardcoded to 16x16, 32x32 etc.
  • Tweaked the layout of the AboutBox.

Download ResOrg 2.0.6.25

ResOrg 2.0.6.25 has been released

Products, the Universe and Everything from Products, the Universe and Everything

This is a maintenance update for ResOrg 2.0. The following changes are included:
  • Added support for Visual Studio 2015.
  • Added support for Windows 10.
  • Added a helpfile.
  • Removed support for Windows 2000.
  • ResOrgApp now declares itself as system DPI aware to reduce the likelyhood of DPI virtualization.
  • Icons used within the ResOrg displays now reflect the current system defined icon sizes rather than being hardcoded to 16x16, 32x32 etc.
  • Tweaked the layout of the AboutBox.
Download ResOrg 2.0.6.25