Release of libSBML-5.0.0-a0
18 Jan '10 15:19
We are pleased to announce the release of libSBML-5.0.0-a0 which is
available for download from
This is a pre-alpha release of libSBML-5 which provides support for
package extensions in SBML Level 3. Since libSBML-5 is currently in
development stage the API may be changed in the future. Also, some
features for package extensions (e.g. validation, language bindings
and etc.) are not supported yet (please see "Known Issues" below).
Currently, the code is based on the SVN trunk of Revision:10522
(i.e. based on 4.1.0-beta), and thus validating/converting SBML
Level 3 core has not been supported yet.
Please see the following bundled README files for details:
(For package developers)
* New Features:
- Added new classes for supporting package extensions in 'src/extension'.
- Added a new directory 'src/packages' in which additional package
extensions will be located.
- Added new functions for supporting package extensions in existing
classes. Most of the new functions are implemented in SBase and
- Added a package of layout extension as an example package in
'src/packages/layout'. The package is based on existing
implementation of layout extension (implemented by Ralph Gauges)
bundled with libSBML-4.
"--enable-layout" option is required when running configure script to
build the layout package. Example codes using the layout package are
provided in "examples/layout/".
Currently, the package is built as additional shared library files
(e.g. libsbml-layout.a and libsbml-layout.so on Linux) that depend on
the shared library of core libSBML (e.g. libsbml.a and libsbml.so on
Linux) when built with make command.
The package is built into existing libsbml.dll when built with MSVC
on Windows. This build configuration may be changed in the future
- Added a package of groups extension (based on the proposal on 2009-10)
as another example package in 'src/packages/groups'.
"--enable-groups" option is required when running configure script to
build the groups package. Example codes using the groups package are
provided in "examples/groups".
Currently, the package is also built as additional shared library files
(e.g. libsbml-groups.a and libsbml-groups.so on Linux) when built with
make command whereas the package is built into libsbml.dll when built
with MSVC on Windows. This build configuration may also be changed in
the future release.
- Moved source files of layout extension from 'src/sbml/layout' to
- SBMLTypeCode_t (enum type) now contains only typecodes of SBase
objects defined in the SBML core. Each package extension should
define a similar enum type for typecodes of SBase objects defined
in each package extension (e.g. SBMLLayoutTypeCode_t for "layout"
extension (defined in LayoutExtension.h) , and SBMLGroupTypeCode_t
for "groups" extension (defined in GroupExtension.h).)
- Changed the type of return value of SBase::getTypeCode() and
ListOf::getItemTypeCode() functions (SBMLTypeCode_t -> int).
- Changed the usage of SBase::getTypeCode() and ListOf::getItemTypeCode()
functions. Currently, the value of each typecode can be duplicated
between those of different packages (this duplication problem doesn't
happen with existing code which uses only SBase objects of the SBML
core). To distinguish the typecodes of different packages, not only
the return value of getTypeCode() but also that of getPackageName()
should be checked as follows:
void example (const SBase *sb)
const std::string pkgName = sb->getPackageName();
if (pkgName == "core")
else if (pkgName == "layout")
- API changes:
(- : libSBML-4 API, + : libSBML-5 API)
- virtual SBMLTypeCode_t SBase::getTypeCode() const
+ virtual int SBase::getTypeCode() const
- virtual SBMLTypeCode_t ListOf::getItemTypeCode() const
+ virtual int ListOf::getItemTypeCode() const
- const char* SBMLTypeCode_toString (SBMLTypeCode_t typecode)
+ const char* SBMLTypeCode_toString (int typecode,
const char* pkgName)
- SBase* SBase::getAncestorOfType(SBMLTypeCode_t type)
+ SBase* SBase::getAncestorOfType(int type,
const std::string pkgName="core")
- virtual void SBase::readAttributes (const XMLAttributes& attributes)
+ virtual void SBase::readAttributes (const XMLAttributes& attributes,
const ExpectedAttributes& expattr)
* Known Issues:
- Validating functions need to be extended for package extensions.
- Converting functions need to be extended for package extensions.
- Language bindings (SWIG configuration files and underlying support
code such as local.cpp) need to be modified for supporting package
extensions. Currently, language bindings of "layout" extension
(Java, Python, Ruby, and C#) should work.
- SBML Core and additional package extensions should be located in
their own namespaces to avoid potential name conflictions.
- C wrapper API needs to be added/updated.
Please report any problems you encounter using libSBML either to the
mailing list email@example.com or using the issue tracker
for libSBML at
Akiya, Sarah & Mike
To manage your libsbml-development list subscription, visit
For a web interface to the libsbml-development mailing list, visit
For questions or feedback about the libsbml-development list,
[Updated on: 02 Feb '10 08:46] by Moderator
Release of libSBML-5.0.0-a0
||ajouraku||18 Jan '10 15:19|
Powered by FUDforum. (Copyright Advanced Internet Designs Inc.)