Considering Gorm 1.0.0

2005-06-21 Thread Gregory John Casamento
All,

Please let me know if anyone has any thoughts about this.  I would also like
any feedback anyone has on any last minute features or bug fixes they feel
should go into the app before the 1.0 release.

Gorm has been very stable for the last few releases, so I'm considering that
after the next stable release of core, that Gorm should follow this with a 1.0.

Does anyone have any comments?

Thanks, GJC

Gregory John Casamento 
-- CEO/President Open Logic Corp. (A MD Corp.)
## Maintainer of Gorm (IB Equiv.) for GNUstep.


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


[Gnustep-cvs] gnustep/usr-apps/gworkspace GWorkspace/GWorkspa...

2005-06-21 Thread Enrico Sersale
CVSROOT:/cvsroot/gnustep
Module name:gnustep
Branch: 
Changes by: Enrico Sersale <[EMAIL PROTECTED]>  05/06/21 23:54:12

Modified files:
usr-apps/gworkspace/GWorkspace: GWorkspace.m 
usr-apps/gworkspace/GWorkspace/Desktop/Dock: DockIcon.m 
usr-apps/gworkspace/GWorkspace/FileViewer: GWSpatialViewer.m 
usr-apps/gworkspace/Recycler: RecyclerIcon.m 

Log message:


CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/usr-apps/gworkspace/GWorkspace/GWorkspace.m.diff?tr1=1.93&tr2=1.94&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/usr-apps/gworkspace/GWorkspace/Desktop/Dock/DockIcon.m.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/usr-apps/gworkspace/GWorkspace/FileViewer/GWSpatialViewer.m.diff?tr1=1.28&tr2=1.29&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/usr-apps/gworkspace/Recycler/RecyclerIcon.m.diff?tr1=1.7&tr2=1.8&r1=text&r2=text





[Gnustep-cvs] gnustep/core/gui ChangeLog Source/NSMenu.m

2005-06-21 Thread Fred Kiefer
CVSROOT:/cvsroot/gnustep
Module name:gnustep
Branch: 
Changes by: Fred Kiefer <[EMAIL PROTECTED]> 05/06/21 22:48:21

Modified files:
core/gui   : ChangeLog 
core/gui/Source: NSMenu.m 

Log message:
Corrected handling of screen size for menu.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/gui/ChangeLog.diff?tr1=1.2541&tr2=1.2542&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/gui/Source/NSMenu.m.diff?tr1=1.128&tr2=1.129&r1=text&r2=text





Re: [Gnustep-cvs] gnustep/core/gui ChangeLog Source/NSTableView.m

2005-06-21 Thread Fred Kiefer
Quentin Mathé wrote:
 > Le 20 juin 05 à 00:05, Fred Kiefer a écrit :
> 
>> I did not see any further reply to this mail from Matt, apart from my
>> own. Does this mean that the patch is generally accepted or is just
>> nobody interested?
>> As I uggested I would like to see the cell tracking code as a new  method
>> on NSTableView. Something like:
>>
>> - (void) trackColumn: (int) columnIndex
>>  row: (int) rowIndex
>>withEvent: (NSEvent *) theEvent
> 
> I fully agree because I must admit I'm unable to understand current 
> code in this method (I'm not talking about Matt's patch).
> 
>> I have to admit that I still con't quite understand the event handling
>> concept. Let me try to rephrase it in my words and you may correct me
>> later on: When getting a mouseDown event in the NSTableView, we  need to
>> find out if this is starting a dragging. Only if not we send on the
>> event to the cell to start tracking.
> 
> My main concern is the fact currently table view handles selection  and
> tracking on mouseUp for cells by default… but selection and  tracking
> should be handled on mouseDown event with cells, except when  dragging
> is turned on and the clicked cell returns NO for 
> trackMouse:inRect:ofView:untilMouseUp: or startTrackingAt:inView: 
> methods I think. That would match moreover current Cocoa behavior 
> (except the minor difference decided by Matt for dragging, I think it 
> is a better choice that Apple's one)
> 
> To illustrate current issues with examples:
> - you have no selection change on mouseDown currently when you click  on
> a table view with standard cells and dragging turned off (this  feedback
> absence is really problematic for a combobox because its  popup window
> is closed on mouseUp before the clicked row highlighting  becomes
> visible in table view)
> - popup button cell doesn't show its menu on mouseDown (only on mouseUp)
> - combobox cell doesn't support editing with current delayed tracking 
> model (but it could involve other issues too)
> 
>> As we may have missed a few events
>> whlie determining if this is a drag operation, the cell and the table
>> view needs to get one more event to process from the application 
>> directly.
>> If I understand you correctly you say that this is the behavour on
>> Cocoa. Still it looks rather strang to me. On the other hand we should
>> try to get dragging from table views working again for the next  release
>> and your patch is currently the only one. If nobody disagrees, I would
>> submit this patch, with the separate tracking method and a few  comments
>> added.
> 
> My objection to the patch would be it is introducing duplicated code 
> between NSLeftMouseDragged and NSLeftMouseUp handling with the new  'if
> (draggingPossible == YES)' statement, without implementing true  custom
> cell support as a counterpart.
> Anyway I think we can apply the patch, it works well in my test 
> (dragging seems to be fixed) even if it's probably a temporary  solution
> in my opinion… May be when code will be reorganised, we may  start to
> clean mouse events handling in a definitive way in order to  support any
> kind of cells correctly.
> 

Just one still unclear idea: Dowe really have to dequeue the events we
get in mouseDown:? If we would first get the event and see if there is a
draggging event coming, we would let the cell do the dragging, if this
is allowed, with the event still in the queue. And if there isn't an
upcoming drag event we could dequeue the event and do normal processing
in the table view. As I wrote, just an idea...

Fred


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problem implementing faults in Objective-C

2005-06-21 Thread Timothy J. Wood


On Jun 21, 2005, at 4:12 AM, Frederic Stark wrote:

I am sending this to gnustep-dev crossposted to gcc. Maybe this  
isn't the right mailing list. See at the end of the post for a 40  
line program that exhibit the bad behavior.


Problem:
If a is a fault (ie: changes its isa pointer during  
forwardInvocation), then:


[a method1:[a method2]]

fails (a does not recognize 'method1:'), while:



  I believe the GNU runtime looks up the IMP and then calls it  
rather than always calling a dispatch function.  In this case, the  
code above is possibly getting miscompiled into something like


IMP imp1 = getInstanceImp(a->isa, @selector(method1:))
IMP imp2 = getInstanceImp(a->isa, @selector(method2))
id result1 = imp2(a, @selector(method2))
id result2 = imp1(a, @selector(method1:), result1)

  That is, the lookup of the IMP for -method1: may be happening too  
early.



The code works correctly under Mac OS X.


  The Apple runtime doesn't have this design choice, so it can't  
really have this problem.



Am I doing something horribly wrong ?


  I don't think so; seems like a bug in the GNU ObjC runtime support  
in the compiler.  I suppose the runtime maintainers might choose to  
define this as a bug in your code, but isa-swizzling is a fairly  
common and _extremely_ useful pattern in ObjC (see CoreData,  
NSZombie, etc.) so that'd not be my stance, obviously :)


-tim



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problem implementing faults in Objective-C

2005-06-21 Thread Frederic Stark

Timothy J. Wood wrote:

[crunch]

The code works correctly under Mac OS X.


I just checked under linux/gcc 3.4 and the code works fine there. Maybe 
this is a gcc 3.2 specific problem. I'll check gcc 3.4 windows one of 
those days.


  The Apple runtime doesn't have this design choice, so it can't  really 
have this problem.


You are right. I just disassembled a small variation on the thing, and 
gcc 3.2 generates:


0x401406 :   push   %ebp
0x401407 : mov%esp,%ebp
0x401409 : push   %edi
0x40140a : push   %esi
0x40140b : push   %ebx
0x40140c : sub$0xc,%esp
0x40140f : sub$0x4,%esp
0x401412 :sub$0x4,%esp
0x401415 :push   $0x4041f0
0x40141a :mov0x8(%ebp),%esi
0x40141d :push   %esi
0x40141e :call   0x4017b0 
0x401423 :add$0xc,%esp
0x401426 :mov%eax,%edi
0x401428 :sub$0x4,%esp
0x40142b :push   $0x4041e8
0x401430 :mov0x8(%ebp),%ebx
0x401433 :push   %ebx
0x401434 :call   0x4017b0 
0x401439 :add$0x8,%esp
0x40143c :push   $0x4041e8
0x401441 :push   %ebx
0x401442 :call   *%eax
0x401444 :add$0xc,%esp
0x401447 :push   %eax
0x401448 :push   $0x4041f0
0x40144d :push   %esi
0x40144e :call   *%edi
0x401450 :add$0x10,%esp
0x401453 :lea0xfff4(%ebp),%esp
0x401456 :pop%ebx
0x401457 :pop%esi
0x401458 :pop%edi
0x401459 :pop%ebp
0x40145a :ret

It looks like the two objc_msg_lookup are made before the actual call 
(0x401442 and 0x40144e)


  I don't think so; seems like a bug in the GNU ObjC runtime support  in 
the compiler.  I suppose the runtime maintainers might choose to  define 
this as a bug in your code, but isa-swizzling is a fairly  common and 
_extremely_ useful pattern in ObjC (see CoreData,  NSZombie, etc.) so 
that'd not be my stance, obviously :)


As in my code the real classes are all subclass of a specific one, I 
worked around the problem by implementing:


- (void)forwardInvocation:(NSInvocation *)anInvocation
{
if (![self respondsToSelector:[anInvocation selector]])
[super forwardInvocation:anInvocation];

[anInvocation invoke];
}

in the 'B' class.

Thanks for the help (and it have been a lng time since we last 
exchanged emails on the omni dev list...)


--fred




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problem implementing faults in Objective-C

2005-06-21 Thread Andrew Pinski


On Jun 21, 2005, at 1:20 PM, Frederic Stark wrote:


Timothy J. Wood wrote:

[crunch]

The code works correctly under Mac OS X.


I just checked under linux/gcc 3.4 and the code works fine there.  
Maybe this is a gcc 3.2 specific problem. I'll check gcc 3.4 windows  
one of those days.


It is a 3.2 specific bug.
This was fixed in 3.4.0 at least for sure with:
2003-09-24  Ziemowit Laski  <[EMAIL PROTECTED]>

MERGE OF objc-improvements-branch into MAINLINE.
See 'gcc/ChangeLog' and 'gcc/testsuite/ChangeLog' for
the gory details.

mainly:
Fix PR objc/11754
When cascading message together under GNU runtime, GCC was sending the  
inner message twice,

this patch fixes that.
Also adds a testcase for that case.

And the patch:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/objc-act.c.diff? 
r1=1.179.2.4&r2=1.179.2.2


Thanks,
Andrew Pinski



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problem implementing faults in Objective-C

2005-06-21 Thread Frederic Stark

Jeremy Bettis wrote:


- Original Message - From: "Frederic Stark" <[EMAIL PROTECTED]>
To: ; 
Sent: Tuesday, June 21, 2005 6:12 AM
Subject: Problem implementing faults in Objective-C


: Uncaught exception NSInvalidArgumentException, reason: B(instance) 
does not recognize method1:



Ugh nasty hackery.  Never ever edit your isa pointer. Try doing things 
right


Right ? Changing the isa pointer is how NeXTstep EOFault worked. This is 
also what 'db' and 'gdl2' does. And it is what I need to do too.


I would agree that it is not daily objc code, but it is something one 
have to do sometimes...


Cheers,

--fred




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


Re: Problem implementing faults in Objective-C

2005-06-21 Thread Jeremy Bettis
- Original Message - 
From: "Frederic Stark" <[EMAIL PROTECTED]>

To: ; 
Sent: Tuesday, June 21, 2005 6:12 AM
Subject: Problem implementing faults in Objective-C


: Uncaught exception NSInvalidArgumentException, reason: B(instance) does 
not recognize method1:


Ugh nasty hackery.  Never ever edit your isa pointer. Try doing things right

- (void)forwardInvocation:(NSInvocation *)anInvocation
{
   B* theRealObj = [B new];
   [anInvocation setTarget:theRealObj];
   [anInvocation invoke];
}



___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


[Gnustep-cvs] gnustep/dev-libs/SQLClient ChangeLog SQLClient.m

2005-06-21 Thread Richard Frith-Macdonald
CVSROOT:/cvsroot/gnustep
Module name:gnustep
Branch: 
Changes by: Richard Frith-Macdonald <[EMAIL PROTECTED]> 05/06/21 
13:10:55

Modified files:
dev-libs/SQLClient: ChangeLog SQLClient.m 

Log message:
Expand tildes in paths

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/dev-libs/SQLClient/ChangeLog.diff?tr1=1.42&tr2=1.43&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/dev-libs/SQLClient/SQLClient.m.diff?tr1=1.18&tr2=1.19&r1=text&r2=text





[Gnustep-cvs] gnustep/core/base ChangeLog Source/NSBundle.m

2005-06-21 Thread Richard Frith-Macdonald
CVSROOT:/cvsroot/gnustep
Module name:gnustep
Branch: 
Changes by: Richard Frith-Macdonald <[EMAIL PROTECTED]> 05/06/21 
12:55:30

Modified files:
core/base  : ChangeLog 
core/base/Source: NSBundle.m 

Log message:
Expand tilde in bundle path.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/base/ChangeLog.diff?tr1=1.2543&tr2=1.2544&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/base/Source/NSBundle.m.diff?tr1=1.140&tr2=1.141&r1=text&r2=text





[Gnustep-cvs] gnustep/core/base/Source NSBundle.m

2005-06-21 Thread Richard Frith-Macdonald
CVSROOT:/cvsroot/gnustep
Module name:gnustep
Branch: 
Changes by: Richard Frith-Macdonald <[EMAIL PROTECTED]> 05/06/21 
12:57:21

Modified files:
core/base/Source: NSBundle.m 

Log message:
Add a comment explaining last change.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/base/Source/NSBundle.m.diff?tr1=1.141&tr2=1.142&r1=text&r2=text





Problem implementing faults in Objective-C

2005-06-21 Thread Frederic Stark

Hi all,

I am sending this to gnustep-dev crossposted to gcc. Maybe this isn't 
the right mailing list. See at the end of the post for a 40 line program 
that exhibit the bad behavior.


Problem:
If a is a fault (ie: changes its isa pointer during forwardInvocation), 
then:


[a method1:[a method2]]

fails (a does not recognize 'method1:'), while:

id o = [a method2];
[a method1:o];

works.

The code works correctly under Mac OS X.

Am I doing something horribly wrong ?
This is on gcc 3.2/mingw

Thanks for any help,

--fred

[EMAIL PROTECTED] /c/Dev/ObjcInvocations
$ shared_obj/invocation.exe
This one works:
method1
This one fails:
: Uncaught exception NSInvalidArgumentException, reason: B(instance) 
does not recognize method1:


[EMAIL PROTECTED] /c/Dev/ObjcInvocations


$ gcc -v
Reading specs from 
c:/GNUstepVersions/1.10.0/MinGW/bin/../lib/gcc-lib/mingw32/3.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as 
--host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads 
--disable-nls --enable-languages=f77,c++,objc,ada 
--disable-win32-registry --disable-shared

Thread model: win32
gcc version 3.2 (mingw special 20020817-1)

$ uname -a
MINGW32_NT-5.0 FLEA 1.0.10(0.46/3/2) 2004-03-15 07:17 i686 unknown

makefile:

-

MAKEFILE_NAME = GNUstepMakefile

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = invocation

invocation_OBJC_FILES = Invocation.m

invocation_C_FILES =

invocation_CC_FILES =

invocation_HEADER_FILES =

invocation_OBJ_FILES =

ADDITIONAL_OBJCFLAGS =

ADDITIONAL_INCLUDE_DIRS = -I../SystemConfiguration

ADDITIONAL_LIB_DIRS = -L../SystemConfiguration

invocation_TOOL_LIBS = -lgnustep-base \
-lobjc

-include GNUstepMakefile.preamble
-include GNUstepMakefile.local

include $(GNUSTEP_MAKEFILES)/tool.make

-include GNUstepMakefile.postamble

-

//  Test for invocation problem
#import 

@interface A : NSProxy
@end

@interface B : NSObject
- (void)method1:(id)o;
- (id)method2;
@end

@implementation A
- init { return self; }
- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSel { return [B 
instanceMethodSignatureForSelector:aSel]; }

- (void)forwardInvocation:(NSInvocation *)anInvocation
{
isa = [B class];
[anInvocation invoke];
}
@end

@implementation B
- (id)method2 { return self; }
- (void)method1:(id)a { printf( "method1\n" ); }
@end

int main()
{
[[NSAutoreleasePool alloc] init];
B *theB0 = (B *)[[A alloc] init];
B *theB1 = (B *)[[A alloc] init];

printf( "This one works:\n" );

id o = [theB0 method2];
[theB0 method1:o];

printf( "This one fails:\n" );
fflush( stdout );

[theB1 method1:[theB1 method2]];

return 0;
}




___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev


[Gnustep-cvs] GNUstep Testfarm Results

2005-06-21 Thread Adam Fedor
Test results for GNUstep as of Tue Jun 21 06:34:09 EDT 2005
If a particular system failed compilation, the logs for that system will
be placed at ftp://ftp.gnustep.org/pub/testfarm

If you would like to add your machine to this list, set up a cron job
(make sure you set up your PATH and other environment variables correctly)
to run the Startup/scripts/test-gnustep script (see the script comments 
for more info).

Success Compile i386-unknown-netbsdelf2.0.2 Tue Jun 21 03:58:26 CEST 2005
Success Compile powerpc-apple-darwin7.9.0 Tue Jun 21 03:22:18 MDT 2005
Success Compile sparc-sun-solaris2.7 Tue Jun 21 02:08:07 EDT 2005




How to find object variable?

2005-06-21 Thread Stefan Urbanek
Hi,

In latest StepTalk update I had a problem finding whether receiver knows about a
variable with a given name. I do not care whether it is a real ivar or not. I
have used following code:

NS_DURING
/* test whether variable is an ivar s*/
obj = [receiver valueForKey:varName];
NSDebugLLog(@"STCompiler", "New name: receiver variable %@",
varName);
[receiverVars addObject:varName];
NS_HANDLER
if([[localException name] isEqualToString:NSUnknownKeyException])
{
NSDebugLLog(@"STCompiler", "New name: extern %@", varName);
/* receiver has no such variable */
[externVars addObject:varName];
}
else
{
[localException raise];
}
NS_ENDHANDLER

Basically, what I do is to try to get a value for given key. If it exists, then
I assume that the receiver has that ivar.

Is there a better and cleaner way of doing that?

Thanks for any hints,

Stefan Urbanek

p.s.: GNUstep has NSUnknownKeyException where Cocoa has NSUndefinedKeyException,
I think that for compatibility reasons we should have the second instead.
--
http://stefan.agentfarms.net

First they ignore you, then they laugh at you, then they fight you, then
you win.
- Mahatma Gandhi


___
Gnustep-dev mailing list
Gnustep-dev@gnu.org
http://lists.gnu.org/mailman/listinfo/gnustep-dev