ANN: SourceBase 0.1
- From: Biswapesh Chattopadhyay <biswapesh_chatterjee tcscal co in>
- To: SourceNav Devel <sourcenav-devl lists sourceforge net>
- Cc: Anjuta devel <anjuta-devel lists sourceforge net>, GNOME Devtools <gnome-devtools gnome org>
- Subject: ANN: SourceBase 0.1
- Date: 12 Jul 2002 16:24:25 +0530
Hi all
This is to announce the very first version, 0.1 (alpha) of SourceBase.
What is SourceBase:
-------------------
SourceBase is (will be) a parser library aimed at developers of free
IDEs (Integrated Development Environment). It should make implementing
advanced features such as intellisense code completion, call trees,
symbol browsers, etc. a no-brainer. SourceBase is a tear-away
development from SourceNavigator (http://sourcenav.sourceforge.net/)
Availability:
-------------
I've applied to SF for http://sourcebase.sf.net/. Till that is
available, a tarball is available at http://tagmanager.sf.net/. The
SourceNavigator Developer ML will be temporarity used for discussions
till I manage to setup the SF mailing list. CVS access will be available
once the project is activated at SF.
Compiling and Using SourceBase:
-------------------------------
Currently, there are no docs and no clean API. Compilation should be as
simple as './autogen.sh && make && make install' provided you have
Berkeley DB version 1 installed in /usr. There is a shell script in the
cpp directory which provides a good demo of the current capabilities of
the C/C++ parser.
Features:
---------
1) Advanced parsers: SourceBase has parsers used by SourceNavigator,
which do a pretty good job of parsing C/C++ files. The parsers are much
more advanced that the ones provided by Exuberent CTags (which are being
used by the current Tagmanager version in Anjuta/Anjuta2)
2) DB driven: SourceBase uses Berkeley DB to store symbol details. This
is a much faster approach than XML (used by Doxygen) or a mix in-memory
data structures and flat files (used by TagManager).
3) No dependencies: Apart from Berkeley DB, SourceBase has virtually no
dependency (Currently, there is a tiny bit of code that uses GLib but
that is likely to disappear in the next version if people complain).
Future:
-------
1) More parsers. Upcoming versions will hopefully contain parsers for
all the languages supported by SN and more (Java, Perl, Python, PL/SQL,
HTML/PHP/ASP, FORTRAN, COBOL, etc.)
2) Clean API: SourceBase will provide a clean and consistent API for
accessing all it's functionality. The primary interface will be C, but
wrappers will probably be provided for Python, TCL, etc. (if someone
volunteers to do the work). This work has not yet started.
3) Using DB3/4: Berkeley DB wil be upgraded to DB3 or DB4 (I'd vote for
DB3 since it is used by RPM, so is likely to be present in most
distributions). This is provide us with atomic transactions so that the
database does not get hosed on crashes, etc. (This is non-trivial since
the DB3 API is quite different from DB1).
4) Abstracted DB layer: Support multiple databases through
user-registered callbacks. Basically, you have to write a function with
the same prototype as 'put_symbol' and register it as a callback. You
can then code in whatever DB you want as the backend (even XML if you're
perverse enough ;-). This is low-priority for the time being but should
not be very hard to implement.
5) We'd like SourceBase to be available on as many platforms as
possible, including all flavors of UNIX, all flavors of Windows, etc.
Currently, the Win32 compatibility bits are removed because I wanted to
put out something fast, but hopefully, I'll add them back in the next
version. Also, multi-lingual support (UTF8) is missing till we decide on
a portable way of handling it without adding dependencies.
6) GUI: SourceBase will provide a pure command-line and library
interface, without any GUI. However, it might be a good idea to
implement some GUI widgets on top of the library. This will provide IDE
developers with drop-in components for many features and will also serve
as a good demonstration of the capabilities of SourceBase.
That's about it. Please join SourceNav Devl for API design discussions.
Rgds,
Biswa.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]