[Mono-list] bug in mcs and more.
Erik Bågfors
erik@bagfors.nu
30 Mar 2002 00:45:22 +0100
Hi all!
I just started to try out mono and have no experience in c# before.
After some small tests with p/invoke I thought I should try something
real. I grabbed the NetRuby-compiler which compiles the
"NotRuby"-language to the .Net-platform. It's written in c# so I
thought I should be able to compile it with mcs (well.. I'm aware that I
might not be able to do that just yet)
Anyway, this is how it went.
The following code didn't work.
[assembly: AssemblyTitle("NETRuby")]
[assembly: AssemblyVersion("0.8.*")]
[assembly: AssemblyCopyright("NETRuby - Copyright (C) 2002 arton")]
Knowing next to nothing about c# I just put a
#if __MonoCS__
#else
before it and "#endif" after and off we went. I don't know if that is
important or just information.
Next problem.
The following code doesn't compile
public enum FL
{
EMPTY = 0,
USHIFT = 11,
USER0 = (1<<(USHIFT+0)),
USER1 = (1<<(USHIFT+1)),
USER2 = (1<<(USHIFT+2)),
USER3 = (1<<(USHIFT+3)),
USER4 = (1<<(USHIFT+4)),
USER5 = (1<<(USHIFT+5)),
USER6 = (1<<(USHIFT+6)),
USER7 = (1<<(USHIFT+7)),
UMASK = (0xff<<USHIFT),
SINGLETON = USER0,
FINALIZE = (1<<7),
TAINT = (1<<8),
EXIVAR = (1<<9),
FREEZE = (1<<10),
}
This does.
public enum FL
{
EMPTY = 0,
USHIFT = 11,
USER0 = 2048,
USER1 = 4096,
USER2 = 8192,
USER3 = 16384,
USER4 = 32768,
USER5 = 65536,
USER6 = 131072,
USER7 = 262144,
UMASK = 522240,
SINGLETON = 11,
FINALIZE = 128,
TAINT = 256,
EXIVAR = 512,
FREEZE = 1024,
}
Which in the end is the same thing. I guess that's a bug in mcs??
After that I just get this error.
mcs --define _DEBUG --define EXCEP_TRACE --target library --debug -o
NETRuby.dll NETRuby.cs parser.cs Scanner.cs node.cs excep.cs Symbol.cs
Object.cs Class.cs kernel.cs frmobj.cs string.cs Const.cs Numeric.cs
Bignum.cs Array.cs Loader.cs Proc.cs Thread.cs Time.cs Regexp.cs Hash.cs
Enum.cs io.cs
(process:990): ** WARNING **: unhandled exception
System.IndexOutOfRangeException: "Array index is out of range"
in Mono.CSharp.Delegate:Define ()
in Mono.CSharp.TypeContainer:DefineMembers ()
in Mono.CSharp.TypeContainer:Define ()
in Mono.CSharp.RootContext:PopulateTypes ()
in Mono.CSharp.Driver:MainDriver ()
in Mono.CSharp.Driver:Main ()
make: *** [NETRuby.dll] Error 1
[Exit 2 ]
I know it's to early in the mono-project to expect everything to work
but if I can find this error perhaps I can help the project as well as
having fun myself :) How do I go about to find more information about
this error??
/Erik
ps. NETRuby is a ruby-like language for the .Net-platform.
--
Erik Bågfors | erik@bagfors.nu
Supporter of free software | GSM +46 733 279 273
fingerprint: 6666 A85B 95D3 D26B 296B 6C60 4F32 2C0B 693D 6E32