[Mono-dev] AIX / Mono System Requirements

2005-09-02 Thread Bernhard Herzog

Hi,

I have a newbie question about Mono regarding System Requirements. Short
Version: Does it make any sense to try to use/compile Mono under AIX right 
now? Or

should I better be using Linux and with which Kernel (2.4 or better 2.6?)?

Long version:
I have been a long time user of Java but it never really made me happy,
especially when it came to socket programming. I needed a separate Thread
for listening to a socket, i.e. memory for each socket, and when NIO came I
had to write my own Threadpool. And Java did not really seemed to be built
for Linux (Core dumps, out of memory, etc.). So I thought ok, I build my
chat server with Mono. I will have built-in Thread Pools, Asynchronous IO,
NPTL and epoll using Linux. And it's open source. Great! All my dreams come
true!

Since this is a student chat I went to my university today to ask if they
would host it. They agreed (great!), but they are using AIX (64bit but
should compile 32bit as well) and not Linux (and cannot give me a root
accout as well). So my question is: Is it generally a good idea to try
running Mono under AIX? Can I compile Mono under AIX without trouble and
what will I have then? Does this mean no JIT, i.e. how well does the non-JIT
version run? Should I better get my own dedicated Linux server (or VServer)
somewhere else - which would cost me some money? When using a VServer, this
could mean Linux Kernel 2.4. Does Mono (for a Socket-Server and ASP.Net, no
GTK, but using Bitmap class) work well under 2.4 (no NPTL and epoll?).

Thank you
Any answer would be greatly appreciated
Bernhard Herzog

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


Re: [Mono-dev] C++ to C# to C++ interop, how can I do this in a mono-compliant way?

2005-09-02 Thread Miguel de Icaza
Hello,
 
 Is there any way to have this work under Mono?   Please realize that
 the basic need is to have 1 instance of a C++ exe call into a .NET
 dll, and have that DLL be able to then execute functions in the C++
 exe that called it. So this requires a mono-equivlant of PInvoke,
 plus a way to have the C++ app call the C# app. 
  
 Help on this would be appreciated, otherwise it'll be Windows only!

If you do not mind writing some bridge code, just use P/Invoke on the C#
side to call your C++ code.

Notice that all the entry points that you will access have to be:

extern C {  }

So that P/Invoke can locate them.

For calling from C++ to managed land, you can use function pointers:
register a delegate as a function pointer with your C++ code and have
that be your gateway to communicate back:

file.c:
typedef void (*mono_print_hello_fn) ();
mono_print_hello_fn printer;

routine ()
{
(*printer) ();
}

set_hello_func (mono_print_hello_fn f)
{
printer = f;
}

From C# you call:

delegate void MyPrinter ();
[DllImport (...)]
extern static int set_hello_func (MyPrinter f);

Main ()
{
set_hello_func (new MyPrinter (func));

}

void MyPrinter ()
{
Console.WriteLine (Hello);
}
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] msdn-browse

2005-09-02 Thread Miguel de Icaza
Hello,

 I noticed on the svn branch a nice little utility for browsing msdn
 without having to pratt about with the MSDN website.
 
 I've run makefile, but all I get back is this (the code fails to
 compile)

This is a recent mcs regression, we should be fixing it tomorrow (Martin
is on vacation, and he introduced the regression).

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


[Mono-dev] C++ wrapper ?

2005-09-02 Thread ivar
Hello,
If I want to wrap a c++ class library what should I do ?
For me it seems like I have to do the following:
1. Make a ANSI c interface file calling the C++ functions, interfacefile_1
2. use csharps DLLImport directive making a wrapper class i csharp,
interfacefile_2

But then I have still two problems
I. A lot of arguments and return values are of C++ std template types,
like vector, string etc.
II. I must create the object in c++ before I can start to use it.

A solution to both I and II is to make a simpler interface in C++ and
adding a init function whichs creates the original object when called,
interfacefile_3
?

So then the call stack looks like:
C++ class I want to use
C++ wrapper to simplify arguments, and to add a functrion for creation of
original class
c wrapper to become compatible with the c# DLL import directive
a c# wrapper using DLL import

I know it is possible to skip c wrapper file and using the callnames of
c++,  but since this is not compiler independent I prefer not to do it
this way.

So my question is: Is there no easier way to interface to c++ code ?
Had it only been one class I think I could have used swig, but I donæt see
how I can use swig when I have many C++ classes.
Best regards
IB


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


Re: [Mono-dev] Bug Day

2005-09-02 Thread Julien Gilli

Hello,

Paul F. Johnson wrote:


We had some good movement on this, but the idea seems to have gone dead.
 

As for me, the idea hasn't gone dead, i'm waiting for comments from key 
developers.

However, bringing this on the mono mailing lists  again is a good idea :-).


Are we going to have a Gnome style bug splatting day on the 3rd or 10th
Sept?
 

Not on the 3rd, probably not on the 10th neither if nobody among key 
developers speaks up.
Maybe we should setup the first bug day without wating from comments and 
see if everything goes well.


The only problem is that many of us won't have the needed credentials to 
modify bugs status, so we'd have to e-mail the developers and tell them 
we think that this bug should be marked as this, we were able to 
reproduce it on the following platform, under these conditions, etc..


It could be tedious, but it can't hurt the Mono project to have more 
people at a time looking at the bugzilla. Also, this first try would 
help us organize better for the first official bug day.


What do you think about this ?

--
Julien Gilli
IDEALX http://www.idealx.com/

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


[Mono-dev] .NET Remoting: Upload of a file from a Win32 MS .NET client to a Linux Mono .NET server.

2005-09-02 Thread Yngve Zackrisson
Hi there.

This is the first time I send a mail to this list.

I am currently trying to set up a .NET Remoting application.
For the communication I use HTTP with binary formating 
as a communication  channel.
I have got the application work with MS .NET Win32 on both 
the client and server side.

After some struggle (with configuration files and custom channel) 
I am now able to do remote invocations from my Win32 MS .NET client 
to my Linux (Fedora3) Mono .NET host (console) application.
All works well having primitive datatypes and DataSets as parameters 
and returns in the methods.

The problems (now) arise when i try to upload a zip file from 
the client to the server.
I use a parameter with a (File)Stream object to do callbacks 
to Read the file in blocks from the client into the server.
When calling the Read(buffer, 0, buffer.Length) method 
I get index out of range exception messages on my the Mono server.

Here is the code snippet for a simplified test example : 

public class RemoteObject : MarshalByRefObject
{

  ...

  // AFAIK not more than 350 Kb can be serialized in .NET.
  //private const int PORTION_SIZE = (256 * 1024);
  //private const int PORTION_SIZE = 1024;
  private const int PORTION_SIZE = 64;

  ...

  /// summary
  /// Method FileUpload to test the remoting.
  /// /summary
  public bool FileUpload(Stream fileIn, long fileInLength)
  {
bool returnValue = false;
// Download large files in shunks.
long bytesDownloadedIn = 0L;
FileStream fileOut = new FileStream(FileOut.txt,
FileMode.OpenOrCreate, FileAccess.Write);
long bytesDownloadedOut = 0L;
try 
{
for (bytesDownloadedIn = 0L; bytesDownloadedIn 
fileInLength; )
{
// request the next portion
int sizeToRead = (int)Math.Min(PORTION_SIZE,
fileInLength -
bytesDownloadedIn);
byte[] buffer = new byte[sizeToRead];
fileIn.Read(buffer, 0, buffer.Length);  //err 
// update counters
bytesDownloadedIn += buffer.Length;
// save it into the file
fileOut.Write(buffer, 0, buffer.Length);
fileOut.Flush();
bytesDownloadedOut = bytesDownloadedIn;
}
returnValue = true;
}
catch (RemotingException remex) 
{
Console.WriteLine(FileUpload - RemotingException:  + 
remex.Message);
returnValue = false;
}
catch (IOException ioex) 
{
Console.WriteLine(FileUpload - IOException:  + ioex.Message);
returnValue = false;
}
catch (Exception ex) 
{
Console.WriteLine(FileUpload - Exception:  + ex.Message);
returnValue = false;
}
finally 
{
fileOut.Close();
}
return returnValue;
  }

...

}

The error occur at err above.

The error message I get on the Mono server is:

EXCEPTION handling: IndexOutOfRangeException
EXCEPTION handling: IndexOutOfRangeException
FileUpload - Exception: Array index is out of range.



I have elaborated using FileStream and Stream, 
using different PORTION_SIZE and doing the 
buffer 1 byte longer than the sizeToRead.
The fileInLength is set at the client (to fileIn.Length) 
to avoid an extra roundtrip.

Can anyone advice me how I should do to upload 
a file from Win32 MS .NET to Linux Mono .NET.
The issue is critical to get my application to work on Mono.
Is there some other stream class I can use to transfer 
a file from the client to the server.

As an aside I also want to report back the progress 
of the file upload to the client.
I want to update a progressbar on my Win32 client. 
I have succeded to do that on my pure Win32 application, 
though some progressbar handling technique.
Am I expected to get any trouble using the ProgressBar 
indirectly as a method parameter?.

Regards 

Yngve Zackrisson










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


Re: [Mono-dev] Bug Day

2005-09-02 Thread Julien Gilli

Paul F. Johnson wrote:


However, bringing this on the mono mailing lists  again is a good idea :-).
   



It was my son that reminded me - he thinks the idea of bugs in software
is funny (he is 7 and to him, bugs are what you squish with a shoe!)

 


:-).


Are we going to have a Gnome style bug splatting day on the 3rd or 10th
Sept?

 

Not on the 3rd, probably not on the 10th neither if nobody among key 
developers speaks up.
   



I think we should poke them with a stick. Not a nasty stick, possibly
one with a feather on the end ;-)

 

Does any developer read this thread ? If so, could you please tell us 
how relevant our idea is ?


Maybe we should setup the first bug day without wating from comments and 
see if everything goes well.
   



A dry run? Sounds like it could be interesting.

 


A dry run, indeed.

The only problem is that many of us won't have the needed credentials to 
modify bugs status, so we'd have to e-mail the developers and tell them 
we think that this bug should be marked as this, we were able to 
reproduce it on the following platform, under these conditions, etc..
   



Which is the idea of the triage (from my understanding). Bugs roll in,
tested and if it fails due to not a programming fault, then it gets
passed to the code doctors who know it's a genuine problem and not just
someone messed up.
 


I totally agree on that.


As to having the credentials, you're right. In the past I've been part
of a porting effort to get gcc onto RISC OS and parts of that were mind
blowing! From what I've seen, mono is almost as bad, but does have the
advantage of C# being quite an easy language which is simple enough to
follow.
 

By credentials, i meant that any non developer can't modify a bugs 
status, IIRC. This is annoying if we want to triage bugs, since we have 
to ask someone who has the right to modify bug status to do so.



What I would suggest is this. If we can get one of the key developers
(Jordi, Ben, Peter, Miguel or anyone else for that matter) and a couple
of those who understand the compilers innards (patch submitters) and do
a couple of dry run scenarios (say we take a random selection of bug
reports), we try and get the faults to occur and then pass them over.
 

and we tell them how we would modify the bug properties (branch 
concerned, milestone, component, priority, severity, etc.)


These faults don't have to be real ones either. 

 

Can you tell us more about this ? I don't understand how we could use 
fake bugs.



This will serve to do a couple of things. Firstly, it will help with
time difference problems and any communication difficulties. It'll also
demonstrate the work required plus give us (the non Novell people) a
work out!
 


Again, I totally agree with you.

All the best,

--
Julien Gilli
IDEALX http://www.idealx.com/

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


Re: [Mono-dev] Bug Day

2005-09-02 Thread Paul F. Johnson
Hi,

 These faults don't have to be real ones either. 
 
 Can you tell us more about this ? I don't understand how we could use 
 fake bugs.

Better known as googlies (from the cricket term). Basically, one of
the developers reports a fault (under an assumed name of course) which
on the surface looks completely correct, but has a very small fault in.
If we detect the fault correctly, then those looking at the bugs know
not only how much folks know, but also their attention to detail. It
helps build confidence in the triage team.

TTFN

Paul
-- 
Logic, my dear Zoe, is merely the ability to be wrong with authority -
Dr Who

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


Re: [Mono-dev] Bug Day

2005-09-02 Thread Julien Gilli

Paul F. Johnson wrote:

These faults don't have to be real ones either. 
 

Can you tell us more about this ? I don't understand how we could use 
fake bugs.
   



Basically, one of the developers reports a fault (under an assumed name of 
course) which
on the surface looks completely correct, but has a very small fault in.
 


It sounds like a good idea to me.

--
Julien Gilli
IDEALX http://www.idealx.com/

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


Re: [Mono-dev] C++ to C# to C++ interop, how can I do this in a mono-compliant way?

2005-09-02 Thread Robert Jordan

J wrote:

I am looking for a way of having a C++ exe integrate with a .NET dll.  I have a 
solution working under Windows (Microsoft.NET 1.1) however I would like to make 
this function under Mono.
 
Here are the details:
 
I currently am writing a C# wrapper of a C++ game engine.  (T2D by garagegames)  I wrote this on Windows (CLR v1.1) and the main way this works is by adding Managed code to the C++ engine (so now it is mixed Managed/Unmanaged C++) so it can directly call into my C# DLL, and using PInvoke to have the C# DLL talk balk to the C++ engine.
 
The C++ engine itself is OS agnostic (it works on windows, linux and mac), and I would love to make this C# wrapper work under mono, so that it is OS agnostic as well.
 
However, http://www.go-mono.com/faq.html#63  informs me that Mixed mode assemblies do not work under mono.
 
Is there any way to have this work under Mono?   Please realize that the basic need is to have 1 instance of a C++ exe call into a .NET dll, and have that DLL be able to then execute functions in the C++ exe that called it. So this requires a mono-equivlant of PInvoke, plus a way to have the C++ app call the C# app. 
 
Help on this would be appreciated, otherwise it'll be Windows only!



You have 2 options to make this work under Mono:

1. Embed the Mono runtime in you C++ app. Have a look at samples/embed
   of the Mono source package.
   From C++ you can access the managed code using Mono's metadata API.
   C# can access unmaged code using internal calls you have to provide.

   pros
 - pretty straightforward (IMHO) but still a lot of work.

   cons
 - only for Mono. It won't work unter MSFT's runtime.

2. Build a C wrapper for the C++ library making it p/invoke
   compatible.

   pros
 - the wrapper can be made platform independend

   cons
 - a lot of work


I'd go for (2) because it is portable. (1) has more optimizing
potential because you can mix C++ and C# at some level.

Rob

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


[Mono-dev] Marshal Variable length structure Array in Mono

2005-09-02 Thread Yogendra Thakur
Title: Marshal Variable length structure Array in Mono






Hi ,
I want to marshal following C structure .

[C]
struct Foo
{
 int First;
 int Second;
};

struct FooList
{
 int Count;
 Foo List[1];
};

void GetFooList(struct * FooList fList);


I am doing it following way
[C#]

[StructLayout(LayoutKind.Sequential)]
class Foo
{
 public Int32 First;
 public Int32 Second;
}

[StructLayout(LayoutKind.Sequential)]
class FooList
{
 public Int32 Count;
 private IntPtr list;//pointer to first
 public Foo[] Foos
 {
 // HOW TO DO THIS
 }
}


My problem is how to form objects from IntPtr and return as Foo[].
(If i directly use Marshal.PtrToStruct(list,typeof(Foo)); it throws object reference not set to object while access Foo.First.)

I googled about it and I found a solution which uses kernel32.dll and uses GlobalFree, GlobalAlloc API's.

I want to run this on Mono. I am new to Interop Please help.

Thank in Advance.

-YoGi



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


Re: [Mono-dev] .NET Remoting: Upload of a file from a Win32 MS .NET client to a Linux Mono .NET server.

2005-09-02 Thread Robert Jordan

Yngve,

The problems (now) arise when i try to upload a zip file from 
the client to the server.
I use a parameter with a (File)Stream object to do callbacks 
to Read the file in blocks from the client into the server.
When calling the Read(buffer, 0, buffer.Length) method 
I get index out of range exception messages on my the Mono server.


Here is the code snippet for a simplified test example : 


public class RemoteObject : MarshalByRefObject
{

  ...

  // AFAIK not more than 350 Kb can be serialized in .NET.
  //private const int PORTION_SIZE = (256 * 1024);
  //private const int PORTION_SIZE = 1024;
  private const int PORTION_SIZE = 64;

  ...

  /// summary
  /// Method FileUpload to test the remoting.
  /// /summary
  public bool FileUpload(Stream fileIn, long fileInLength)
  {
bool returnValue = false;
// Download large files in shunks.
long bytesDownloadedIn = 0L;
FileStream fileOut = new FileStream(FileOut.txt,
FileMode.OpenOrCreate, FileAccess.Write);
long bytesDownloadedOut = 0L;
	try 
	{

for (bytesDownloadedIn = 0L; bytesDownloadedIn 
 fileInLength; )
{
// request the next portion
int sizeToRead = (int)Math.Min(PORTION_SIZE,
fileInLength -
bytesDownloadedIn);



since bytesDownloadedId is 0 in the first loop,
sizeToRead will be 0 as well.



byte[] buffer = new byte[sizeToRead];
fileIn.Read(buffer, 0, buffer.Length);  //err 
  // update counters



Well, you're reading 0 bytes. The current Mono runtime
doesn't throw an exception any more.
Which Mono version are you using?

Can anyone advice me how I should do to upload 
a file from Win32 MS .NET to Linux Mono .NET.

The issue is critical to get my application to work on Mono.
Is there some other stream class I can use to transfer 
a file from the client to the server.


Using a Stream as an argument for a remoting method
is pretty bad, since Stream is quite chatty. You'll end up
having a lot of traffic between client and server.

Additionaly, because Streams are MarshalByRef objects,
the server will callback into the client giving you
a lot of trouble with firewalls.

You may try this chunky approach (untested):


Hashtable handles = new HashTable ();
Random rng = new Random ();

public int Open ()
{
int handle;
do {
handle = rng.Next ();
} while (handles.Contains (handle);

handles [handle] = File.OpenWrite ();
return handle;
}

public void Write (int handle, byte[] data, int offset, int count)
{
Stream stm = handles [handle] as Stream;
if (stm == null) throw new IOException (no such handle);
stm.Write (data, offset, count)
}

public void Close (int handle)
{
Stream stm = handles [handle] as Stream;
if (stm == null) throw new IOException (no such handle);
stm.Close ();
handles.Remove (stm);
}


As an aside I also want to report back the progress 
of the file upload to the client.
I want to update a progressbar on my Win32 client. 
I have succeded to do that on my pure Win32 application, 
though some progressbar handling technique.
Am I expected to get any trouble using the ProgressBar 
indirectly as a method parameter?.


Don't do that. Use the chunky approach above so you can
update the progress bar on the client. Even w/out the
chunky stuff, you should always use threads on the client
for time consuming operations. With some care (use the Invoke
method) you can update the ProgressBar from the upload thread.

Rob

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


[Mono-dev] header have been already sent ?

2005-09-02 Thread Hubert FONGARNAND
I'm back from my holydays... and i've updated mono from svn...
It seems that there are many changes in ASP.NET
Many web application that worked  before doesn't work now...

The first error I experience is an xsp error :

[EMAIL PROTECTED] /home/monoapp/FicheClient $ xsp
xsp
Listening on port: 8080
Listening on address: 0.0.0.0
Root directory: /home/monoapp/FicheClient
Hit Return to stop the server.
Internal error: we are missing one catch System.Web.HttpException: header have 
been already sent
in 0x00109 System.Web.HttpResponse:Redirect (System.String url, Boolean 
endResponse)
in 0xf System.Web.HttpResponse:Redirect (System.String url)
in 0x00180 System.Web.Security.FormsAuthenticationModule:OnEndRequest 
(System.Object sender, System.EventArgs args)
in (wrapper delegate-invoke) 
System.MulticastDelegate:invoke_void_object_EventArgs 
(object,System.EventArgs)
in (wrapper delegate-invoke) 
System.MulticastDelegate:invoke_void_object_EventArgs 
(object,System.EventArgs)
in (wrapper delegate-invoke) 
System.MulticastDelegate:invoke_void_object_EventArgs 
(object,System.EventArgs)
in 0x00032 System.Web.HttpApplication:PipelineDone ()

does anyone know something about this?

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


RE: [Mono-dev] default_opt and aot

2005-09-02 Thread Gary M. Smithrud
When running exception.exe after the test_0_ulong_cast (both tests did
fail with 1 and 4 as the values instead of 0).

Gary M. Smithrud
Haley Systems, Inc.
Phone: 724-934-7853
[EMAIL PROTECTED]
www.haley.com
Moving at the Speed of Change
-Original Message-
From: Zoltan Varga [mailto:[EMAIL PROTECTED] 
Sent: Friday, September 02, 2005 8:54 AM
To: Gary M. Smithrud
Cc: mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] default_opt and aot

  Hi,

  default_opt is initialized in mini_init () before aot_init is
called, so this should
not happen. Which test is core dumping for you ?

 Zoltan

On 8/31/05, Gary Smithrud [EMAIL PROTECTED] wrote:
 I'm trying to get the 8/29 source tarball built on Solaris and it is
 core dumping when performing make check.  The issue is that
 mono_aot_get_method is being called and aot_mutex is 0 (the coredump
 is occurring in LeaveCriticalSection.)  It looks like that the
 default_opt of 0 is causing the aot_init to not be called and thus
 the aot_mutex is not initialized.  Is there a way to set the
 default_opt from outside (I don't have time to track down how to do
 this)?
 ___
 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] Re: [PATCH] Fully Asynchronous and Re-Factored SslStreams in Mono.Security

2005-09-02 Thread JD Conley








Harry,



The latest patch that I sent to the
maintainers doesnt use the delegate BeginInvoke any more. It uses an
asynchronous BeginRead or BeginWrite call to the innerStream to kick off the
handshake in a background thread.



-JD Conley













From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Harry Holt
Sent: Wednesday, August 31, 2005
6:12 AM
To:
mono-devel-list@lists.ximian.com
Subject: Re: [Mono-dev] Re:
[PATCH] Fully Asynchronous and Re-Factored SslStreams in Mono.Security





This seems to work fine
on W2k. Running under IIS5.1 on WXP, though, it always throws an
ObjectDisposedException in SSLStreamBase.cs when a bind
over SSL is attempted.

Won't this:
   if (workthreads =
(maxworkthreads - 4))
   {
   
async = false;
   }
cause the SSL Stream to use synchronous handshake until threads start getting
used?

I would also recommend changing this:
  protected void checkDisposed()
  {
   if (this.disposed)
   {
   
throw new ObjectDisposedException(The Stream is closed.);
   }
  }

to this:
  protected void checkDisposed()
  {
   if (this.disposed)
   {
   
throw new ObjectDisposedException(this.GetType().Name, The Stream is
closed.);
   }
  }
which produces a more readable error message.

Thx... HH



On 8/25/05, Sebastien
Pouliot [EMAIL PROTECTED]
wrote:

Hello JD,

On Wed, 2005-24-08 at 21:12 -0700, JD Conley
wrote:
 I took the plunge and fully implemented async Ssl streams for both
 client and server.This fixes
 http://bugzilla.ximian.com/show_bug.cgi?id=75687
as well as other bugs
 I've been talking with Sebastien and Carlos about off list. This patch
 passes the SocketHell tests that I contributed to them last week 
 (multi threaded concurrent async streaming through TCP sockets).

Wow! That's the kind of surprise I like when I wake up :-)

 It's also a bit of a re-factor, though I only touched two classes and 
 added one.I pulled most of the code out of the individual
 SslClientStream and SslServerStream and moved it down into a new
 abstract SslStreamBase.Client and server are now practically
the
 same implementation.I left all existing interfaces present,
but 
 obviously had to add some new ones.

We always sticked to the Fx 1.2 preview specs for the Ssl[Client|
Server]Stream API and didn't planned to change this before implementing
the new SslStream (in System.dll) for 2.0 - BUT this isn't a major
problem if it doesn't break binary compatibility (for current
applications linked with Mono.Security.dll).

 The only gotcha is if you start running low on threadpool
threads. 
 Then the Ssl Stream will fall back to a synchronous handshake. The
 other option here is to spawn a thread ourselves for the handshake
 instead of using Delegate.BeginInvoke(), use the IO ThreadPool (is 
 that available to Mono.Security?), or just live with a synchronous
 handshake. Of course, 99.999% of the time this issue won't occur and
 won't be a problem unless you have both client and server sharing the 
 same Threadpool causing a deadlock.

That's not worse than the original (where the handshake was always
synchronous).

 I hope this helps and gets integrated.It's definitely
necessary for
 our implementation.

1. I'll review the patch and, in doing so, check for possible binary
compatibility problems. I'm sure Carlos will do likewise;

2. I'll make public a new Mono.Security.dll assembly so that people that 
depends on Ssl*Stream may tests it and report any problem/difference;

3. I'll run the regressions tests, the tools under /mcs/class/
Mono.Security/Test/tools/*, to see if it works in previously reported
conditions. 

4. Commit (both the patch and your SocketHell tests). Hopefully we can
do all this before the next release.

Many thanks!
--
Sebastien

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







-- 

Robbie the Nanobot says:
Only YOU can prevent gray goo
(NEVER release nanobot assemblers without replication limiting code) 
http://lizardslounge.org








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


[Mono-dev] Custom surrogates and serialization

2005-09-02 Thread Chris Micacchi

Hi!

I've recently started a project trying to get some fairly complex 
software that was written for .Net 1.1 working on Mono, and so far I've 
found almost everything works quite well with minimal changes needed.


I have run into a few issues, and I’m hoping that someone can take a 
look at them.  I was able to boil down a few into small test cases, and 
I've filed some bugs with my test cases attached (#75947 and #75950). 
Please let me know if I need to provide more information for these issues.


I'm now working on some problems with Xml serialization, and this is 
where the bulk of the problems I'm getting have been.  The first is that 
our software uses a custom serializer surrogate for 
System.Net.IPAddress, in order to handle differences between .Net 1.0 
and 1.1.  On Mono, our custom serializer doesn't work; it gets the error 
The attempted operation is not supported for the type of object 
referenced instead.  My surrogate code is:

public object SetObjectData(
System.Object obj,
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context,
System.Runtime.Serialization.ISurrogateSelector selector)
{
System.String ipStr = info.GetString( address );
System.Net.IPAddress newIP
= System.Net.IPAddress.Parse( ipStr );
System.Net.IPAddress ipAddress = (System.Net.IPAddress)obj;

// This line throws the exception
ipAddress.Address = newIP.Address;
return obj;
}

The problem seems to be that when the deserializer creates the new 
IPAddress object the AddressFamily field ends up uninitialized, and the 
Address property set fails.


Unfortunately the deserializer also mimics the .Net 1.0 behaviour where 
the return value of SetObjectData is ignored, so I can't just create a 
new IPAddress and return it instead (in .Net 1.1, this bug is supposedly 
fixed).


I've got a few more issues I've found in the SOAP serializer using 
surrogates, but I'm still working on tracking them down.


Thanks for any information anyone can provide!

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


[Mono-dev] patch for Mono.Cairo to rename SurfaceImage and Patterns

2005-09-02 Thread John Luke
Hello,
Here is a patch to rename SurfaceImage to ImageSurface and
implement the type-hierarchy for Patterns in the cairo docs.

After this I think I will only have 1 more patch with an api change
to make the Surfaces a hierarchy of types also. Thanks to Hisham for 
taking care of everything so far.
Index: Mono.Cairo/Cairo.cs
===
--- Mono.Cairo/Cairo.cs	(revision 49350)
+++ Mono.Cairo/Cairo.cs	(working copy)
@@ -626,31 +626,31 @@
 [StructLayout(LayoutKind.Sequential)]
 public struct FontExtents
 {
-public  double ascent;
-public  double descent;
-public  double height;
-public  double max_x_advance;
-public  double max_y_advance;
+public  double Ascent;
+public  double Descent;
+public  double Height;
+public  double MaxXAdvance;
+public  double MaxYAdvance;
 }


 [StructLayout(LayoutKind.Sequential)]
 public struct TextExtents
 {
-public  double x_bearing;
-public  double y_bearing;
-public  double width;
-public  double height;
-public  double x_advance;
-public  double y_advance;
+public  double XBearing;
+public  double YBearing;
+public  double Width;
+public  double Height;
+public  double XAdvance;
+public  double YAdvance;
 }
 
 [StructLayout(LayoutKind.Sequential)]
 public struct Glyph
 {
-public  long index;
-public  double x;
-public  double y;
+public  long Index;
+public  double X;
+public  double Y;
 }
 
 		public  delegate void ClosePathCallback (object closure);
Index: Mono.Cairo/Pattern.cs
===
--- Mono.Cairo/Pattern.cs	(revision 49350)
+++ Mono.Cairo/Pattern.cs	(working copy)
@@ -33,18 +33,18 @@
 
 namespace Cairo {

-public class PatternLinear : Pattern
+public class LinearGradient : Gradient
 {		
-	public PatternLinear (double x0, double y0, double x1, double y1) : base()
+	public LinearGradient (double x0, double y0, double x1, double y1) : base()
 {
 pattern = CairoAPI.cairo_pattern_create_linear (x0, y0, x1, y1);
 			Reference ();
 }		
 	}

-public class PatternRadial : Pattern
-{
-		public PatternRadial (double cx0, double cy0, double radius0,
+public class RadialGradient : Gradient
+		{
+		public RadialGradient (double cx0, double cy0, double radius0,
   double cx1, double cy1, double radius1) : base()
 {
 pattern = CairoAPI.cairo_pattern_create_radial (cx0, cy0, radius0,
@@ -53,14 +53,52 @@
 }
 	}
 
-public class PatternRgba : Pattern
-{
-	public PatternRgba (double r, double g, double b, double a) : base ()
+		public class Gradient : Pattern
 		{
-			pattern = CairoAPI.cairo_pattern_create_rgba (r, g, b, a);
-			Reference();
+public Status AddColorStop (double offset, Cairo.Color c)
+{
+return CairoAPI.cairo_pattern_add_color_stop_rgba (pattern, offset, 
+  c.R, c.G, c.B, c.A);
+}
+
+public Status AddColorStopRgb (double offset, Cairo.Color c)
+{
+return CairoAPI.cairo_pattern_add_color_stop_rgb (pattern, offset, 
+  c.R, c.G, c.B);
+}		
 		}
-	}
+
+		// FIXME: probably will change to a better name at some point
+		public class SolidPattern : Pattern
+		{
+			public SolidPattern (Color color, bool solid)
+			{
+if (solid)
+	pattern = CairoAPI.cairo_pattern_create_rgb (color.R, color.G, color.B);
+else
+	pattern = CairoAPI.cairo_pattern_create_rgba (color.R, color.G, color.B, color.A);
+Reference ();
+			}
+		}
+
+		public class SurfacePattern : Pattern
+		{
+			public SurfacePattern (Surface surface)
+			{
+pattern = CairoAPI.cairo_pattern_create_for_surface (surface.Pointer);
+Reference ();
+			}
+
+			public Extend Extend {
+set { CairoAPI.cairo_pattern_set_extend (pattern, value); }
+get { return CairoAPI.cairo_pattern_get_extend (pattern); }
+			}
+
+			public Filter Filter {
+set { CairoAPI.cairo_pattern_set_filter (pattern, value); }
+get { return CairoAPI.cairo_pattern_get_filter (pattern); }
+			}
+		}

 public class Pattern
 {
@@ -89,19 +127,7 @@
 {
 CairoAPI.cairo_pattern_destroy (pattern);

Re: [Mono-dev] ** ERROR **: file exceptions-ia64.c:

2005-09-02 Thread Zoltan Varga
  Hi,

  This has just been fixed in SVN.

   Zoltan

On 9/1/05, Kevin [EMAIL PROTECTED] wrote:
 
 Jonathan, thanks for the tip on monolite.
  I should have read more of the README myself.
  
  I am now facing an assertion problem and was wondering whether anyone came
 across the following?
  
  
  ** ERROR **: file exceptions-ia64.c: line 581 (mono_arch_handle_exception):
 assertion failed: (res = 0)
  aborting...
  make[7]: *** [../class/lib/net_1_1_bootstrap/mcs.exe]
 Aborted
  make[7]: Leaving directory `/home/veragoo/mono/mcs/mcs'
  make[6]: *** [do-all] Error 2
  make[6]: Leaving directory `/home/veragoo/mono/mcs/mcs'
  make[5]: *** [all-recursive] Error 1
  make[5]: Leaving directory `/home/veragoo/mono/mcs'
  make[4]: *** [profile-do--net_1_1_bootstrap--all] Error 2
  make[4]: Leaving directory `/home/veragoo/mono/mcs'
  make[3]: *** [profiles-do--all] Error 2
  make[3]: Leaving directory `/home/veragoo/mono/mcs'
  make[2]: *** [all-local] Error 1
  make[2]: Leaving directory
 `/home/veragoo/mono/mono/runtime'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/home/veragoo/mono/mono'
  make: *** [all] Error 2
  
  ---
  Thanks
  Kevin
  
  
  
  
  
  
  
 On 8/26/05, Jonathan S. Chambers [EMAIL PROTECTED]  wrote:
  Did you get monolite; i.e. 'make get-monolite-latest'?
  
  - Jonathan
  
  
  -Original Message-
  From:   [EMAIL PROTECTED] on
 behalf of Kevin
  Sent:   Thu 8/25/2005 8:57 PM
  To: mono-devel-list@lists.ximian.com 
  Cc:
  Subject:[Mono-dev] mono on IA64 - help compiling
  Hello all,
  
  I have tried to compile mono on one of the Itanium2 machines at work, but
 at
  some point it asks for an existing mcs compiler. I am not sure how to
 solve
  this, as i am guessing that installing the binaries won't work there, or 
  will they?
  
  Could anyone please advise.
  
  PS: I have pasted the error below.
  
  Thanks in advance
  Kevin
  
  -- START
  ERROR--- 
  make[3]: Entering directory `/home/veragoo/mono/mcs'
  make profile-do--default--all profile-do--net_2_0--all
  make[4]: Entering directory `/home/veragoo/mono/mcs'
  make PROFILE=basic all
  make[5]: Entering directory `/home/veragoo/mono/mcs' 
  *** The compiler 'mcs' doesn't appear to be usable.
  *** You need a C# compiler installed to build MCS (make sure mcs works
 from
  the command line)
  *** Read INSTALL.txt for information on how to bootstrap a Mono 
  installation.
  make[5]: *** [do-profile-check] Error 1
  make[5]: Leaving directory `/home/veragoo/mono/mcs'
  make[4]: *** [profile-do--basic--all] Error 2
  make[4]: Leaving directory `/home/veragoo/mono/mcs'
  make[3]: *** [profiles-do--all] Error 2
  make[3]: Leaving directory `/home/veragoo/mono/mcs'
  make[2]: *** [all-local] Error 1
  make[2]: Leaving directory
 `/home/veragoo/mono/mono/runtime'
  make[1]: *** [all-recursive] Error 1 
  make[1]: Leaving directory `/home/veragoo/mono/mono'
  make: *** [all] Error 2
  END
  ERROR--
  
  
  --
  Cheers,
  Kevin ( http://www. )
  Copyright 2005 Kevin Parama Veragoo. Verbatim copying and distribution of
  this entire article are permitted worldwide without royalty in any medium 
  provided this notice is preserved. 
  
  
  
  ___
  Mono-devel-list mailing list
  Mono-devel-list@lists.ximian.com
 
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
  
 
 
 
 -- 
 Cheers,
 Kevin  ( http://www.  )
 Copyright 2005 Kevin Parama Veragoo. Verbatim copying and distribution of
 this entire article are permitted worldwide without royalty in any medium
 provided this notice is preserved. 
 
 -- 
 
 Cheers,
 Kevin  ( http://www.  )
 Copyright 2005 Kevin Parama Veragoo. Verbatim copying and distribution of
 this entire article are permitted worldwide without royalty in any medium
 provided this notice is preserved. 
 ___
 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] expected corlib 37, found 38

2005-09-02 Thread Bernhard Herzog
Thank you! I also found this documented in one of the INSTALL-files now. I 
should better read the documentation first next time. Mixing version from 
SVN and releases was not a good idea, now that I have compiled everything 
myself it is working. I even had to recompile my own application. I am 
having some new problems in my web-application now - but I suppose this is 
because of all that changes in the web controls / web application domain.


Bernhard

- Original Message - 
From: Zoltan Varga [EMAIL PROTECTED]

To: Bernhard Herzog [EMAIL PROTECTED]
Cc: mono-devel-list@lists.ximian.com
Sent: Friday, September 02, 2005 2:44 PM
Subject: Re: [Mono-dev] expected corlib 37, found 38


Hi,

 This means the runtime you have installed on your system is older than the
mscorlib.dll. You can usually fix that by typeing 'make install' in
the mono/mono
directory.

 Zoltan

On 8/31/05, Bernhard Herzog [EMAIL PROTECTED] wrote:

Hello!

Sorry for this newbie question and if it has been asked before:
I wanted to try the new System.Web.dll so I did an svn update and tried to
compile. I don't remember everything I did, but suddenly I got something
like:

Corlib not in sync with this runtime: expected corlib version 37, found 
40.
Download a newer corlib or a newer runtime at 
http://www.go-mono.com/daily.


I went to go-mono.com/daily and downloaded monocharge. But this archive 
did
not contain a gacutil.exe, so I used the one I had and still got the 
error.

I did some experiments copying dlls and stuff and finally downloaded
mono-1.1.8.20050830 and compiled it (configure, make, make install). Now
when running gacutil I get:

Corlib not in sync with this runtime: expected corlib version 37, found 
38.
Download a newer corlib or a newer runtime at 
http://www.go-mono.com/daily.


Am I doing something wrong here?

Thank you
Bernhard

___
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


[Mono-dev] Zac Bowling has invited you to open a Google mail account

2005-09-02 Thread Zac Bowling
---

Zac Bowling has invited you to open a free Gmail account.

To accept this invitation and register for your account, visit
http://mail.google.com/mail/a-fdc691e1c6-e9b66c8a2c-9e24b69030

Once you create your account, Zac Bowling will be notified with 
your new email address so you can stay in touch with Gmail!

If you haven't already heard about Gmail, it's a new search-based webmail 
service that offers:

- Over 2,500 megabytes (two gigabytes) of free storage
- Built-in Google search that instantly finds any message you want
- Automatic arrangement of messages and related replies into 
  conversations
- Text ads and related pages that are relevant to the content of your 
  messages

Gmail is still in an early stage of development. But if you set up an 
account, you'll be able to keep it even after we make Gmail more 
widely available. We might also ask for your comments and suggestions 
periodically and we appreciate your help in making Gmail even better.

Thanks,

The Gmail Team

To learn more about Gmail before registering, visit:
http://mail.google.com/mail/help/benefits.html

(If clicking the URLs in this message does not work, copy and paste them
into the address bar of your browser).
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] patch to add more surfaces to Mono.Cairo

2005-09-02 Thread John Luke
Hello,
Here is a patch to add an XlibSurface and Win32Surface to Mono.Cairo.
I updated the samples and they still work and added one
for win32 (only tested with .net).
Index: Mono.Cairo/Cairo.cs
===
--- Mono.Cairo/Cairo.cs	(revision 49350)
+++ Mono.Cairo/Cairo.cs	(working copy)
@@ -356,6 +356,9 @@
 		[DllImport (CairoImp)]
 public static extern IntPtr cairo_xlib_surface_create (IntPtr dpi,
 			IntPtr win, IntPtr visual, int w, int h);
+
+		[DllImport (CairoImp)]
+public static extern void cairo_xlib_surface_set_drawable (IntPtr surface, IntPtr drawable, int width, int height);
 		
 		[DllImport (CairoImp)]
 public static extern void cairo_xlib_surface_set_size (IntPtr surface, int width, int height);
@@ -394,6 +397,21 @@
 [DllImport (CairoImp)]
 public static extern void cairo_surface_write_to_png (IntPtr surface, string filename);
 
+[DllImport (CairoImp)]
+public static extern IntPtr cairo_pdf_surface_create (string filename, double width, double height);
+
+[DllImport (CairoImp)]
+public static extern void cairo_pdf_surface_set_dpi (IntPtr surface, double x_dpi, double y_dpi);
+
+[DllImport (CairoImp)]
+public static extern IntPtr cairo_ps_surface_create (string filename, double width, double height);
+
+[DllImport (CairoImp)]
+public static extern void cairo_ps_surface_set_dpi (IntPtr surface, double x_dpi, double y_dpi);
+
+[DllImport (CairoImp)]
+public static extern IntPtr cairo_win32_surface_create (IntPtr hdc);
+
 //
 // Matrix
 //
Index: Mono.Cairo/Graphics.cs
===
--- Mono.Cairo/Graphics.cs	(revision 49350)
+++ Mono.Cairo/Graphics.cs	(working copy)
@@ -618,6 +618,11 @@
 		public double FontSize {
 			set { CairoAPI.cairo_set_font_size (state, value); }
 		}
+
+		public void ShowPage ()
+		{
+			CairoAPI.cairo_show_page (state);
+		}
 		
 public void ShowText (string str)
 {
Index: Mono.Cairo/Surface.cs
===
--- Mono.Cairo/Surface.cs	(revision 49350)
+++ Mono.Cairo/Surface.cs	(working copy)
@@ -59,6 +59,77 @@
 		}
 		
 	}
+
+	#if UNSTABLE
+	public class PdfSurface : Surface
+	{
+		public PdfSurface (string filename, double width, double height)
+		{
+			surface = CairoAPI.cairo_pdf_surface_create (filename, width, height);
+
+			CairoAPI.cairo_surface_reference (surface);
+		}
+
+		public void SetDPI (double x_dpi, double y_dpi)
+		{
+			CairoAPI.cairo_pdf_surface_set_dpi (surface, x_dpi, y_dpi);
+		}
+	}
+
+	public class PostscriptSurface : Surface
+	{
+		public PostscriptSurface (string filename, double width, double height)
+		{
+			surface = CairoAPI.cairo_ps_surface_create (filename, width, height);
+
+			CairoAPI.cairo_surface_reference (surface);
+		}
+
+		public void SetDPI (double x_dpi, double y_dpi)
+		{
+			CairoAPI.cairo_ps_surface_set_dpi (surface, x_dpi, y_dpi);
+		}
+	}
+	#endif
+
+	public class Win32Surface : Surface
+	{
+		public Win32Surface (IntPtr hdc)
+		{
+			surface = CairoAPI.cairo_win32_surface_create (hdc);
+
+			CairoAPI.cairo_surface_reference (surface);
+		}
+	}
+
+	public class XlibSurface : Surface
+	{
+		public XlibSurface (IntPtr display, IntPtr drawable, IntPtr visual, int width, int height)
+		{
+			surface = CairoAPI.cairo_xlib_surface_create (display, drawable, visual, width, height);
+
+			CairoAPI.cairo_surface_reference (surface);
+		}
+
+		/* FIXME: has the same parameters as above
+		public XlibSurface (IntPtr display, IntPtr bitmap, IntPtr screen, int width, int height)
+		{
+			surface = CairoAPI.cairo_xlib_surface_create_for_bitmap (display, bitmap, screen, width, height);
+
+			CairoAPI.cairo_surface_reference (surface);
+		}
+		*/
+
+		public void SetDrawable (IntPtr drawable, int width, int height)
+		{
+			CairoAPI.cairo_xlib_surface_set_drawable (surface, drawable, width, height);
+		}
+
+		public void SetSize (int width, int height)
+		{
+			CairoAPI.cairo_xlib_surface_set_size (surface, width, height);
+		}
+	}

 	public class Surface : IDisposable 
 {		
@@ -89,16 +160,6 @@
 			}
 		}		
 		
-		public static Cairo.Surface CreateForXlib (IntPtr display, IntPtr win,
-			   IntPtr visual, int w, 
-			   int h)
-		{
-			IntPtr p = CairoAPI.cairo_xlib_surface_create (display, win,
-   visual, w, h);
-			if(p == IntPtr.Zero) System.Console.WriteLine(Failed creating surface);
-			return new Cairo.Surface (p, false);
-		}
-		
 public static Cairo.Surface CreateForImage (
 

Re: [Mono-dev] [PATCH][GMCS] add MakeGenericMethod to MethodInfo

2005-09-02 Thread Kamil Skalski
I attach the more complete and correct patch - MakeGenericMethod is
added to MethodBase instead of MethodInfo, I made necessary changes to
gmcs and mbas, also the change to GenericParameterAttributes is
included.

One question I would like to ask is if I should also change the
runtime icalls from BindTypeParameters to MakeGenericType /
MakeGenericMethod, or should this be left for another patch. If this
patch is ok in its state, I will commit.

2005/8/30, Michal Moskal [EMAIL PROTECTED]:
 Hello,
 
 The MS Aug CTP release removes BindGenericParameters/Arguments methods
 from System.Type and MethodInfo. Instead MakeGenericType and
 MakeGenericMethod should be used. Mono has the first one implemneted.
 The attached patch implemnets the second one.
 
 2005-08-30  Michal Moskal  [EMAIL PROTECTED]
 
 * MethodInfo.cs: Add MakeGenericMethod to match Aug CTP API.
 
 --
Michal Moskal,
http://nemerle.org/~malekith/
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 
 
 


-- 
Kamil Skalski
http://nazgul.omega.pl
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] [PATCH][GMCS] add MakeGenericMethod to MethodInfo

2005-09-02 Thread Kamil Skalski
And the file goes here...

2005/9/2, Kamil Skalski [EMAIL PROTECTED]:
 I attach the more complete and correct patch - MakeGenericMethod is
 added to MethodBase instead of MethodInfo, I made necessary changes to
 gmcs and mbas, also the change to GenericParameterAttributes is
 included.
 
 One question I would like to ask is if I should also change the
 runtime icalls from BindTypeParameters to MakeGenericType /
 MakeGenericMethod, or should this be left for another patch. If this
 patch is ok in its state, I will commit.
 
 2005/8/30, Michal Moskal [EMAIL PROTECTED]:
  Hello,
 
  The MS Aug CTP release removes BindGenericParameters/Arguments methods
  from System.Type and MethodInfo. Instead MakeGenericType and
  MakeGenericMethod should be used. Mono has the first one implemneted.
  The attached patch implemnets the second one.
 
  2005-08-30  Michal Moskal  [EMAIL PROTECTED]
 
  * MethodInfo.cs: Add MakeGenericMethod to match Aug CTP API.
 
  --
 Michal Moskal,
 http://nemerle.org/~malekith/
 
 
  ___
  Mono-devel-list mailing list
  Mono-devel-list@lists.ximian.com
  http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 
 
 
 
 
 --
 Kamil Skalski
 http://nazgul.omega.pl
 


-- 
Kamil Skalski
http://nazgul.omega.pl
Index: bmcs/generic.cs
===
--- bmcs/generic.cs	(wersja 49356)
+++ bmcs/generic.cs	(kopia robocza)
@@ -33,7 +33,7 @@
 		}
 
 		public bool HasValueTypeConstraint {
-			get { return (Attributes  GenericParameterAttributes.ValueTypeConstraint) != 0; }
+			get { return (Attributes  GenericParameterAttributes.NotNullableValueTypeConstraint) != 0; }
 		}
 
 		public virtual bool HasClassConstraint {
@@ -195,7 +195,7 @@
 	if (sc == SpecialConstraint.ReferenceType)
 		attrs |= GenericParameterAttributes.ReferenceTypeConstraint;
 	else
-		attrs |= GenericParameterAttributes.ValueTypeConstraint;
+		attrs |= GenericParameterAttributes.NotNullableValueTypeConstraint;
 	continue;
 }
 
@@ -1733,7 +1733,7 @@
 			if (tc != null)
 return tc.IsGeneric ? tc.CountTypeParameters : 0;
 			else
-return t.HasGenericArguments ? t.GetGenericArguments ().Length : 0;
+return t.IsGenericType ? t.GetGenericArguments ().Length : 0;
 		}
 
 		public static Type[] GetTypeArguments (Type t)
@@ -2171,7 +2171,7 @@
 if (infered_types [i] == null)
 	return false;
 
-			method = method.BindGenericParameters (infered_types);
+			method = method.MakeGenericMethod (infered_types);
 			return true;
 		}
 
@@ -2241,7 +2241,7 @@
 			if (!InferTypeArguments (param_types, arg_types, infered_types))
 return false;
 
-			method = method.BindGenericParameters (infered_types);
+			method = method.MakeGenericMethod (infered_types);
 			return true;
 		}
 
@@ -2269,7 +2269,7 @@
 			if (!InferTypeArguments (param_types, arg_types, infered_types))
 return false;
 
-			method = method.BindGenericParameters (infered_types);
+			method = method.MakeGenericMethod (infered_types);
 			return true;
 		}
 
Index: bmcs/ecore.cs
===
--- bmcs/ecore.cs	(wersja 49356)
+++ bmcs/ecore.cs	(kopia robocza)
@@ -2992,7 +2992,7 @@
 if (gen_params.Length != atypes.Length)
 	continue;
 
-list.Add (mi.BindGenericParameters (atypes));
+list.Add (mi.MakeGenericMethod (atypes));
 			}
 
 			if (list.Count  0) {
Index: gmcs/generic.cs
===
--- gmcs/generic.cs	(wersja 49356)
+++ gmcs/generic.cs	(kopia robocza)
@@ -33,7 +33,7 @@
 		}
 
 		public bool HasValueTypeConstraint {
-			get { return (Attributes  GenericParameterAttributes.ValueTypeConstraint) != 0; }
+			get { return (Attributes  GenericParameterAttributes.NotNullableValueTypeConstraint) != 0; }
 		}
 
 		public virtual bool HasClassConstraint {
@@ -199,7 +199,7 @@
 	if (sc == SpecialConstraint.ReferenceType)
 		attrs |= GenericParameterAttributes.ReferenceTypeConstraint;
 	else
-		attrs |= GenericParameterAttributes.ValueTypeConstraint;
+		attrs |= GenericParameterAttributes.NotNullableValueTypeConstraint;
 	continue;
 }
 
@@ -1692,7 +1692,7 @@
 			if (tc != null)
 return tc.IsGeneric ? tc.CountTypeParameters : 0;
 			else
-return t.HasGenericArguments ? t.GetGenericArguments ().Length : 0;
+return t.IsGenericType ? t.GetGenericArguments ().Length : 0;
 		}
 
 		public static Type[] GetTypeArguments (Type t)
@@ -2128,7 +2128,7 @@
 if (infered_types [i] == null)
 	return false;
 
-			method = method.BindGenericParameters (infered_types);
+			method = method.MakeGenericMethod (infered_types);
 			return true;
 		}
 
@@ -2199,7 +2199,7 @@
 			if (!InferTypeArguments (param_types, arg_types, infered_types))
 return false;
 
-			method = method.BindGenericParameters (infered_types);
+			method = method.MakeGenericMethod (infered_types);
 			

[Mono-dev] Pre-release notes.

2005-09-02 Thread Miguel de Icaza
Hello,

As it happens with every release, I can not keep track of all the
developments in the tree, and I would like to list all the major
highlights in this upcoming Mono release.

Please review my release notes and send me any relevant comments on
things that might be missing:

http://www.go-mono.com/archive/1.1.9

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


Re: [Mono-dev] Bug Day

2005-09-02 Thread Atsushi Eno

Julien Gilli wrote:

Hello,

Paul F. Johnson wrote:


We had some good movement on this, but the idea seems to have gone dead.
 

As for me, the idea hasn't gone dead, i'm waiting for comments from key 
developers.

However, bringing this on the mono mailing lists  again is a good idea :-).


Why not just immediately tuckle existing bugs? I have been fixing mcs 
bugs those days. I don't know much about mcs internals, so I often

ask about them on irc.

What were you guys doing since the beginning of this discussion?

I would like to know what is the reason you guys need something
special than immediate bugfixing.

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


[Mono-dev] patch to fix Mono.Cairo.Operator

2005-09-02 Thread John Luke
Hello,
One more patch to make Cairo.Operator match
cairo_operator_t in cairo 1.0, I guess the other values were either
from an older cairo or when Mono.Cairo was being used to emulate another
library.
Index: Mono.Cairo/Cairo.cs
===
--- Mono.Cairo/Cairo.cs	(revision 49350)
+++ Mono.Cairo/Cairo.cs	(working copy)
@@ -533,46 +533,23 @@
 }
 
 public enum Operator {
-Clear = 0,
-Src = 1,
-Dst = 2,
-Over = 3,
-OverReverse = 4,
-In = 5,
-InReverse = 6,
-Out = 7,
-OutReverse = 8,
-Atop = 9,
-AtopReverse = 10,
-Xor = 11,
-Add = 12,
-Saturate = 13,
-
-DisjointClear = 16,
-DisjointSrc = 17,
-DisjointDst = 18,
-DisjointOver = 19,
-DisjointOverReverse = 20,
-DisjointIn = 21,
-DisjointInReverse = 22,
-DisjointOut = 23,
-DisjointOutReverse = 24,
-DisjointAtop = 25,
-DisjointAtopReverse = 26,
-DisjointXor = 27,
+		Clear,
 
-ConjointClear = 32,
-ConjointSrc = 33,
-ConjointDst = 34,
-ConjointOver = 35,
-ConjointOverReverse = 36,
-ConjointIn = 37,
-ConjointInReverse = 38,
-ConjointOut = 39,
-ConjointOutReverse = 40,
-ConjointAtop = 41,
-ConjointAtopReverse = 42,
-ConjointXor = 43
+		Source,
+		Over,
+		In,
+		Out,
+		Atop,
+
+		Dest,
+		DestOver,
+		DestIn,
+		DestOut,
+		DestAtop,
+
+		Xor,
+		Add,
+		Saturate,
 }
 
 public enum FillRule {
Index: Samples/png/circles.cs
===
--- Samples/png/circles.cs	(revision 49350)
+++ Samples/png/circles.cs	(working copy)
@@ -117,7 +117,8 @@
 		
 		gr.Restore ();
 		
-		gr.Operator = Operator.OutReverse;
+		// FIXME: OutReverse is not in 1.0
+		//gr.Operator = Operator.OutReverse;
 		punch.Show (gr, width, height);
 		
 		
Index: Samples/gtk/circles.cs
===
--- Samples/gtk/circles.cs	(revision 49350)
+++ Samples/gtk/circles.cs	(working copy)
@@ -144,7 +144,8 @@
 		
 		gr.Restore ();
 		
-		gr.Operator = Operator.OutReverse;
+		// FIXME: Operator.OutReverse is not in cairo 1.0
+		//gr.Operator = Operator.OutReverse;
 		punch.Show (gr, width, height);
 		
 		
Index: ChangeLog
===
--- ChangeLog	(revision 49350)
+++ ChangeLog	(working copy)
@@ -1,3 +1,7 @@
+2005-09-02  John Luke  [EMAIL PROTECTED]
+
+	* Mono.Cairo/Cairo.cs: only use operators in cairo_operator_t
+	
 2005-09-01  John Luke  [EMAIL PROTECTED]
 
 	* Mono.Cairo/Cairo.cs: p/invoke the windows dll name
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


[Mono-dev] Re: [Mono-list] Mono.Security.dll async SSL preview

2005-09-02 Thread Sebastien Pouliot
Hello,

A modified version of JD's patch is now in SVN. The changes are minor:
(a) make it compile under 1.x (can't call Invoke on a delegate);
(b) make the API to look more like the original (i.e. internalize ;-)

My tests didn't show any difference between this version and the
previous one (i.e. the original patch).

Mono 1.1.9 is coming very soon now so if you depend, directly or
indirectly, on the SSL/TLS classes please do test this new version -
either with SVN or as a new attachment to the bug report.
http://bugzilla.ximian.com/showattachment.cgi?attach_id=15686

Thanks.

On Tue, 2005-30-08 at 14:08 -0400, Sebastien Pouliot wrote:
 Hello everyone,
 
 I completed a _successful_ test run of the latest JD's async SSL patch
 (attached). 
 
 History has shown that testing SSL isn't as simple as I would like ;-)
 so I decided to let people test it for themselves before committing the
 (rather large) changes to SVN. 
 
 If everything goes well (e.g. I don't hear from anyone), this [*] will
 be committed to SVN on Friday. [*] some new visible API may be hidden
 (internal) before being committed. However they shouldn't affect
 compatibility.
 
 This new Mono.Security.dll assembly can be downloaded from
 http://bugzilla.ximian.com/showattachment.cgi?attach_id=15663
 just renamed the file to Mono.Security.dll and install it with gacutil
 before starting your tests.
 
 And again a big thanks to JD :-)
 ___
 Mono-list maillist  -  Mono-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-list

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


Re: [Mono-dev] patch for Mono.Cairo to rename SurfaceImage and Patterns

2005-09-02 Thread Hisham Mardam Bey
I will look into this on Sunday as I will be offline most of the day
on Saturday. Thanks for your hard work!

Hisham.

On 9/2/05, John Luke [EMAIL PROTECTED] wrote:
 Hello,
 Here is a patch to rename SurfaceImage to ImageSurface and
 implement the type-hierarchy for Patterns in the cairo docs.
 
 After this I think I will only have 1 more patch with an api change
 to make the Surfaces a hierarchy of types also. Thanks to Hisham for
 taking care of everything so far.
 
 
 ___
 Mono-devel-list mailing list
 Mono-devel-list@lists.ximian.com
 http://lists.ximian.com/mailman/listinfo/mono-devel-list
 
 
 
 


-- 
Hisham Mardam Bey
MSc (Computer Science)
http://hisham.cc/
+9613609386
Codito Ergo Sum (I Code Therefore I Am)
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] .NET Remoting: Upload of a file from a Win32 MS .NET client to a Linux Mono .NET server.

2005-09-02 Thread Sunny
Sorry, replied off the list, here is a copy:


On 9/2/05, Yngve Zackrisson [EMAIL PROTECTED] wrote:
 Hi there.


 The problems (now) arise when i try to upload a zip file from
 the client to the server.
 I use a parameter with a (File)Stream object to do callbacks

I did not check all your code, but generally this is a bad idea to
pass a Stream object as remoting parameter. That way, when you invoke
a remote call lets say to Read method, you are passing the buffer
array as well in both directions, thus doubling the traffic.

A better approach is to have a remote method like byte[] ReadChunk(int
start, int end) or something like that. Now, you can control from the
client how big chunks you want to receive, and the buffer is only
passed from server to client. Knowing the original size of the file
and the chunks/bytes you already read, you can easily maintain and
update a progress indicator.

This is a good article on the topic:
http://www.genuinechannels.com/Content.aspx?id=23type=1

Cheers
Sunny

--
Svetoslav Milenov (Sunny)
___
Mono-devel-list mailing list
Mono-devel-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-devel-list


Re: [Mono-dev] Bug Day

2005-09-02 Thread Paul F. Johnson
Hi,

  As for me, the idea hasn't gone dead, i'm waiting for comments from key 
  developers.
  However, bringing this on the mono mailing lists  again is a good idea :-).
 
 Why not just immediately tuckle existing bugs? I have been fixing mcs 
 bugs those days. I don't know much about mcs internals, so I often
 ask about them on irc.

The idea was to have something similar to the Gnome bug days. Given the
project is nearing the beta of 1.2, it was suggested that this may be a
way forward to have a concerted effort for bug diagnosis and fixing.

TTFN

Paul
-- 
A lot of football success is in the mind. You must believe you are the
best and then make sure that you are. In my time at Liverpool we always
said we had the best two teams on Merseyside, Liverpool and Liverpool
Reserves. - Bill Shankly

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


Re: [Mono-dev] Mono on OSX 10.4 (Cocoa and Threading)

2005-09-02 Thread Allan Hsu



On Sep 1, 2005, at 10:52 PM, Frank Bergmann wrote:

I must say I had trouble creating a test case (since it is a rather  
big
project). I found out the following though: Under Win32 I used the  
Mutex

class during thread spawning to ensure thread safety. Under OS X these
Mutex's caused a deadlock. Even after creation the first WaitOne()  
would

not return. Writing up a test case did not work out again, as every
simple use of the Mutex class did what it was supposed to do. So  
for now

I removed them and watch my step.



I suspect there may be a bug in the mono Mutex/Monitor implementation  
under OS X. I have experienced similar deadlocks. The toy code I  
posted for bug #75558 sometimes exhibits deadlocking behaviour under  
10.4.2:


http://bugs.ximian.com/show_bug.cgi?id=75558

-Allan

--
Allan Hsu allan at counterpop dot net
1E64 E20F 34D9 CBA7 1300  1457 AC37 CBBB 0E92 C779

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


[Mono-dev] System.Windows.Forms and mbas

2005-09-02 Thread Thomas Cleenewerck
I'm trying to get the following example working on winxp with mono-1.0.5:

imports Systemimports System.Windows.Forms
Module Hello
 sub Main() dim f as new System.Windows.Forms.Form() dim c as new Collection()Console.WriteLine(Hello World vb.mono) end sub 
end module

I'm compilingthe program using
 mbas /r:System.Windows.Forms helloworld.vb

Upon execution I get the following error:
 Unhandled Exception: System.ArgumentException: Invalid Parameter. A null reference or invalid value was found.in 0x00073 System.Drawing.GDIPlus:CheckStatus (System.Drawing.Status)in 0x00182 
System.Drawing.Font:FromHfont (intptr)in 0x00015 System.Windows.Forms.Control:get_DefaultFont ()in 0x001af System.Windows.Forms.Control:.ctor ()in 0x00010 System.Windows.Forms.ScrollableControl:.ctor
 ()in 0x00012 System.Windows.Forms.ContainerControl:.ctor ()in 0x00016 System.Windows.Forms.Form:.ctor ()in 0x0004c (wrapper remoting-invoke-with-check) System.Windows.Forms.Form:.cto
r ()in 0x00028 Hello:Main ()

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