gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GDL2 - TODO needs to be updated


From: Stéphane Corthésy
Subject: Re: GDL2 - TODO needs to be updated
Date: Tue, 18 Feb 2003 11:04:14 +0100


On Tuesday, Feb 18, 2003, at 00:29 Europe/Zurich, Mirko Viviani wrote:

Stéphane Corthésy <address@hidden> ha scritto:

The TODO file needs deep update, doesn't it?

Yes.

I've compared the current GDL2 API with Apple's and made a rather
exhaustive comparison. It seems the the main lacks are entity
inheritance, events, sharedEC, snapshot timestamping, deferred
faulting, prototypes, EOInterface. Can others confirm this?

Yes, these are the features to implement.

X Take care of using 'volatile' for local vars which are modified in
NS_DURING and read in NS_HANDLER

What do you mean exactly with that?


In fact there are very few cases where we need to use "volatile". I think I found only 2 or 3, in GDL2 code. "man longjmp" for more information. If a local (auto) var is declared outside an exception block and accessed for reading in the handler, then you need to declare the variable as volatile. Modifying the var (without reading it) in the handler does not cause problem.


- Avoid autoreleased objects (OK Markus, this will be done later ;-)

Do you mean to use retain/release for objects used locally?


Yes.


If this is the point we could wait until performances are really important.
Actually is better to clean up the code.


IMHO it is part of a "functional" cleaning.


In EOControl:
X Replace EOUndoManager use (deprecated) with NSUndoManager
- Superclass of EOClassDescription must be now NSClassDescription, at
least on MacOS X

I like to maintain (as Dave said) compatibility with older version of OS.


So, since when is EOUndoManager use deprecated?
Like I mentioned in a previous reply, current implementation has only NSEmitToDo...
I've corrected it on my side, but made use of EOUndoManager deprecated.


- Misses many (all?) methods defined in EOFoundationExtras.h

I don't know what is this... it seems not documented, isn't it?


Right. Totally undocumented. There is only a header file.


(- Replace EONull with NSNull; NSNull exists, so EONull has no sense
--- Not possible, because may miss NSNull)

In fact, not possible. Keep portability.


I noticed it.


ivars are different
- Misses _currentEditCtxTimestamp
- Misses _uniqueTable, _deleteTable, _reserved, _reserved2,
_uniqueArrayTable, _missingObjectGIDs ,

Ivar are not important to me, I don't want to copy their implementation.
Are they really useful?


We shouldn't count on it. In fact, I started noting all differences in the ivars, but saw too many, then stopped. Forget that remark.


BTW, some people asked me how stable and functional GDL2 is, and how
possible would it be to port applications written for Apple's EOF to
GDL2 (based on OSX currently, but maybe fully ported on GNUStep). Can
we get opinions from its main developers? What is the state of GDL2?

Good point, I actually don't use it in production but for implemented
features it seems to me quite stable.

Actually I think is not fully useable for porting app from OSX EOF if these
apps uses advanced features of EOF like the ones you mentioned at the
beginning of the this message, but most of them are quite trivial to
implement. (events, snapshot timestamping, prototypes should be simple things
to do. Inheritance it does not seem so)


IMHO inheritance is the most important one, followed by EOInterface and shared editing contexts.


I've not checked recently the undo part of EC, and the different configuration
of the EC (parallel, cascade) so I don't know what work or not.


That's probably tested in David's tests ;-)


One last thing. EOInterface. I've heard rumors that some developers,
who have rewritten something similar, would "give" it to GDL2. Some
hope in there, or should we think about rewriting it?

I don't know of that but some time ago I've started implementing it.


Could you put your sources under CVS please?


Thanks,

Stéphane





reply via email to

[Prev in Thread] Current Thread [Next in Thread]