[emboss-dev] EMBOSS Code Changes

Peter Rice pmr at ebi.ac.uk
Fri Dec 9 17:33:57 UTC 2005

Important for all users of the current CVS code.

We are reviewing the AJX and NUCLEUS libraries, and making changes to the 
function names to standardise the documentation.

We are starting with the string functions in ajax/ajstr.c - because they are 
the oldest and need the most changes.

The latest ajstr.c and ajstr.h are now committed to CVS.

The old function names will continue to work, but you may see a large number 
of warning messages when you compile with gcc. We have added a "__deprecated" 
attribute to all the old function names. Non-gcc compilers will ignore this 

A script will be added in the next few days to automatically update the 
function names in your own code. Renamed functions are easy. A few functions 
now have 2 or more replacements which we plan to automate. For example: 
ajStrToken can be called with a NULL argument or a string; ajStrChar had 
special functions with a position of 0 (first character) or -1 (last character).

New function names have a standard pattern which we can validate using new 
@namrule tags in the function headers, and function parameters will also have 
standard names and types with @argrule tags and for return values @valrule tags.

We also have enforced sections for groups of functions, where we keep the 
naming and parameter rules.

In each section, functions are in strict alphabetical order (but note that 
suffixes - C for char*, S for string - do not count as part of the name)

We will have the changes complete for the most important AJAX files (ajseq*, 
ajacd, ajfile) before the next developers course in January 2006.

The SRS EFUNC and EDATA source code databases will be updated early next week 
on srs.ebi.ac.uk. We will keep EFUNCREL and EDATAREL as databases for the last 
release, and updated EFUNC and EDATA nightly when the CVS code base changes.

The sourceforge website pages for the AJAX and NUCLEUS libraries will be 
improved in the next few months as we work through all the documentation.

Please mail emboss-dev with comments - or emboss-bug with anything that breaks 
your own code.


Peter Rice

More information about the emboss-dev mailing list