decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
0294.pdf as text as html | 96 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
0294.pdf as text as html
Authored by: indyandy on Sunday, May 20 2012 @ 03:19 PM EDT
[Ed<br>
1 This appears to be weekly activity reports from Andy McFadden from the day he joined Google until May 5 2008.<br>
2. pdftotext and copy/paste from Evince both introduce many typos (sometimes 'd' becomes 'c', 'J' becomes ']', some words disappear altogether... <br>
I have tried to correct all these but if anything looks wrong the error is probably mine.<br>
3. The reason for entering this into evidence is probably this line:<br>
<br>
- Removed various incarnations of the &quot;J word&quot; from the SDK.<br>
<br>
]<br>
<br>
<br>
<br>
<br>
May 5, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;&nbsp;- Changed a bunch of labels in mterp so gdb can unravel the stack<br>
when an instruction breaks.<br>
&nbsp;&nbsp;- Fixed throw of incorrect exception when trying to use a class that<br>
failed to initialize. Spent some time chasing after the class<br>
&nbsp;(PhoneUtils).<br>
&nbsp;&nbsp;- Added an alternative form of assert() that is visible on the device.<br>
&nbsp;&nbsp;- Added a DDM message that keeps the DDMS thread list in sync when<br>
thread names change.<br>
&nbsp;&nbsp;- Added additional JNI checks, for static vs. virtual calling.<br>
&nbsp;&nbsp;- Cleaned up dexlist output.<br>
&nbsp;&nbsp;- Chased down a bug in JDWP exposed by IntelliJ 7.<br>
- Wrote up some notes about the Dalvik bytecode verifier.<br>
- Three interviews (two phone screens, one on-site).<br>
<br>
This week:<br>
<br>
- Continuing with the misc fixes.<br>
<br>
Apr 28, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Finished up the &quot;circular buffer with last N allocations&quot; feature.<br>
&nbsp;Over to xav for UI work.<br>
&nbsp;- Fixed some issues found by security team.<br>
&nbsp;- Moved VM's Zip implementation into libdex to remove dependencies<br>
on C++ and libutils.<br>
&nbsp;- Various minor fixes.<br>
-Tracked down a problem with stat() in wrapsim that, for some reason,<br>
only surfaced now.<br>
- Spent a day as the chairperson of a slotting/promotion committee.<br>
<br>
This week:<br>
<br>
-Mise features/bugs.<br>
- Interviews.<br>
<br>
Apr 21, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Got part of the &quot;circular buffer with last N allocations&quot; feature working.<br>
&nbsp;- Changed the &quot;backward branch&quot; test a few times to deal with<br>
trivial infinite loops. (The trick was to get correct behavior<br>
without reducing performance.)<br>
&nbsp;- Spent a bunch of time figuring out how to get gdb backtraces to<br>
work correctly with the asm interpreter. Largely succeeded.<br>
&nbsp;- Tried to do something clever with DEX-truncation bus errors;<br>
failed due to limitations in debuggerd.<br>
- Fixed a race condition in the simulator's system property handling.<br>
- Prepped for promotion/slotting committee.<br>
<br>
This week:<br>
- Promotion/slotting committee (chairperson)<br>
- Finish up &quot;last N allocations&quot; feature.<br>
<br>
Apr 14, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Fixed some JNI issues (tighten arg checking in CheckJNI, ensure<br>
class init for alloc calls) .<br>
&nbsp;- Corrected mterp {float,double}-to-int behavior for inf/-inf/NaN.<br>
&nbsp;- Fixed some bugs in &quot;mterp&quot; that danfuzz found when he split<br>
HelloWorld into regression tests.<br>
&nbsp;- Added &quot;-Xdexopt:none&quot; mode.<br>
&nbsp;- Added threadCpuTimeNanos for Noser performance evaluations.<br>
&nbsp;- Various minor fixes (simplify &quot;interrupt should throw&quot;, ignore<br>
HeapWorker watchdog when debugger attached, follow execution-mode<br>
property in TouchDex, etc) .<br>
- Helped various people track down various bugs.<br>
<br>
This week:<br>
<br>
-Work on &quot;recent allocation display&quot; feature.<br>
<br>
Apr 7, 2008<br>
Last week:<br>
- Worked on Dalvik VM:<br>
&nbsp;- Finished up deadlock predictor. Announced availability.<br>
&nbsp;- Added validation of UTF-8 strings to CheckJNI.<br>
&nbsp;- Worked on an array annotation bug.<br>
- Investigated app native heap usage (for jparks).<br>
- Worked on performance reviews.<br>
<br>
This week:<br>
<br>
- Fix bugs.<br>
- Cause trouble.<br>
<br>
Mar 31, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- More code reviews and performance checking for DEX format changes.<br>
&nbsp;- Spent a bunch of time helping others track down bugs. Filed a few.<br>
&nbsp;- Worked on deadlock prediction.<br>
&nbsp;- Fixed a long-standing bug in JNI field access.<br>
&nbsp;- Corrected bytecode verifier's register merge code.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Finish up bytecode verifier.<br>
<br>
Mar 24, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Spent a couple of days keeping pace with danfuzz' changes to the<br>
VM. Wrote additional performance and correctness tests.<br>
&nbsp;- Enabled allocation limit feature. Added a global allocation limit<br>
feature for regression tests.<br>
&nbsp;- Made a little progress on the deadlock prediction feature.<br>
- Explored the relationship between memory access patterns and<br>
benchmark inconsistency.<br>
- (Away on vacation Friday)<br>
<br>
This week:<br>
<br>
- Continue with deadlock prediction.<br>
<br>
Mar 17, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Added a DDM message that retrieves the stack trace of an arbitrary thread.<br>
&nbsp;- Hunted down an issue involving relative paths in the bootstrap class path.<br>
&nbsp;- Fixed thread safety issues in Java.lang.Thread<br>
&nbsp;- Tracked down and fixed a bunch of minor bugs (annotation lookups<br>
on generated classes, improper throw of InterruptedException,<br>
HeapWorker thread release, non-EABI long handling, verification of<br>
null array references, ... ).<br>
&nbsp;- Worked with danfuzz on DEX format changes.<br>
- Helped track down a library loading issue.<br>
<br>
This week:<br>
<br>
- (End cf M6, start of SC1.)<br>
- Work on deadlock detector.<br>
<br>
Mar 10, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Added range checks to DEX code to help prevent malicious crashes.<br>
&nbsp;- Worked with danfuzz on method prototype representation changes.<br>
&nbsp;- Rewrote JNI call bridge to work with danfuzz's &quot;proto&quot; changes.<br>
&nbsp;- Updated a few forms of &quot;invoke&quot; to perform a null reference check.<br>
&nbsp;- Corrected Thread.sleep() behavior for multi-year durations.<br>
&nbsp;- Worked around a TouchDex issue.<br>
- (Out Friday)<br>
<br>
This week:<br>
<br>
- Wrap up M6.<br>
<br>
Mar 3, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Implemented various fundamental reflection calls using &quot;system&quot; annotations.<br>
&nbsp;- Examined finalizer activity.<br>
&nbsp;- Fixed a couple of surprisingly long-lived debugger issues.<br>
&nbsp;- Made JNI global reference limit concigurable.<br>
&nbsp;- Added per-thread allocation count limits for regression testing.<br>
&nbsp;- Added a JNI stack check.<br>
- Cleaned up android.os.SystemProperties.<br>
- Added offset and size range checks to Zip archive code.<br>
- One phone screen.<br>
<br>
This week:<br>
<br>
-Continue with M6 bugs and feature requests.<br>
<br>
Feb 25, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;&nbsp;- Enabled &quot;mterp&quot; as the default interpreter.<br>
&nbsp;&nbsp;- Finished implementing annotations.<br>
&nbsp;&nbsp;- Started working on class attribute reflection, e.g. method exception lists.<br>
&nbsp;&nbsp;- Updated specs and source comments to reflect change to 5-arg invoke.<br>
&nbsp;&nbsp;- Tracked down a bug that would cause a VM crash if you tried to<br>
allocate huge arrays with specific size values.<br>
&nbsp;&nbsp;- Wrote more tests for annotations and class attributes.<br>
- (Monday was holiday)<br>
<br>
This week:<br>
<br>
- Finish class attribute reflection.<br>
- Continue Dalvik feature creep.<br>
<br>
Feb 19, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Got a chunk of annotations working.<br>
- Changed Android runtime to get bootclasspath from env, removlng a<br>
bad hack in the process.<br>
- Chased after some system bugs, notably the &quot;ascii crash&quot; failure and<br>
the &quot;gdb frame base&quot; issue.<br>
- One interview and one phone screen.<br>
<br>
This week:<br>
<br>
-Finish annotations.<br>
<br>
Feb 11, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;&nbsp;- Integrated Dalvik instruction changes from the vacationing danfuzz<br>
into the main branch.<br>
&nbsp;&nbsp;-Updated &quot;mterp&quot; to handle new/removed instructions. Spent some<br>
time making the entry/exit code faster.<br>
&nbsp;&nbsp;- Finished the last bit of C-&gt;asm conversions for mterp. Announced<br>
mterp to the group, encouraging everyone to try it.<br>
&nbsp;&nbsp;- Fixed an interface class merge bug in the verifier.<br>
- Created some Java annotation test classes.<br>
- Spent a few hours chasing the &quot;ascii crash&quot; bug.<br>
<br>
This week:<br>
<br>
- Implement annotations.<br>
<br>
Feb 4, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Checked in mterp and the Dalvik &quot;exerciser&quot;. Ran performance comparisons.<br>
&nbsp;- Altered Thread.interrupt() handling to avoid inappropriate exceptions.<br>
&nbsp;- Added feature allowing test code to enumerate classes in a DEX file.<br>
&nbsp;- Added workaround for Eclipse debugger flaw.<br>
<br>
This week:<br>
<br>
- Update mterp to track recent changes in DEX.<br>
- Start on annotations.<br>
<br>
Jan 28, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Fixed a race condition between System and ClassLoader.<br>
&nbsp;- Worked on mterp.<br>
- Select JDWP transport based on build configuration.<br>
- Two interviews.<br>
- (Monday was holiday)<br>
<br>
This week:<br>
<br>
- Wrap up mterp.<br>
<br>
Jan 22, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Implemented VM portion of Java.lang.reflect.Proxy.<br>
&nbsp;- Implemented Harmony-style VMStack.getClasses() and Class .getStackClasses().<br>
&nbsp;- Fiddled with asm interp.<br>
- Two interviews.<br>
<br>
This week:<br>
<br>
- Fix up stuff for M5.<br>
<br>
Jan 14, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Rearranged the way profiling is handled. Made instruction<br>
counting always available.<br>
&nbsp;- Worked with veenstra to get Java methods listed ln emulator traces.<br>
&nbsp;- Checked in some Dalvik VM<br>
&nbsp;- Added official Android copyright notices to all of the VM code.<br>
&nbsp;- Fixed implementation of &quot;not-long&quot;, one of our instructions that<br>
has apparently never, ever been executed.<br>
&nbsp;- Added for multiple JDWP transports, paving the way for<br>
dt_android_adb.<br>
- Fixed a couple of bugs in simulator wrapper.<br>
<br>
This week:<br>
<br>
- Implement Java.lang.reflect.Proxy.<br>
- Update OKRs.<br>
<br>
Jan 7, 2008<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik mterp.<br>
- One interview.<br>
- (Short week due to New Year holiday)<br>
<br>
This week:<br>
<br>
- Continue work on mterp.<br>
- Work with veenstra to finish up Java/native profiling integration.<br>
<br>
Jan 2, 2008<br>
<br>
Last week:<br>
<br>
- (Holiday vacation)<br>
<br>
This week:<br>
<br>
- Work on mterp.<br>
<br>
Dec 27, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Worked on &quot;mterp&quot;.<br>
&nbsp;- Corrected reflection access check on protected fields.<br>
&nbsp;- Did some more directory renaming.<br>
- One interview candidate lunch.<br>
<br>
This week:<br>
<br>
- (Christmas holiday + two vacation days)<br>
<br>
Dec 17, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Split DEX file access code out into a static library. Shifted<br>
lots of code around.<br>
&nbsp;- Added ability to run &quot;dexdump&quot; on a Jar/apk/zip with &quot;classes.dex&quot; inside.<br>
&nbsp;- Added &quot;dexlist&quot; utility to list methods found in a DEX archive.<br>
&nbsp;- Added API for Dalvik-level instruction counting.<br>
&nbsp;- Changed internal exception throws to use &quot;descriptor&quot; form of class name.<br>
&nbsp;- Added additional access check on protected field access through reflection.<br>
- Stripped out some more simulator cruft.<br>
- Started learning Python.<br>
<br>
This week:<br>
<br>
- Work on asm version of interpreter.<br>
<br>
Dec 10, 2007<br>
<br>
Last week:<br>
<br>
- Finished up filename remapping in simulator.<br>
- Added &quot;fake&quot; device entry for /sys/android_power entries.<br>
- Removed last bit of sim-specific stuff in libhardware.<br>
- Added touch-screen support to simulator.<br>
- Added system property to enable Java language assertions in Dalvik.<br>
Added support for class/package name in -ea/-da.<br>
- Fixed a bug in Dalvik that could try to execute code in an<br>
uninitialized class when throwing an exception from JNI.<br>
- Started on Dalvik instruction count reporting<br>
<br>
This week:<br>
<br>
- Finish up instruction count mechanism.<br>
- Start on asm interpreter for Dalvik?<br>
<br>
Dec 3, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;&nbsp;- Fixed a bug with multiple re-initializations of a class that fails to load.<br>
&nbsp;&nbsp;- Fixed a bug with null references in reflection code.<br>
&nbsp;&nbsp;- Corrected float-to-int conversions.<br>
&nbsp;&nbsp;- Investigated &quot;can't create 764 threads&quot; issue.<br>
- Created an alternative implementation of system properties for simulator.<br>
- Worked on transparent filename remapping in simulator.<br>
- Renamed a couple of maJor directories in the source tree.<br>
- (one interview)<br>
<br>
This week:<br>
<br>
- Finish sim filename remapping.<br>
- Work on Dalvik stuff.<br>
<br>
Nov 26, 2007<br>
<br>
Last week:<br>
<br>
- Got basic set of fake drivers (display, input, logging) working with<br>
simulater. Also implemented &quot;vibrating notification mechanism&quot;.<br>
- Removed a bunch of sim-specific code.<br>
- Fixed a bug in JNI local references<br>
- Chased down an incorrect exception thrown from native code when<br>
''inflate'' sees bad data.<br>
- (Out Thursday/Friday for Thanksgiving)<br>
<br>
This week:<br>
<br>
- Continue work on sim, notably system properties and filename remapping.<br>
<br>
Nov 19, 2007<br>
<br>
Last week:<br>
<br>
- Celebrated the public launch of the Android SDK.<br>
- Read an unhealthy number of blogs, news articles, and press releases.<br>
- Worked on simulator evolution:<br>
&nbsp;- Moved simulator communication channel out of runtime and into preload lib.<br>
&nbsp;- Got ''fake device'' infrastructure working.<br>
&nbsp;- Got most of /dev/graphics/fbO, /dev/ttyO, and /dev/input/eventsO working.<br>
- Chased after the &quot;Binder thread explosion&quot; bug.<br>
<br>
This week:<br>
<br>
- Finish up /dev/input/eventsO.<br>
- Write /dev/log/*.<br>
- Start on filename substitution.<br>
<br>
Nov 12, 2007<br>
<br>
Last week:<br>
<br>
- Reviewed patent application.<br>
- Removed various incarnations of the &quot;J word&quot; from the SDK.<br>
- Began simulator overhaul: launch runtime in separate xterm, with<br>
LD PRELOAD wrapper. Removed &quot;ui-hardware&quot; classes and interfaces.<br>
- Fixed ''ls -R'' behavior.<br>
- Fixed bug in dmtrace (nee jtrace) profiling.<br>
- Various minor changes to prep for SDK launch.<br>
<br>
This week:<br>
<br>
- Continue simulator work.<br>
<br>
Nov 5, 2007<br>
<br>
Last week:<br>
<br>
- Spent some time configuring a MacPro as a Linux build machine.<br>
- Worked with ]parks and mathias to get the Linux simulator working agaln.<br>
- Stripped out some simulator cruft.<br>
- Started fiddling around with planned simulator updates.<br>
- Last-minute stuff for M3.<br>
<br>
This week:<br>
<br>
- Continue work on simulator evolution.<br>
- Read lots of news articles.<br>
<br>
Oct 29, 2007<br>
<br>
Last week:<br>
<br>
- Added binary event log output to &quot;logcat&quot;. Fixed the binary logging<br>
implementation. Added a log tag map.<br>
- Worked on Dalvik VM:<br>
&nbsp;- Reduced overhead when calling into the interpreter.<br>
&nbsp;- Rearranged EXPORT_PC handling so we do less work.<br>
&nbsp;- Made the main VM thread more generic, so that it's possible for<br>
other threads to join() on the maln thread.<br>
&nbsp;- Fixed bytecode verification when finding the best superclass of<br>
two array classes.<br>
&nbsp;- Show more detail when a finalizer throws an uncaught exception.<br>
&nbsp;- Ensure existing processes blow up if you replace one of the core<br>
Java classes.<br>
- Added bytecode disassembly to &quot;dexdump&quot; tool.<br>
<br>
This week:<br>
<br>
- Continue with Dalvik stuff.<br>
- Look into making the simulator build more device-like.<br>
<br>
Oct 22, 2007<br>
<br>
Last week:<br>
<br>
- Resurrected stand-alone benchmark test app.<br>
- Worked on Dalvik VM:<br>
&nbsp;- Improved verification of invoke-super. Removes need for a runtime test.<br>
&nbsp;- Changed verification to switch off of a propery, rather than an #ifdef.<br>
&nbsp;- Reduced thread-local storage lookups by passing a pointer around<br>
in performance-critical areas. Sped up JNI and synchronized blocks.<br>
- Pushed for (and got) a decision on how we're fixing our IPC mechanism.<br>
- Participated in a promotion &amp; slotting committee (29 candidates).<br>
<br>
This week:<br>
<br>
- Continue Dalvik performance &amp; correctness changes.<br>
<br>
Oct 15, 2007<br>
<br>
Last week:<br>
<br>
- Wrote up proposal for Binder driver replacement. Discussed with a few people.<br>
- Helped track down some JNI global reference leaks.<br>
- Pursued the &quot;slow classloader&quot; problem (identified, partially<br>
addressed with a ZipEntry change, redirected to core Java lib) .<br>
- Purused the &quot;uncaught exceptions don't work&quot; problem (identified,<br>
redirected to framework) .<br>
- Worked on Dalvik VM:<br>
&nbsp;- Refactored the ''instanceof'' cache into a more general mechanism.<br>
&nbsp;- Used the cache to speed up interface calls.<br>
&nbsp;- Correctly handle virtual calls to abstract methods (for<br>
out-of-sync Jar files).<br>
- Updated some developer docs.<br>
<br>
This week:<br>
<br>
- Promotion/slotting committee.<br>
- Continue with Dalvik stuff.<br>
- Get IPC replacement figured out.<br>
<br>
Oct 8, 2007<br>
<br>
Last week:<br>
<br>
- Added feature in VM that copies stdout/stderr to log file.<br>
- Made a couple minor changes to help others debug problems.<br>
- Switched to IPC rewrite full time.<br>
&nbsp;- Wrote some code for the previous design (not checked in) .<br>
&nbsp;- Became concerned about scheduling and started thinking about<br>
alternate plans.<br>
<br>
This week:<br>
<br>
- Finalize what we're doing with IPC.<br>
<br>
Oct 1, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Added some static tests to Java verifier. Rearranged failure<br>
logging to reduce output size.<br>
&nbsp;- Enabled the Java bytecode verifier.<br>
&nbsp;- Generalized the reference table mechanism. Use the &quot;expandable&quot;<br>
mode for JNI global refs and some GC heap stuff.<br>
&nbsp;- On thread detach, release all monitors entered via the JNI<br>
MonitorEnter function.<br>
&nbsp;- For JNI compliance, fail if somebody tries to detach a thread with<br>
Java frames on the stack.<br>
&nbsp;- Added JNI GetObJectRefType method. We should be JNI 1. 6 compliant now.<br>
- Followed up on digit's TCP_NODELAY discovery by running some<br>
experiments and then disabling Nagle in DDMS and VM JDWP.<br>
- Spent some time with crazybob talking about the IPC implementation.<br>
- Helped some people figure out issues uncovered with -Xcheck:Jni.<br>
- Followed up on a couple of pioneer issues (&quot;bad&quot; APK hosing boot<br>
process, ServerSocket not closing properly).<br>
- Finished peer reviews.<br>
<br>
This week:<br>
<br>
- Investigate interface call speedup.<br>
- Clean up some stuff in the VM.<br>
- Help out with memory leak issues.<br>
<br>
Sep 24, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Implemented some slower but EABI-correct register-access<br>
primitives in interpreter.<br>
&nbsp;- Implemented a &quot;fast path&quot; in the AR11 native JNI call bridge to<br>
make things faster under EABI.<br>
&nbsp;- Fixed initialization of Java.lang.Class.<br>
&nbsp;- Tweaked thread dumps to help with system debugging.<br>
-Fixed some minor stuff in Java libs.<br>
- Forced &quot;check JNI&quot; to be enabled. Dealt with the ensulng hilarity.<br>
- Chased after a couple of memory leaks.<br>
- Read through some &quot;new IPC&quot; stuff from crazybob.<br>
- Worked on performance peer reviews (six).<br>
- Mentor for Andy Stadler.<br>
- (Got caught up after vacation)<br>
<br>
This week:<br>
<br>
- Finish peer revlews.<br>
- Work with crazybob on &quot;new IPC&quot;.<br>
- Deal with whatever comes up.<br>
<br>
Sep 17, 2007<br>
<br>
Last week:<br>
<br>
- (out on vacation)<br>
<br>
This week:<br>
<br>
- Get caught up on current events.<br>
- Enable verification.<br>
- Write static verification tests.<br>
- Work on perf review stuff.<br>
<br>
Sep 10, 2007<br>
Add snippet<br>
<br>
No snippet submitted<br>
Sep 4, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Made &quot;-Xverify:{none,remote,all}&quot; do what they should. Got<br>
verification working end-to-end.<br>
&nbsp;- Rearranged optimization to respect &quot;-Xdexopt: {all,verified}&quot;.<br>
- Added some code to force optimization+verification of class files<br>
when the system first boots. This reduces the delay seen on first app<br>
launch.<br>
- Worked on performance revlew.<br>
- (Out Friday)<br>
<br>
This week:<br>
<br>
- Monday was holiday, in Tuesday, away Wednesday-Friday. Mostly<br>
trying not to break things.<br>
- Out all next week too.<br>
<br>
Aug 27, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Rearranged class loading to perform verification on<br>
non-pre-verified classes.<br>
&nbsp;- Enabled &quot;lite&quot; verification; code flow analysis still too slow.<br>
&nbsp;- Corrected handling of package-scope access checks during opt/verify.<br>
&nbsp;- Added page access guards on LinearAlloc regions to help track down<br>
an EABI memory corruption bug.<br>
&nbsp;- Expanded set of JNI calls you're allowed to make with an exception<br>
pending (1.6 spec).<br>
&nbsp;- Updated Jni.h to remove some fancy new warnings.<br>
&nbsp;- Added flags to disable signal catching.<br>
- Partially restored the stand-alone performance tests.<br>
- Took some measurements with and without mkf's SSA optimizations.<br>
- Spent some time examining the performance of JDWP to the device and emulator.<br>
- Attended the Android coming-out tech talk.<br>
<br>
This week:<br>
- Work on performance revlew.<br>
- Improve performance of verified code flow analysis.<br>
- Add some static verification tests.<br>
<br>
Aug 20, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Finished development on bytecode structural verifier. Added more<br>
detailed checks on short integers. Corrected common superclass <br>
determination. Reduced memory usage and improved speed.<br>
&nbsp;- Blocked optimization and pre-verification of classes defined ln<br>
multiple DEX files.<br>
&nbsp;- Eliminated VMThrowable class, folding it into Throwable.<br>
&nbsp;- Added logging of exceptions thrown from finalizers.<br>
&nbsp;- Added printLoadedClasses to help with Zygote performance examination.<br>
&nbsp;- Fixed a bug that would cause Eclipse to break on caught exceptions<br>
that straddled a native call.<br>
<br>
This week:<br>
<br>
- Continue static verification work. Enable (warn-only mode) in live system.<br>
<br>
Aug 13, 2007<br>
<br>
Last week:<br>
<br>
- (away on vacation)<br>
<br>
This week:<br>
<br>
- Get caught up.<br>
- Finish bytecode verification.<br>
- Address some memory profiling analysis needs.<br>
<br>
Aug 6, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Continued work on verifier. Code-flow analysis is complete, but<br>
we've decided to extend it slightly beyond what the spec requires.<br>
&nbsp;- Fiddled with exception logging to help track down excessive<br>
exception activity.<br>
&nbsp;- Aligned array objects for EABI.<br>
<br>
This week:<br>
<br>
- Out on vacation all week.<br>
<br>
Jul 30, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Made good progress on bytecode verifier.<br>
&nbsp;- Moved uncaught exception handling for the main thread into the<br>
thread-detach code.<br>
&nbsp;- Fixed Class.newinstance to do access checks properly (Noser).<br>
&nbsp;- Fixed some reflection exception handling problems exposed by jython.<br>
- One phone screen.<br>
<br>
This week:<br>
<br>
- Continuing on with the verifier.<br>
<br>
Jul 23, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Worked on bytecode verifier.<br>
&nbsp;- Changed the way internal exceptions are initialized to match<br>
expected behavior.<br>
&nbsp;- Added JNI vfprintf() and abort() hooks.<br>
&nbsp;- Fixed up some stuff from the Noser integration.<br>
- Filed several bugs on improper use of JNI NewGlobalRef in our sources.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Continue work on verifier.<br>
<br>
Jul 16, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Continued work on Java bytecode verifier<br>
&nbsp;- Found last week's heisenbug (gcc-4.2.0 bug)<br>
- Worked with others to chase mise bugs (cheese-scrolling throw-fest,<br>
spinning Spinner, Bitmap heap trasher, sluggish Mac sim, nuance<br>
DetachCurrentThread)<br>
- (away on vacation Friday)<br>
<br>
This week:<br>
<br>
- Continue Java bytecode verifier<br>
<br>
Jul 9, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Worked on some classfile verification stuff.<br>
&nbsp;- Added -Xverify option.<br>
&nbsp;- Changed thread startup from spin-wait to condition wait. Took<br>
some thread startup timings.<br>
&nbsp;- Enabled __ memcmp16() and fixed some bugs in String.compareTo()<br>
- Removed JamVM from the build.<br>
- Spent a bunch of time chasing a Heisenbug (771329).<br>
- (Wednesday was a holiday)<br>
<br>
This week:<br>
<br>
- Continue chasing the Heisenbug.<br>
- Work on Java class verification.<br>
<br>
Jul 2, 2007<br>
<br>
Last week:<br>
<br>
- Dalvik VM:<br>
&nbsp;- Various improvements to JDWP debug support (simplified startup, &quot;server~n&quot;)<br>
&nbsp;- Fixed a bug in stack overflow exception handling.<br>
&nbsp;- Changed frame depth calculation to improve single-step execution<br>
performance.<br>
&nbsp;- Added some additional tests to -Xcheck:jni.<br>
- Fixed a stall in DDM initialization.<br>
-Fiddled with LD_ASSUME KERNEL for our goobuntu systems.<br>
- Worked on my OKRs.<br>
<br>
This week:<br>
<br>
- Start work on Java classfile verifier.<br>
<br>
Jun 25, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Finished EABI-compliant JNI call bridge (in ARM assembly).<br>
&nbsp;- Aligned long/double fields on 64-bit boundaries by reshuffling field order.<br>
&nbsp;- Wrote replacement 64-bit arg decoder for internal natives.<br>
&nbsp;- Fixed a rare bug that hit when a debugger attached at the wrong moment.<br>
&nbsp;- Fixed a bug that could lock up a VM if DDMS was left connected for too long.<br>
&nbsp;- Reduced class lookup-by-name calls by caching a reference to [Foo in Foo.<br>
&nbsp;- Experimented with a JDWP speed improvement (which didn't work).<br>
- Fixed an fd leak in DDMS.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Work on Dalvik.<br>
- Figure out some OKRs.<br>
<br>
Jun 18, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;-Reduce native heap usage in Zip archive support.<br>
&nbsp;- Fixed some VM startup ordering issues that were blocking Noser.<br>
&nbsp;- Wrote a simple linear allocator to hold bits and pieces of class files<br>
&nbsp;- Made the VM-internal hash table load factor adJustable, and<br>
tweaked it for better performance.<br>
&nbsp;- Allocate Java thread stacks with mmap () instead of malloc () .<br>
&nbsp;- Started work on ARM EABI support.<br>
- Chased down some JNI problems for Nuance that turned out to be a bug<br>
in our dynamic linker.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Finish ARM EABI support in Dalvik.<br>
<br>
Jun 11, 2007<br>
<br>
Last week:<br>
<br>
- Added ZipFileRO, an extremely memory-conscious Zip archive access class.<br>
- Replaced all device-side usage of ZipFile/ZipEntry classes with ZipFileRO.<br>
- Evaluated correctness &amp; performance of mathias' __ memcpy16.<br>
- Remove system class loader from app loader call sequence.<br>
- Worked on Dalvik VM:<br>
&nbsp;-Implemented Java.lang.reflect.Method.getExceptionTypes(), now that<br>
we have exception lists in DEX.<br>
- One phone screen.<br>
- (Out Thursday/Friday on vacation)<br>
<br>
This week:<br>
<br>
-Continue with some Dalvik memory footprint reduction and performance stuff.<br>
<br>
Jun 4, 2007<br>
<br>
Last week:<br>
<br>
-Moved to a new office.<br>
- Worked on Dalvik VM:<br>
&nbsp;- Improved spin-on-suspend handling.<br>
&nbsp;- Added support for Java thread priorities. Added missing pieces of<br>
Thread/ThreadGroup.<br>
&nbsp;- Added AccessController and ProtectionDomain features, notably the<br>
getStackDomains() method, for Noser security work.<br>
&nbsp;- Explored alternative stack allocation methods.<br>
&nbsp;- Fixed a JDWP bug.<br>
- Two interviews (one cancelled shortly before it started) .<br>
- (Monday was holiday)<br>
<br>
This week:<br>
<br>
- Work on reduced-heap Zip support.<br>
- (On vacation Thursday/Friday)<br>
<br>
May 29, 2007<br>
<br>
Last week:<br>
<br>
- Worked on DalvikVM:<br>
&nbsp;&nbsp;- Sped up native calls.<br>
&nbsp;&nbsp;- Wrote inline versions of String.equals() and String.compareTo()<br>
&nbsp;(6-40x faster than Java).<br>
&nbsp;&nbsp;- Changed DEX file section alignment to 64-bit for pending EABI changes.<br>
&nbsp;&nbsp;- Added &quot;-Xss&quot; flag, use it to set default stack sizes.<br>
&nbsp;&nbsp;- Rearranged the wait-for-suspend code.<br>
- Added TRACE_ALLOC_COUNTS flag to jtrace. If set, the allocation<br>
counters are written into the key file.<br>
- Added some misc fields (total calls, syscall benchmark) to jtrace key header.<br>
- Met with patent lawyers.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Dalvik VM performance &amp; correctness.<br>
<br>
May 21, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Experimented with fixed register assignments in interpreter core.<br>
&nbsp;- Tracked down and fixed a bug in debugger method invocation.<br>
&nbsp;- Added Java.lang.Thread constructor that takes a stack s1ze.<br>
Corrected size bounds in VM.<br>
&nbsp;- In DEX optimizer, replace calls to ObJect.&lt;init&gt; with instructions<br>
that are treated as no-ops in standard interpreter.<br>
&nbsp;- Added an &quot;inline implementation&quot; instruction. Wrote inline<br>
versions of String.length() and String.charAt().<br>
&nbsp;-Substantially rewrote &quot;efficient Java&quot; document. Reformatted entire<br>
document, edited existing sections, added new material.<br>
<br>
This week:<br>
<br>
- Continue performance work.<br>
<br>
May 14, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Enabled instruction rewriting in the DEX optimizer. Improves the<br>
speed of virtual method calls and accesses to instance fields.<br>
&nbsp;- Wrote a cache for the results of ''instanceof'' and ''checkcast''<br>
operations. Iterated until useful.<br>
&nbsp;- Moved DEX class name lookup from a heap-allocated hash table to<br>
shared-memory storage.<br>
&nbsp;- Changed a large number of functions from &quot;JValue blah ( ... ) to<br>
&quot;void blah ( ... , JValue* pResult). This works out better on ARM, and<br>
improves the performance of native methods returning void (of which we<br>
have many) .<br>
&nbsp;- Added some JNI performance and correctness tests.<br>
&nbsp;- Replaced the JNI native call bridge with a hand-coded ARM assembly version.<br>
- Continued the quest for Java readability.<br>
- One phone screen.<br>
<br>
This week:<br>
<br>
- Jury duty. Assuming I'm not called up:<br>
&nbsp;- Continue Dalvik<br>
&nbsp;- Add some instrumentation features requested by jparks/veenstra/etc.<br>
<br>
May 7, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Completed work on optimization of virtual fields and instance methods.<br>
&nbsp;- Reworked optimization mechanism to use fork+exec instead of just fork.<br>
&nbsp;- Added exception-wrapping to Java.lang.reflect.Method.invoke implementation.<br>
&nbsp;- Added an instruction counter to get a sense for which instructions<br>
are popular and which are going unused.<br>
&nbsp;- Made some minor performance tweaks.<br>
<br>
This week:<br>
<br>
- Continue Dalvik performance work.<br>
- Finish Java readability review work.<br>
<br>
Apr 30, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Reorganized DEX file loading so that generation and caching of the<br>
byte-swapped version happens generally (i.e. not merely as a<br>
side-effect of Jar extraction) .<br>
&nbsp;- Compute and store inter-DEX dependency information. Re-optimize<br>
files when a dependency changes.<br>
&nbsp;- Examined VM loaded-classes hash table performance.<br>
&nbsp;- Fixed a problem with debugger-initiated method invocations that<br>
throw exceptions.<br>
- Worked on DDMS:<br>
&nbsp;- Warp client selection when a VM is waiting for a debugger.<br>
<br>
This week:<br>
<br>
- Finish up Dalvik field/method access optimizations.<br>
<br>
Apr 23, 2007<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Removed most of the overhead associated with debugger support from<br>
the interpreter core, resulting in a ~30% speedup.<br>
&nbsp;- Made miscellaneous minor speedups (strict-aliasing, interpreter<br>
size recuction) .<br>
&nbsp;- Tried some performance enhancements that didn't work.<br>
&nbsp;- Made some improvements to the performance tests.<br>
- Worked on Dalvik VM: - Removed most of the overhead associated with debugger support from the interpreter<br>
core, resulting in a ~30% speedup. - Made miscellaneous minor speedups (strict-aliasing, interpreter size<br>
reduction). - Tried some performance enhancements that didn't work. -Made some improvements to the performance<br>
tests.<br>
Apr 16, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;&nbsp;&nbsp;Spent a bunch of time fiddling with the performance tests to try<br>
to get a consistent set of meaningful numbers.<br>
&nbsp;- Improved performance by inlining part of class/field/method/string<br>
resolution.<br>
&nbsp;- Moved some low-use values out of the Method struct. Reduced heap<br>
usage by 12 bytes per method.<br>
&nbsp;- Reduced the situations in which we initialize a class to those<br>
specified in the VM spec.<br>
&nbsp;- Reshuffled VM source tree, moving headers next to sources.<br>
&nbsp;- Show debug info breakdown in &quot;dexdump -S&quot;.<br>
&nbsp;- Fixed a bug that prevented strings in Object arrays from<br>
displaying nicely in the debugger.<br>
- Worked on DDMS:<br>
&nbsp;- Changed &quot;Halt&quot; button to call Runtime.halt() instead of<br>
Runtime.exit (). Bypasses some of the exit processing.<br>
- Cleaned up some code for a readability review.<br>
- Wrote up OKRs.<br>
<br>
This week:<br>
<br>
- Continue Dalvik VM performance work.<br>
<br>
Apr 9, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Rewrote DEX file loading to maximize use of shared memory,<br>
reducing native heap requirements.<br>
&nbsp;- Fix a spin-on-suspend when a GC happens while a profiled thread lS<br>
waiting to exit.<br>
- Worked on DDMS:<br>
&nbsp;- Cosmetic touch-ups on heap stats.<br>
&nbsp;- Added a &quot;cause GC&quot; button.<br>
&nbsp;- Added space for native heap info.<br>
- Provided a work-around for slow log window performance under Mac OS.<br>
- Wrote a command-line Java performance measurement tool.<br>
- Attended daily &quot;aardvark&quot; release meetings.<br>
<br>
This week;<br>
<br>
- Continue performance improvements,focusing on DEX file optimization work.<br>
<br>
Apr 2, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Added &quot;inflate&quot; support to classes.dex loading.<br>
&nbsp;- Investigated debugger performance issues.<br>
&nbsp;- Corrected VM internal hash table implementation.<br>
&nbsp;- Quick-reJect debugger connection attempts when one is already connected.<br>
&nbsp;- When waiting for a debugger, return after it has connected and<br>
been idle for a set period (to allow it a chance to set breakpoints).<br>
- Worked on DDMS:<br>
&nbsp;- Show tid, status, utime, and stime in the &quot;threads&quot; panel. Update<br>
periodically.<br>
&nbsp;- Chased after some adb-related problems.<br>
&nbsp;- Reviewed and updated developer documentation.<br>
&nbsp;&nbsp;Participated in &quot;aardvark&quot; status meetings.<br>
- One phone screen.<br>
<br>
This week:<br>
<br>
- Work on Dalvik VM<br>
<br>
Mar 26, 2007<br>
<br>
Last week:<br>
<br>
- Worked on &quot;ddms&quot;<br>
&nbsp;- Finished hooking up &quot;preferences&quot; items.<br>
&nbsp;- Added a color key to the heap map.<br>
&nbsp;- Don't try to scan the device if it's in the boot loader.<br>
&nbsp;- Started work on retrieving per-thread CPU usage stats.<br>
- Worked on Dalvik VM<br>
&nbsp;- Prefer new pthread_cond_timedwait_monotonic() for ObJect.wait()<br>
&nbsp;- Allow global references table to expand.<br>
&nbsp;- Implemented JNI direct byte buffer calls.<br>
&nbsp;- Reduced the VM's debug-level log output.<br>
&nbsp;- Implemented Java.lang.reflect.Field get/set calls.<br>
&nbsp;- Fiddled with some VM options after the first ever Dalvik<br>
performance review. Toned down paranoia on ''release'' builds to<br>
improve device performance.<br>
<br>
Dalvik is now the default on devices.<br>
<br>
This week:<br>
<br>
- Finish per-thread CPU stats in ddms.<br>
- Dalvik VM performance work.<br>
<br>
Mar 19, 2007<br>
<br>
Last week:<br>
<br>
- Work on DDMS<br>
&nbsp;- Added preferences screens with JFace. Implemented most of them.<br>
&nbsp;- Improved the network I/0.<br>
&nbsp;- Refactored client list. Added &quot;waiting for debugger&quot; icon.<br>
&nbsp;- Send the app name up when it changes.<br>
&nbsp;- Fixed some ordering issues when running Dalvik on the device.<br>
- Spent a day hunting down edge cases exposed by attaching &quot;Jdb&quot; and<br>
letting the system run.<br>
<br>
This week:<br>
<br>
- Finish wiring up the DDMS preferences.<br>
- Work on Dalvik VM (monotonic clock waits, global ref table) .<br>
<br>
Mar 12, 2007<br>
<br>
Last week:<br>
<br>
- Worked on DDMS:<br>
&nbsp;- Added it to the build. Got it working on Macs.<br>
&nbsp;- Added &quot;debug selected VM&quot; feature.<br>
&nbsp;- Added skeletal heap panel UI for dbort.<br>
&nbsp;- Changed reply routing to allow for generic &quot;fail&quot; packet.<br>
&nbsp;- Added device screen shot feature.<br>
&nbsp;- Added device command output capture; used with &quot;dumpstate&quot;,<br>
&quot;dumpsys&quot;,and &quot;logcat&quot;.<br>
&nbsp;- Fixed lots of little things in the UI.<br>
- Added Java &quot;assert&quot; statement support to both VMs.<br>
- In Dalvik VM: ignore breakpoints and other events while executing<br>
code on behalf of the debugger.<br>
- In Dalvik VM: treat JNI warnings as fatal errors (with a to-be-added<br>
command-line option to mellow them out) Made &quot;Check JNI&quot; the<br>
simulator default.<br>
- Spent some time at the &quot;Android boot camp&quot; dry run.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Continue work on DDMS.<br>
<br>
Mar 5, 2007<br>
<br>
Last week:<br>
<br>
- Added thread creation/death notifications to DDM.<br>
- Started work on DDM server user interface. Spent most of the week on this.<br>
- Added an &quot;is debugger connected?&quot; feature and a &quot;change JDWP listen<br>
port&quot; feature to both VMs.<br>
-Participated in ''client team sourcing event''.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Contine work on DDM.<br>
<br>
Feb 26, 2007<br>
<br>
Last week:<br>
<br>
- Worked on DDM:<br>
&nbsp;- Got enough working to register Java &quot;hello&quot; message handlers on<br>
both sides and exchange data.<br>
&nbsp;- Updated debugger pass-through to recycle client connection when<br>
debugger drops.<br>
&nbsp;- Added DDMS support to JDWP code.<br>
&nbsp;- Added a couple of calls to our NIO implementation.<br>
- Helped reed/abliss chase after some resource leaks that presented as<br>
global reference table overflows.<br>
- One phone screen<br>
- (Monday was holiday)<br>
<br>
This week:<br>
<br>
- Continue with DDM server and client.<br>
<br>
Feb 20, 2007<br>
<br>
Last week:<br>
<br>
- Fixed a number of bugs in Dalvik and JamVM.<br>
- Added file info to &quot;jtrace&quot; output.<br>
- Worked on DDMS. Currently shuffling packets around with NIO.<br>
- One phone screen.<br>
<br>
This week:<br>
<br>
- Continue work on DDMS.<br>
<br>
Feb 12, 2007<br>
<br>
Last week:<br>
<br>
- Implemented per-thread and default uncaught exception handlers (in<br>
both JamVM and Dalvik VM) .<br>
- Worked on Dalvik VM:<br>
&nbsp;- Added support for -Xrunjdwp/-agentlib:jdwp- options.<br>
&nbsp;- Rearranged JDWP startup to allow &quot;suspend=y&quot;.<br>
- Worked on Dalvik Debug Monitor design doc.<br>
- Started on Dalvik Debug Monitor server (ddms). Added SWT to main build.<br>
<br>
This week:<br>
<br>
-Continue work on ddms.<br>
<br>
Feb 5, 2007<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Fixed bug in libffi that only manifested on Linux/x86 with<br>
optimizations enabled.<br>
&nbsp;- Implemented parts of ClassLoader.getResource().<br>
&nbsp;- Added DEX-in-Jar support to user-defined class loaders.<br>
&nbsp;- Corrected JNI AttachCurrentThread behavior.<br>
&nbsp;- Corrected JNI FindClass behavior to use system class loader rather<br>
than bootstrap. This allows CLASSPATH to be used for the initial<br>
class.<br>
&nbsp;- Check method return types in -Xcheck:jni.<br>
&nbsp;- Chased after misc bugs people found now that Dalvik is more widely used.<br>
&nbsp;- Added a few things that the &quot;mauve&quot; test suite wanted.<br>
<br>
This week:<br>
<br>
- Implement &quot;-Xrunjdwp&quot; args.<br>
-Get ClassLoader.getResource() working.<br>
- Continue to address Dalvik issues as they arlse.<br>
<br>
Jan 29, 2007<br>
<br>
Last week:<br>
<br>
- Work on Dalvik VM:<br>
&nbsp;- Added support for loading DEX files from Zip archives to bootstrap<br>
class loader.<br>
&nbsp;- Added local-reference abuse checking to -Xcheck:Jni. Fixed a<br>
couple of problems it found, reported others.<br>
&nbsp;- Added libffi, so we can use PowerPC macs.<br>
- Announced general availability of Dalvik at group meeting.<br>
- (Out sick most of Friday)<br>
<br>
This week:<br>
<br>
- Work on Dalvik VM.<br>
- Work on resource loading.<br>
<br>
Jan 22, 2007<br>
<br>
Last week:<br>
<br>
- Dalvik VM:<br>
&nbsp;- Finished work on initating class loaders in Dalvik.<br>
&nbsp;- Replaced the hold-all &quot;u8&quot; type with a union throughout the code.<br>
- Corrected some bugs in the JDWP implementation in both VMs. Added<br>
some missing features that IntelliJ required.<br>
- Spent most of Tuesday with visitors crom Korea.<br>
- (Monday was holiday)<br>
<br>
This week:<br>
<br>
-Roll Dalvik VM out to the soon-to-be adoring masses.<br>
<br>
Jan 16, 2007<br>
<br>
Last week:<br>
<br>
- Wrote a JNI calling convention converter. Ran it against our<br>
sources, which used C-style JNI calls in C++ code.<br>
- Dalvik VM:<br>
&nbsp;- Reworked some VM class loader innards.<br>
&nbsp;- Did most of the work required to support initating class loaders.<br>
- Perf: write peer revlews.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Finish initiating class loaders<br>
- Meet with some Java people.<br>
- Work on Dalvik.<br>
<br>
Jan 8, 2007<br>
<br>
Last week:<br>
<br>
- More jni.h tweaks, mostly to make JNIHelp.h work with either C or C++.<br>
- Changed JamVM's RegisterNatives method to link methods immediately,<br>
rather than on first use.<br>
- Override the class loader in JNI FindClass while handling JNI_OnLoad.<br>
-Fixed a couple of bugs in the JDWP support.<br>
- Work on Dalvik VM:<br>
&nbsp;- Added basic class loader support to VM. Added DEX file loading to<br>
Java ClassLoader.<br>
&nbsp;- Added &quot;lazy&quot; JNI native method binding by signature.<br>
&nbsp;- Hooked up local variable table support for the debugger.<br>
&nbsp;- Improved debugger object registry (fewer registrations, more<br>
appropriate data structure).<br>
- One interview.<br>
- (four day week)<br>
<br>
This week:<br>
<br>
- Performance revlews.<br>
- Work on Dalvik VM.<br>
<br>
Jan 2, 2007<br>
<br>
Two weeks ago:<br>
<br>
- Enabled dynamic library loading in JamVM and Dalvik VM. Corrected<br>
ClassLoader handling in JamVM per spec.<br>
- Fixed some warnings found by -Xcheck:jni that I got tired of looking at.<br>
- Created C++ inline version of JNI calls. The thrill ride of the season.<br>
- (Friday was holiday)<br>
<br>
<br>
One week ago:<br>
<br>
- (off for entire week)<br>
<br>
<br>
This week:<br>
<br>
- Continue C++ JNI stuff.<br>
- Continue System.loadLibrary work.<br>
- Continue ClassLoader work in DalvikVM<br>
Two weeks ago: - Enabled dynamic library loading in JamVM and Dalvik VM. Corrected ClassLoader handling in JamVM<br>
per spec. - Fixed some warnings found by -Xcheck:jni that I got tired of looking at. - Created C++ inline<br>
version of JNI calls. The thrill ride of the season. - (Friday was holiday) One week ago: - (off for entire<br>
week) This week: - Continue C++ JNI stuff. - Continue System.loadLibrary work. - Continue ClassLoader work in<br>
DalvikVM.<br>
Dec 27, 2006<br>
Add snippet<br>
<br>
No snippet submitted<br>
Dec 18, 2006<br>
<br>
Last week:<br>
<br>
- Worked on Dalvik VM:<br>
&nbsp;- Got basic shared library loading working.<br>
&nbsp;- Reduced DEX file memory requirements by deferring some pieces to<br>
load on demand.<br>
&nbsp;- Added initialization of static final string constants, and some<br>
reflection code needed to test it.<br>
&nbsp;- Cleaned up strict-aliasing issues.<br>
&nbsp;- Ran some performance evaluations to see how we were doing.<br>
&nbsp;- Added more tests to -Xcheck:jni mode.<br>
- Updated jtrace code to stall thread exits when a trace is running.<br>
This way we get thread names and don't re-use thread IDs.<br>
- Switched system from using Jam's &quot;jni.h&quot; to Dalvik's. Fixed the<br>
ensuing C++ type clashes.<br>
- Wrote self-review.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Finish up shared library loading (both VMs need work) .<br>
<br>
Dec 11, 2006<br>
<br>
Last week:<br>
<br>
- Dalvik VM:<br>
&nbsp;- Reworked some mutex stuff to avoid GC race conditions.<br>
&nbsp;- Reduced memory usage by loading Positions, Locals, and Exceptions<br>
on demand only.<br>
&nbsp;- Added a threaded-execution mode to the interpreter.<br>
&nbsp;- Reserve some stack space so we can correctly handle StackOverflowError.<br>
&nbsp;- Added internal obJect tracking to ensure we don't GC obJects<br>
created by native VM code.<br>
- Enabled threaded execution in JamVM.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Performance self-review.<br>
- Continue work on Dalvik VM.<br>
<br>
Dec 4, 2006<br>
<br>
Last week:<br>
<br>
- Work on Dalvik VM:<br>
&nbsp;- Added public/protected/package/private access checks on method<br>
calls and field accesses.<br>
&nbsp;- Added JNI local/global reference tracking.<br>
&nbsp;- Added JNI Push/PopLocalFrame.<br>
&nbsp;- Added debugger obJect registry.<br>
&nbsp;- Chased after a spin-on-suspend issue.<br>
- Added VM selection pop-up menu and a &quot;check JNI&quot; checkbox to simulator.<br>
- One interview.<br>
<br>
This week:<br>
<br>
- Continue work on Dalvik VM.<br>
<br>
Nov 27, 2006<br>
<br>
Last week:<br>
<br>
- Dalvik VM:<br>
&nbsp;- Added support for ''-Xcheck:jni'' and ''-verbose:jni''.<br>
&nbsp;- Check JNI thread affinity, verify field type in Set*Field calls,<br>
and watch for inappropriate activity between &quot;critical&quot; calls.<br>
&nbsp;- Added GetStringRegion/GetStringUTFRegion.<br>
- Spent a day digging into Wonka.<br>
- (Out Thursday/Friday for Thanksgiving)<br>
<br>
This week:<br>
<br>
- Add JNI local/global reference tracking to Dalvik VM.<br>
- Improve Dalvik debugger support.<br>
<br>
Nov 20, 2006<br>
<br>
Last week:<br>
<br>
- Spent some quality time with some newly-GPLed source code.<br>
- Performance profiling (JamVM + Dalvik VM) :<br>
&nbsp;- Updated jtrace to show class loader overhead.<br>
&nbsp;- Added memory allocation counting.<br>
&nbsp;- Added wall-clock elapsed time to jtrace &quot;key&quot; file.<br>
&nbsp;- Disabled clock_gettime() on Linux desktop -- doesn't really work<br>
on goobuntu.<br>
- Implemented a JDWP command that IntelliJ IDEA required.<br>
-

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )