forked from servo/servo
-
Notifications
You must be signed in to change notification settings - Fork 0
Meeting 2012 02 08
fzzzy edited this page Feb 22, 2012
·
4 revisions
Brian, Patrick, Alon, Donovan, Dave, Niko, Boris, Brendan
- Donovan: got networking half-working
- Patrick: priority #1: calling from C to Rust; need to get graphics up and running; needs OS event loops which need to call into Rust
- Donovan: how does libuv even work with SDL?
- Patrick: two event loops
- Donovan: ew?
- Brian: it's good -- separate GUI event loop from I/O
- Alon: that's a problem we have now, so this is better
- Donovan: windowing approach?
- Patrick: native on all platforms
- Donovan: sounds scary
- Patrick: not necessarily; I like the modern Chrome approach; major stuff looks native, and other stuff implemented like nested tabs
- Alon: lot of work
- Patrick: basically talking about menus, address bar, tabs
- Dave: want to build UI with HTML/JS
- Patrick: well, it's canvas
- Dave: yeah, but want to implement front-end stuff in JS, not in Rust
- Donovan: Qt, GTK, ...?
- Patrick: native; only Opera uses a lib (Qt), and it's tough
- Alon: could we keep in thin?
- Boris: platform integration is the stuff we really need; events, opening windows; may be able to lift just that out of Gecko; I'd rather not reinvent that
- Patrick: do we care about plugins? if so we have to go native
- Alon: well, maybe SDL, just to get up and running
- Dave: time out: I'd like to get a game plan in this meeting
- Patrick: should we set a concrete goal?
- Niko: Wikipedia
- Dave: why don't we shoot for Q3 -- we'll get good progress over the summer with help from interns, and that gives us another quarter to push after that
- Patrick: it's a stretch, but stretches are good
- Niko: BZ, what do you think?
- Boris: that will need a lot of stuff; we may find some distractions in Wikipedia that take a lot of time but aren't interesting
- Dave: that's fine; we can remove them to get a demo standing up
- Donovan: intermediate goals: 1) command-line browser, 2) canvas
- Patrick: canvas is a simple milestone
- Alon: not needed for Wikipedia
- Patrick: but good test for graphics
- Niko: what's a command-line browser?
- Donovan: like lynx
- Dave: sounds like a distraction
- Donovan: I disagree, it's not hard
- Niko: well, maybe if it's truly simple
- Donovan: yeah
- Dave: only if it doesn't take any time to polish something that isn't actually part of the goal
- Alon: series of HTML files building up to Wikipedia?
- Niko: BZ, do you have real-world examples that make for nice orthogonal tests?
- Boris: not off-hand; google.com front page used to be but not anymore; plain text file is a stepping stone
- Dave: we can build tests around what we implement, right? like opcodes in a compiler
- Boris: well, pieces of the platform are not as compositional as opcodes, so you have to think about how they interact more
- Niko: the "spike" approach to compilers: think of one interesting spike from top through bottom of platform, build what you need to make it work, stub out the rest
- Boris: y
- Niko: we can take Wikipedia and start eliminating
- Niko: where should we start?
- Donovan: Michael B has his thing that uses SDL, which he used to render Broadway
- Patrick: I would start with window + events
- Donovan: 1) networking, 2) SDL, 3) Azure
- Patrick: those can be worked on simultaneously
- Donovan: networking's mostly done
- Patrick: will need to be redone when libuv stabilizes, but for now that's good
- Donovan: yeah, libuv is still pretty unstable
- Patrick: need shadow DOM
- Boris: layout data structures are separate; there's not a 1:1 mapping between shadow DOM and layout
- Niko: these goals don't include the core problems! i.e., parallel layout
- Boris: there's data flow and execution flow
- Niko: ISTM that BZ is one of the few people in a position to validate such a design
- Boris: I have thoughts on pipeline parallelism, but not as much on dataflow parallelism; don't know enough about Rust yet -- would love to talk with people about that
- Niko: don't think too much what Rust can currently do; think about the hardware and what you need, and we'll see what Rust needs to do to support you
- Donovan: my goal for a month or so is to have the net stuff solid, maybe some Azure stuff
- Patrick: I thought we want SDL for now
- Patrick: big picture:
- DOM.js + shadow DOM
- frame tree
- layers
- rendering engine in the back
- Patrick: good to get a plan of how those'll be implemented; gonna need frame tree in Rust
- Niko: that's detailed enough for now; I'll work on it with BZ
- Donovan: I'm more interested in low level stuff, happy to let you guys drive the high level parallel algorithms
- Boris: I don't know graphics enough; cjones?
- Patrick: I have more experience with that now after working on Fennec
- Donovan: have folks read the Berkeley paper? (http://www.eecs.berkeley.edu/~lmeyerov/projects/pbrowser/)
- Dave: as we go along, think about what platform elements we could throw out for better perf, or back off to slow paths
- Boris: sure
- Patrick: also do that in the open! don't surprise people with silently breaking compat, but turn it into a conversation
- Dave: and make sure to have an alternative that works better; don't just wantonly remove functionality
- Donovan: should discuss Rust-SpiderMonkey bindings
- Brian: put it in Cargo, good stress test for Cargo
- Donovan: I have
test.rs
, which starts an actor for each command line argument; uses DOM.js parser - Brendan: do we have
WeakMap
andProxy
overload? - Donovan: should ask David
- Boris: with private names we could improve the performance
- Donovan: still need proxies
- Dave: isn't
document.all
the one thing we can't virtualize? - Boris: yes, it acts like a falsey object
- Brendan: ah yes, "masquerades" as undefined
- Boris: I have some data on proxies: roughly 1 microsecond hit per property access; but if we control the proxy we can eliminate a lot of extra checks we know aren't needed
- Brendan: I've been talking about Servo with yearly goals; aim for the future
- Brendan: before summer, want to see what Ras and Leo have done; let's all make sure to read their papers
- Boris: send links to papers?
- Brendan: I'll do that
- Patrick: we should do fish tank demos
- Brendan: yes. need both sizzle and steak
- Boris: I'll be in SF in late March for work week; we can do more whiteboarding then