Xrefactory s.r.o.









Xrefactory C++: [ Main | Screenshots | Download | Order | HTML | Change Log ]



Xrefactory Evolution


This page summarizes in chronological order modifications made during the evolution of Xrefactory C++ software.


Version 2.0.14 (Nov 27 2007)


- upgrade to C++ front end version 3.10.

- still few problems  with xref-recipe-build  fixed.

- an  option -cpp--no_gcc  can be  used to  turn off  default compiler
emulation.  If you  are using a compiler different  from Sun CC, MSVC,
or gcc you can use this option.





Version 2.0.13 (Jul 21 2007)


- several  problems  with xref-recipe-build  script  as  well as  with
compiler wrappers have been fixed.  Sources of the script and wrappers
are available in the standard distribution.

- a  problem with  extraction  of static  variables  defined inside  a
function has been fixed.

- few  small  problems  with  completion  under  gcc  emulation  fixed
including a problem with completion  of symbols starting by the string
"operator_".

- upgrade to EDG C++ front end version 3.9.

- a  small improvement in  coloring keywords  in completions  has been
implemented.




Version 2.0.12 (Apr 19 2007)


- new  emacs   customization  variables  xref-user-identification  and
xref-tmp-dir are  available for  respectively defining prefix  and the
directory of  temporary files. It  is supposed that under  windows and
cygwin the xref-tmp-dir will be set on a RAM disk.

- problem  with adding a  parameter to  a function  without parameters
fixed.

- problem  with  an #if  directive  containing  macros  expanded to  a
"defined" construction fixed.

- problem with possibility of implicit  conversion to an lvalue in Sun
CC compatibility fixed.

- completion of  local variables and parameters now  displays a single
type,  not the  whole source  line.  Few  other minor  improvements in
displaying completions have been implemented.

- Emacs        functions        xref-add-bindings-to-keymap        and
xref-add-key-bindings-to-local-keymap  can  be  customizable  if  user
defines them in its ~/.emacs file.

- problem with absolute paths in #includes has been fixed.

- problem  with  escaping  from  a  symbol  resolution  dialog  during
refactoring has been fixed.

- problem  when  "repeat  last  compilation"  command  from  Emacs-IDE
started to recreate a recipe file has been fixed.





Version 2.0.11 (Mar 14 2007)


- new Emacs option "Xref Save Buffers Without Prompt" is available. If
allowed,  Xrefactory saves  buffers without  prompting.   This happens
usualy before creation, full update of tags, etc.

- new Emacs option  "Xref Auto Update Tags Before  Push" is available.
If allowed  Xrefactory automatically updates tags  when browsed symbol
is not  found. It also  performs full update  of tags if  required for
successsfull browsing.

- new  Emacs  option  "Xref  Completion  Displays  Internal  Type"  is
available. This option controls whether types of symbols in completion
dialog are reconstructed from  Xrefactory's internal tables (as it was
until now), or whether  completion simply displays corresponding lines
from the source code (which is the default since this version).

- new option  -realpath allows to  resolve symbolic links in  all file
paths. However, this  option may provoke unwanted effects,  to be used
with moderation.

- an important problem in error recovery has been fixed.

- a problem with C-g key in modal dialog is fixed.

- a  problem when  prowsing a  file which  was externally  modified is
fixed.

- multiple  different  occurences of  the  same  file  in recipe  file
provokes  multiple  parsings  of  the  same  file  with  corresponding
options.

- severity  of  annoying  error  message "Something  is  wrong  during
extraction"  has  been  alleged   to  'warning'  level,  meaning  that
extraction can continue through it (even if not 100% safe).

- after user confirmation, the extraction can also proceed through the
message "There are jumps in/out of region".

- a problem with C inout parameters during extraction is fixed.

- a problem with xrefinstall script is fixed.

- xref-recipe-build and corresponding compiler wrappers were rewritten
to   C.   This   fixes  problems   with  incompatibilities   of  shell
interpreters and hopefully make wrappers usable under Windows.

- a problem when a non-existant  recipe file was given on command line
is fixed.





Version 2.0.10 (Feb 6 2007)


- when creating a  new project, usage of a recipe  file is the default
possibility for getting project  options.  Creation of recipe files is
possible directly from Emacs.  Many other improvements in working with
recipe files.

- fixed problem when browsing Windows files (finishing linefeed-return
combination) under Unix.  This  solution fixes also problems with loki
library  and  majority reported  problems  with  macros going  through
multiple lines.

- fixed problem with browsing constructors.

- fixed problem  when Emacs went  into a wrong state  after repeatedly
pressed C-g.

- fixed problem with -include option.

- fixed problem  with wrongly displayed  project list when  deleting a
project under Emacs.




Version 2.0.9 (Jul 25 2006)


- upgrade   to  EDG   fronted  version   3.8.  New   frontend  accepts
compatibility  emulation   for  newer  versions  of   gcc  and  MSVC++
compilers.

- wildchars can be used in the -prune option.

- new gcc compatibility options -nostdinc and -nostdinc++ avoiding the
preprocessor  to  search respectively  the  standard  include and  C++
include directories.

- a new  option -acceptlinedirectives has been  implemented. It causes
that  the  cross referencing  tool  is  parsing  and processing  #line
directives as a usual preprocessor. I.e. it is considering the rest of
the file as comming from a given file starting on a given line.

- a new  option -tmpdir  has been implemented.  This option  allows to
specify  directory where  xref  task is  storing  its temporary  files
during completion and indexation. If you have a RAM disk, it is a good
idea to set the temporary directory somewhere onto the RAM disk.

- short  cuts  are bind  to  keys '1',  '2',  '3',  etc for  selecting
directly one of proposed lines in Emacs modal dialogs.

- fixed  problem  when an  actual  template  parameter was  references
within template (as beeing a formal parameter).

- the annoying error message "mangled name too long" has been removed.




Version 2.0.8 (Oct 04 2005)


- few implementation constants have been increased

- a bug causing  that sometimes browsing can not  recognize any symbol
anymore has been fixed.




Version 2.0.7 (May 24 2005)


- a problem in Extract Method causing that parameters were incorrectly
inferred in some circumstances has been fixed

- a bug causing that sometimes the completions were incorrectly
displayed has been fixed.




Version 2.0.6 (May 3 2005)


- verification of  symbol names in  smart browsing mode can  be turned
off  using  the  option  "Smart  Browsing Check  Name".   Turning  the
verification off allows to browse symbols created with ## preprocessor
contruction as well as C++ constructors.

- new  option "Xref  Manual Symbol  Selection Within  Refactoring" can
force  refactorings to always  propose symbol  resultion menu.   It is
useful when renaming several methods (possibly from different classes)
at once.

- when browsing  within an  unsaved buffer a  new menu  appears.  This
menu proposes either to save the  current file or to save all modified
buffers or to save those selected by the user.

- fixed the problem with browsing class names at definition place.




Version 2.0.5 (Mar 15 2005)


- a problem with completion in Java fixed

- predefined macros adjusted in gcc 3.4 a gcc 4.0 compatibility modes.




Version 2.0.4 (Feb 15 2005)


- a problem with full update of tags has been fixed.

- a problem with  predefined macros in gcc 3.3  compatibility mode has
been fixed.

- a problem with gcc 3.4 compatibility mode has been fixed.

- a problem with the option -imacros has been fixed.




Version 2.0.3 (Jan 14 2005)


- the code browser has been improved and should be faster now.

- on  option, it  is  possible to  apply  refactorings without  security
checks.  This makes refactorings faster.

- accessibility and linkage checks may be applied on completion of class
members.  This  means that  only  global  symbols,  or better  symbols
visible at the current context are proposed in completions.

- few more contexts for completions were implemented.

- a problem with the "inspect definition" in completions has been fixed.

- a problem  with (null) pointer in completions  of anonymous structures
has been fixed.

- a problem with browsing classes directly from the class  tree has been
fixed.

- a problem in the extract method refactoring has been fixed.

- a problem with the -I options used in a recipe file has been fixed.

- the buffer  with xref error messages  is not deleted  when the message
disappears. In case of bug report,  the buffer can be selected and its
content copy-pasted. The buffer name starts with a space.




Version 2.0.2 (Nov 16 2004)


- new  option -cpp--gnu_version  is  now available  to make  distinction
between particularities of different versions of the GNU gcc compiler.
For example, the option  -cpp--gnu_version 30300 forces  Xrefactory to
simulate gcc 3.3 compiler, the option -cpp--gnu_version 30200 makes it
to simulate gcc 3.2 compiler.

- unused template  entities are not parsed and  instantiated by default.
This reduces  the number  of syntactic errors  during indexation  of a
project.   However, it also  reduces the  possibility to  browse those
entities.  You  can turn  on the parsing  of unused entities  with the
option -cpp-tall.

- numerous  platform   specific  adjustements  in   default  macros  and
includes, mainly for Linux, Solaris and Mac OS X platforms.

- a problem with quoted include files has been fixed.

- several bugs in processing of recipe files have been fixed.

- several implementation  constants have been  increased in order  to be
able to parse larger projects.




Version 2.0.1 (Oct 20 2004)


- xref-recipe-make  now considers its  first argument  to be  the recipe
file to  be generated.  All further  arguments are passed  to the make
command.

- new ports for sun4/Solaris and ppc/MacOSX have been prepared.

- new option -platform-<platform> is  available.  It defines a set of
predefined  macros  specific for  <platform>  and  allows to  index
sources from one platform on another.  The option -platform-win32 also
makes the search of included files case unsensitive.

- several adjustements in predefined macros and include directories have
been made.

- numerous  bugs  have  been  fixed,  including a  memory  leak  in  the
preprocessor.



Version 2.0.0 (Sep 15 2004)

This is the initial release of the version 2. Comparing to Xrefactory 1.x.y
this release implements:

- full C++ support.  The C++ front end accepts ANSI C++, GNU g++, Sun CC
and Microsoft MSVC++ language dialects.

- possibility to generate  and use recipes. If a  project is built using
'xref-recipe-make' instead  of 'make' than all  project files together
with compiler options are memorized in a "recipe" file.  This file can
be then used by Xrefactory.

- smart browsing.  User can now  toggle between two modes how Xrefactory
determines  attributes of  an  on-line browsed  symbol.  In  "standard
browsing mode" the  currently edited file is parsed  and the symbol is
resolved by  parser.  In "smart  browsing mode" mode,  the appropriate
Tag file is scanned and the symbol is resolved by its reference.

- speed ups.  Based  on experiences from the version  1, faster and more
appropriate data  structures are used  to store critical  datas.  This
concerns  all  stored references,  inheritance  trees and  inheritance
subtrees  for virtual  methods, lists  of  unused symbols  as well  as
internal data structures like preprocessor tables.

- improved  HTML documentation.   The  generated documentation  contains
project index pages containing full inheritance tree, lists of project
symbols, all  parsed symbols,  project compilation units,  all project
files  and  classes.   Cross  references  are more  accurate  and  all
possible  ambiguities  in  source  files are  precisely  reported  and
explained.