Closed

Write some Software

Make modifications for ROBOVM compiler

In short the project is to make enhancements to an open source Java VM called RoboVM. We would be creating a fork of that project for this work. RoboVM is an ahead-of-time compiler JVM designed as a front-end for LLVM. The robovm compiler read java class files and generates LLVM intermediary language which is then compiled into native code by LLVM. 
The overall design of the compiler is for every .class file to be compiled into a .o file then eventually linked into the final product. Unfortunately it doesn't work that cleanly. The robovm compiler actually generates other supporting files named linker<x>.o which are required for linking the final binary. 
The goal of this project is to eliminate those linker<x>.o files and truly generate self contained .o files for every java .class file. Therefore it will be possible to compile a ".jar" into a ".a" and distribute pre-compiled libraries. The same jars you can download from maven today you would be able to download as a ".a" and simply link them with the final product.
Ideally that would require changes only to the robovm compiler (i.e. LLVM front-end). The code for it can be found here: https://github.com/robovm/robovm/tree/master/compiler.


To help the analysis one could compile the following simple Test.java
public class Test {

public static void main(String[] args) {
System.out.println("Hello java");
}

}
using the following script on a Mac OS X machine. You must have the latest Xcode with command line tools installed
RVM_HOME=[path to where you unzip robovm-1.8]

$RVM_HOME/robovm -cache cache -tmp tmp -cp . Test

find cache/ -name "*.o" > fwobjfiles
ld -r -filelist fwobjfiles -o javalib.o

find tmp -name "*.o" > tmpobjfiles
ld -r -filelist tmpobjfiles -o app.o

lang++ -o test -lsqlite3 -lz -fobjc-arc -fobjc-link-runtime -framework CoreServices -framework SystemConfiguration -framework CoreFoundation -framework Foundation app.o javalib.o $RVM_HOME/lib/vm/macosx/x86_64/libgc.a $RVM_HOME/lib/vm/macosx/x86_64/librobovm-bc.a $RVM_HOME/lib/vm/macosx/x86_64/librobovm-core.a $RVM_HOME/lib/vm/macosx/x86_64/librobovm-debug.a $RVM_HOME/lib/vm/macosx/x86_64/librobovm-rt.a -stdlib=libstdc++
The "test" executable can be run to see the output of the Java program. More interesting are the contents of the "cache" and "tmp" directories. There you will find the intermediary ".o" created from the .class files. The linker<x>.o will be in the tmp directory.

You can download robovm 1.8 from here: robovm-1.8.0.tar.gz

Skills: C++ Programming, Java, Software Architecture, UNIX

See more: software write edid, free software write company profile, software write websites idea, software write book images, software write books, software write protection, free software write book, software write book, software write protect software, software write technical manual

About the Employer:
( 0 reviews ) United States

Project ID: #9653483

5 freelancers are bidding on average $499 for this job

$555 USD in 10 days
(25 Reviews)
6.5
hbxfnzwpf

I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 6 years. My work is online game developing, and mainly focus on server side, using c++ under linux environ More

$400 USD in 10 days
(77 Reviews)
6.5
wancheng

Hello sir, After carefully reviewing the experience requirements of the job description, I feel that I am a suitable match for the job. Over the past 7 years, i have provided high-level support in mobile app, game and More

$526 USD in 10 days
(7 Reviews)
5.9
vorasiddh4it

Hello, We have 9+ years experience in Java software development. We have successfully developed 400+ projects and Games, Image processing (GIS), Network programming, Web development and mobile apps. We use Ne More

$500 USD in 10 days
(13 Reviews)
4.6
$250 USD in 10 days
(9 Reviews)
4.2
Webbleu

Hi Greetings, We have gone through your requirement and would to take this opportunity to work on this project. Can you send a detailed requirement about your project. Feel free to browse through given below More

$515 USD in 10 days
(5 Reviews)
2.1
Scriptjs

I have read the details of your project. I will do the work the way you want it. I am expert for this project because I have worked on many same as this project. I got enough skill to maintain it. You do not need to be More

$611 USD in 10 days
(17 Reviews)
0.0
neilharding

I worked at Digital Bridges (I-Play) in the R&D department and wrote a bytecode optimizer (for J2ME on mobile phones). It was written from scratch in C++ and I made 20 different changes to the bytecode (from minor chan More

$555 USD in 10 days
(0 Reviews)
0.0