mirror of
https://github.com/servo/servo.git
synced 2026-05-01 07:14:51 +02:00
Page:
Meeting 2015 07 27
Pages
Adding a new WebIDL binding
Alternative Logo Proposals and Related Swag
Asynchronous WebAssembly compilation project
Austin Oxidation
Autogeneration of style structs
Basic SVG support project
Beginner's guide to rebasing and squashing
Benchmarking
Benchmarks
Bots
Browser Engine Research
Build Errors FAQ
Buildbot administration
Building for Android
Building for Magic Leap
Building for UWP
Building on ARM desktop Linux
Building
CI Services we use
CSS parse error reporting
CSSOM student project
Canvas rendering project
Cargo upgrade service project
Code rust concurrency
Code Review
Code of Conduct
Coding standards
Compiler upgrade recipes
Compositor Layer Design
Contributing
Control Servo using WebDriver
Creating and viewing WARC web archives in Servo
Creating new OpenSSL Windows binary distributions
Cross compiling from linux to mac
Crowbot
Css selector matching meeting 2013 07 19
DOM Design
DOM documentation
DOM missing pieces
Debugging JS web compat issues
Debugging and editing tools
Debugging
Design
Developer tools student project
Devtools CSS errors
Devtools plans
Devtools
Diagnosing SpiderMonkey JIT issues
Eric Atkinson visit 2013 09 10
Events and sundry
Expand HTTP request response monitoring
Fetch improvement project
Firefox Reality release notes
FirefoxReality build
Firewall setup for servo master1
Focus student project
Form validation student project
GSoC project brainstorming
Garbage collected DOM
Getting started with layout
GitHub Labels
Github & Critic PR handling 101
Github workflow
Glossary
Governance
Graphics toolkit integration
HTML parser improvement project
HTMLElement binding conversion
HTTP archive support project
HTTP library requirements
Hawaii Rooting
High priority content for layout
Highfive
HoloLens 2 test plan
Home
How to generate GStreamer binaries for CI
Image load conformance student project
Image maps project
Implement HTML charset parsing project
Implement ImageBitmap project
Implement missing WebAudio automation student project
Implement support for missing XMLHttpRequest APIs
Implement worker modules
Implementing a web standard (RGSoC)
Improve specification conformance of unicode bidi library
Incremental flow tree construction
Infrastructure
Integrate xml5ever
Intern project brainstorming
Intern projects
JS objects, wrappers, and cross origin concerns 2013 08 07
Layout 2020
Layout Overview
Layout resources
Layout revamp ideas
Leo meyerovich visit 2013 07 22
Linux sandboxing
London Oxidation
London Security
Meeting 2014 10 27
Meeting 2014 12 08
Meeting 2012 02 08
Meeting 2012 02 16
Meeting 2012 07 20
Meeting 2013 04 01
Meeting 2013 04 15
Meeting 2013 04 22
Meeting 2013 04 29
Meeting 2013 05 06
Meeting 2013 05 13
Meeting 2013 05 20
Meeting 2013 06 03
Meeting 2013 06 10
Meeting 2013 06 14
Meeting 2013 06 17
Meeting 2013 06 24
Meeting 2013 07 01
Meeting 2013 07 15
Meeting 2013 07 22
Meeting 2013 07 29
Meeting 2013 08 05
Meeting 2013 08 12
Meeting 2013 08 19
Meeting 2013 09 09
Meeting 2013 09 16
Meeting 2013 09 23
Meeting 2013 09 30
Meeting 2013 10 14
Meeting 2013 10 21
Meeting 2013 10 28
Meeting 2013 11 04
Meeting 2013 11 18
Meeting 2013 11 25
Meeting 2013 12 02
Meeting 2013 12 09
Meeting 2013 12 16
Meeting 2014 01 06
Meeting 2014 01 13
Meeting 2014 01 21
Meeting 2014 01 27
Meeting 2014 02 03
Meeting 2014 02 10
Meeting 2014 02 24
Meeting 2014 03 10
Meeting 2014 03 17
Meeting 2014 03 24
Meeting 2014 03 31
Meeting 2014 04 07
Meeting 2014 04 14
Meeting 2014 04 21
Meeting 2014 04 28
Meeting 2014 05 05
Meeting 2014 05 13
Meeting 2014 05 19
Meeting 2014 06 09
Meeting 2014 06 17
Meeting 2014 06 23
Meeting 2014 06 30
Meeting 2014 07 07
Meeting 2014 07 14
Meeting 2014 07 21
Meeting 2014 07 29
Meeting 2014 08 04
Meeting 2014 08 11
Meeting 2014 08 12
Meeting 2014 08 18
Meeting 2014 08 25
Meeting 2014 09 08
Meeting 2014 09 15
Meeting 2014 09 22
Meeting 2014 09 29
Meeting 2014 10 06
Meeting 2014 10 13
Meeting 2014 10 20
Meeting 2014 11 10
Meeting 2014 11 17
Meeting 2014 11 24
Meeting 2014 12 15
Meeting 2015 01 05
Meeting 2015 01 12
Meeting 2015 01 26
Meeting 2015 02 09
Meeting 2015 02 23
Meeting 2015 03 02
Meeting 2015 03 16
Meeting 2015 03 30
Meeting 2015 04 06
Meeting 2015 04 13
Meeting 2015 04 27
Meeting 2015 05 04
Meeting 2015 05 11
Meeting 2015 05 18
Meeting 2015 06 01
Meeting 2015 06 08
Meeting 2015 06 15
Meeting 2015 07 06
Meeting 2015 07 13
Meeting 2015 07 27
Meeting 2015 08 10
Meeting 2015 08 17
Meeting 2015 08 24
Meeting 2015 08 31
Meeting 2015 09 14
Meeting 2015 09 21
Meeting 2015 09 28
Meeting 2015 10 05
Meeting 2015 10 12
Meeting 2015 10 19
Meeting 2015 10 26
Meeting 2015 11 02
Meeting 2015 11 09
Meeting 2015 11 16
Meeting 2015 11 30
Meeting 2016 01 04
Meeting 2016 01 11
Meeting 2016 01 25
Meeting 2016 02 01
Meeting 2016 02 08
Meeting 2016 02 22
Meeting 2016 03 07
Meeting 2016 03 21
Meeting Devtools Servo 2
Meetings
Microdata project
Minutes Hackathon 2012 03 27
Missing DOM features project
More ServiceWorker support project
More developer tools student project
Mozlandia Automation
Mozlandia B2S
Mozlandia JS
Mozlandia Rust In Gecko
Mozlandia WPT
Mozlandia gfx
Mozlando Devtools Servo
Mozlando Oxidation
Mozlando SM Servo
Mozlando Servo Bluetooth
Mozlando Servo MagicDOM
Mozlando Servo SMStrings
Mutation observer project
Mutation testing project
NCSU student projects
Network security project
Off main thread HTML parsing project
Offscreen canvas improvements project
Offscreen canvas project
Orlando Oxidation 2018
Oxidation 2015 11 05
Persistent sessions student project
Preparing ARM libraries for CI
Priority of CSS properties
Priority of DOM implementation
Priority of dom bindings
Private browsing student project
Profiling
Project proposal deadlines
Prototype JS form controls student project
Prototype ways of splitting the script crate
Publishing a new ANGLE NuGet version
Publishing a new app store release
Push vs Pull for caching
Random web content project
Refactor GLES2 student project
Refactor bluetooth support student project
Remaining work
Removing push notifications from IRC hooks
Replace C libraries student project
Report new contributors project
Representation of computed style
Research
Reviewer
Roadmap
Running Web Platform Tests on Servo
Rust HTML parser
Rust SpiderMonkey debugger API
Rust cssparser code walk 2013 08 02
SaltStack Administration
San Francisco Oxidation
Servo Benchmarking Report (December 2024)
Servo Benchmarking Report (November 2024)
Servo Benchmarking Report (October 2024)
Servo Layout Engines Report
Servo and SpiderMonkey Report
Servo for Gecko Developers
Specification Links
SpiderMonkey related tasks
SpiderMonkey infodump
SpiderMonkey upgrade details
Storage student project
Streaming webassembly student project
Strings
Student project brainstorm
Student projects
Styling overview
Stylo hacking guide
Summer of Code 2014: Implement XMLHttpRequest
Summer of Code 2016: Fetch API
Summer of Code 2016: File support
Summer of Code 2016: ServiceWorker infrastructure
Summer of Code projects
Summit meeting 2013 09 09
Support WebDriver based tests project
Syncing web platform tests (WPT)
TaskCluster
Testing
Tools
Tracking intermittent failures over time project
Transcription Notes from Servo Architecture talk in Suwon
Transcription notes from rust patterns talk in suwon
Transcription parallelism
Transcription rust concurrency
Transcription rust runtime
Transription layout and acid2
Trinity College Dublin student projects
UPenn student projects
Updating the Rust compiler used by Servo
Upgrading non taskcluster linux CI machines
Upgrading the UWP gstreamer binaries
Upgrading the windows LLVM binaries
Upgrading wptrunner
Using DOM types
Using Rust Spidermonkey Prototype
Using WebWorker Prototype
Version 0.1
Videos and presentations
WebAudio JS interfaces student project
WebAudio nodes student project
WebCompatBug
WebSocket student project
Webdriver student project
Webdriver tests student project
Webrender Overview
Whistler 2019 notes
Whistler Bugzilla
Whistler FFOS
Whistler GFX
Whistler Houdini1
Whistler Houdini2
Whistler Necko
Whistler Oxidation 2019
Work items for new contributors
Workweek COW DOM
Workweek alt js
Workweek android arm
Workweek boot 2 servo
Workweek compiler lints
Workweek displaylist
Workweek dogfooding
Workweek encoding
Workweek generated content
Workweek governance
Workweek graphics stack
Workweek graphics toolkit
Workweek incremental layout
Workweek js bindings status
Workweek layers
Workweek layers2
Workweek pixels
Workweek rasterization
Workweek reftests
Workweek roadmap
Workweek script crate
Workweek security
Workweek string interning
Workweek tables
Workweek writing modes
XML parser student project
infra triage notes
jQuery status
webxr.today support
No results
1
Meeting 2015 07 27
Lars Bergstrom edited this page 2015-07-27 13:00:21 -05:00
Agenda items
- Time to turn off Critic & its webhook for real? (larsberg)
- Tree closure for e10s (jack)
- CI / e10s issues (jack)
- release / debug mode runs
- bincode status
- intermittents
- Hyper upgrade/OpenSSL issues (pcwalton)
- e10s defaults (jack)
Last week
- Team updates: http://benjamin.smedbergs.us/weekly-updates.fcgi/project/servo
- 53 PRs landed the week of 7/20
- 36 PRs landed the week of 7/13
- HSTS support courtesy of samfoo
- FileReader implementation by farodin91
Attending
- jack, mbrubeck, jdm, larsberg, brson, cimes, laleh, ms2ger, frewsxcv, manish, simonsapin, dherman
Turning off critic
- larsberg: I saw it confuse a new contributor. I think we just wanted to wait until things were done. Can we at least turn off the webhook?
- jack: Yeah, off for new reviews.
- larsberg: Will do.
Tree closure for e10s
- jack: pcwalton sent a message to the list.
- pcwalton: Since I sent it, about half of the areas listed e10s has landed. Thanks to all who helped with it! Areas unblocked are canvas, webgl, storage task, devtools (pending current PR landing), and image cache task. Remaining: resource task, devtools (if it bounces), and displaylist. Hopefully displaylist in soon.
- jack: I think everybody was fine, but let's get it landed ASAP. Can you send an update to dev-servo?
- pcwalton: Sure. I suspect the worst is over, because resource task is sorta generic and not being touched much now.
- jack: Only simon's rustup appears blocked...
- jdm: There are a couple of others, too.
Hyper
- pcwalton: Hyper upgrade is blocked because there was an OpenSSL change, and it picked something up that broke gonk. I know mbrubeck was looking into this. Plan?
- mbrubeck: https://github.com/servo/servo/pull/6740#issuecomment-125273818. Problem is that our builders don't have the OpenSSL headers in the gonk image.
- larsberg: I can update those.
- pcwalton: That should be it.
Intermittents
- pcwalton: Canvas issue. Probably will go away once we have bincode. It's probably the result of serialization being too slow and causing a timeout. We had a lot of test issues when IPC channel was leaking file descriptors, but that's fixed.
- jdm: I filed two separate canvas timeouts. There are also at least two other timeouts with odd log messages. Maybe don't point at the IPC stuff, but they all happened since then? The Canvas ones are very frequent and blocking many things right now. Frustrating either disabling them or leaving the intermittent.
- pcwalton: Maybe LONG timeout for them?
- jdm: Can try it.
- jack: Let's try that. Otherwise, does WPT have a way to say they're intermittent to not gate on them? Like we have on reftests?
- jdm: That's just disabling them, effectively.
- jack: What's the story with bincode?
- pcwalton: Not sure. Erickt had something ready, but he's very busy right now. He's the only maintainer on serde, unfortunately. He's splitting it into two parts: first API changes for bincode and then merging it. He has an RFC for users about the API changes, which has positive feedback. Long-term, unless his schedule frees up, one of us will have to help maintain it.
- jack: Worried about our perf numbers for reporting right now. If we're landing with big perf regressions, this is not optimal.
- pcwalton: I'll get in touch with erickt as soon as I can. If nothing else, there is a fork of serde with bincode that we could just fork to or git-depend on.
- jack: Change every dependency?
- pcwalton: Yes. Not ideal. Just depends on the type of benchmark you're doing. Mainly displaylist serialization, which we will not use anyway for the single-process version. I have a tentative long-term plan, but not doing it for now. Mainly see issues when we have a lot if issues or are benchmarking network/localstorage/canvas/webgl performance. Also not entirely clear that it'll be enough for webgl+canvas and may have to buffer.
e10s default
- jack: Should it be on by default?
- pcwalton: No. The displaylist perf issue is too bad to turn it on by default now. I have a plan, but before I can even do that we need bincode support. Until then, no multiprocess by default. We will want single process in perpetuity, even if only for debugging.
- jack: Need it anyway; some of our partners want single-process deployments of Servo.
- pcwalton: Shouldn't be a challenge. The spawn code is ~10 lines in constellation.rs, so there isn't a huge fork. Equally important is the no sandbox mode, since you can't debug if it's sandboxed. Should start to run tests on multiprocess / tests, though. Reviewers should be watching for forbidden syscalls in the content process.
- jdm: Please write that down and send it to the mailing list.
- jack: Is there a guide in the e10s patch?
- pcwalton: Doc is scattered. script+layout are in one process; everything else in the other, with IPC channels in between. There's doc in the readme for the IPC stuff. No rustdoc comments yet, though. The API is still pretty high-churn while we figure out if everything is working for Servo. There is a design doc / readme, though. There's also a readme in
gaol, which is the sandboxing stuff, that explains how all that works on OSX and Linux. This is a cross-platform sandboxing library. - jack: At least need an unscattered version of what the architecture is.
- pcwalton: I'll send something to the list and put it on the wiki.
- jack: Yes.
release vs. debug
- larsberg: There were failures when I switched us from dev to release WPT builders. I want to spin up and test both. Do we understand what's going on with the dev-only & release-only failures and especially the differences.
- jdm: Not totally understood yet.
- pcwalton: I profiled on linux. We have a lot of timeouts. There's a bunch of code for reassembling network fragmented packet reassembly, and in debug the Rust code is impossibly slow. Ultimately, I'd like to see Cargo be able to build an optimized IPC channel implementation even in a dev/debug build. IPC channel does have a unit test suite to cover the lack of coverage of debug IPC channels.
- brson: IPC channels are generic, right?
- pcwalton: Yes.
- brson: Selective optimization is going to be way more complex than that...
- pcwalton: The guts are not generic, though. It's just over
bytebuffer<u8>. Good point, though! - jack: Would also be weird if we relied on cross-crate inlining, but that's not the case here.
- pcwalton: I submitted a patch, but it was r-'d by the Core Cargo Team and needs more work.
- simonsapin: To work around this kind of limitation, we can run cargo with the RUSTC variable set to a script. We already do this for rustdoc to build docs with private items.
- jack: Seems reasonable to compile it separately and see if that fixes WPT. If so, we can put the workaround in and work with the Cargo team to figure out how to solve this.
- pcwalton: I think I know how they want it solved - there's a sketch in the PR. But it's not high-pri. Popping the stack, there's another issue where the class inheritance hierarchy of JS objects seems to depend on the optimization level that script was compiled with. Which is concerning.
- jdm: There's a test where the result changed from pass to fail that just checks the prototype of the image element and constructor. I'm going to look into that.
- jack: That's terrifying.
- pcwalton: Yes.
- jack: Do we turn something off in SM or the bindings when we compile with optimization?
- jdm: Hard to answer.
- manish: If it's in inheritance, that whole model uses UB. We assume struct layout is constant, but if Rust does any optimizations, it would break that...
- pcwalton: I don't think so.
- jack: Can't we just
repr(C)to fix that? - manish: Yeah, we could do that.
e10s wrapup
- pcwalton: Thanks everyone for your patience getting e10s landed.
- larsberg: Do we have any lints or static checks to ensure we don't do non-e10s-friendly things in the future?
- pcwalton: There are two ways things can go wrong. You could add new non-serializable things to existing messages. derive(Serialize) will catch that. The other way it can wrong is adding entirely new channels between content and chrome that aren't IPC channels. Once we are running with IPC enabled, that will cause failures too. So the type system should be preventing any radically non-e10s-safe things from landing. I would like to run tests in e10s mode at some point, but just having it built will go a long way.
- jack: Can you file a bug to add e10s tests, just so we don't forget it?
- pcwalton: Sure.
- jack: If we don't prioritize the work to make this the default mode, it's likely to stay slow and be a second-class-citizen.
- pcwalton: From a big picture view, the most challenging part will be making the display list fast. Other browsers have proven that overall e10s is not that big an issue, but display lists are the tough part. I think we can do it, but SkPicture serialization time is essentially an unsolved problem, not just for us but for Chromium too.