Timeline
Not logged in

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

50 most recent check-ins

2012-07-15
22:24
[9b75a64e3d] Leaf: Add licensing boilerplate. (user: dg tags: trunk, release-0.1)
22:24
[4b1a509c2b] Go for a more vanilla test setup. (user: dg tags: trunk)
22:14
[e9482f555d] Added a basic README. (user: dg tags: trunk)
22:04
[5ab0067e4f] Added license files for Harmony and Soot. (user: dg tags: trunk)
21:42
[99c2c085af] Added cowjac license file. (user: dg tags: trunk)
21:16
[4d7addc10c] Added System.out and System.err, for convenience. (user: dg tags: trunk)
21:02
[517392348d] 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! (user: dg tags: trunk)
19:28
[27c41a421c] Baby steps towards a working arraycopy. (user: dg tags: trunk)
14:31
[ce30502c28] Did enough backend functionality that trying to do basic file system operations now links --- doesn't run, though. (user: dg tags: trunk)
2012-07-14
23:28
[422f786b84] Added LookupSwitchStatement. Library update now compiles with cowjac (haven't tried the C++ compiler yet). (user: dg tags: trunk)
23:23
[a92e8504ac] 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.) (user: dg tags: trunk)
23:11
[c2528a4a89] Added table-based switch. (user: dg tags: trunk)
22:39
[c2a46d10cb] Added another huge great wodge of Harmony library: it compiles with javac, but currently kills cowjac. (user: dg tags: trunk)
20:41
[b5ef516662] Ensure that all object memory is zero-initialised. (user: dg tags: trunk)
20:31
[d1152dd45c] Arrays and array classes now work well enough that HashMap seems to work. (user: dg tags: trunk)
10:15
[f7f7a6bcbb] Create class field GC markers on-the-fly, to make it easier for the compiler to do dead code elimination. (user: dg tags: trunk)
2012-07-13
23:48
[d5f93d49d5] Added a very basic RTL. Now compiles *and runs*! (user: dg tags: trunk)
23:48
[9d3c47f449] Don't emit trampolines for abstract methods. Check in missing file from last commit... (user: dg tags: trunk)
23:46
[9c56cc6158] Don't check in object files. (user: dg tags: trunk)
22:21
[7bd39f32e8] Don't emit files with a $ in the name, because they're simply a PITA. Check overridden methods for a @Native annotation. (user: dg tags: trunk)
20:47
[b68911df8a] Add GC marking for objects. (user: dg tags: trunk)
19:55
[a599b3c392] Moved DependencyAnalayser into SootExtensions. (user: dg tags: trunk)
19:51
[cb5f01bdfe] Adjust compilation options. (user: dg tags: trunk)
19:47
[2a62736c34] Class initialisation and GC marking should now work. (user: dg tags: trunk)
19:01
[f9ace3319f] Project metadata update. (user: dg tags: trunk)
17:59
[a4e1fd4c3c] Made a bit less verbose. (user: dg tags: trunk)
17:59
[e100205a55] Project metadata update. (user: dg tags: trunk)
2012-07-12
22:42
[e0a5157184] 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. (user: dg tags: trunk)
20:48
[4062ca354b] 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). (user: dg tags: trunk)
16:02
[ec03ce7180] Fix the sense of the cmpg and cmpl operations. (user: dg tags: trunk)
16:02
[e2acab5382] Object::clone is protected, not public. (user: dg tags: trunk)
2012-07-10
22:33
[0826cbdc0a] Added cheap and nasty makefile for doing test builds of the translated code. (user: dg tags: trunk)
22:27
[4ccbc7ac96] 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. (user: dg tags: trunk)
22:23
[e428c986d8] Attempt to sort out virtual inheritance issues. (user: dg tags: trunk)
22:23
[85bf53d4d2] Implement cmp operations. (user: dg tags: trunk)
20:49
[03370bdea8] Interfaces now interface; fixed various type issues. Stuff compiles! (user: dg tags: trunk)
20:26
[bce8fce13a] Empty stack frames work. Correctly calculate mangled method names. (user: dg tags: trunk)
20:13
[4e8bdfaf20] Getting the length of arrays works. (user: dg tags: trunk)
20:11
[6e889508be] Changed to New Way of storing stack frames. Add caughtexception. (user: dg tags: trunk)
2012-07-09
22:35
[c1841a4107] Be more accurate about what headers we import --- scan the class for field references and static invokes. (user: dg tags: trunk)
22:25
[ca1b318817] instanceof; worked around a hideous C++ parser ambiguity when declaring fields. (user: dg tags: trunk)
22:10
[7dd2374ad0] Even better numeric constants; unsigned shifts; arrays now compile. (user: dg tags: trunk)
21:59
[e777ce5047] More array support. (user: dg tags: trunk)
21:34
[5def66b265] Add casting. Emit numeric constants more correctly. (user: dg tags: trunk)
21:07
[7c94a86d39] Mangle Java method names to become C++ names. Add a way to annotate a Java method to have a certain C++ name. (user: dg tags: trunk)
17:47
[ecaf0a0085] Ensure that the compiler bin directory is created during a build. (user: dg tags: trunk)
2012-07-08
23:30
[e28458f13d] 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. (user: dg tags: trunk)
21:07
[77edd2f72d] Change the way output is written to allow for more sections. (user: dg tags: trunk)
19:30
[2b4553407e] Implement ClassConstants. Did some pretty basic work on class initialisation. (user: dg tags: trunk)
19:10
[b8424781ef] 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. (user: dg tags: trunk)