[Mono-list] keeping corlib self-contained

Paolo Molaro lupus@ximian.com
Sat, 5 Jan 2002 15:44:00 +0100


As you know corlib needs to be self-contained, i.e. it can't depend
on other assemblies. There is an easy way to see what methods/fields
are referenced in other assemblies (currently from mscorlib): on Linux
run

	monodis --memberref corlib.dll

So, if you introduce new code, make also sure that you don't introduce
new dependencies (or help remove the current ones).
We are currently down to 11 methods referenced from mscorlib:

MemberRef Table (0..11)
0: TypeRef[9] .ctor
	Resolved: [mscorlib]System.Security.Permissions.SecurityPermissionAttribute..ctor
	Signature: instance void(valuetype System.MonoDummy)
	
1: TypeRef[11] .ctor
	Resolved: [mscorlib]System.Security.Permissions.EnvironmentPermissionAttribute..ctor
	Signature: instance void(valuetype System.MonoDummy)
	
2: TypeRef[12] WriteLine
	Resolved: [System]System.Diagnostics.Debug.WriteLine
	Signature: void(object)
	
3: TypeRef[13] .ctor
	Resolved: [mscorlib]System.Security.Permissions.FileIOPermission..ctor
	Signature: instance void(valuetype System.MonoDummy, string)
	
4: TypeRef[15] .ctor
	Resolved: [mscorlib]System.Security.Cryptography.SHA384Managed..ctor
	Signature: instance void()
	
5: TypeRef[16] .ctor
	Resolved: [mscorlib]System.Security.Cryptography.SHA512Managed..ctor
	Signature: instance void()
	
6: TypeRef[17] Create
	Resolved: [mscorlib]System.Security.Cryptography.Rijndael.Create
	Signature: class System.MonoDummy()
	
7: TypeRef[18] Create
	Resolved: [mscorlib]System.Security.Cryptography.RSA.Create
	Signature: class System.MonoDummy()
	
8: TypeRef[19] .ctor
	Resolved: [mscorlib]System.Security.Cryptography.DSACryptoServiceProvider..ctor
	Signature: instance void()
	
9: TypeRef[12] Assert
	Resolved: [System]System.Diagnostics.Debug.Assert
	Signature: void(bool)
	
10: TypeRef[12] WriteLine
	Resolved: [System]System.Diagnostics.Debug.WriteLine
	Signature: void(string)

The Types referenced are, instead:
Typeref Table
1: [mscorlib]System.ResolveEventArgs
2: [mscorlib]System.Security.Cryptography.X509Certificates.X509Certificate
3: [mscorlib]System.Runtime.Serialization.SerializationInfoEnumerator
4: [mscorlib]System.Runtime.InteropServices.GCHandle
5: [mscorlib]System.Reflection.Emit.UnmanagedMarshal
6: [mscorlib]System.Resources.IResourceWriter
7: [mscorlib]System.Runtime.Remoting.Messaging.LogicalCallContext
8: [mscorlib]System.Guid
9: [mscorlib]System.Security.Permissions.SecurityPermissionAttribute
10: [mscorlib]System.Security.Permissions.SecurityAction
11: [mscorlib]System.Security.Permissions.EnvironmentPermissionAttribute
12: [System]System.Diagnostics.Debug
13: [mscorlib]System.Security.Permissions.FileIOPermission
14: [mscorlib]System.Security.Permissions.FileIOPermissionAccess
15: [mscorlib]System.Security.Cryptography.SHA384Managed
16: [mscorlib]System.Security.Cryptography.SHA512Managed
17: [mscorlib]System.Security.Cryptography.Rijndael
18: [mscorlib]System.Security.Cryptography.RSA
19: [mscorlib]System.Security.Cryptography.DSACryptoServiceProvider

lupus

-- 
-----------------------------------------------------------------
lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better