From kde-commits Fri Mar 19 02:58:32 2004 From: Richard Dale Date: Fri, 19 Mar 2004 02:58:32 +0000 To: kde-commits Subject: kdebindings/kalyptus Message-Id: <20040319025832.6BECA999A () office ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=107966511804849 CVS commit by rdale: * 'KDE Integrates Mono'; added -fkimono option to generate C# bindings * It doens't use the Qt C bindings, like Qt# but the Smoke lib instead * To generate the code and review the api, edit kdebindings/smoke/kde/generate.pl.in and change '-fsmoke' to '-fkimono'. Then configure kdebindings with the '--with-smoke=kde' option. The sources will be generated in smoke/kde. * It uses custom real proxies as AOP style interceptors, one per instance and a static interceptor per class. - Every method call in the api is forwarded to SmokeInvocation.Invoke() via the proxies, and is effectively a pointcut. - In Invoke() the method call will be looked up dynamically from the Smoke runtime - The arguments are marsalled from C# to C++ on the Smoke::Stack, and the method invoked. * The KDE doc comments are converted to C# xml style tags (eg KApplication.cs) * Problems - A small fix was need for RealProxies with Mono 0.30. DotGnu doesn't have RealProxies/remoting yet. - It should be possible to use ContextBoundObjects and custom ContextAttributes as described here, but they aren't implemented in Mono yet. http://msdn.microsoft.com/msdnmag/issues/03/03/ContextsinNET/ - In interfaces the 'ref' keyword can't be used - Doesn't use event handlers as delegates like Qt#, they are just overriden like normal virtual methods - Many compiler warnings about 'new virtual' not being needed. Some work needed to only add new to overriden ones. A kalyptusCxxToKimono.pm 1.1 M +27 -0 ChangeLog 1.32 M +3 -3 kalyptus 1.72 --- kdebindings/kalyptus/ChangeLog #1.31:1.32 @@ -1,2 +1,29 @@ +2004-03-19 Richard Dale + + * 'KDE Integrates Mono'; added -fkimono option to generate C# bindings + * It doens't use the Qt C bindings, like Qt# but the Smoke lib instead + * To generate the code and review the api, edit kdebindings/smoke/kde/generate.pl.in + and change '-fsmoke' to '-fkimono'. Then configure kdebindings with the + '--with-smoke=kde' option. The sources will be generated in smoke/kde. + * It uses custom real proxies as AOP style interceptors, one per instance + and a static interceptor per class. + - Every method call in the api is forwarded to SmokeInvocation.Invoke() + via the proxies, and is effectively a pointcut. + - In Invoke() the method call will be looked up dynamically from the Smoke runtime + - The arguments are marsalled from C# to C++ on the Smoke::Stack, and the method + invoked. + * The KDE doc comments are converted to C# xml style tags (eg KApplication.cs) + * Problems + - A small fix was need for RealProxies with Mono 0.30. DotGnu doesn't have + RealProxies/remoting yet. + - It should be possible to use ContextBoundObjects and custom ContextAttributes + as described here, but they aren't implemented in Mono yet. + http://msdn.microsoft.com/msdnmag/issues/03/03/ContextsinNET/ + - In interfaces the 'ref' keyword can't be used + - Doesn't use event handlers as delegates like Qt#, they are just overriden + like normal virtual methods + - Many compiler warnings about 'new virtual' not being needed. Some work needed + to only add new to overriden ones. + 2004-02-17 Richard Dale --- kdebindings/kalyptus/kalyptus #1.71:1.72 @@ -86,6 +86,6 @@ %formats = ( "java" => "kalyptusCxxToJava", "jni" => "kalyptusCxxToJNI", "c" => "kalyptusCxxToC", "objc" => "kalyptusCxxToObjc", "dcopidl" => "kalyptusCxxToDcopIDL", - "smoke" => "kalyptusCxxToSmoke", "csharp" => "kalyptusCxxToCSharp", - "ECMA" => "kalyptusCxxToECMA", "swig" => "kalyptusCxxToSwig" ); + "smoke" => "kalyptusCxxToSmoke", "csharp" => "kalyptusCxxToCSharp", "kimono" => "kalyptusCxxToKimono", + "ECMA" => "kalyptusCxxToECMA", "swig" => "kalyptusCxxToSwig" ); # these are for expansion of method flags