Coder Social home page Coder Social logo

ikvm-fork's People

Contributors

alanmcgovern avatar atsushieno avatar jonathanpeppers avatar knocte avatar marek-safar avatar migueldeicaza avatar mkrueger avatar rolfbjarne avatar tritao avatar vargaz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ikvm-fork's Issues

New organisation trying to revive IKVM.

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.

https://github.com/ikvm-revived

Bug when parsing attribute table causing dropped attributes

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:

  • attributes are all stored in a big table in the assembly
  • each row in the table is: metadata token (where the attribute is defined) + attribute type + attribute data
  • this table is a sorted table (on the metadata token), and ikvm depends on it being sorted
  • there can be rows where the metadata token is 0, and those should be ignored
  • ikvm doesn't ignore those
  • the end result is that if there are rows where metadata token is 0, it ends up confusing ikvm's logic to find rows in the table that pertains to a particular metadata token

building a 64 bit .DLL

Can ikvn build Java source into 64 bit .NET .DLL? If so, can you point me to the configuration?

Thanks.

GetInterfaceMap: System.Reflection vs IKVM.Reflection

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);
        }
    }
}

MonoDevelop does not build anymore with mono trunk because .net 2.0 is not supported anymore

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"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.