 |
Product History (most recent version first)
Version 2.3 series
Version
2.3b 17/Apr/2007:
More MISRA C2 work done as understanding of the limitations
of this new revision grows.
No substantial changes to the interface.
Version
2.3a 07/Feb/2005:
Only interface changes took place in this release. The
parsing engine was untouched.
Colour icons have been added to front page and the interface
cleaned up. An initial implementation of MISRA C2 was added.
Directories called CORE were removed automatically. This is
no longer done. The object information widget is now
resizable.
Version 2.2 series
Version 2.2i 18/Feb/2004:
Directory widget enhancements
to improve convenience. Reclassified several messages as Constraint violations.
Describe relationship between integer and floating conversions more comprehensively.
Modified the way the Auditor handles fatal errors when building a file collection.
1 defect fixed, (very long cycle unprotected NULL reference which fired for the first time recently).
Version 2.2h 15/Oct/2002:
Modified or enhanced
treatment of MISRA v1 rules 90, 94, and 95. Detection of some additional subtle
precedence failures. Sub-directories handled in the Auditor allowing complete trees
to be handle conveniently. 1 defect related to undeclared arrays fixed.
Version 2.2g 07/May/2002:
More work
on MISRA plus enhanced report options including various forms of line
count. Recognition of some C99 extensions added.
Version 2.2d 21/Dec/2001:
More work
on MISRA plus enhanced visualisation functions in the Inspector including
data-flow visualisation for individual objects. Some important GNU C
extensions now parsed correctly and tree calculations and display in
the Auditor enhanced. Additional help added. New metric displays correlating
system and component complexity.
Version 2.2c 31/Oct/2001:
More work
on MISRA plus a new animation in the Primer; function digraph visualisation
in the Inspector and our latest metrics research embodied in global
metrics analysis in the Auditor.
Version 2.2b 10/Sep/2001:
More work
on MISRA conformance on a number of CRs to accompany the recent extensive
activity by the MISRA committee in defining a standard MISRA conformance
suite. Oakwood Computing Associates are assisting in this venture.
Version 2.2a 02/Aug/2001:
Corrective
patch for compiler personality problem (CR 1257) plus more work on MISRA.
Version 2.2 15/Jul/2001:
A lot of
work inside the parsing engine with around 50 new messages plus the
release of the Auditor role.
Interface
-
MISRA
rule subsets page added to allow users of this widely-known safer
subset to check deviation procedures.
-
A
new tree widget in the Auditor allows analysis of used and unused
code inside calling trees.
-
Enhancements
to Auditor reporting.
-
Documentation
of compiler personality setup in Help.
Parsing engine
Version 2.1 series
Version 2.1c 12/Feb/2001:
There are
now four products each one enabled by an appropriate licence from the
master product as described above. A simple upgrade path exists between
them so the engineer can buy only what they need.
Interface
Parsing engine
Version 2.1 30/Nov/2000:
There are
now three products each one enabled by an appropriate licence from the
master product as described above.
Also
note that an important change has been made to the licensing. Previous
licences will not work with version 2.1 products. Registered users will
be informed of their new password.
Interface
-
The
interface has been upgrade to reflect the new product line.
-
There
is now a shortcut list under the File menu for opening projects
-
The
user-defined standard capability in SCT Inspector has been refined.
-
There
is a new message alias option which allows the toolset to issue
user-defined codes for its messages instead of its built-in codes.
This allows the output of the toolset to be compared with other
analysers for example when using diverse auditing techniques on
critical systems. It also allows the programmer to use codes they
are familiar with rather than learning a new set.
-
A number of
other perfective modifications have been added.
Parsing engine
Version 1.3 series
Version 1.3 27/July/2000:
Sorry for
the wait. A great deal of enhancement has been done on the toolset including
the new dynamic analyser option, available shortly as an add on.
Also
note that an important change has been made to the licensing. Version
1.2 licences will not work with version 1.3 products. Registered users
should be informed of their new password.
Interface
-
The
licence can now be upgraded with a reset licence button on the licence
page.
-
On
initial load, the toolset will ask for an optional compiler personality
file. This is part of an exercise to hide compiler non-standard
foibles from the user as well as we can. We will upload new files
from time to time to our site for users to download for specific
architectures. The compiler personality now appears under the Behaviour
menu.
-
Built
in KANJI converter for Japanese market which operates with EUC,
New JIS, NEC JIS, Old JIS and shift JIS. We owe a debt of thanks
to Ken Lunde at Adobe for making his technology available to us.
These appear under the Behaviour menu.
-
Added
keyboard accelerators for message up and down, quit and clear.
-
Option
to add current directory at top of list.
-
Added a new
SIGNPOST category to inspections. These highlight code features
which if wrong could crash a critical system. In essence the toolset
lays signposts for human inspectors to follow.
Parsing engine
-
50
new messages in the parsing engine associated with ISO C limits,
some new fault modes, more detailed analysis in the pre-processor
and the new SIGNPOST facility.
-
Implementation
or clarification of MISRA messages rules 18 , 43, 49, 52, 60, 95.
MISRA required rule compliance is now at around 95%.
-
Implemented
C99 ll and LL types, long long and a number of other features.
-
Implemented
%lc and %ls format from the Normative Addendum.
With grateful thanks
to many people around the world who gave us such useful feedback. We
would name them if we could.
Version 1.2 series
Version 1.2 24/Jan/2000:
An important
change has been made to the licensing. The licensing is now personal.
It should only be used by the licensee but can be used by the licensee
on any machine available to him or her. We think this is a fairer system,
(as did a number of our users). Another reason was that we had any number
of problems with interesting foibles of the filing systems we were working
with, (alright, Windows). This scheme is much simpler and hopefully
completely transparent. Because of this, we have changed the minor version
number so it can be installed alongside the SCT 1.1 series.
This version
mostly concentrated on improving MISRA compliance in the underlying
parsing engine in line with our policy for this important standard,
with one or two suggestions from users incorporated into the look and
feel of the interface to make things more obvious. We also included
the MISRA compliance suite to improve the educational side of the program
Interface
-
Bundled
the Oakwood Computing MISRA C compliance suite along with commentary
to enhance the educational aspects of the toolset. In essence, the
widget walks you through the MISRA suite explaining things with
code examples and making various comments on the MISRA rules themselves
including their enforceability.
-
Windows
balloon help moved to just below the originating widget like its
Linux stablemate. Thie turned outto be an interesting foible of
Windows.
-
The
registration screen now appears at the front, (yes, another interesting
foible of Windows).
-
Start
up sequence is now a little slicker.
-
Modified
the browser searching message to be a little more explicit.
-
Adjusted
balloon help so that it does not disappear off the side, (both the
Linux and Windows window managers allow this to happen for some
inexplicable reason).
-
Changed
the default suffix for projects FROM .prj TO .cpj
because lots of other Windows programs use .prj and it gets
very confusing.
-
Re-implemented
type sizes as options not sliders giving a much cleaner interface.
-
Added
balloon help to the product registration banner to explain the licence
usage and requirements for each button more clearly. This had caused
a few users some puzzling moments for which we apologise.
-
Improved diagnostics.
If the toolset gets itself into a twist internally, it will invite
the user to e-mail a log file to us. This should allow us to pin
problems down very quickly without bothering the user too much.
Parsing engine
-
20
new messages in the parsing engine, mostly associated with further
MISRA compliance. MISRA required rule compliance is now at 94%.
-
Fixed
subtle defect concerned with the interpretation of integral constant
expressions. The algorithm was correct but a potential divide by
zero was not protected.
-
Modified
grammar to pick up a common syntax mistake and provide a more enlightening
error message than the customary 'syntax error' emitted by C compilers
and many tools in this context.
-
Increased
yacc grammar stack space so that the parser does not overflow on
pathologically large switch structures.
-
Re-wrote
constant expression handling as part of C99 ongoing development.
-
Improved detection
of dangerous scope changes for local objects.
Version 1.1 series
Version 1.1b, 25/Oct/1999:
We apologise
for the delay in this. We decided to do some major internal restructuring
of the interface which allowed us to do some nice new things. We hope
its worth waiting for.
Interface
-
Added
ISO C standard to public domain standards. Messages can now optionally
appear with this standard's section numbering.
-
Added
major new option to allow the user to use, create and edit their
own standards for either internal compliance or for detective work,
(e.g. forensic checking, looking for a single message emitted amongst
numerous files).
-
Added
option to show only those warnings associated with standards, (local
or public). Previously they appeared interspersed with all the others.
-
Added
example scenarios under the Help menu.
-
More
sophisticated handling of window closing on NT to allow for its
somewhat unusual behaviour.
-
Confirm
option on toolset closedown.
-
"All
files" selection now available in the project, output and C
source file selection dialogs. C source file selection suffices
extended with .H and .CC. Project and output file selection dialogs
extended with .PRJ and .TXT.
-
Added
function name to both testability and inspection priority windows.
-
Generalized
expression complexity widget as a complexity trigger widget adding
ability to set maxima for cyclomatic complexity, logarithmic path
complexity and function stack size.
-
Added
stack use analysis to the metrics window.
-
Added
function prototype metric based on our extensive research
on its relationship with static defect. This includes a comparison
with the population at large.
-
Added
choice of font size for help, text and animation fonts. These determine
the size of the toolset window in the window management so effectively
allow you to resize consistently with the font. The changes take
effect at the next toolset invocation. We could have done general
resizing but it is the font that determines things anyway so we
let the font drive the resize.
-
Added
preference to show embedded messages in either flat, sunken or raised
topography, (Thanks Rick).
-
Main screen
icon changed to be consistent with new products to be announced
shortly. It is now a "Safer C" with a funny little squiggle
next to it which is an abbreviation for a crack or fault.
Parsing engine
-
Refined
function prototype warnings prior to introducing new metric.
-
Added
triggers for violation of extreme metric limits.
-
Improved
MISRA compliance coverage against MISRA compliance validation suite
for rules 96 and 98.
-
Implemented
check for undefined behaviour number 36.
-
Fixed
low-level defect which caused parser to stop on certain illegal
inputs.
-
Fixed defect
in dataflow analysis. For deeply nested structures, the slicing
algorithm was wrong.
No monthly update
in August owing to holidays 8-).
Version 1.1a, 31/July/1999:
Interface
-
Extended
directory search widget to include all Windows local volumes.
-
Start
up in DEMOS directory by default.
-
Added
shortcut button to include the ISO C90 standard header files in
the include file search list.
-
Added
discussion of arithmetic formats under Help->Discussions
-
Changed
start up temporary file directory to <MAINDISK>\Temp (for
example C:\Temp) on Windows and /tmp on Linux.
-
Added
down and up buttons to include directory search list to allow changes
to the order in which include directories are searched to be made
simply.
-
Added
option under Behaviour->Configuration Options to show ONLY those
messages which were suppressed using the //+message or //-message
syntax.
-
Centralised
pop-up help about subject window.
-
Added "Check
File ..." and "Recheck File ..." options to File
menu. They simply mimic the equivalent functionality under the first
two icons but were requested by a number of users.
Parsing engine
-
Further
support for MISRA-C.
-
Implemented
C9X and C++ new-style comment recognition, (// ... to end of line).
-
Give
more detailed messages for misuse of unsigned variable.
-
Fixed
obscure defect in block searching. Never reported externally.
-
Changed
method of reporting on potential confusion of '/' and '\' in multibyte
character constants.
-
Rewrote
evaluation order checking to detect some very subtle issues.
-
Improved
initialisation checking when uncertain of state.
-
Fixed
defect in declaration animation. Never reported externally.
-
Added option
to allow messages to be individually switched off and on in the
code by inserting new-style comments. For example, //-COMMAUSE suppresses
COMMAUSE messages until a //+COMMAUSE is encountered. Redundant
suppression or enabling has no effect.
Version 1.1, 07/Jul/1999:
A beta of the toolset has now been released as a pure Internet product.
Back
to top
|
|