mono / ikvm-fork Goto Github PK
View Code? Open in Web Editor NEWA fork of the original cvs based IKVM repository
License: Other
A fork of the original cvs based IKVM repository
License: Other
Because you are working with IKVM as well, you might be interested in the fact that there's an ongoing attempt to revive the project or at least provide a place where users of IKVM can find some support, collect issues, PRs and stuff. It contains the latest available source code with history and already some fixes, e.g. to get things a bit more compatible with .NET Core.
Repro:
Clone (with submodules), open solution, run project:
$ msbuild /v:quiet /nologo && mono bin/Debug/ikvm-bug.exe
/Users/rolf/Projects/ikvm-bug/b.dll
QuickLook.IQLPreviewItem: MetadataToken 33554540 CustomAttributeCount: 0
❌ FAIL: missing 4 attributes on the type
/Users/rolf/Projects/ikvm-bug/a.dll
QuickLook.IQLPreviewItem: MetadataToken 33554540 CustomAttributeCount: 4
✅ OK: found all attributes
The problem is this:
Can ikvn build Java source into 64 bit .NET .DLL? If so, can you point me to the configuration?
Thanks.
Please see https://bugzilla.xamarin.com/show_bug.cgi?id=8578
I am glad to do what I can to fix this. Hopefully, first someone knowledgeable on this code can offer some insight.
Is this the right place to report IKVM.Reflection issues?
I've found a difference between System.Reflection (.NET 4.5) and IKVM.Reflection (nuget package and ikvm-fork master) in the behavior of Type.GetInterfaceMap(Type).
I don't know if it is intentional or not, but I suspect that it is IKVM.Reflection that gets this wrong.
The issue is demonstrated by the code below. Compile into IkvmInterfaceTest.exe and run. The output on the two rows should not differ.
using IKVM.Reflection;
using System;
using System.Linq;
namespace IkvmInterfaceTest
{
public interface I
{
int Turn();
}
public class A : I
{
public virtual int Turn() { return 3; }
}
public class B : A
{
public override int Turn() { return 4; }
}
class Program
{
static void Main(string[] args)
{
IkvmReflection();
SystemReflection();
Console.ReadLine();
}
private static void SystemReflection()
{
var b = typeof(B);
var iface = typeof(I);
var map = b.GetInterfaceMap(iface);
Console.WriteLine("{0} {1}", map.InterfaceMethods[0].MetadataToken, map.TargetMethods[0].MetadataToken);
}
private static void IkvmReflection()
{
var u = new Universe();
var asm = u.LoadFile("IkvmInterfaceTest.exe");
var b = asm.GetType("IkvmInterfaceTest.B");
var iface = asm.GetType("IkvmInterfaceTest.I");
var map = b.GetInterfaceMap(iface);
Console.WriteLine("{0} {1}", map.InterfaceMethods[0].MetadataToken, map.TargetMethods[0].MetadataToken);
}
}
}
https://github.com/mono/ikvm-fork/blob/master/reflect/IKVM.Reflection.csproj references ToolsVersion="3.5", and TargetFrameworkVersion v2.0
this causes an warning when running make on Monodevelop:
[00639] /root/rpmbuild/BUILD/monodevelop-5.8/external/ikvm/reflect/IKVM.Reflection.csproj: warning : Could not find project file /opt/mono/lib/mono/3.5/Microsoft.CSharp.targets, to import. Ignoring.
and then later an error:
[00664] Errors:
[00664]
[00664] /root/rpmbuild/BUILD/monodevelop-5.8/Main.sln (default targets) ->
[00664] (Build target) ->
[00664]
[00664] /root/rpmbuild/BUILD/monodevelop-5.8/external/ikvm/reflect/IKVM.Reflection.csproj: error : /root/rpmbuild/BUILD/monodevelop-5.8/external/ikvm/reflect/IKVM.Reflection.csproj: /root/rpmbuild/BUILD/monodevelop-5.8/external/ikvm/reflect/IKVM.Reflection.csproj could not import "$(MSBuildToolsPath)\Microsoft.CSharp.targets"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.