Release |
Feature |
Description |
R 1.9 |
Scope
re-construction |
Incremental
extension and integration of the migrated,
original code base with the new NAF
components. Re-construction of some of the
existing scopes with the new component model
(the original ones remain untouched). The
new scopes will look and feel as similar as
possible, but also offer some new usability
features.
|
R 2.0 |
New User
Interface |
A new dynamic
user interface, consisting of NAF components
glued together by Lua code. The users will
be able to customize and build their own
scopes glueing components together.
|
R 2.1 |
New Workbench |
The new user interface concept will allow
for new features like persistent window
configurations, docking views etc.
comparable to the
Eclipse
workbench (but faster and leaner than a Java
implementation of course ;-) ).
|
Since November
2005 I
put high pressure on the development of R 1.9/2.0.
It's virtually a complete re-design of CARA, because
I would like to make all features accessible to Lua.
Users shall even be able to create model extensions
by Lua (e.g. implement custom filters for peak
inference). Because the original implementation was
heavy C++ design (including template meta
programming), I needed to find a Lua conforming
alternative for each concept. That was quite more
work than I originally envisioned (and also the
reason for the backlog). Unfortunately I had to
freeze the 1.5.3 release in December to avoid that I
had to do the same work twice.
One of the major advantages of the new architecture
is the possibility to decentralize responsibilities.
CARA will be an open platform. New scopes can be
developed and maintained by different people
according to their focus of interest. Even though
there will always be a stable kernel (i.e. CARA
itself cannot be undermined by custom code as it is
the case with some Python based implementations). I
will continue to maintain and extend the kernel
according to the feedback of the scope providers.
On April 2006 I decided to get rid
of the Boehm garbage collector again (which I
introduced in Jan. 05 as one of the preconditions to
establish full Lua exposition of the NAF). This step
was eventually unavoidable due to misterious crashes
in scripts with high memory consumption (i.e. the
ongoing SideLink development by Jim, where more than
one GB of memory is allocated). After several weeks
of bug hunting I realized that due to the
non-deterministic nature of the GC there was little
chance to ever reproduce the issues or find a work
around. I therefore decided to go back to the fully
deterministic reference counting scheme which I had
before. This of course had quite an impact on the
work I had done since November 2005.
By end of May 2006 I realized that
the complexity of the re-construction of the scopes
on top of the new object model (now without the GC)
has become so high, that it would take another
couple of months just to re-establish the features
already available in Nov. 05. I published some 1.8
internal releases to the CDT with and without the
GC, only featuring a re-constructed Explorer and
MonoScope. Since it was virtually a complete
re-write, there was also a high probability to
introduce many new bugs. It took me several weeks to
just re-construct MonoScope given the work load of
my parallel projects, and the 1.8 release in May was
still far from complete. Since some urgent issues
were waiting to be resolved and a continuation of
the release freezing was no longer affordable, I
decided to go yet another way around and do a direct
"mechanical" migration of the 1.5.4 code base to
Qt4. To make use of the Qt migration tools, I first
had to do a full migration of CARA to Qt3, and only
then to Qt4.1. This turned out to work quite well.
Within two weeks I produced an 1.6 release which was
essentially the original code base migrated to Qt4
(with the original issues of course). After that I
started to extend this code base with at least some
features of the 1.8 release (e.g. the re-engineered
intensity view with the Xeasy color scheme, using
the new floating point coordinates of the Qt4
graphics engine, also the new main window and menu
concepts, and optimized printing resolution). On
June 23 the first alpha release 1.7.0a1 was
published. I will now continue to incrementally
extend the 1.7 code base by as much of the 1.8
features as possible. The development of 1.9 will
then happen in parallel as part of the unified code
base (i.e. all existing scopes will continue to
exist, but I will incrementally introduce
re-constructed versions, which are accessible with
new menu commands).
R.K.