|
From: Per P. <per...@ma...> - 2004-03-26 12:48:43
|
On 2004-03-26, at 12.59, Hans-Bernhard Broeker wrote:
> On Fri, 26 Mar 2004, Per Persson wrote:
>
>> It is currently in alpha testing and I discussed the subject with Lars
>> Hecking and it was decided to wait until after the 4.0 release.
>> However,
>> the new driver has matured rapidly and is much cleaner than the old
>> driver and supports more gnuplot features.
>
> It's hard to make a decision on such imprecise information. Maybe you
> should post the current state of that driver somewhere, including an
> explanation why you think it's better, what new features it supports,
> and
> so on. Otherwise, we'll leave just stick with Lars' decision to
> postpone
> it.
Of course, these are the major changes that affect the gnuplot driver:
AquaTerm::ReleaseNotes
AquaTerm 1.0a1
Breaking backwards compatibility.
Complete rewrite with better possibilities for future optimization.
Supports mouse and key events (events in general actually). (#538268,
#586499)
Respects window size when updating. (#650938)
Make window front when updated. (#651911)
Added debug menu including "Refresh view", a test view and feedback
options.
aquaterm.trm::ReleaseNotes
AquaTerm 1.0a2
Process a lot more options. Currently supported options are:
<n> title "theTitle" size <x> <y> fname "fontface" fsize <fontsize>
Points and boxfill Implemented.
Autoreleasepools should be handled in command() in
gnuplot/src/command.c,
leave a last line of defense in the driver.
AquaTerm 1.0a1
Moved all common code into libaquaterm.dylib, all adapters link
with this.
Complete rewrite of common code, no reliance on AppKit (#605549)
Increased resolution (#783895)
--------------
There are more details at the sourceforge site:
http://aquaterm.sourceforge.net/
http://cvs.sourceforge.net/viewcvs.py/aquaterm/adapters/gnuplot/
I'd say that the most important that aquaterm.trm no longer relies on
the AppKit framework which would cause a crash if a Quartz
window-server wasn't running for the logged in user (e.g. running
gnuplot remotely).
My personal favourite is that all core functionality lives in a lib
rather than the driver(s). Drivers are now simple enough that most
bugs should occur somewhere else and can be fixed without recompiling
clients such gnuplot.
The new set of options might also make some users happy.
>
>> I'd also like to patch command.c to fix a problem with the
>> semi-automatic garbage collection in Objective-C that could lead to
>> excessive memory use during long running sessions.
>
> ObjC code in the middle of the native C stuff might be bad news. At
> minimum, I'ld like to see this isolate to a separate source file, which
> a plain C compiler won't even look at.
OK
>
>> What it does is to set up and tear down an "object pool" for every
>> loop through the event cycle. Placing it here is based on the
>> assumption that all calls to the driver is guaranteed to be made
>> through this single function.
>
> "Through" this function: almost certainly. But I would think this
> could
> more sensibly be put into your term->graphics() and term->text(). Those
> are called once per plot generated, which really should be sufficient
> for
> your needs.
Yeah, I used to have them there, but I didn't feel entirely comfortable
with not creating/destroying in the same scope.
> It'd also have the benefit of placing these Chunks in a place
> that already is out of sight of non-Objective-C compilations.
Hmm, the ObjC compilation is done by adding -ObjC to _all_
compilations, so in a sense placing the stuff in command.c with #ifdefs
places the code on the same visibility level as aquaterm.trm in term.h.
Anyhow, you are probably right that we should keep C and ObjC separate.
/Per
|