Official release date: April 17th, 2006.
Features
This release of CodeSurfer introduces several new features:
- C API
- The Core API for CodeSurfer is now available in C.
- A tutorial for the C API is included in the release.
- The full Scheme API remains available.
- Upgrade to EDG 3.7
- This improvement to the C/C++ front end provides better
compatibility with GNU and MSVC compilers.
- Memory-only building
- Accommodates larger projects than can be handled by the
conventional CodeSurfer build process, but the built projects
are not saved on disk.
- Improved hardware support
- Mouse wheels are now supported.
- Improved compiler support
- MSVC 2005 is now supported.
Representation Changes
- Unnormalized ASTS
- Added:
- cc:type-expr
- cc:builtin-operation, with subclasses
cc:gnu-builtin-operation and
cc:microsoft-builtin-operation
- Classes for GNU complex numbers: cc:xconj,
cc:real-part, cc:imag-part,
cc:lvalue-real-part,
cc:lvalue-imag-part.
- Changed:
- cc:vla-dealloc is now a subclass of
cc:expr
- cc:type no longer has
:based-types attribute.
- Normalized ASTS
- Added:
- Complex number classes c:complex-conj,
c:complex-real-part,
c:complex-imag-part.
- asm classes c:asm-entry,
c:asm-generic-entry, c:asm-gnu-entry,
c:asm-gnu-operands,
c:asm-gnu-operand.
- New expression types
- Positions have changed for:
- A label node is now generated for each else.
API Changes
- Core API functionality now available in C, as well as
Scheme.
- New procedures provide access to the compiler warning and error
counts by source file and by project.
- C:
- cs_file_error_count(uid)
- cs_file_warning_count(uid)
- sdg_error_count()
- sdg_warning_count()
- Scheme:
- (file-error-count uid)
- (file-warning-count uid)
- (sdg-error-count)
- (sdg-warning-count)
GUI
- Changed:
- Styles (fonts) can now inherit some or all of their
properties from designated base styles (fonts).
- Some GUI windows can now "remember" their
previous geometry when reopened.
Fixes
The following have been fixed since 1.9p5:
- C++ variable names
- Performance problems caused by extremely long
compiler-generated names for C++ variables have been
fixed.
- Front end
- Performance improvements have reduced analysis times in
some cases by many orders of magnitude.
- Several causes of front end crashes have been
eliminated.
- Library models
- Some library models have been modified to improve
precision.