From chordam7 at yahoo.com Mon May 19 21:37:41 2008 From: chordam7 at yahoo.com (christopher hord) Date: Mon, 19 May 2008 18:37:41 -0700 (PDT) Subject: [Cocoa-sharp] Helping with documentation Message-ID: <157350.35072.qm@web38901.mail.mud.yahoo.com> Hi! I saw the front page of the website, asking if anyone would volunteer to assist with documentation. I would. I am a college student working on a cross-platform project in C# and Mono -- I expect to delve into the topic quite a bit over the next several weeks! As a student, I may be a bit of a n00b, so I hope it's worth your while to help me ramp up to speed. Although my technical skills are just firming up, I am an experienced writer and editor, with 20 years of published articles on business and technology. So I believe I can be an asset. Please contact my email at your convenience. Yours, Chris -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.ximian.com/pipermail/cocoa-sharp/attachments/20080519/0cddc6ee/attachment.html From gnorton at novell.com Mon May 19 21:54:41 2008 From: gnorton at novell.com (Geoff Norton) Date: Mon, 19 May 2008 21:54:41 -0400 Subject: [Cocoa-sharp] Helping with documentation In-Reply-To: <157350.35072.qm@web38901.mail.mud.yahoo.com> References: <157350.35072.qm@web38901.mail.mud.yahoo.com> Message-ID: <1211248481.6770.10.camel@limestone> chris, Its a better idea to just dive into the cocoa2-sharp code and start contributing controls to me. Also you will find problems with it considering how new the binding is, but you can kick those up to me to fix. -g ps> document the classes as you go! :) On Mon, 2008-05-19 at 18:37 -0700, christopher hord wrote: > Hi! > > I saw the front page of the website, asking if anyone would volunteer > to assist with documentation. I would. I am a college student working > on a cross-platform project in C# and Mono -- I expect to delve into > the topic quite a bit over the next several weeks! > > As a student, I may be a bit of a n00b, so I hope it's worth your > while to help me ramp up to speed. Although my technical skills are > just firming up, I am an experienced writer and editor, with 20 years > of published articles on business and technology. So I believe I can > be an asset. Please contact my email at your convenience. > > Yours, > Chris > _______________________________________________ > Cocoa-sharp mailing list > Cocoa-sharp at lists.ximian.com > http://lists.ximian.com/mailman/listinfo/cocoa-sharp From ajbrehm at gmail.com Thu May 22 05:14:46 2008 From: ajbrehm at gmail.com (Andrew Brehm) Date: Thu, 22 May 2008 10:14:46 +0100 Subject: [Cocoa-sharp] Web site Message-ID: <49f8fc020805220214w5bd450c1i1bc0f6f1ccd090a9@mail.gmail.com> Hi, It's the regular "what's going on with the Web site" post... Last status known to me: I tried to change the logo but couldn't. Anybody here? From jesjones at mindspring.com Fri May 23 21:02:27 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Fri, 23 May 2008 18:02:27 -0700 Subject: [Cocoa-sharp] [PATCH] nunit-console2 replacement Message-ID: nunit crashes when running tests on a PPC. It also crashes (sometimes anyway) on Intel. Until we can track down and fix the problem I have a little app that can run nunit tests in a dll: diff --git a/Makefile b/Makefile index a6c9a59..3a2b6d6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,16 @@ all: cd src && make cd test && make + cd test2 && make + cd test2 && make run + +nunit: + cd src && make + cd test && make cd test && make run test2/Makefile all: gmcs *.cs -pkg:mono-nunit -out:../test/test2.exe -target:exe run: cd ../test && mono --debug test2.exe test2/Test.cs // TODO: This is used to run the unit tests outside of nunit. When we run them inside // of nunit they tend to crash. We really need to figure out why this is happening and // whether it's a problem with nunit or a bug on our side which nunit is exposing. using NUnit.Framework; using System; using System.Collections.Generic; using System.Reflection; public static class Program { public static void Main() { Assembly assembly = Assembly.LoadFile("objc2-sharp-tests.dll"); Dictionary tests = DoFindTests(assembly); DoRunTests(tests); } private static void DoRunTests(Dictionary tests) { int numTests = 0, numFailed = 0; bool collected = true; // TODO: set this to false foreach (KeyValuePair entry in tests) { object instance = Activator.CreateInstance(entry.Key); foreach (MethodInfo minfo in entry.Value) { try { if (!collected) { GC.Collect(); // TODO: get a crash (apprently in our delegate when we do this) System.Threading.Thread.Sleep(200); // give the finalizer enough time to run collected = true; // TODO: we should always collect before a test } ++numTests; minfo.Invoke(instance, null); } catch (TargetInvocationException e) { if (e.InnerException != null && e.InnerException.GetType() == typeof(AssertionException)) { ++numFailed; Console.Write("{0}", minfo); Console.WriteLine(e.InnerException.Message); } else throw; } } } if (numFailed == 0) Console.WriteLine("passed: ran {0} tests with no failures", numTests); else if (numFailed == 1) Console.WriteLine("FAILED: ran {0} tests with one failure", numTests); else Console.WriteLine("FAILED: ran {0} tests with {1} failures", numTests, numFailed); } private static Dictionary DoFindTests(Assembly assembly) { Dictionary tests = new Dictionary(); foreach (Type type in assembly.GetTypes()) { if (type.GetCustomAttributes(typeof(TestFixtureAttribute), false).Length > 0) { List methods = new List(); foreach (MethodInfo minfo in type.GetMethods(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance)) { if (Attribute.GetCustomAttribute(minfo, typeof(TestAttribute)) != null) { methods.Add(minfo); } } if (methods.Count > 0) tests.Add(type, methods.ToArray()); } } return tests; } } From jesjones at mindspring.com Fri May 23 21:15:20 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Fri, 23 May 2008 18:15:20 -0700 Subject: [Cocoa-sharp] [PATCH] IntPtr and bool marshalling Message-ID: The current code crashes when an IntPtr is marshaled on PPC and returns the wrong value when bools are marshaled. One thing to note is that it encodes bools as "rc" to allow for round-tripping. It might be better to just use "c". diff --git a/src/Messaging.cs b/src/Messaging.cs index b564a1f..6289c19 100644 --- a/src/Messaging.cs +++ b/src/Messaging.cs @@ -9,7 +9,7 @@ namespace ObjC2 { [DllImport ("/usr/lib/libobjc.dylib")] internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, IntPtr arg); [DllImport ("/usr/lib/libobjc.dylib")] - internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, ref bool arg); + internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, [MarshalAs(UnmanagedType.U1)] ref bool arg); [DllImport ("/usr/lib/libobjc.dylib")] internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, ref IntPtr arg); [DllImport ("/usr/lib/libobjc.dylib")] diff --git a/src/Method.cs b/src/Method.cs index bad9286..5fb5af7 100644 --- a/src/Method.cs +++ b/src/Method.cs @@ -40,7 +40,7 @@ namespace ObjC2 { selector = new Selector (export.Selector == null ? minfo.Name : export.Selector); - signature = TypeConverter.ToNative (minfo.ReturnType).ToString (); + signature = TypeConverter.ToNative (minfo.ReturnType); signature += "@:"; foreach (ParameterInfo param in minfo.GetParameters ()) { if (param.ParameterType == typeof (Object) || param.ParameterType.IsSubclassOf (typeof (Object))) diff --git a/src/TypeConverter.cs b/src/TypeConverter.cs index 07dc685..ef21a14 100644 --- a/src/TypeConverter.cs +++ b/src/TypeConverter.cs @@ -32,7 +32,7 @@ namespace ObjC2 { return typeof (float); case "d": return typeof (double); - case "B": + case "rc": return typeof (bool); case "*": return typeof (string); @@ -58,36 +58,38 @@ namespace ObjC2 { * * http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/Type-encoding.html */ - internal static char ToNative (Type type) { + internal static string ToNative (Type type) { if (type == typeof (char)) - return 'c'; + return "c"; if (type == typeof (Int32)) - return 'i'; + return "i"; + if (type == typeof (IntPtr) || type == typeof (UIntPtr)) + return "^v"; if (type == typeof (short)) - return 's'; + return "s"; if (type == typeof (long)) - return 'l'; + return "l"; if (type == typeof (Int64)) - return 'q'; + return "q"; if (type == typeof (UInt32)) - return 'I'; + return "I"; if (type == typeof (ushort)) - return 'S'; + return "S"; if (type == typeof (ulong)) - return 'L'; + return "L"; if (type == typeof (UInt64)) - return 'Q'; + return "Q"; if (type == typeof (float)) - return 'f'; + return "f"; if (type == typeof (double)) - return 'd'; + return "d"; if (type == typeof (bool)) - return 'B'; + return "rc"; if (type == typeof (string)) - return '*'; + return "*"; if (type == typeof (void)) - return 'v'; - return '@'; + return "v"; + return "@"; } } } From jesjones at mindspring.com Fri May 23 21:22:45 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Fri, 23 May 2008 18:22:45 -0700 Subject: [Cocoa-sharp] [PATCH] NSAutoreleasePool crasher Message-ID: <96D3B443-5AB3-40FD-8849-69D07847D770@mindspring.com> Calling Object::Init on the NSAutoreleasePool in the static Object constructor crashes on a PPC with OS 10.5.2 apparently because the NSInvocation tries to do a retain on it which isn't supported. The patch below fixes this: diff --git a/src/Object.cs b/src/Object.cs index d05c326..451e150 100644 --- a/src/Object.cs +++ b/src/Object.cs @@ -13,7 +13,10 @@ namespace ObjC2 { internal IntPtr handle; static Object () { - Construct ("NSAutoreleasePool").Init (); + Object o = Construct ("NSAutoreleasePool"); + Messaging.objc_msgSend (Get(o), new Selector ("init").Handle); +// o.Init(); + From jesjones at mindspring.com Tue May 27 17:56:42 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Tue, 27 May 2008 14:56:42 -0700 Subject: [Cocoa-sharp] [PATCH] NSAutoreleasePool crasher Message-ID: Per IRC here is a new patch. The only real difference is that the init selector is cached as requested. diff --git a/src/Object.cs b/src/Object.cs index d05c326..d17b394 100644 --- a/src/Object.cs +++ b/src/Object.cs @@ -7,13 +7,15 @@ namespace ObjC2 { public class Object { private static Selector aselector = new Selector ("alloc"); private static Selector cselector = new Selector ("class"); + private static Selector iselector = new Selector ("init"); private static Dictionary intptr_to_instance = new Dictionary (); private static Dictionary instance_to_intptr = new Dictionary (); internal IntPtr handle; static Object () { - Construct ("NSAutoreleasePool").Init (); + Object o = Construct ("NSAutoreleasePool"); + Messaging.objc_msgSend (Get(o), iselector.Handle); foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies ()) { foreach (Type type in assembly.GetTypes ()) { if (type.IsSubclassOf (typeof (Object))) { From jesjones at mindspring.com Tue May 27 17:57:44 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Tue, 27 May 2008 14:57:44 -0700 Subject: [Cocoa-sharp] [PATCH] IntPtr and bool marshalling Message-ID: As per IRC here's an updated patch for the PPC marshaling problems. The differences from the original patch are 1) "c" is used instead of "rc" when typing System.Boolean and 2) System.Char is not typed at all (original code used 'c' which is now used for bool, and was wrong anyway because we should map to unichar which is an unsigned short). diff --git a/src/Messaging.cs b/src/Messaging.cs index b564a1f..6289c19 100644 --- a/src/Messaging.cs +++ b/src/Messaging.cs @@ -9,7 +9,7 @@ namespace ObjC2 { [DllImport ("/usr/lib/libobjc.dylib")] internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, IntPtr arg); [DllImport ("/usr/lib/libobjc.dylib")] - internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, ref bool arg); + internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, [MarshalAs(UnmanagedType.U1)] ref bool arg); [DllImport ("/usr/lib/libobjc.dylib")] internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, ref IntPtr arg); [DllImport ("/usr/lib/libobjc.dylib")] diff --git a/src/Method.cs b/src/Method.cs index bad9286..5fb5af7 100644 --- a/src/Method.cs +++ b/src/Method.cs @@ -40,7 +40,7 @@ namespace ObjC2 { selector = new Selector (export.Selector == null ? minfo.Name : export.Selector); - signature = TypeConverter.ToNative (minfo.ReturnType).ToString (); + signature = TypeConverter.ToNative (minfo.ReturnType); signature += "@:"; foreach (ParameterInfo param in minfo.GetParameters ()) { if (param.ParameterType == typeof (Object) || param.ParameterType.IsSubclassOf (typeof (Object))) diff --git a/src/TypeConverter.cs b/src/TypeConverter.cs index 07dc685..bc68fe6 100644 --- a/src/TypeConverter.cs +++ b/src/TypeConverter.cs @@ -11,7 +11,7 @@ namespace ObjC2 { internal static Type ToManaged (string type) { switch (type) { case "c": - return typeof (char); + return typeof (bool); case "i": return typeof (Int32); case "s": @@ -32,8 +32,6 @@ namespace ObjC2 { return typeof (float); case "d": return typeof (double); - case "B": - return typeof (bool); case "*": return typeof (string); case "v": case "Vv": @@ -58,36 +56,36 @@ namespace ObjC2 { * * http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/Type-encoding.html */ - internal static char ToNative (Type type) { - if (type == typeof (char)) - return 'c'; + internal static string ToNative (Type type) { + if (type == typeof (bool)) + return "c"; if (type == typeof (Int32)) - return 'i'; + return "i"; + if (type == typeof (IntPtr) || type == typeof (UIntPtr)) + return "^v"; if (type == typeof (short)) - return 's'; + return "s"; if (type == typeof (long)) - return 'l'; + return "l"; if (type == typeof (Int64)) - return 'q'; + return "q"; if (type == typeof (UInt32)) - return 'I'; + return "I"; if (type == typeof (ushort)) - return 'S'; + return "S"; if (type == typeof (ulong)) - return 'L'; + return "L"; if (type == typeof (UInt64)) - return 'Q'; + return "Q"; if (type == typeof (float)) - return 'f'; + return "f"; if (type == typeof (double)) - return 'd'; - if (type == typeof (bool)) - return 'B'; + return "d"; if (type == typeof (string)) - return '*'; + return "*"; if (type == typeof (void)) - return 'v'; - return '@'; + return "v"; + return "@"; } } } From jesjones at mindspring.com Tue May 27 18:03:42 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Tue, 27 May 2008 15:03:42 -0700 Subject: [Cocoa-sharp] [PATCH] NSAutoreleasePool crasher In-Reply-To: References: Message-ID: <291F3222-79F2-4777-A8CC-C4D37A6B9E8B@mindspring.com> Note that I suspect that this is also causing NSExceptions to be thrown on Intel, but there we either aren't crashing or things are being corrupted too subtly for us to notice. -- Jesse From gnorton at novell.com Tue May 27 17:59:18 2008 From: gnorton at novell.com (Geoff Norton) Date: Tue, 27 May 2008 17:59:18 -0400 Subject: [Cocoa-sharp] [PATCH] NSAutoreleasePool crasher In-Reply-To: References: Message-ID: <1211925558.30652.29.camel@limestone> This is ok. Add a ChangeLog and commit please. (Please follow the mono changelog format) -g On Tue, 2008-05-27 at 14:56 -0700, Jesse Jones wrote: > Per IRC here is a new patch. The only real difference is that the init > selector is cached as requested. > > diff --git a/src/Object.cs b/src/Object.cs > index d05c326..d17b394 100644 > --- a/src/Object.cs > +++ b/src/Object.cs > @@ -7,13 +7,15 @@ namespace ObjC2 { > public class Object { > private static Selector aselector = new Selector ("alloc"); > private static Selector cselector = new Selector ("class"); > + private static Selector iselector = new Selector ("init"); > private static Dictionary intptr_to_instance = new > Dictionary (); > private static Dictionary instance_to_intptr = new > Dictionary (); > > internal IntPtr handle; > > static Object () { > - Construct ("NSAutoreleasePool").Init (); > + Object o = Construct ("NSAutoreleasePool"); > + Messaging.objc_msgSend (Get(o), iselector.Handle); > foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies > ()) { > foreach (Type type in assembly.GetTypes ()) { > if (type.IsSubclassOf (typeof (Object))) { > _______________________________________________ > Cocoa-sharp mailing list > Cocoa-sharp at lists.ximian.com > http://lists.ximian.com/mailman/listinfo/cocoa-sharp From gnorton at novell.com Tue May 27 17:59:54 2008 From: gnorton at novell.com (Geoff Norton) Date: Tue, 27 May 2008 17:59:54 -0400 Subject: [Cocoa-sharp] [PATCH] IntPtr and bool marshalling In-Reply-To: References: Message-ID: <1211925594.30652.31.camel@limestone> This one is ok too. Same as before, ChangeLog + commit. Thanks for the patches! -g On Tue, 2008-05-27 at 14:57 -0700, Jesse Jones wrote: > As per IRC here's an updated patch for the PPC marshaling problems. > The differences from the original patch are 1) "c" is used instead of > "rc" when typing System.Boolean and 2) System.Char is not typed at all > (original code used 'c' which is now used for bool, and was wrong > anyway because we should map to unichar which is an unsigned short). > > > diff --git a/src/Messaging.cs b/src/Messaging.cs > index b564a1f..6289c19 100644 > --- a/src/Messaging.cs > +++ b/src/Messaging.cs > @@ -9,7 +9,7 @@ namespace ObjC2 { > [DllImport ("/usr/lib/libobjc.dylib")] > internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, > IntPtr arg); > [DllImport ("/usr/lib/libobjc.dylib")] > - internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, > ref bool arg); > + internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, > [MarshalAs(UnmanagedType.U1)] ref bool arg); > [DllImport ("/usr/lib/libobjc.dylib")] > internal extern static IntPtr objc_msgSend (IntPtr cls, IntPtr sel, > ref IntPtr arg); > [DllImport ("/usr/lib/libobjc.dylib")] > > diff --git a/src/Method.cs b/src/Method.cs > index bad9286..5fb5af7 100644 > --- a/src/Method.cs > +++ b/src/Method.cs > @@ -40,7 +40,7 @@ namespace ObjC2 { > > selector = new Selector (export.Selector == null ? minfo.Name : > export.Selector); > > - signature = TypeConverter.ToNative (minfo.ReturnType).ToString (); > + signature = TypeConverter.ToNative (minfo.ReturnType); > signature += "@:"; > foreach (ParameterInfo param in minfo.GetParameters ()) { > if (param.ParameterType == typeof (Object) || > param.ParameterType.IsSubclassOf (typeof (Object))) > > diff --git a/src/TypeConverter.cs b/src/TypeConverter.cs > index 07dc685..bc68fe6 100644 > --- a/src/TypeConverter.cs > +++ b/src/TypeConverter.cs > @@ -11,7 +11,7 @@ namespace ObjC2 { > internal static Type ToManaged (string type) { > switch (type) { > case "c": > - return typeof (char); > + return typeof (bool); > case "i": > return typeof (Int32); > case "s": > @@ -32,8 +32,6 @@ namespace ObjC2 { > return typeof (float); > case "d": > return typeof (double); > - case "B": > - return typeof (bool); > case "*": > return typeof (string); > case "v": case "Vv": > @@ -58,36 +56,36 @@ namespace ObjC2 { > * > * http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/gcc/Type-encoding.html > */ > - internal static char ToNative (Type type) { > - if (type == typeof (char)) > - return 'c'; > + internal static string ToNative (Type type) { > + if (type == typeof (bool)) > + return "c"; > if (type == typeof (Int32)) > - return 'i'; > + return "i"; > + if (type == typeof (IntPtr) || type == typeof (UIntPtr)) > + return "^v"; > if (type == typeof (short)) > - return 's'; > + return "s"; > if (type == typeof (long)) > - return 'l'; > + return "l"; > if (type == typeof (Int64)) > - return 'q'; > + return "q"; > if (type == typeof (UInt32)) > - return 'I'; > + return "I"; > if (type == typeof (ushort)) > - return 'S'; > + return "S"; > if (type == typeof (ulong)) > - return 'L'; > + return "L"; > if (type == typeof (UInt64)) > - return 'Q'; > + return "Q"; > if (type == typeof (float)) > - return 'f'; > + return "f"; > if (type == typeof (double)) > - return 'd'; > - if (type == typeof (bool)) > - return 'B'; > + return "d"; > if (type == typeof (string)) > - return '*'; > + return "*"; > if (type == typeof (void)) > - return 'v'; > - return '@'; > + return "v"; > + return "@"; > } > } > } > _______________________________________________ > Cocoa-sharp mailing list > Cocoa-sharp at lists.ximian.com > http://lists.ximian.com/mailman/listinfo/cocoa-sharp From jesjones at mindspring.com Wed May 28 00:57:47 2008 From: jesjones at mindspring.com (Jesse Jones) Date: Tue, 27 May 2008 21:57:47 -0700 Subject: [Cocoa-sharp] NSAutoreleasePool Message-ID: <1D1ADBC4-C34B-4107-BB6D-4DB1146D8B11@mindspring.com> So, I've been poking around trying to find out why NSInvocation fails with a "Cannot retain an autorelease pool" when we use it to call NSAutoreleasePool init. I still don't know exactly what is happening, but I do have a simpler repro. The attachment has a native dll that uses NSInvocation to call NSAutoreleasePool init plus managed and unmanaged apps that use the dll. The native app works fine. The managed app fails. Not sure why, but it's definitely calling NSAutoreleasePool init which is definitely throwing. I'd be curious to know if the managed app works on Windows. -------------- next part -------------- A non-text attachment was scrubbed... Name: PoolTest.zip Type: application/zip Size: 2011 bytes Desc: not available Url : http://lists.ximian.com/pipermail/cocoa-sharp/attachments/20080527/84334d77/attachment-0001.zip -------------- next part -------------- -- Jesse From gagnonje5000 at mac.com Thu May 29 22:58:09 2008 From: gagnonje5000 at mac.com (=?ISO-8859-1?Q?J=E9r=F4me_Gagnon-Voyer?=) Date: Thu, 29 May 2008 19:58:09 -0700 Subject: [Cocoa-sharp] Performance of UI In-Reply-To: <003901c8806a$138ac790$0502a8c0@atlantic2k.private> References: <003901c8806a$138ac790$0502a8c0@atlantic2k.private> Message-ID: <177dea4c0805291958n3c471735h2af90de069bb0b34@mail.gmail.com> Is there any news about the performance issue? I get very slow performances from CocoaSharp shipped with the last Mono. Thanks for your answers. On Fri, Mar 7, 2008 at 8:44 AM, Edward Carr wrote: > David, > > Pretty much all the interop classes had to be reverted/revised in some > manner. Most of the revision was in making sure that the old interop code > matched the new design of the Cocoa wrapper classes. > > Ed > > -----Original Message----- > From: cocoa-sharp-bounces at lists.ximian.com > [mailto:cocoa-sharp-bounces at lists.ximian.com] On Behalf Of David Jehring > Sent: Friday, March 07, 2008 9:23 AM > To: Cocoa Sharp > Subject: Re: [Cocoa-sharp] Performance of UI > > Edward, > > That is very helpful information and indicates that a fix should be > possible. Have you replaced all of the interop classes, if not which ones ? > > David > > > On 07/03/2008 13:37, "Edward Carr" wrote: > > > The performance problem is not a Leopard only issue. We have the same > > problem when running under 10.3, 10.4 and 10.5. It's a fundamental issue > > with the interop classes. I've replaced just the interop classes with > ones > > from an initial release when there was stackpadding and voodoo magic > going > > on; I forget the actual release, but I believe it is the source that was > > used to build the cocoa-sharp that is still being released with Mono > today. > > This original (but messy) code performs much better than the current > code. > > > > Edward Carr > > > > -----Original Message----- > > From: cocoa-sharp-bounces at lists.ximian.com > > [mailto:cocoa-sharp-bounces at lists.ximian.com] On Behalf Of marc hoffman > > Sent: Friday, March 07, 2008 5:10 AM > > To: David Jehring > > Cc: Cocoa-sharp at lists.ximian.com > > Subject: Re: [Cocoa-sharp] Performance of UI > > > > David, > > > > i too am seeing this, and it *seems* to be a leopard problem only. i > > remember speed being just fine when i first played with Cocoa# on > > 10.4, last September/October, then when i switched to leopard things > > turned bad (i posted at the time). i've seen some improvements in > > general UI since 1.2.6 (i think), for example my > > MethiodHeaderConverter works fine. but even a simple app using a grid > > (such as http://www.remobjects.com?da35 slows to a crawl - and it's > > NOT the callbacks to get data or coloring info 0 its just as slow > > without). > > > > one major culprit, i think, is the new Toolbar. it might sound silly, > > but in my first tests back when i switched to Leopard, i got the > > impression that the simple presence of a toolbar changed speed. drop > > an textedit - all is fine. drop a toolbar too, and typing got > > reaaaallllllyyyyy slloooowwww, and Mono.exe ate a full CPU, according > > to "top" while you did. > > > > Yours, > > > > marc hoffman > > > > RemObjects Software > > The Infrastructure Company > > http://www.remobjects.com > > > > > > On Mar 7, 2008, at 10:51 AM, David Jehring wrote: > > > >> Thanks Edward, it is reassuring to hear that it is a known issue but > >> somewhat disappointing that such a fundamental problem has existed > >> for so long with no sign of it being addressed. Following the > >> initial deafeningly silent response to my post I have abandoned > >> cocoa-sharp and gone back to the somewhat more laborious task of > >> porting my clients to pure obj-c. It seems a shame but I cannot risk > >> the issue not being resolved and ending up with unusable applications. > >> > >> David > >> > >> > >> On 06/03/2008 21:31, "Edward Carr" wrote: > >> > >>> David, > >>> > >>> I have seen the same issue that you are seeing. We actually use a > >>> previous version of Cocoa-sharp, which performs 1000% better. I > >>> have raised this issue before in the past, but no one seemed to > >>> acknowledge it. With the previous version, we were able to put > >>> together a great performing product. > >>> > >>> Edward Carr > >>> > >>> From: cocoa-sharp-bounces at lists.ximian.com > > [mailto:cocoa-sharp-bounces at lists.ximian.com > >>> ] On Behalf Of David Jehring > >>> Sent: Saturday, March 01, 2008 4:46 AM > >>> To: Cocoa-sharp at lists.ximian.com > >>> Subject: [Cocoa-sharp] Performance of UI > >>> > >>> Having got to grips with writing cocoa sharp applications over the > >>> past couple of weeks I am experiencing a significant problem of UI > >>> performance, as noted in another posting earlier this week. Even a > >>> simple 'Hello world' application shows significant screen lag when > >>> resizing and consumes disproportionate CPU time, once you add a > >>> couple of views to a window resizing can consume 90% of CPU time. > >>> Typing into a text field with an event attached can produce a lag > >>> of a second or so between characters. As with all open source > >>> software when you find these things there is always a strong > >>> possibility that this is to do with local configuration, but in > >>> addition to the posting this week I note a thread called > >>> 'Performance on Leopard' last year discussing this issue with no > >>> conclusion. Are others experiencing this ? If so is there anyone > >>> with insight as to what the underlying issue is and what is > >>> required to resolve it. I see cocoa sharp as the most sensible way > >>> to bring my web service based client applications from Windows to > >>> OS X and would be very happy to contribute to the open source > >>> effort, however this issue would seem to be a bit of a showstopper. > >>> > >>> David > >>> > >>> Dr David Jehring > >>> > >>> > >> _______________________________________________ > >> Cocoa-sharp mailing list > >> Cocoa-sharp at lists.ximian.com > >> http://lists.ximian.com/mailman/listinfo/cocoa-sharp > > > > _______________________________________________ > > Cocoa-sharp mailing list > > Cocoa-sharp at lists.ximian.com > > http://lists.ximian.com/mailman/listinfo/cocoa-sharp > > > > > > _______________________________________________ > > Cocoa-sharp mailing list > > Cocoa-sharp at lists.ximian.com > > http://lists.ximian.com/mailman/listinfo/cocoa-sharp > > > > > _______________________________________________ > Cocoa-sharp mailing list > Cocoa-sharp at lists.ximian.com > http://lists.ximian.com/mailman/listinfo/cocoa-sharp > > > _______________________________________________ > Cocoa-sharp mailing list > Cocoa-sharp at lists.ximian.com > http://lists.ximian.com/mailman/listinfo/cocoa-sharp > -- J?r?me Gagnon-Voyer Courriel: gagnonje5000 at mac.com MSN Messenger: gagnonje at hotmail.com Skype: germinator5000 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.ximian.com/pipermail/cocoa-sharp/attachments/20080529/063f9787/attachment.html