Re: Class.forName and csharp classes
<[email protected]> Fri, 17 Feb 2017 12:55:10 -0500
| Newsgroups | gmane.comp.java.ikvm.devel |
|---|---|
| Message-ID | <[email protected]> |
--===============6758688345394073946==
Content-Type: multipart/alternative;
boundary="_693AC407-BABF-4AB5-8AF6-9DE841F69D8C_"
--_693AC407-BABF-4AB5-8AF6-9DE841F69D8C_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="utf-8"
Martin,
Would you be willing to create and upload a test case for this into a Git R=
epository? If you don=E2=80=99t have a GitHub account I can create you a re=
pository to use. I=E2=80=99d like to get this into the set of Unit Tests. I=
n order to do that it would be incredibly helpful for you to create a bare =
bones example that exhibits the behavior you are seeing. I also didn=E2=80=
=99t see the versions of tools you were using. That would be helpful as wel=
l.
Feel free to contact me directly if you need help setting up the Test Case =
for this.
>From parts of my memory that could be completely fabricated I remember thei=
r being issues in certain versions of .NET when one would attempt to load c=
lasses from the Executing Domain that existed in the .exe assembly. I bet i=
f you were to create a new Assembly, create a class in it, then add it to t=
he path, everything would work. Also remember that the JDK after 7 (I belie=
ve) has it=E2=80=99s own pseudo Classloader domain-like management. So you =
might need to use a different classloader when attempting to .forName your =
new class.=20
Take a Java disassembler and see what your .NET CLR class is being turned i=
nto as well.
I hope to take a look at your sample test case and get this working for you=
. If you have any issues getting it somewhere online let me know asap and I=
=E2=80=99ll help.
Regards,
Andrew
{givenname}.{surname}@duelingcoders.com
{givenname}.{surname}@gmail.com
From: Martin Gerhardy
Sent: Friday, February 17, 2017 10:42 AM
To: Jeroen Frijters; [email protected]
Subject: Re: [Ikvm-developers] Class.forName and csharp classes
Hi Jeroen
maybe I am misisng something, but the csharp class is part of the exe, the =
dll (converted jar) is trying to load a class from the exe - do I have to a=
dd the exe to the classloader in the csharp application? Isn't that implici=
tly the case? Or do I have to create another dll for my csharp stuff and ju=
st reference it from a minimal exe?
Can you give an example on how to do that? Thanks again for helping me.
Regards
Martin
________________________________________
Von: Jeroen Frijters [[email protected]]
Gesendet: Freitag, 17. Februar 2017 16:19
An: Martin Gerhardy; [email protected]
Betreff: RE: Class.forName and csharp classes
Hi Martin,
In that case it is probably simply a class loader issue. The class loader y=
ou use for Class.forName() must be able to see the assembly. The easiest so=
lution is to add the assembly to the boot class loader with the ikvm.runtim=
e.Startup.addBootClassPathAssembly() method.
Regards,
Jeroen
> -----Original Message-----
> From: Martin Gerhardy [mailto:[email protected]]
> Sent: Friday, February 17, 2017 16:08
> To: Jeroen Frijters <[email protected]>; ikvm-
> [email protected]
> Subject: AW: Class.forName and csharp classes
>
> Hi Jeroen,
>
> thanks for the answer - I tried both:
>
> ---------------------------
> using System.Diagnostics;
> using System;
>
> [assembly: IKVM.Attributes.NoPackagePrefixAttribute]
> namespace foo
> {
> class Foo
> {
> public Foo()
> {
> }
> }
>
> class MainClass
> {
> public static void Main (string[] args)
> {
> Console.WriteLine("starting up...");
> Launcher.main("foo.Foo");
> }
> }
> }
> ---------------------------
>
>
> package foo;
>
> public class Launcher {
> public static void main(final String name) {
> try {
> System.err.println("Starting up and trying to load =
" +
> name);
> final Class<?> forName =3D Class.forName("cli." + n=
ame);
> System.out.println("Finished loading " + forName);
> } catch (final ClassNotFoundException e) {
> e.printStackTrace();
> }
> }
> }
>
> ---------------------------
>
> Neither works - neither the additional cli. namespace prefix nor adding
> the attribute (Not sure if I did that one correctly)
>
> Compiling with the commands:
> ikvmc -classloader:ikvm.runtime.ClassPathAssemblyClassLoader -
> assemblyattributes:$(BIN)/AssemblyInfo.class -target:library $<
> mcs -target:exe -main:foo.MainClass -
> r:System.dll,IKVM.Runtime.dll,IKVM.OpenJDK.Core.dll,$(NAME).dll -
> out:proof-of-concept.exe GuiceRepro.cs AssemblyInfo.cs
>
>
>
> Regards
> Martin
>
> ________________________________________
> Von: Jeroen Frijters [[email protected]]
> Gesendet: Freitag, 17. Februar 2017 14:50
> An: Martin Gerhardy; [email protected]
> Betreff: RE: Class.forName and csharp classes
>
> Hi Martin,
>
> Did you take into account that the C# classes get a "cli." prefix in
> Java (by default)?
>
> You can apply the IKVM.Attributes.NoPackagePrefixAttribute to the class
> or assembly to disable this.
>
> Regards,
> Jeroen
>
> > -----Original Message-----
> > From: Martin Gerhardy [mailto:[email protected]]
> > Sent: Wednesday, February 15, 2017 11:34
> > To: [email protected]
> > Subject: [Ikvm-developers] Class.forName and csharp classes
> >
> > Hi,
> >
> > we are converting a deserialization jar via ikvm into a dll and bind a
> > csharp class via guice to some of the serialized classes. The java
> > code contains a call for Class.forName for that class. As our injected
> > class is a csharp class, this doesn't work. Is there any way to work
> > around this? (In the sense the Class.forName also finds csharp
> > classes?)
> >
> > Regards
> > Martin
---------------------------------------------------------------------------=
---
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Ikvm-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ikvm-developers
--_693AC407-BABF-4AB5-8AF6-9DE841F69D8C_
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"
<html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc=
hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of=
fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"><head><meta ht=
tp-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8"><meta name=
=3DGenerator content=3D"Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=3DEN-US link=3Dblue vlink=3D"#954F72"><div cla=
ss=3DWordSection1><p class=3DMsoNormal>Martin,</p><p class=3DMsoNormal><o:p=
> </o:p></p><p class=3DMsoNormal>Would you be willing to create and up=
load a test case for this into a Git Repository? If you don=E2=80=99t have =
a GitHub account I can create you a repository to use. I=E2=80=99d like to =
get this into the set of Unit Tests. In order to do that it would be incred=
ibly helpful for you to create a bare bones example that exhibits the behav=
ior you are seeing. I also didn=E2=80=99t see the versions of tools you wer=
e using. That would be helpful as well.</p><p class=3DMsoNormal><o:p> =
</o:p></p><p class=3DMsoNormal>Feel free to contact me directly if you need=
help setting up the Test Case for this.</p><p class=3DMsoNormal><o:p> =
;</o:p></p><p class=3DMsoNormal>From parts of my memory that could be compl=
etely fabricated I remember their being issues in certain versions of .NET =
when one would attempt to load classes from the Executing Domain that exist=
ed in the .exe assembly. I bet if you were to create a new Assembly, create=
a class in it, then add it to the path, everything would work. Also rememb=
er that the JDK after 7 (I believe) has it=E2=80=99s own pseudo Classloader=
domain-like management. So you might need to use a different classloader w=
hen attempting to .forName your new class. </p><p class=3DMsoNormal><o:p>&n=
bsp;</o:p></p><p class=3DMsoNormal>Take a Java disassembler and see what yo=
ur .NET CLR class is being turned into as well.</p><p class=3DMsoNormal><o:=
p> </o:p></p><p class=3DMsoNormal>I hope to take a look at your sample=
test case and get this working for you. If you have any issues getting it =
somewhere online let me know asap and I=E2=80=99ll help.</p><p class=3DMsoN=
ormal><o:p> </o:p></p><p class=3DMsoNormal>Regards,</p><p class=3DMsoN=
ormal><o:p> </o:p></p><p class=3DMsoNormal>Andrew</p><p class=3DMsoNor=
mal><o:p> </o:p></p><p class=3DMsoNormal>{givenname}.{surname}@dueling=
coders.com<o:p></o:p></p><p class=3DMsoNormal>{givenname}.{surname}@gmail.c=
om<o:p></o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNo=
rmal><o:p> </o:p></p><div style=3D'mso-element:para-border-div;border:=
none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=3DM=
soNormal style=3D'border:none;padding:0in'><b>From: </b><a href=3D"mailto:M=
[email protected]">Martin Gerhardy</a><br><b>Sent: </b>Friday, Februar=
y 17, 2017 10:42 AM<br><b>To: </b><a href=3D"mailto:[email protected]">Jero=
en Frijters</a>; <a href=3D"mailto:[email protected]">i=
[email protected]</a><br><b>Subject: </b>Re: [Ikvm-devel=
opers] Class.forName and csharp classes</p></div><p class=3DMsoNormal><o:p>=
</o:p></p><p class=3DMsoNormal>Hi Jeroen</p><p class=3DMsoNormal><o:p=
> </o:p></p><p class=3DMsoNormal>maybe I am misisng something, but the=
csharp class is part of the exe, the dll (converted jar) is trying to load=
a class from the exe - do I have to add the exe to the classloader in the =
csharp application? Isn't that implicitly the case? Or do I have to create =
another dll for my csharp stuff and just reference it from a minimal exe?</=
p><p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Can you gi=
ve an example on how to do that? Thanks again for helping me.</p><p class=
=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Regards</p><p class=
=3DMsoNormal>Martin</p><p class=3DMsoNormal>_______________________________=
_________</p><p class=3DMsoNormal>Von: Jeroen Frijters [[email protected]]<=
/p><p class=3DMsoNormal>Gesendet: Freitag, 17. Februar 2017 16:19</p><p cla=
ss=3DMsoNormal>An: Martin Gerhardy; [email protected]</=
p><p class=3DMsoNormal>Betreff: RE: Class.forName and csharp classes</p><p =
class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>Hi Martin,</p><=
p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>In that case =
it is probably simply a class loader issue. The class loader you use for Cl=
ass.forName() must be able to see the assembly. The easiest solution is to =
add the assembly to the boot class loader with the ikvm.runtime.Startup.add=
BootClassPathAssembly() method.</p><p class=3DMsoNormal><o:p> </o:p></=
p><p class=3DMsoNormal>Regards,</p><p class=3DMsoNormal>Jeroen</p><p class=
=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNormal>> -----Original M=
essage-----</p><p class=3DMsoNormal>> From: Martin Gerhardy [mailto:M.Ge=
[email protected]]</p><p class=3DMsoNormal>> Sent: Friday, February 17=
, 2017 16:08</p><p class=3DMsoNormal>> To: Jeroen Frijters <jeroen@su=
matra.nl>; ikvm-</p><p class=3DMsoNormal>> [email protected]=
ge.net</p><p class=3DMsoNormal>> Subject: AW: Class.forName and csharp c=
lasses</p><p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNorma=
l>> Hi Jeroen,</p><p class=3DMsoNormal>><o:p> </o:p></p><p class=
=3DMsoNormal>> thanks for the answer - I tried both:</p><p class=3DMsoNo=
rmal>><o:p> </o:p></p><p class=3DMsoNormal>> -------------------=
--------</p><p class=3DMsoNormal>> using System.Diagnostics;</p><p class=
=3DMsoNormal>> using System;</p><p class=3DMsoNormal>><o:p> </o:=
p></p><p class=3DMsoNormal>> [assembly: IKVM.Attributes.NoPackagePrefixA=
ttribute]</p><p class=3DMsoNormal>> namespace foo</p><p class=3DMsoNorma=
l>> {</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 c=
lass Foo</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {=
</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 public Foo()</p><p class=3DMsoNorma=
l>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 {</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p class=3DM=
soNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p class=3DMsoNormal=
>><o:p> </o:p></p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 class MainClass</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 {</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 public static =
void Main (string[] args)</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 {</p><p cla=
ss=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 Console.WriteLine("starting up...");</p><p class=3DMsoNormal>=
>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Launcher.ma=
in("foo.Foo");</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p cla=
ss=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p class=3DMso=
Normal>> }</p><p class=3DMsoNormal>> ---------------------------</p><=
p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>><o:p>=
</o:p></p><p class=3DMsoNormal>> package foo;</p><p class=3DMsoNor=
mal>><o:p> </o:p></p><p class=3DMsoNormal>> public class Launche=
r {</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 public=
static void main(final String name) {</p><p class=3DMsoNormal>>=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0 try {</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 System.err.println("Starting up and trying to lo=
ad " +</p><p class=3DMsoNormal>> name);</p><p class=3DMsoNormal>>=
;=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 final Class<=
;?> forName =3D Class.forName("cli." + name);</p><p class=3DMs=
oNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Syste=
m.out.println("Finished loading " + forName);</p><p class=3DMsoNo=
rmal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0 } catch (final ClassNotFoundException e) {</p><p class=
=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
e.printStackTrace();</p><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p class=
=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 }</p><p class=3DMsoNo=
rmal>> }</p><p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMso=
Normal>> ---------------------------</p><p class=3DMsoNormal>><o:p>&n=
bsp;</o:p></p><p class=3DMsoNormal>> Neither works - neither the additio=
nal cli. namespace prefix nor adding</p><p class=3DMsoNormal>> the attri=
bute (Not sure if I did that one correctly)</p><p class=3DMsoNormal>><o:=
p> </o:p></p><p class=3DMsoNormal>> Compiling with the commands:</p=
><p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ikvmc -class=
loader:ikvm.runtime.ClassPathAssemblyClassLoader -</p><p class=3DMsoNormal>=
> assemblyattributes:$(BIN)/AssemblyInfo.class -target:library $<</p>=
<p class=3DMsoNormal>>=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mcs -target:e=
xe -main:foo.MainClass -</p><p class=3DMsoNormal>> r:System.dll,IKVM.Run=
time.dll,IKVM.OpenJDK.Core.dll,$(NAME).dll -</p><p class=3DMsoNormal>> o=
ut:proof-of-concept.exe GuiceRepro.cs AssemblyInfo.cs</p><p class=3DMsoNorm=
al>><o:p> </o:p></p><p class=3DMsoNormal>><o:p> </o:p></p><=
p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>> Rega=
rds</p><p class=3DMsoNormal>> Martin</p><p class=3DMsoNormal>><o:p>&n=
bsp;</o:p></p><p class=3DMsoNormal>> ___________________________________=
_____</p><p class=3DMsoNormal>> Von: Jeroen Frijters [[email protected]]=
</p><p class=3DMsoNormal>> Gesendet: Freitag, 17. Februar 2017 14:50</p>=
<p class=3DMsoNormal>> An: Martin Gerhardy; [email protected]=
forge.net</p><p class=3DMsoNormal>> Betreff: RE: Class.forName and cshar=
p classes</p><p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNo=
rmal>> Hi Martin,</p><p class=3DMsoNormal>><o:p> </o:p></p><p cl=
ass=3DMsoNormal>> Did you take into account that the C# classes get a &q=
uot;cli." prefix in</p><p class=3DMsoNormal>> Java (by default)?</p=
><p class=3DMsoNormal>><o:p> </o:p></p><p class=3DMsoNormal>> Yo=
u can apply the IKVM.Attributes.NoPackagePrefixAttribute to the class</p><p=
class=3DMsoNormal>> or assembly to disable this.</p><p class=3DMsoNorma=
l>><o:p> </o:p></p><p class=3DMsoNormal>> Regards,</p><p class=
=3DMsoNormal>> Jeroen</p><p class=3DMsoNormal>><o:p> </o:p></p><=
p class=3DMsoNormal>> > -----Original Message-----</p><p class=3DMsoN=
ormal>> > From: Martin Gerhardy [mailto:[email protected]]</p><=
p class=3DMsoNormal>> > Sent: Wednesday, February 15, 2017 11:34</p><=
p class=3DMsoNormal>> > To: [email protected]</p>=
<p class=3DMsoNormal>> > Subject: [Ikvm-developers] Class.forName and=
csharp classes</p><p class=3DMsoNormal>> ></p><p class=3DMsoNormal>&=
gt; > Hi,</p><p class=3DMsoNormal>> ></p><p class=3DMsoNormal>>=
> we are converting a deserialization jar via ikvm into a dll and bind =
a</p><p class=3DMsoNormal>> > csharp class via guice to some of the s=
erialized classes. The java</p><p class=3DMsoNormal>> > code contains=
a call for Class.forName for that class. As our injected</p><p class=3DMso=
Normal>> > class is a csharp class, this doesn't work. Is there any w=
ay to work</p><p class=3DMsoNormal>> > around this? (In the sense the=
Class.forName also finds csharp</p><p class=3DMsoNormal>> > classes?=
)</p><p class=3DMsoNormal>> ></p><p class=3DMsoNormal>> > Regar=
ds</p><p class=3DMsoNormal>> > Martin</p><p class=3DMsoNormal><o:p>&n=
bsp;</o:p></p><p class=3DMsoNormal><o:p> </o:p></p><p class=3DMsoNorma=
l>-------------------------------------------------------------------------=
-----</p><p class=3DMsoNormal>Check out the vibrant tech community on one o=
f the world's most</p><p class=3DMsoNormal>engaging tech sites, SlashDot.or=
g! http://sdm.link/slashdot</p><p class=3DMsoNormal>_______________________=
________________________</p><p class=3DMsoNormal>Ikvm-developers mailing li=
st</p><p class=3DMsoNormal>[email protected]</p><p clas=
s=3DMsoNormal>https://lists.sourceforge.net/lists/listinfo/ikvm-developers<=
/p><p class=3DMsoNormal><o:p> </o:p></p></div></body></html>=
--_693AC407-BABF-4AB5-8AF6-9DE841F69D8C_--
--===============6758688345394073946==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
--===============6758688345394073946==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Ikvm-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ikvm-developers
--===============6758688345394073946==--