tags:

views:

79

answers:

2

I'd like to see if I can reduce VM latencies by using Mono's AOT (ahead of time compiler). How does one run the .so files? (Sorry this is question is so rudimentary; I couldn't find a simple answer on Mono's documentation).

I figured out how to use mkbundle (mkbundle2 in this case), but are the resulting files being optimized? The Mono AOT documentation mentions "-O=all,-shared" flags, but I don't see these for mkbundle.

Though it's probably a much different answer, if there are good ways of keeping the VM open (with something more natural / platform neutral than a fifo special file), that might be best.

Thanks in advance!

A: 

Not sure if it's exactly related to your question, but see the final note here

http://blogs.msdn.com/b/dsyme/archive/2010/02/10/detailed-release-notes-for-f-february-2010-release.aspx

about the --resident flag to the compiler, to make fsc.exe faster on Mono.

Brian
that's for compiling, I'm interested in application startup latencies. thanks though.
gatoatigrado
Ah, I understand now.
Brian
+2  A: 

If the AOT .so files exist beside the exe/dll files, Mono will use them when you run the exe. But you still need the dll/exe files for metadata and things that cannot be AOT-compiled.

mhutch
Okay, cool, thanks! Unfortunately, Mono seems to crash somewhere now, but hopefully that bug will be fixed in the future (error below).Microsoft.FSharp.Collections.FSharpList<Microsoft.FSharp.Collections.FSharpSet<System.Tuple<edu.berkeley.cs.grgenmods.fsharp.stages.NamedStage,edu.berkeley.cs.grgenmods.fsharp.stages.NamedStage>>> doesn't implement interface System.Collections.Generic.IEnumerable<Microsoft.FSharp.Collections.FSharpSet<T>>
gatoatigrado