Timeline
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2012-07-15
22:24
Add licensing boilerplate. Leaf check-in: 9b75a64e3d user: dg tags: trunk, release-0.1
22:24
Go for a more vanilla test setup. check-in: 4b1a509c2b user: dg tags: trunk
22:14
Added a basic README. check-in: e9482f555d user: dg tags: trunk
22:04
Added license files for Harmony and Soot. check-in: 5ab0067e4f user: dg tags: trunk
21:42
Added cowjac license file. check-in: 99c2c085af user: dg tags: trunk
21:16
Added System.out and System.err, for convenience. check-in: 4d7addc10c user: dg tags: trunk
21:02
String constants, proper array copying, a few bugfixes (all operations on small ints are done with actual *ints*, to match the JVM), and a bit of extra Java-side functionality. 'Hello, world' runs! check-in: 517392348d user: dg tags: trunk
19:28
Baby steps towards a working arraycopy. check-in: 27c41a421c user: dg tags: trunk
14:31
Did enough backend functionality that trying to do basic file system operations now links --- doesn't run, though. check-in: ce30502c28 user: dg tags: trunk
2012-07-14
23:28
Added LookupSwitchStatement. Library update now compiles with cowjac (haven't tried the C++ compiler yet). check-in: 422f786b84 user: dg tags: trunk
23:23
Fixed oddity where occasionally we get local variables of type 'null'. (These presumably represent nulls which are loaded onto the stack and then never used, so Soot can't infer a type for them.) check-in: a92e8504ac user: dg tags: trunk
23:11
Added table-based switch. check-in: c2528a4a89 user: dg tags: trunk
22:39
Added another huge great wodge of Harmony library: it compiles with javac, but currently kills cowjac. check-in: c2a46d10cb user: dg tags: trunk
20:41
Ensure that all object memory is zero-initialised. check-in: b5ef516662 user: dg tags: trunk
20:31
Arrays and array classes now work well enough that HashMap seems to work. check-in: d1152dd45c user: dg tags: trunk
10:15
Create class field GC markers on-the-fly, to make it easier for the compiler to do dead code elimination. check-in: f7f7a6bcbb user: dg tags: trunk
2012-07-13
23:48
Added a very basic RTL. Now compiles *and runs*! check-in: d5f93d49d5 user: dg tags: trunk
23:48
Don't emit trampolines for abstract methods. Check in missing file from last commit... check-in: 9d3c47f449 user: dg tags: trunk
23:46
Don't check in object files. check-in: 9c56cc6158 user: dg tags: trunk
22:21
Don't emit files with a $ in the name, because they're simply a PITA. Check overridden methods for a @Native annotation. check-in: 7bd39f32e8 user: dg tags: trunk
20:47
Add GC marking for objects. check-in: b68911df8a user: dg tags: trunk
19:55
Moved DependencyAnalayser into SootExtensions. check-in: a599b3c392 user: dg tags: trunk
19:51
Adjust compilation options. check-in: cb5f01bdfe user: dg tags: trunk
19:47
Class initialisation and GC marking should now work. check-in: 2a62736c34 user: dg tags: trunk
19:01
Project metadata update. check-in: f9ace3319f user: dg tags: trunk
17:59
Made a bit less verbose. check-in: a4e1fd4c3c user: dg tags: trunk
17:59
Project metadata update. check-in: e100205a55 user: dg tags: trunk
2012-07-12
22:42
Add trampolines for the rare but very real case where Java will declare a method in a superclass, and then add an interface that declares it in a subclass with no implementation: C++ doesn't allow this, so we have to compile in a shim in the subclass which proxies to the superclass. Joy. check-in: e0a5157184 user: dg tags: trunk
20:48
Split arrays into scalar arrays and object arrays; object arrays always store basic Java objects and are all type compatible (at the expense of needing a dynamic_cast<> whenever we read from them). check-in: 4062ca354b user: dg tags: trunk
16:02
Fix the sense of the cmpg and cmpl operations. check-in: ec03ce7180 user: dg tags: trunk
16:02
Object::clone is protected, not public. check-in: e2acab5382 user: dg tags: trunk
2012-07-10
22:33
Added cheap and nasty makefile for doing test builds of the translated code. check-in: 0826cbdc0a user: dg tags: trunk
22:27
Lose protected (as it doesn't match the Java sense; inner classes need to be able to access protected outer members). More C++ parsing bug workarounds. check-in: 4ccbc7ac96 user: dg tags: trunk
22:23
Attempt to sort out virtual inheritance issues. check-in: e428c986d8 user: dg tags: trunk
22:23
Implement cmp operations. check-in: 85bf53d4d2 user: dg tags: trunk
20:49
Interfaces now interface; fixed various type issues. Stuff compiles! check-in: 03370bdea8 user: dg tags: trunk
20:26
Empty stack frames work. Correctly calculate mangled method names. check-in: bce8fce13a user: dg tags: trunk
20:13
Getting the length of arrays works. check-in: 4e8bdfaf20 user: dg tags: trunk
20:11
Changed to New Way of storing stack frames. Add caughtexception. check-in: 6e889508be user: dg tags: trunk
2012-07-09
22:35
Be more accurate about what headers we import --- scan the class for field references and static invokes. check-in: c1841a4107 user: dg tags: trunk
22:25
instanceof; worked around a hideous C++ parser ambiguity when declaring fields. check-in: ca1b318817 user: dg tags: trunk
22:10
Even better numeric constants; unsigned shifts; arrays now compile. check-in: 7dd2374ad0 user: dg tags: trunk
21:59
More array support. check-in: e777ce5047 user: dg tags: trunk
21:34
Add casting. Emit numeric constants more correctly. check-in: 5def66b265 user: dg tags: trunk
21:07
Mangle Java method names to become C++ names. Add a way to annotate a Java method to have a certain C++ name. check-in: 7c94a86d39 user: dg tags: trunk
17:47
Ensure that the compiler bin directory is created during a build. check-in: ecaf0a0085 user: dg tags: trunk
2012-07-08
23:30
First pass at string constants. BROKEN: turns out that the overloading behaviour of Java methods is different to C++'s, so I'm going to have to mangle all method names to prevent conflicts. Sigh. check-in: e28458f13d user: dg tags: trunk
21:07
Change the way output is written to allow for more sections. check-in: 77edd2f72d user: dg tags: trunk
19:30
Implement ClassConstants. Did some pretty basic work on class initialisation. check-in: 2b4553407e user: dg tags: trunk
19:10
Tag C++ members with the kind of Java value; turns on the namespace rules are different and symbols collide in C++ that don't in Java. check-in: b8424781ef user: dg tags: trunk