Tamarin:WeeklyUpdates: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 12: Line 12:
* TBD
* TBD


= November 11, 2008 =
= November 18, 2008 =


== Attendees ==
== Attendees ==


* Intel: Moh, Shengnan
* Intel: Moh, Shengnan
* Mozilla: Andreas, Jim Blandy, Jeff, Rick
* Mozilla: Andreas, Jim Bland
* Adobe: Edwin, Steven, Vladimir, Tom H, Leslie
* Adobe: Edwin Smith, Steven Johnson, Tom Harwood, Leslie, Lars, Jeff Dyer, Rob Winchell, Rob Borcic, Trevor Baker, Dan Schaffer, Brent Baker, Dan Smith, Rick Reitmaier, Rishit Shah, Tom Reilly


== Agenda Items Discussed ==
== Agenda Items Discussed ==
* Meeting Logistics (Leslie)
* Power PC Status (Dan Smith)
* Verifying the Code Generator (Jim Blandy)
* Tamarin Redux integration into Tamarin Central status (Lars, Edwin)  
* Proposal on Creating a Shared NJ Repository (Edwin)
* Out-of-memory handling  (Tom Reilly)
* Regular Expression Compilation (Andreas)


== Updates ==
== Updates ==
=== Meeting Logistics (Leslie)===
=== Power PC Status (Dan)===
* Weekly meetings to move to Tuesdays at 1:00 ET starting next week, 11/18
* Engineer that was working on this has left Adobe. Need a new schedule and need to see who will actually do the work. Dan to check in with Rick to see if there is anything that can be posted on Mozilla.  
* Details to be sent to list and updated on the wiki by the end of this week.  


=== Verifying the Code Generator (Jim Blandy)===
=== Tamarin Redux Integration into Tamarin Central (Lars/Edwin) ===
* Jim came up with this idea while watching Andreas hunt down bugs in TraceMonkey
* There may be integration from TC into Redux before we merge back.
* The verifier would pass over the code and verify that all operations being performed are being done on appropriate types
* Goal is to have stable code by Friday
* We have a type map that shows what kinds of values are in what places. The verifier would propagate those types forward and it would know the layout of the object. If we found ourselves arriving at some type info, we could verify the type map.  
* Plan is to do this integration every 1-2 months depending upon pressure. Goal is to do these releases for TC to be very stable.
* Reference: George Necula's Proof Carrying Code project
* Tom Reilly wants to get all profile stuff into TR. Tom to do this by Friday. It should always be based upon Redux. No reason to not get memory profile stuff to get into redux by Friday (risk is minimal). The only risk if there is a problem with the merge. Determine what it would take to get it tested so we can get it in as soon as possible.  
** Provides type annotations for arbitrary machine code. Interesting thing, he found that he caught lots and lots of compiler bugs.  
* There are ARM changes pending that will not make it into this release so there will probably be another release prior to December.  
* If the verifier had a type system that was sound, we could ensure that the compiler was not generating code that was unsound.  
* Proposal is to have a monthly release.
* Here is the bug associated with this idea: [https://bugzilla.mozilla.org/show_bug.cgi?id=463137 Bug 463137] (TM: TraceMonkey should verify the compiler's output)
* Once the merge is complete, we will use tags to identify releases. Lars will tag it as version 1 (as no naming scheme has been determined yet.)
* Things that Belongs in nanojit
* Master branch set up for nanojit – everyone agreed to it, we just need to agree on top level layout.  Maybe we created a shared stuff repository and nanojit would be part of it. Someone just needs to push this forward. We will get back to this in December.
** Machine code disassemble back to LIR
* We will not turn on LIR for this release.  
** Walk LIR things and keep track of how types are moving around.  
* Next release will have ARM turned on by default, too risky for this release. Passes test, but not robust enough just to turn everything on.  
* However, Nanojit is being used by several different projects (TC, TM, Regular expression compilation).  So the sort of types for this verification would be different in each case. It seems to Jim Blandy that the type system that the client of nanojit provides and nj would make callbacks into type system to do the right thing.  
 
* NJ would have all knowledge of what LIR needs and client would have knowledge of types that the code is operating on.  
=== OOM Handling (Tom Reilly)
* Feedback:
* Spec is done, just need to officially sign it off.  
** As long as nj can propagate types along copies the only place they get removed from models is function types
* Initial work for Active X was done so we actually exit instead of crash
** 1 thing to explore is introducing a type for an object where
* First 15% done
** Long haul having nj having concept of objects with layouts
 
* Come up with minimal types to cover what nanojit needs to know (probably put in an interface as opposed to nail down a data structure.)
=== Quality Engineering (Trevor Baker) ===
* Ed ran across a paper to verify the reconstructed IR he will post to channel
* Updated performance tests to validate results. Incorrect output will fail the build. There is one more patch that needs review.
* We might want to look at more automated generation of the emitter code.  
* Changed (debugger builds) now watching for assertions and tracking exit codes. Today only producing a warning. Two  bugs tracking assertions (powerpc and Linux) once these are resolved they will change it to fail
* Everyone was in agreement that Jim should move forward with this.  
* Size report working on both TC and Redux on Windows Desktop, Data is going into a DB ,but you see it in a waterfall report. Eventually there will be a separate report for that so you can compare builds.  
* Jim may have it done by 11/12/08.
* Also ported chrome v8 test suite (ultimately it will be created as a report by next week’s meeting)


=== Proposal on Creating a Shared NJ Repository (Edwin)===
* Edwin asked for feedback on Graydon's proposal to create a shared nanojit repository.
* All felt that the concept was a good one and agreed to go for it.


=== Regular Expression Compilation (Andreas)===
* Requires small changes to nj
* Andreas found it to be 4-5x speed up over regular interpreter
* Andreas asked if we were willing to take patch to nanojit? ANSWER: Yes.
* Does it make sense to share the regex compiler itself or just the infrastructure? No harm with code being in nj. Okay with either way, as long as nj is free of spider monkey dependencies. PROPOSAL: Put it in a shared place and use it as a test.
* We want a repository of shared components and nanojit is just a piece of this.
* Andreas to work with Graydon to push changes into nanojit
* Should guard records be in LIR buffer? Maybe move back into native code.
** Decision: Move it back into native code. It is important to generate code and throw the LIR away. Guard record will no longer be patchable.
* Next Steps:
** Andreas to work with Graydon to sumbit guard record shrinking
** Then put guarded records back in native code
* Edwin suggested refine placement of guard records
** Andreas played around with this and it did not make an impact on performance.) Now you can get rid of two code streams, it would simplify the assembler.
* Both patches are up there (they are mutually exclusive).


= Older meetings =
= Older meetings =

Revision as of 16:00, 24 November 2008

These updates concern Tamarin and related projects only.

Meeting Details (Changed as of 11/18/08)

  • 10:00 AM Pacific Time (18:00 UTC) on Tuesdays
    • 1PM Eastern US, 7PM Oslo, 3AM (Wed) Seoul, 5AM (Wed) Melbourne
  • Location: Tel: 877-220-5439 (US & Canada), +1-408-536-9900(International)
    • Meeting Place ID: 2000
  • join irc.mozilla.org #tamarin for attendance taking and questions


Next meeting's Agenda Items:

  • TBD

November 18, 2008

Attendees

  • Intel: Moh, Shengnan
  • Mozilla: Andreas, Jim Bland
  • Adobe: Edwin Smith, Steven Johnson, Tom Harwood, Leslie, Lars, Jeff Dyer, Rob Winchell, Rob Borcic, Trevor Baker, Dan Schaffer, Brent Baker, Dan Smith, Rick Reitmaier, Rishit Shah, Tom Reilly

Agenda Items Discussed

  • Power PC Status (Dan Smith)
  • Tamarin Redux integration into Tamarin Central status (Lars, Edwin)
  • Out-of-memory handling (Tom Reilly)

Updates

Power PC Status (Dan)

  • Engineer that was working on this has left Adobe. Need a new schedule and need to see who will actually do the work. Dan to check in with Rick to see if there is anything that can be posted on Mozilla.

Tamarin Redux Integration into Tamarin Central (Lars/Edwin)

  • There may be integration from TC into Redux before we merge back.
  • Goal is to have stable code by Friday
  • Plan is to do this integration every 1-2 months depending upon pressure. Goal is to do these releases for TC to be very stable.
  • Tom Reilly wants to get all profile stuff into TR. Tom to do this by Friday. It should always be based upon Redux. No reason to not get memory profile stuff to get into redux by Friday (risk is minimal). The only risk if there is a problem with the merge. Determine what it would take to get it tested so we can get it in as soon as possible.
  • There are ARM changes pending that will not make it into this release so there will probably be another release prior to December.
  • Proposal is to have a monthly release.
  • Once the merge is complete, we will use tags to identify releases. Lars will tag it as version 1 (as no naming scheme has been determined yet.)
  • Master branch set up for nanojit – everyone agreed to it, we just need to agree on top level layout. Maybe we created a shared stuff repository and nanojit would be part of it. Someone just needs to push this forward. We will get back to this in December.
  • We will not turn on LIR for this release.
  • Next release will have ARM turned on by default, too risky for this release. Passes test, but not robust enough just to turn everything on.

=== OOM Handling (Tom Reilly)

  • Spec is done, just need to officially sign it off.
  • Initial work for Active X was done so we actually exit instead of crash
  • First 15% done

Quality Engineering (Trevor Baker)

  • Updated performance tests to validate results. Incorrect output will fail the build. There is one more patch that needs review.
  • Changed (debugger builds) now watching for assertions and tracking exit codes. Today only producing a warning. Two bugs tracking assertions (powerpc and Linux) once these are resolved they will change it to fail
  • Size report working on both TC and Redux on Windows Desktop, Data is going into a DB ,but you see it in a waterfall report. Eventually there will be a separate report for that so you can compare builds.
  • Also ported chrome v8 test suite (ultimately it will be created as a report by next week’s meeting)


Older meetings