Re: [Mono-dev] Generic Variance

2009-02-10 Thread Scott Peterson
Thanks. Can't believe I didn't see that ;)
Index: mono/metadata/class.c
===
--- mono/metadata/class.c	(revision 126432)
+++ mono/metadata/class.c	(working copy)
@@ -67,6 +67,7 @@
 static void setup_generic_array_ifaces (MonoClass *class, MonoClass *iface, MonoMethod **methods, int pos);
 
 static MonoMethod* mono_class_get_virtual_methods (MonoClass* klass, gpointer *iter);
+static gboolean mono_class_has_variant_generic_params (MonoClass *klass);
 
 void (*mono_debugger_class_init_func) (MonoClass *klass) = NULL;
 void (*mono_debugger_class_loaded_methods_func) (MonoClass *klass) = NULL;
@@ -2101,6 +2102,36 @@
 	return (key->interface_id - element->interface_id);
 }
 
+static gboolean
+mono_class_is_variant_of (MonoClass *klass, MonoClass *vklass) {
+	int i;
+	MonoClass *generic = klass->generic_class->container_class;
+	MonoClass *vgeneric = vklass->generic_class->container_class;
+	MonoGenericContainer *container = vgeneric->generic_container;
+
+	if (generic != vgeneric)
+		return FALSE;
+
+	for (i = 0; i < container->type_argc; i++) {
+		MonoClass *param_class = mono_class_from_mono_type (klass->generic_class->context.class_inst->type_argv [i]);
+		MonoClass *vparam_class = mono_class_from_mono_type (vklass->generic_class->context.class_inst->type_argv [i]);
+
+		// FIXME this is incorrect
+		if (param_class->valuetype || vparam_class->valuetype)
+			return FALSE;
+
+		if (container->type_params [i].flags & GENERIC_PARAMETER_ATTRIBUTE_VARIANCE_MASK) {
+			if ((container->type_params [i].flags & GENERIC_PARAMETER_ATTRIBUTE_CONTRAVARIANT) && !mono_class_is_assignable_from (param_class, vparam_class))
+return FALSE;
+			if ((container->type_params [i].flags & GENERIC_PARAMETER_ATTRIBUTE_COVARIANT) && !mono_class_is_assignable_from (vparam_class, param_class))
+return FALSE;
+		} else if (param_class != vparam_class)
+			return FALSE;
+	}
+
+	return TRUE;
+}
+
 int
 mono_class_interface_offset (MonoClass *klass, MonoClass *itf) {
 	MonoClass **result = bsearch (
@@ -2116,6 +2147,21 @@
 	}
 }
 
+int
+mono_class_interface_offset_with_variance (MonoClass *klass, MonoClass *itf) {
+	int i = mono_class_interface_offset (klass, itf);
+	if (i >= 0) {
+		return i;
+	} else if (mono_class_has_variant_generic_params (itf)) {
+		for (i = 0; i < klass->interface_offsets_count; i++) {
+			if (mono_class_is_variant_of (klass->interfaces_packed[i], itf)) {
+return klass->interface_offsets_packed [i];
+			}
+		}
+	}
+	return -1;
+}
+
 static void
 print_implemented_interfaces (MonoClass *klass) {
 	GPtrArray *ifaces = NULL;
@@ -5935,38 +5981,8 @@
 	if ((container_class2->interfaces_packed [i] == container_class1) || (container_class2->interfaces_packed [i]->generic_class && (container_class2->interfaces_packed [i]->generic_class->container_class == container_class1)))
 		match = TRUE;
 
-if (match) {
-	MonoGenericContainer *container;
-
-	container = klass->generic_class->container_class->generic_container;
-
-	match = TRUE;
-	for (i = 0; i < container->type_argc; ++i) {
-		MonoClass *param1_class = mono_class_from_mono_type (klass->generic_class->context.class_inst->type_argv [i]);
-		MonoClass *param2_class = mono_class_from_mono_type (oklass->generic_class->context.class_inst->type_argv [i]);
-
-		if (param1_class->valuetype != param2_class->valuetype) {
-			match = FALSE;
-			break;
-		}
-		/*
-		 * The _VARIANT and _COVARIANT constants should read _COVARIANT and
-		 * _CONTRAVARIANT, but they are in a public header so we can't fix it.
-		 */
-		if (param1_class != param2_class) {
-			if ((container->type_params [i].flags & MONO_GEN_PARAM_VARIANT) && mono_class_is_assignable_from (param1_class, param2_class))
-;
-			else if (((container->type_params [i].flags & MONO_GEN_PARAM_COVARIANT) && mono_class_is_assignable_from (param2_class, param1_class)))
-;
-			else {
-match = FALSE;
-break;
-			}
-		}
-	}
-
-	if (match)
-		return TRUE;
+if (match && mono_class_is_variant_of (oklass, klass)) {
+	return TRUE;
 }
 			}
 		}
Index: mono/metadata/ChangeLog
===
--- mono/metadata/ChangeLog	(revision 126432)
+++ mono/metadata/ChangeLog	(working copy)
@@ -1,3 +1,17 @@
+2009-02-10  Scott Peterson  
+
+	This adds runtime generic variance support for reference types.
+	This patch is contributed under the MIT/X11 license.
+
+	* class.c: Added mono_class_has_variant_generic_params which determins
+	if a generic class has a variant type parameter. Added
+	mono_class_is_variant_of which determins if the first class is a legal
+	variant of the second. Added mono_class_interface_offset_with_variance
+	to look for interfaces in a variance-aware fashion. Modified
+	mono_class_is_assignable_from to use the two new methods.
+
+	* class-internals.h: Added mono_

Re: [Mono-dev] gmcs and The Future

2009-02-10 Thread Scott Peterson
Any word on a wiki?
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread FirstName LastName

Hi,
 
I'm running mono on a arm.  When I launch my application, I see multiple mono 
processes.
 
when I do this on my ubuntu machine (x86), i don't see this.  I even tried this 
on a PPC and I don't see this.
 
I only see this on the arm.
 
Can someone explain me why or refer me to some documentation onto why do I have 
multiple mono processes?
 
Thanks.
_
Twice the fun—Share photos while you chat with Windows Live Messenger.
http://www.microsoft.com/windows/windowslive/products/messenger.aspx___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread Rodrigo Kumpera
What kernel version are you using?


2009/2/10 FirstName LastName 

>  Hi,
>
> I'm running mono on a arm.  When I launch my application, I see multiple
> mono processes.
>
> when I do this on my ubuntu machine (x86), i don't see this.  I even tried
> this on a PPC and I don't see this.
>
> I only see this on the arm.
>
> Can someone explain me why or refer me to some documentation onto why do I
> have multiple mono processes?
>
> Thanks.
>
> --
> Twice the fun— Share photos while you chat with Windows Live 
> Messenger.
>
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread Robert Jordan
FirstName LastName wrote:
> Hi,
>  
> I'm running mono on a arm.  When I launch my application, I see multiple mono 
> processes.
>  
> when I do this on my ubuntu machine (x86), i don't see this.  I even tried 
> this on a PPC and I don't see this.
>  
> I only see this on the arm.
>  
> Can someone explain me why or refer me to some documentation onto why do I 
> have multiple mono processes?

Your ubuntu machine has NPTL threads (kernel >= 2.6) while the ARM one
probably not. Linux' old threading system is mapping threads to
processes 1:1.

Robert

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread Rafael Teixeira
Probably you are using uclibc, which AFAIR has limitations about
processes and threads.

2009/2/10 FirstName LastName :
> Hi,
>
> I'm running mono on a arm.  When I launch my application, I see multiple
> mono processes.
>
> when I do this on my ubuntu machine (x86), i don't see this.  I even tried
> this on a PPC and I don't see this.
>
> I only see this on the arm.
>
> Can someone explain me why or refer me to some documentation onto why do I
> have multiple mono processes?
>
> Thanks.
>
> 
> Twice the fun— Share photos while you chat with Windows Live Messenger.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>



-- 
Rafael "Monoman" Teixeira
---
"I myself am made entirely of flaws, stitched together with good intentions."
Augusten Burroughs
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread FirstName LastName

I'm using kernel version 2.6.20.
 
My mono version is:
 
Mono JIT compiler version 2.0.1 (tarball)Copyright (C) 2002-2008 Novell, Inc 
and Contributors. www.mono-project.comTLS:   normalGC:  
  Included Boehm (with typed GC)SIGSEGV:   normal
Notifications: epollArchitecture:  arm,soft-floatDisabled:  
profiler,com,ssa,debug
And yes, I'm using uclibc.
 
Regarding NPTL, am I using NPTL threads?  How do I determine that? Is it a 
compile flag in mono?  If I'm using NPTL, that means each process I have 
corresponds to a thread.  How can I run as one process with multiple threads?
 
Thanks.



Date: Tue, 10 Feb 2009 11:23:12 -0200Subject: Re: [Mono-dev] Mono: Seeing 
multiple mono processes?From: kump...@gmail.comto: mousse_...@hotmail.comcc: 
mono-devel-l...@lists.ximian.comwhat kernel version are you using?
2009/2/10 FirstName LastName 

Hi, I'm running mono on a arm.  When I launch my application, I see multiple 
mono processes. when I do this on my ubuntu machine (x86), i don't see this.  I 
even tried this on a PPC and I don't see this. I only see this on the arm. Can 
someone explain me why or refer me to some documentation onto why do I have 
multiple mono processes? Thanks.

Twice the fun— Share photos while you chat with Windows Live 
Messenger.___Mono-devel-list 
mailing 
listmono-devel-l...@lists.ximian.comhttp://lists.ximian.com/mailman/listinfo/mono-devel-list
_
Windows Live Messenger. Multitasking at its finest.
http://www.microsoft.com/windows/windowslive/products/messenger.aspx___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread Petit Eric
Le 10 février 2009 16:01, FirstName LastName  a écrit :
> I'm using kernel version 2.6.20.
>
> My mono version is:
>
> Mono JIT compiler version 2.0.1 (tarball)
> Copyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com
> TLS:   normal
> GC:Included Boehm (with typed GC)
> SIGSEGV:   normal
> Notifications: epoll
> Architecture:  arm,soft-float
> Disabled:  profiler,com,ssa,debug

why "Disabled:  profiler,com,ssa,debug" ?
>
> And yes, I'm using uclibc.
>
> Regarding NPTL, am I using NPTL threads?  How do I determine that? Is it a
> compile flag in mono?  If I'm using NPTL, that means each process I have
> corresponds to a thread.  How can I run as one process with multiple
> threads?
>
> Thanks.
>
>
> 
> Date: Tue, 10 Feb 2009 11:23:12 -0200
> Subject: Re: [Mono-dev] Mono: Seeing multiple mono processes?
> From: kump...@gmail.com
> To: mousse_...@hotmail.com
> CC: mono-devel-list@lists.ximian.com
>
> What kernel version are you using?
>
>
>
> 2009/2/10 FirstName LastName 
>
> Hi,
>
> I'm running mono on a arm.  When I launch my application, I see multiple
> mono processes.
>
> when I do this on my ubuntu machine (x86), i don't see this.  I even tried
> this on a PPC and I don't see this.
>
> I only see this on the arm.
>
> Can someone explain me why or refer me to some documentation onto why do I
> have multiple mono processes?
>
> Thanks.
>
> 
> Twice the fun— Share photos while you chat with Windows Live Messenger.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
>
> 
> Windows Live Messenger. Multitasking at its finest.
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>



-- 

Cordially.

Small Eric Quotations of the days:
---
If one day one reproaches you that your work is not a work of
professional, say you that:
Amateurs built the arch of Noah, and professionals the Titanic.
---

Few people are done for independence, it is the privilege of the powerful ones.
---

No key was wounded during the drafting of this message.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] libgdiplus pango patch

2009-02-10 Thread Jonathan Anderson
Hi all,

I was wondering if anyone has had a chance to look at my patch submitted 
last week yet.  Any and all feedback is appreciated, and if I need to do 
some more work to get this accepted, I just need to know what to do. 
Should I create a bug in the tracker to help track the work on complex 
script support?

Thanks,
Jonathan Anderson

Jonathan Anderson wrote:
> I mentioned earlier that I was doing work to get pango support working 
> properly in libgdiplus.  Here's a patch with my work so far.  Most of 
> the formatting options are supported, but some of them aren't (like 
> digit substitution), and some are not fully supported (like certain 
> string trimming behavior).  I did my best to match gdi+ behavior as seen 
> on Windows for things like white space trimming, new lines, wrapping, 
> etc.  I've tested most of the options that I worked on with the 
> exception of tab stops.
> 
> Let me know what you think.
> 
> I'm getting ready to do work on the TextBox control to get it to handle 
> complex scripts better as well.  This will most likely end up in putting 
> some pango and uniscribe (for Windows) calls in the TextBoxTextRenderer 
> class.  One question I have about this, is would it be possible to have 
> the Windows TextBox use pango?  I know that pango on windows will pass 
> things through to uniscribe, and it would be easier to not have to use 
> two different text rendering backends if possible.
> 
> Jonathan Anderson
> 
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [PATCH] Windows Socket Accept Fix.

2009-02-10 Thread Bill Holmes
Can someone look at this?   I will fix my spelling in the ChangeLog
before I commit.  ;)

On Tue, Feb 3, 2009 at 1:15 PM, Bill Holmes  wrote:
> Hi,
>
> The attached patch corrects an error I introduced with r122252.  I
> would like to apply it to the 2.4 branch as well.
>
> -bill
>
> 2009-02-03  Bill Holmes  
>
>* socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal):
>  For Win32, add additoinal break conditons for accept.
>
>Code is contributed under MIT/X11 license.
>
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] libgdiplus pango patch

2009-02-10 Thread Sebastien Pouliot
Hello Jonathan,

On Tue, 2009-02-10 at 13:53 +0700, Jonathan Anderson wrote:
> Hi all,
> 
> I was wondering if anyone has had a chance to look at my patch submitted 
> last week yet.  Any and all feedback is appreciated, and if I need to do 
> some more work to get this accepted, I just need to know what to do. 

I only had a quick look last week, but will look at it more carefully
soon.

A quick comment: it needs a ChangeLog ;-)

> Should I create a bug in the tracker to help track the work on complex 
> script support?

Yes, that would be useful - which brings me to a "long term" comment:
libgdiplus can't switch to pango output until it becomes a superset of
the features that it currently (custom text renderer) support - i.e.
complex script support is awesome but not enough as many people depends
on other features not yet available in the pango renderer.

> Thanks,
> Jonathan Anderson
> 
> Jonathan Anderson wrote:
> > I mentioned earlier that I was doing work to get pango support working 
> > properly in libgdiplus.  Here's a patch with my work so far.  Most of 
> > the formatting options are supported, but some of them aren't (like 
> > digit substitution), and some are not fully supported (like certain 
> > string trimming behavior).  I did my best to match gdi+ behavior as seen 
> > on Windows for things like white space trimming, new lines, wrapping, 
> > etc.  I've tested most of the options that I worked on with the 
> > exception of tab stops.
> > 
> > Let me know what you think.
> > 
> > I'm getting ready to do work on the TextBox control to get it to handle 
> > complex scripts better as well.  This will most likely end up in putting 
> > some pango and uniscribe (for Windows) calls in the TextBoxTextRenderer 
> > class.  One question I have about this, is would it be possible to have 
> > the Windows TextBox use pango?  I know that pango on windows will pass 
> > things through to uniscribe, and it would be easier to not have to use 
> > two different text rendering backends if possible.
> > 
> > Jonathan Anderson
> > 
> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread FirstName LastName

OK,
So here is what I got regarding my problem.
 
Q - Why do I have multiple mono processes?
R - It's because I don't have NPTL enabled in the kernel.
 
Q - How can I verify runtime that I have NPTL enabled?
Q - Do I need to recompile mono in some special way?
 
Thanks.



Date: Tue, 10 Feb 2009 18:48:46 +0100Subject: Re: [Mono-dev] Mono: Seeing 
multiple mono processes?From: markus.johnsson...@gmail.comto: 
mousse_...@hotmail.comsorry, hit the wrong button. Didn't mean to send.
On Tue, Feb 10, 2009 at 6:46 PM, Markus Johnsson  
wrote:
NPTL is a kernel feature. You must enable NPTL in your kernel to run multiple 
threads inside a process. In older kernel versions, NPTL does not exist, 
instead a thread was just a 



2009/2/10 FirstName LastName 

I'm using kernel version 2.6.20. My mono version is: Mono JIT compiler version 
2.0.1 (tarball)Copyright (C) 2002-2008 Novell, Inc and Contributors. 
www.mono-project.comTLS:   normalGC:
Included Boehm (with typed GC)SIGSEGV:   normal
Notifications: epollArchitecture:  arm,soft-floatDisabled:  
profiler,com,ssa,debugAnd yes, I'm using uclibc. Regarding NPTL, am I using 
NPTL threads?  How do I determine that? Is it a compile flag in mono?  If I'm 
using NPTL, that means each process I have corresponds to a thread.  How can I 
run as one process with multiple threads? Thanks.

Date: Tue, 10 Feb 2009 11:23:12 -0200Subject: Re: [Mono-dev] Mono: Seeing 
multiple mono processes?From: kump...@gmail.comto: mousse_...@hotmail.comcc: 
mono-devel-list@lists.ximian.com


What kernel version are you using?
2009/2/10 FirstName LastName 

Hi, I'm running mono on a arm.  When I launch my application, I see multiple 
mono processes. when I do this on my ubuntu machine (x86), i don't see this.  I 
even tried this on a PPC and I don't see this. I only see this on the arm. Can 
someone explain me why or refer me to some documentation onto why do I have 
multiple mono processes? Thanks.

Twice the fun— Share photos while you chat with Windows Live 
Messenger.___Mono-devel-list 
mailing 
listmono-devel-l...@lists.ximian.comhttp://lists.ximian.com/mailman/listinfo/mono-devel-list

Windows Live Messenger. Multitasking at its 
finest.___Mono-devel-list mailing 
listmono-devel-l...@lists.ximian.comhttp://lists.ximian.com/mailman/listinfo/mono-devel-list
_
So many new options, so little time. Windows Live Messenger.
http://www.microsoft.com/windows/windowslive/products/messenger.aspx___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [PATCH] Windows Socket Accept Fix.

2009-02-10 Thread Miguel de Icaza
This looks good to me.

> 
> +   int optlen = sizeof (gint);


___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] idea summary: Swing in Mono?...

2009-02-10 Thread James Mansion
Chris Toshok wrote:
> err, I meant:  "cross VM, cross platform, cross ui framework toolkit
> of some kind"
>   
Like wrapping Qt or wxWidgets would do then?

James

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] gmcs and The Future

2009-02-10 Thread Andrés G. Aragoneses
Scott Peterson wrote:
> Any word on a wiki?

If we don't use the mono-project one, on http://wik.is/ you can create
one easily, and it turns out it's using Deki (powered by Mono) ;)

Andrés

-- 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Mono: Seeing multiple mono processes?

2009-02-10 Thread Robert Jordan
FirstName LastName wrote:
> OK,
> So here is what I got regarding my problem.

Seeing multiple mono processes is not a problem.
It's an artifact of how threading is implemented in
some Linux versions/arches. Every multithreaded
program shows up multiple times in the process list
on those systems.

Robert

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] idea summary: Swing in Mono?...

2009-02-10 Thread BGB

- Original Message - 
From: "James Mansion" 
To: "Chris Toshok" 
Cc: 
Sent: Wednesday, February 11, 2009 7:06 AM
Subject: Re: [Mono-dev] idea summary: Swing in Mono?...


> Chris Toshok wrote:
>> err, I meant:  "cross VM, cross platform, cross ui framework toolkit
>> of some kind"
>>
> Like wrapping Qt or wxWidgets would do then?
>
> James
>

this here assumes that Qt or wxWidgets were linked into the app...

to be a fully portable framework (between different implementations of the 
NET VM), all of the internal machinery would have to be written in managed 
code (in this way, both the frontend and backend are simply interfaces, and 
it is possible to make objects implementing these interfaces to glue the 
framework to the underlying implementation...).

of course, OTOH, this would make the framework only really usable for 
managed code, meaning that unmanaged code would likely have to use a 
different framework (AKA: several frameworks running in the same app).


I guess, there is another possibility:
to settle on a standardized API, and otherwise leave nearly all the details 
to the implementation (this being a little closer to the more traditional 
approach, although in both the JVM and .NET VM, it is typical to implement 
APIs and frameworks with a mix of both managed and unmanaged code, rather 
than enforce a strict point of division between them).

so, it becomes common that people only focus on a single side of the 
problem:
the front-end API;
all of the internals and the backend are then left as "implementation 
dependent".


but, how about, if the entire framework, including all of the frontend API, 
the internal workings, and the backend API/system dependent features, are 
all fully specified?... AKA: all of the internals are specified down to the 
level of individual objects, methods, and interfaces, although the exact 
contents of method bodies would be left as implementation dependent, and it 
would also be allowed to replace objects with others which implement the 
same interface. this way, it is possible to have both fine-grained control 
and allow multiple implementations.

of course, as a downside, this would preclude the use of native widgets or 
toolkits, and necessarily fragment the effort from any other frameworks 
which do use native widgets. as another cost, it would somewhat hinder the 
level of individual freedom on the part of implementations.

but, for some things, this would be a worthwhile tradeoff (because very 
precise control is allowed, reducing the cases where the user is left having 
to write their own framework).


I guess it is a difference of mindset though (by analogy):
rather than think of the problem as a single and overall piece of machinery 
for completing a task, we think of it instead as a big collection of grears, 
mounts, nuts, and bolts. we then specify all of these nuts and bolts (such 
as their specific sizes and threadings), the size and type of every gear, 
..

in this way, rather than having some black box the user is just expected to 
use (the typical approach to GUI toolkits), we have a piece of machinery 
that can be reconfigured as needed (unbolted, parts swapped out, ...), such 
as, for example, to conviniently replace the backend, without the user 
having to go digging around in C land, or worse... not because all these 
things are written into the framework, but because the internals are all 
accessible, and formally specified.


it also irks me some, OTOH (in this case WRT APIs that expose native 
functionality), that people so often keep writing thin wrappers for 
everything, such that one piece of code ends up having to depend on how 
another piece is implemented.

IMO, APIs should be specified (likely as a generalization of the possible 
implementations), and then glued back onto the existing implementation. this 
way, only the glue code needs to be modified during porting, and not the 
client code (FWIW it makes Windows/Linux porting easier...).

of course, yes, it does require that people specify things (you don't "wrap" 
something, you specify it and then implement it to the specification...).


or such...


> ___
> Mono-devel-list mailing list
> Mono-devel-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
> 

___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] gmcs and The Future

2009-02-10 Thread Scott Peterson
This should get things started: http://cheddar.wik.is/

We can move hosts later it we want.
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list