ASP.NET News from Blogger:
IKVM.NET Weblog
Total News: 130
IKVM.NET has always had a classgranualarity JIT. Whenever a type is first "used"
the CLR fires the AppDomain.TypeResolve event
and at that point the IKVM.NET runtime compiles the ...
A while ago I wrote an IL disassembler to test IKVM.Reflection. Both as a correctness
test and also to test if the API surface exposes enough of the underlying information.
I th...
This patch Tuesday Microsoft released MS12-025 that
fixes approximately a zillion vulnerabilities in System.Drawing.dll.
Here's what they fixed (multiple instances of each issue...
One of the advantages of IKVM.Reflection over System.Reflection is that it is much
easier to load an assembly without having to load its dependencies. This functionality
is used by ...
In a comment to the previous post about CLR
Custom Attributes I listed some other custom attributes that theCLR recognizes
(by name). Some of them I previously thought were compiler...
After working with the CLR for more than a decade, once in a while I stillrun
intothe occasional surprise.
It turns out that the (non pseudo-) custom attributes that CLR recogni...
I'm looking forward to speaking at Lang.NEXT.
To be held at the Microsoft Campus on April 2 - 4.
If you're in the neighborhood and are interested in programming language design ...
Unlike most bugs that I run into, this one I actively went looking for. After being
reminded of the cloning attack (in the context of Java) I wrote some reflection code
to scan the ...
Last week, Oracle released the February
2012 Oracle Java SE Critical Patch Update. This included fixes for
two related problems I reported to them on August 1, 2011. The first probl...
A couple of annoying bugs have been reported since 7.0 was released, so I decided
to do an update.
Changes:
Changed version to 7.0.4335.1.
FileStore for no...
IKVM.NET 0.46 is the last OpenJDK 6 based release, so it will be supported longer
than usual. I haven't yet decided how long exactly, but in any case here is a release
candidate for...
There are a couple of subtle differences between the JVM and CLR with respect to member
accessibility. For example, the JVM will allow you to access public members in non-public
bas...
I've releasedIKVM.NET
7.0 to SourceForge. The binaries are identical to the ones in release
candidate 0.
Release Notes
This document lists the improvements, known issues an...
As I wrote earlier today, the theme of today's snapshot is custom modifiers, but I
decided to expand a bit on that, since they are a relatively unknown feature of .NET.
In the e...
In today's snapshot I also added support for function pointer types. The CLI supports
both managed and unmanaged function pointer types, however both are unverifiable.
Here's a ...
The first release candidate is available. No changes (except the version number andstrong
naming)relative to the last development snapshot.
What's New (relative to IKVM.NET
...
Just a quick blog about the different types of managed PE files.
Here's a table:
Description
C# compiler switchPE typemachinecorflags
MSIL
...
Confusion
After the Build
keynote many people were confused. I think there were three main reasons for that:
1) Metro Style Apps and Windows Runtime APIs were introduced together, 2)...
The release notes for IKVM.NET have always said "Not implemented" for java.lang.management
and javax.management. This was mostly due to the fact that I don't know very much
about ...
using java.lang.invoke;classProgram {
static void Main() {
MethodType mt = MethodType.methodType(typeof(void), typeof(string), typeof(object[]));
MethodHandle mh = MethodHandles.l...
I've been working on JSR-292 and in particular MethodHandle support
the past week. It's been fun and I only found a single CLR bug so far, so I guess
that's not too bad.
I...
Suppose you have a type safety vulnerability in Java, you could use it to execute
native code, but you can also simply disable the SecurityManager:
import java.io.*;
import java.lan...
Using a clever hack is always risky. Previously I
described how to use the ldftn and ldvirtftn CIL instructions
to detect if a method is overriden by a subclass. It turns out that t...
Java 7 introduces try-with-resources.
This is similar1 to the C# using construct.
Yesterday I committed the changes necessary for IKVM to have bi-directional interop
between t...
I warned
on the mailing list when this came up, but apparently was ignored,so maybe a blog
post will help.
In one of last year's updates of JDK 6 the cloning vulnerabilit...
Office 2010 introduced a sandboxing technology for untrusted documents called Protected
View. When a document is opened from an untrusted location (e.g. the Internet)
it is first op...
If you want to investigate a CLR security patch, you can of course setup a VM where
you don't install the patch or you can simply not install the patch until after
the investigation...
I'll be at the following conferences this summer:
July 18-20: JVM Language
Summit
July 23-25: Monospace 2011
September 13-16: BUILD
Send me an e-ma...
Field Ordering
A new feature in today's snapshot is that java.lang.Class.getDeclaredFields() now
returns the fields in class declaration order for ikvmc compiled code (dynamically
co...
Next week I will post the details of the bug fixed in MS11-028 released
yesterday.
I did not discover this vulnerability, but in Februari I did find a public bug report
th...
I'll be at MIX this year. If you want to meet
up for achat, drop me a note.
...
Yesterday Don Syme posted a short history
of .NET/C# generics.
Wow. Just wow.
I knew MSR was instrumental in getting generics into the CLR, but not that it was
t...
Finally, after way too long, the first 0.46 release candidate is available.
What's New (relative to IKVM.NET
0.44):
Integrated OpenJDK 6 b22.
Added -Xrefer...
Type names look like a simple concept. Every type has a unique name within the assembly
that defines it.
It turns out that there is a slight complication. Even though the CLI sp...
This is the final part of three part series on exception performance that started
in 2008. Previous parts are:Exception Performance
Part 1Exception Performance
Part 2
Le...
Mono 2.10 was released
this week. It includes a version of the Mono C# compiler that uses IKVM.Reflection
as its back
end.
Last yearin the two days beforeFOSDEM I hacked mc...
Suppose you want to know if (the class of) a particular object overrides a virtual
method. For an example of this see OpenJDK'sThread.isCCLOverriden()(line
1573).
In Java ...
On request of an IKVM.NET user still stuck on .NET 1.1 the memory model fix has been
backported to 0.36.
Changes:
Changed version to 0.36.0.14.
Emit a memo...
Last week at the PDC Microsoft released a CTP of the upcoming C# (and VB.NET) async
feature. When you install the Async
CTP and run the code below with the current IKVM.NET release ...
Yesterday I wrote about Thread.MemoryBarrier() and some of its performance characteristics.
I wanted to do some benchmarking to see whether mfence really is faster than a locked
mem...
In last week's 0.44.0.6 update I fixed a memory model bug. In retrospect it was a
pretty dumb bug, but in my defence, even the easy parts of memory models are still
pretty subtle an...
Last week Microsoft released MS10-077.
Here are the details.
Coincidentally I found this vulnerability in the .NET 4.0 RC on the day that .NET
4.0 went RTM (April 12, 2010...
Time for a refresh of 0.44 with some bug fixes.
Changes:
Changed version to 0.44.0.6
Backported various build system improvements.
Backported IKVM.Refle...
I've released
IKVM 0.44 to SourceForge. The binaries are identical to the ones in release
candidate 5.
Release Notes
This document lists the known issues and incompatibilities.
Runt...
I recently upgraded my RSS reader from the older version I was still using to the
current version. That turned out to be a mistake. The new version was even more broken
than the old...
Two more bug fixes and this will hopefully be the final release candidate.
Changes:
Changed version to 0.44.0.5
Don't seal @Internal classes.
Fixed bug ...
On Patch Tuesday, one of the patches Microsoft released was MS10-060.
It addresses a Silverlight memory corruption and a CLR delegate issue. I was curious
about the CLR delegate iss...
A new release candidate with two bug fixes.
Changes:
Changed version to 0.44.0.1
Fixed verifier regression introduced with try/fault handler changes. Thanks to E...
I've disabled the ability for anonymous users to post bug reports (and feature requests).
Two useless duplicate reports (3026137 and 3026140)
pushed me over the edge.
Some...
I've promoted 0.42
Update 1 RC 2 to an official release.
Changes (Update 1 RC 0 + RC 1 + RC 2):
Added fix to mangle all artificial type names if they clash with Jav...
View Other bloggers