<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for rlougher</title>
    <link>http://www.advogato.org/person/rlougher/</link>
    <description>Advogato blog for rlougher</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Wed, 19 Jun 2013 15:04:20 GMT</pubDate>
    <item>
      <pubDate>Mon, 31 Dec 2012 23:09:35 GMT</pubDate>
      <title>The long and winding road of JSR 292</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=21</link>
      <guid>http://draenog.blogspot.com/feeds/7180310140721743221/comments/default</guid>
      <description>&lt;p&gt;As the biggest change to the JVM since the introduction of Java, I've been acutely aware that I can't ignore JSR 292 and simply leave it unimplemented in JamVM.&#xA0; This has been reinforced recently by announcements such as &lt;a href="http://en.wikipedia.org/wiki/Nashorn_%28JavaScript_engine%29" &gt;Nashorn&lt;/a&gt; that indicate that more and more developments in the future will require JSR 292.&lt;br/&gt;&lt;br/&gt;However, my record of implementing it has been dismal.&#xA0; I first started about this time last year (end of December 2011).&#xA0; At the time I hoped to get it finished for FOSDEM in February.&#xA0; This was a tall order, but by FOSDEM I had invokeExact working, and could run several simple examples (all with OpenJDK 7).&#xA0; I understood the general framework, and the way in which method handles were chained together (invocation involved following the chain, performing transformations along the way, until the final target method was reached).&lt;br/&gt;&lt;br/&gt;The problem was the number of transformations the VM needed to implement.&#xA0; Certain ones such as unboxing (REF_TO_PRIM) and retyping were straight-forward.&#xA0; But more complex ones such as argument spreading were extremely time consuming, and there were even more exotic ones requiring "ricochet frames" (I never did work out exactly what they were).&#xA0; Anyway, I didn't deliberately abandon the work, I just stopped and didn't touch JamVM for 6 months.&lt;br/&gt;&lt;br/&gt;The breakthrough came from reading Roman Kennke's blog of getting &lt;a href="http://rkennke.wordpress.com/2012/08/08/hotspot-zero-openjdk8-davinci/" &gt;Zero working with OpenJDK 8&lt;/a&gt;.&#xA0; Of particular interest was the removal of the adapter code from Zero (like JamVM, it was incomplete).&#xA0; It was no longer needed as the transformations are now done in Java, via LambdaForms.&#xA0; These are compiled into bytecodes via the JSR 292 runtime, again coded in Java.&lt;br/&gt;&lt;br/&gt;So the main stumbling block of my last attempt was gone.&#xA0; However, unlike with Zero, in addition to invokedynamic the rest of the JSR 292 support within the VM has to be implemented (class file changes, resolution of method handles/types, call site bootstrap methods, stack walking, field injection, etc.).&#xA0; It's taken a couple of weeks work, with a lot of debugging over Christmas (it's been so wet in the UK there's been nothing much else to do) but all but one of the jtreg tests for java.lang.invoke pass.&#xA0; In fact, all tests were passing until I updated my sources a few days ago and found an extra 6 tests.&lt;br/&gt;&lt;/p&gt;&lt;pre&gt;Passed: java/lang/invoke/6987555/Test6987555.java&lt;br/&gt;Passed: java/lang/invoke/6991596/Test6991596.java&lt;br/&gt;Passed: java/lang/invoke/6998541/Test6998541.java&lt;br/&gt;Passed: java/lang/invoke/7157574/Test7157574.java&lt;br/&gt;Passed: java/lang/invoke/7196190/ClassForNameTest.java&lt;br/&gt;FAILED: java/lang/invoke/7196190/GetUnsafeTest.java&lt;br/&gt;Passed: java/lang/invoke/7196190/MHProxyTest.java&lt;br/&gt;Passed: java/lang/invoke/lambda/LambdaAccessControlDoPrivilegedTest.java&lt;br/&gt;Passed: java/lang/invoke/lambda/LambdaAccessControlTest.java&lt;br/&gt;Passed: java/lang/invoke/AccessControlTest.java&lt;br/&gt;Passed: java/lang/invoke/BigArityTest.java&lt;br/&gt;Passed: java/lang/invoke/CallSiteTest.java&lt;br/&gt;Passed: java/lang/invoke/ClassValueTest.java&lt;br/&gt;Passed: java/lang/invoke/InvokeDynamicPrintArgs.java&lt;br/&gt;Passed: java/lang/invoke/InvokeGenericTest.java&lt;br/&gt;Passed: java/lang/invoke/JavaDocExamplesTest.java&lt;br/&gt;Passed: java/lang/invoke/MethodHandlesTest.java&lt;br/&gt;Passed: java/lang/invoke/MethodTypeTest.java&lt;br/&gt;Passed: java/lang/invoke/PermuteArgsTest.java&lt;br/&gt;Passed: java/lang/invoke/PrivateInvokeTest.java&lt;br/&gt;Passed: java/lang/invoke/RicochetTest.java&lt;br/&gt;Passed: java/lang/invoke/ThrowExceptionsTest.java&lt;br/&gt;Test results: passed: 21; failed: 1&lt;/pre&gt;The changes aren't pushed to git yet, as JamVM will currently only work with OpenJDK 8.&#xA0; Getting it to work with OpenJDK 6/7 (without JSR 292) won't be difficult, but GNU Classpath will be more tricky.&lt;br/&gt;&lt;br/&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 30 Dec 2011 01:27:14 GMT</pubDate>
      <title>JamVM no claim to notability?</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=20</link>
      <guid>http://draenog.blogspot.com/feeds/6185402495856994966/comments/default</guid>
      <description>&lt;p&gt;JamVM has a &lt;a href="http://en.wikipedia.org/wiki/JamVM" &gt;wikipedia page&lt;/a&gt;.  I didn't create it, and I'm not egotistical enough to maintain it in any way.  However, I was less than impressed to see that somebody had taken it upon themselves to put the page forward for &lt;a href="http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/JamVM" &gt;deletion&lt;/a&gt;.  The reasons being that it hasn't had a recent release, and that it has no claim to notability.&lt;br/&gt;&lt;br/&gt;I have tried to show that neither of these claims are true.  For example, JamVM is the default VM on Ubuntu/ARM 11.10.  I think this is both notable and recent!  However, this doesn't seem to count, the debate being fixated on a claim on the page regarding Dalvik from a blog.&lt;br/&gt;&lt;br/&gt;To be honest, I'm so disgusted with the process that I no longer care if the page is deleted.  But if anybody else cares, please put a word in for JamVM.&lt;/p&gt;&lt;div&gt;
  &lt;img width="1" height="1" src="https://blogger.googleusercontent.com/tracker/300388730782291770-6185402495856994966?l=draenog.blogspot.com" alt=""/&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 16 Feb 2011 03:08:54 GMT</pubDate>
      <title>OpenJDK/JamVM Git repository</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=19</link>
      <guid>http://draenog.blogspot.com/feeds/1473838459215553997/comments/default</guid>
      <description>JamVM's got a shiny new Git repository, which contains the port to the OpenJDK class-library.  Details are here: &lt;a href="http://developer.berlios.de/git/?group_id=6545" &gt;http://developer.berlios.de/git/?group_id=6545&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The repository can be checked out anonymously with:&lt;br /&gt;&lt;pre&gt;git clone git://git.berlios.de/jamvm&lt;/pre&gt;JamVM 1.6.0 will be released off of this in the near future.  JamVM 1.6.0 will be a combined release, supporting both GNU Classpath and OpenJDK class-libraries, with GNU Classpath support being built by default.  I still need to run some tests to make sure that the refactored codebase hasn't introduced any regressions w.r.t. GNU Classpath and JamVM 1.5.4.&lt;br /&gt;&lt;br /&gt;So what can be done with the OpenJDK port?  As discussed in my &lt;a href="http://wiki.debian.org/Java/DevJam/2011/Fosdem/JavaSpeakers#JamVM" &gt;FOSDEM&lt;/a&gt; talk, it is ready for a first release.  There's stuff which hasn't been implemented, but it runs everything I've tested it with (jedit, eclipse, derby, etc.).&lt;br /&gt;&lt;br /&gt;Some words on running the port.  JamVM is not yet integrated into the IcedTea build process (although it supports the same --with-java-runtime-library switch as Cacao).  Instead, the easiest way to test the port is to build  JamVM, and copy the libjvm.so file into an existing IcedTea/OpenJDK installation.&lt;br /&gt;&lt;br /&gt;After cloning the git repository, do:&lt;br /&gt;&lt;pre&gt;./autogen.sh --with-java-runtime-library=openjdk&lt;/pre&gt;This will generate the autoconf/automake files and configure JamVM to build support for OpenJDK.&lt;br /&gt;&lt;br /&gt;Then do make, make install&lt;span style="font-family:courier;"&gt;&lt;/span&gt; as usual.   This will put libjvm.so into /usr/local/jamvm/lib.&lt;br /&gt;&lt;br /&gt;This can then be copied onto an existing IcedTea installation (or a copy of one), e.g. on x86_64 (as root):&lt;br /&gt;&lt;pre&gt;cd /usr/lib/jvm&lt;br /&gt;cp -r java-6-openjdk jamvm-openjdk&lt;br /&gt;cp /usr/local/jamvm/lib/libjvm.so jamvm-openjdk/jre/lib/amd64/server&lt;/pre&gt;You can then run it by running the normal java wrapper, e.g.:&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:100%;"&gt;/usr/lib/jvm/jamvm-openjdk/jre/bin/java -version&lt;br /&gt;&lt;br /&gt;java version "1.6.0_20"&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.9.5) (6b20-1.9.5-0ubuntu1)&lt;br /&gt;JamVM (build 1.6.0-devel, inline-threaded interpreter)&lt;/span&gt;&lt;/pre&gt;(the inline-threaded interpreter is the other name for the code-copying JIT)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-1473838459215553997?l=draenog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 4 Aug 2010 00:08:39 GMT</pubDate>
      <title>Debian Linux on cheap MIPS mini netbook</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=18</link>
      <guid>http://draenog.blogspot.com/feeds/1194782190207723541/comments/default</guid>
      <description>Computing-wise, I've taken a break from the JamVM/OpenJDK port for a couple of days while I play with my latest toy : a cheap mini-netbook based on a Chinese MIPS clone.  It's branded CnMbook, but it's available (or was) under &lt;a href="http://en.wikipedia.org/wiki/Skytone_Alpha-400" &gt;dozens of names&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Yes, it's been available for a while.  I first investigated it over a year ago as I wanted a MIPS machine on which I could do the port of the code-copying JIT (I did the MIPS port of JamVM back in 2007, and I've not touched it since).  But it was 170 pounds, which was too much for the tiny spec, and I got an EeePC instead.&lt;br /&gt;&lt;br /&gt;However, I still don't like Intel, even though it finally became my main architecture in 2008 (albeit AMD).  And I like it even less as a mobile processor, as it's the last area where it doesn't dominate.&lt;br /&gt;&lt;br /&gt;So what lead to this sudden surge of interest?  I've been waiting for years for the fabled ARM-based netbooks, and a couple of weeks ago I saw a cheap WinCE mini-netbook in a local discount shop which I was passing.  My brother (the author of &lt;a href="http://en.wikipedia.org/wiki/Squashfs" &gt;SquashFS&lt;/a&gt;) thought it shouldn't be too difficult to get Linux working on it.  This lead to a weekend long investigation, which showed up some startling results.&lt;br /&gt;&lt;br /&gt;The mini-netbooks appear to be based on one of two ARM9-based SoCs (so these still aren't the low-cost Cortex A8 ones I've been waiting for).  Either the Anyka AK7802 or Via's WonderMedia VT8505 SoC.  The amazing thing?  There's no publicly available Linux kernel (with source) for any of them.  There is a binary-only Android kernel for the VT8505 but no public source.  For the AK7802 there's nothing, and as Anyka have not made any SoC documentation publicly available it's likely that there never will be.&lt;br /&gt;&lt;br /&gt;In contrast, Ingenic, the maker of the MIPS clone in the CnMbook have made &lt;a href="http://www.ingenic.cn/eng/productServ/kfyd/Linux/pfCustomPage.aspx" &gt;available&lt;/a&gt; the full source to their modified kernel, u-boot bootloader, rootfs and applications.  It came with CELinux, and an ancient 2.4.20 kernel.  But it didn't take my brother long to get a modern-ish 2.6.24 kernel running on it (he's working on 2.6.31), and with Debian MIPS Linux it makes a nice little portable development system.  Compiling is rather slow, but vim runs well on console, which is all you need!&lt;br /&gt;&lt;br /&gt;The cost?  65 quid off ebay for an ex-display model as you can't buy them anymore, the ARM9 WinCE machines having completely replaced them.&lt;br /&gt;&lt;br /&gt;I'll next post my experience of running JamVM/OpenJDK on it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-1194782190207723541?l=draenog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 27 Jul 2010 02:08:11 GMT</pubDate>
      <title>... a thousand words (JamVM/OpenJDK update 2)</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=17</link>
      <guid>http://draenog.blogspot.com/feeds/6902265698887613245/comments/default</guid>
      <description>Firstly apologies to the people who commented on my first progress update (18th May).  I'd hoped to do a blog update &lt;span style="font-style:italic;"&gt;way&lt;/span&gt; before now, but I've had a lot less time to work on JamVM/OpenJDK port than I expected...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Xerces Ranby&lt;/span&gt; asked:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Does JamVM still produce those quick and fast startup times when using the OpenJDK class libraries compared to the fast startup times obtainable when using GNU Classpath classes?&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-weight:bold;"&gt;[best of 3 runs]&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier;"&gt;rob@traken:~/JAM/tests$ time /usr/lib/jvm/jamvm-openjdk/jre/bin/java -showversion hello&lt;br /&gt;java version "1.6.0_0"&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)&lt;br /&gt;JamVM (build 1.5.5-openjdk, inline-threaded interpreter)&lt;br /&gt;&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;real 0m0.046s&lt;br /&gt;user 0m0.030s&lt;br /&gt;sys 0m0.000s&lt;br /&gt;&lt;br /&gt;rob@traken:~/JAM/tests$ time jamvm -showversion hello&lt;br /&gt;java version "1.5.0"&lt;br /&gt;JamVM version 1.5.5-devel&lt;br /&gt;Copyright (C) 2003-2010 Robert Lougher &lt;rob@jamvm.org.uk&gt;&lt;br /&gt;...&lt;br /&gt;Build information:&lt;br /&gt;Execution Engine: inline-threaded interpreter&lt;br /&gt;Compiled with: gcc 4.5.0 20100211 (experimental)&lt;br /&gt;Boot Library Path: /usr/local/classpath/lib/classpath&lt;br /&gt;Boot Class Path: /usr/local/jamvm/share/jamvm/classes.zip:/usr/local/classpath/share/classpath/glibj.zip&lt;br /&gt;&lt;br /&gt;Hello World!&lt;br /&gt;&lt;br /&gt;real 0m0.048s&lt;br /&gt;user 0m0.030s&lt;br /&gt;sys 0m0.020s&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;gnu_andrew&lt;/span&gt; asked:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Will JamVM still support GNU Classpath, as CACAO does?&lt;/span&gt;&lt;/blockquote&gt;Yes, most definitely.  I still consider GNU Classpath as JamVM's main class-library as it's where my chief loyalty lies.  On more practical grounds, even after the OpenJDK port is functionally complete it will still be a long time before it is as tested as JamVM/GNU Classpath.  FWIW, many embedded systems seem to be quite happy with GNU Classpath.  GNU Classpath is considerably smaller "out of the box" and much easier to build...&lt;br /&gt;&lt;br /&gt;As far as development is concerned, I've taken a different approach to &lt;span style="font-weight:bold;"&gt;Cacao&lt;/span&gt;.  Cacao implements the class-library differences within the VM-specific code using &lt;span style="font-family:courier;"&gt;#ifdef&lt;/span&gt;s.  While there's nothing wrong with that, I personally think it makes the code harder to read, and it's harder to get an overview of the changes.&lt;br /&gt;&lt;br /&gt;Instead, I've tried to abstract the differences into a &lt;span style="font-style:italic;"&gt;classlib interface&lt;/span&gt;.  At times this has taken some thought and quite a lot of code re-arranging.  If anything it's made the code cleaner, as a lot of the messier details are hidden (in general, I'm not a fan of information hiding, but removal of some of the VMFoo details makes the intent clearer).&lt;br /&gt;&lt;br /&gt;Having said that, the classlib interface is mostly driven by the differences between GNU Classpath and OpenJDK as I find them.  I'd like to think the interface is reasonably generic, but it will probably need changing if another class-library came along...&lt;br /&gt;&lt;br /&gt;Currently the classlib interface has 40 functions, the gnuclasspath directory has 8 files, totalling 2552 LOC, and openjdk 10 files totalling 3491 LOC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Christian Thalinger&lt;/span&gt; (hello, twisti!), &lt;span style="font-weight:bold;"&gt;linuxhippy&lt;/span&gt; (hello, Clemens!), &lt;span style="font-weight:bold;"&gt;Michael Starzinger&lt;/span&gt; (hello, Michi!), &lt;span style="font-weight:bold;"&gt;Stefan Ring&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Yeah, it's taken a long time, and lots of prevaricating.  It's not been &lt;span style="font-style:italic;"&gt;quite&lt;/span&gt; as boring and tedious as I expected; some of it I've actually enjoyed :)  Debian might even re-instate JamVM (sticking pins in the Debian T-shirt I bought at FOSDEM, while looking for the Fedora 13 CDROM).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-6902265698887613245?l=draenog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 27 Jul 2010 00:07:41 GMT</pubDate>
      <title>A picture is worth...</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=16</link>
      <guid>http://draenog.blogspot.com/feeds/1424466870127822047/comments/default</guid>
      <description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_j-51m-erdjg/TE4W3-Sg-AI/AAAAAAAAACQ/TOOWVoCm-Fk/s1600/dump.jpg" &gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://4.bp.blogspot.com/_j-51m-erdjg/TE4W3-Sg-AI/AAAAAAAAACQ/TOOWVoCm-Fk/s400/dump.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5498357345935226882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-1424466870127822047?l=draenog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 18 May 2010 00:10:09 GMT</pubDate>
      <title>JamVM and OpenJDK - Progess Update</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=15</link>
      <guid>http://draenog.blogspot.com/feeds/1716453158784780884/comments/default</guid>
      <description>Porting JamVM to use the OpenJDK/IcedTea class-library has been on my TODO list for quite a while.  It appears on my FOSDEM slides for 2008 and again in 2009.  It doesn't this year, as I didn't do a talk.  Maybe that's why I've finally got round to doing it.  I told Twisti I'd get "Hello World" running in 3 months.  I've missed by just over a week, mainly because I only started 2 months ago.&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-family:courier;"&gt;root@traken:/usr/local/jamvm/bin# java -Xbootclasspath:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar -Dsun.boot.library.path=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -showversion hello&lt;br /&gt;java version "1.6.0_0"&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1)&lt;br /&gt;JamVM (build 1.5.5-openjdk, inline-threaded interpreter)&lt;br /&gt;&lt;br /&gt;Hello World!&lt;br /&gt;root@traken:/usr/local/jamvm/bin#&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;There's still quite a lot to do, including finishing off support for reflection and sun.misc.Unsafe but threading, exception handling, library handling, class-loading and the VM bootstrap sequence should be done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-1716453158784780884?l=draenog.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 18 Jul 2009 00:06:18 GMT</pubDate>
      <title>Filesystem Collaboration</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=14</link>
      <guid>http://draenog.blogspot.com/feeds/1043384463779297423/comments/default</guid>
      <description>My twin brother is the author of &lt;a href="http://squashfs.sourceforge.net/" &gt;SquashFS&lt;/a&gt;.  A very influential Linux filesystem used on practically all Live CDs. He reads the &lt;a href="http://www.linux-mag.com/id/7416/" &gt;Linux Magazine interview&lt;/a&gt; with Valerie Aurora who says:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;hoping that if the existing Linux file systems developers could just talk to each other, we could come up with a way to improve funding for Linux file systems development. I don&#x2019;t know that it helped, but if it did, I consider this to be my most important contribution to Linux file systems.&lt;/blockquote&gt;&lt;br /&gt;So decides to link up via LinkedIn, and gets refused...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/300388730782291770-1043384463779297423?l=draenog.blogspot.com'/&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 12 May 2009 02:08:15 GMT</pubDate>
      <title>Netifera uses JamVM as remote probe</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=13</link>
      <guid>http://draenog.blogspot.com/feeds/721774698626215780/comments/default</guid>
      <description>&lt;a href="http://netifera.com/" &gt;Netifera&lt;/a&gt; is a very interesting 100% Java-based Open Source network security platform.  The next version will include a probe, which is a "deployable software agent that makes it possible to run all netifera platform tools remotely".&lt;br /&gt;&lt;br /&gt;The probe uses JamVM and a cut-down version of GNU Classpath.  This is downloaded onto the remote site to run the netifera tools.  My thanks to Claudio Castiglia (of Netifera) for sending me the following link to a webcast showing the probe in action:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://netifera.com/video/netifera_java_virtual_machine_as_shellcode" &gt;http://netifera.com/video/netifera_java_virtual_machine_as_shellcode&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JamVM and GNU Classpath are mentioned starting 14:54 into the webcast in the discussion of the probe architecture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/300388730782291770-721774698626215780?l=draenog.blogspot.com'/&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 12 May 2009 01:09:42 GMT</pubDate>
      <title>JamVM on Beagle Board</title>
      <link>http://www.advogato.org/person/rlougher/diary.html?start=12</link>
      <guid>http://draenog.blogspot.com/feeds/5550150174559753704/comments/default</guid>
      <description>I've been intending to get a Beagle Board for quite a while now, to replace a Neo1973 as the development platform for JamVM on ARM.  The Neo has an ARM920T core, and I've been particularly wanting to test JamVMs code-copying JIT on a more modern implementation (the Beagle Board has a Cortex A8).  But I've been waiting for the Rev C board, as this has working EHCI USB host, and 256MB RAM (previous revisions had 128MB).  The board arrived 2 weeks ago, but I haven't had much time to set it up until now...&lt;br /&gt;&lt;br /&gt;So far, the results are quite encouraging.  SciMark 2.0 shows a 55% speed improvement:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_j-51m-erdjg/Sgi2BOou5QI/AAAAAAAAAB8/7uFV0WVhuAo/s1600-h/img0.jpg" &gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 274px;" src="http://1.bp.blogspot.com/_j-51m-erdjg/Sgi2BOou5QI/AAAAAAAAAB8/7uFV0WVhuAo/s400/img0.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334713890845418754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;While jBYTEmark shows an 82% improvement on Integer tests:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_j-51m-erdjg/SgjF3PcCr4I/AAAAAAAAACE/qf5fjnTLbd8/s1600-h/img5.jpg" &gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 236px;" src="http://1.bp.blogspot.com/_j-51m-erdjg/SgjF3PcCr4I/AAAAAAAAACE/qf5fjnTLbd8/s400/img5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5334731311447977858" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The option -Xcodestats prints out the size of the JIT code-cache when the VM exits.  This shows 77K was used after running SciMark 2.0, and 178K after jBYTEmark.  This is using the code-profiling introduced in JamVM 1.5.2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='http://res1.blogblog.com/tracker/300388730782291770-5550150174559753704?l=draenog.blogspot.com'/&gt;&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
