node call notes

2013-11-26

ben

  • lowlevel bindings for heap profiling etc pretty much finished
  • higher-level stuff up for debate
    • Decision: Don't ship a higher-level API (or at least, not much of one) and let userland iterate on it through 0.12

bert

  • rebased spawnSync, works again, and works, but no docs and tests still
    • isaacs to finish execSync, write docs
    • tj to write tests
  • Noticed that some internal stuff is not multicontext stuff
    • strings are isolate-specific, not context-specific, can have multiple contexts in one isolate
    • eliminating node_isolate is on the todolist, but not done yet

fedor

  • TLS issue with npm??
    • EOF is happening, but then some more data is emitted
  • cluster.distribute() API
    • ben suggested waiting until RR itself is more tested.
    • fedor: yandex wants it, personally I can wait
    • RR doesn't work on windows, Alexis might fix it
    • Decision: Wait until after 0.12

scott

  • worked on slight improvement on Windows build system.
  • bert did some exploration on libuv build system, scott can't get it to work yet, trying on another machine
  • Alexis is working on unit tests.
    • joyent/node#6565
  • someone commented on bert's joyent/libuv#1003, doesn't work on VS Express
    • scott says he will do his tests on express
    • bert: we're duplicating gyp's logic, badly.
  • TJ had talked about moving more of the logic between vcbuild.bat and Makefile into a single place, for consistency

isaacs

- working on npm registry stuff

  • debugger test failures

tj

  • working on TLS bug
  • sent email, setting up core-team meetup for February
  • get us all together and talk about 1.0
  • ben: feature request, can we have FreeBSD build bot back?
    • tj: yes, but we won't be able to compile 32 bit
    • ben: 32 bit doesn't matter anyway, and someone in #Node.js is willing to submit an OpenBSD build bot
    • tj: openbsd needs to start the jenkins bot manually, but because of the tty tests, has to be run in a tty

ben

  • strongloop, minor fixes
  • tj asks: add timer for libuv tests? test runner views as failures, but processes are hanging around.
  • ben says: test runner should kill, bert should fix, since windows only

bert

  • strongloop, hacking on tasks, will show trevor
  • tj brings up windows test failures
  • scott suggests bert meet alexis (full time node guy in spain)
  • invite alexis to this call, bert would prefer not to work on windows tests
  • fedor: fixing fsevents in libuv

fedor

  • reviewing fsevents stuff
  • https://github.com/joyent/node/pull/6466
  • tj asks to change tls chunk size

trevor

  • async listener: got "done" thing for handles, but not for nextTick or timeouts
  • add c++ callback API for async listener? less overhead, maybe more useful.
  • tj: this is somethign we're doing for internal stuff, or for module authors
  • not necessarily, just part of AsyncListener API
  • tj: suggest using an enum so that this API could be useful for other things.
  • gets us halfway to getting us to FFI.

tj

  • trying to work through Eran Hammer's Walmart memory leak
  • related to very slow memeory leak that trevor was tracking down
  • V8 object heap is not growing, but native heap IS growing
  • allocations coming from HandleScopes. HandleScope goes out of scope, and should be deallocated, but it sticks around. Leak in V8?
  • Working with Claudio on Azure VMs for doing windows things
  • deploy the largest Azure VMs that can get our hands on, cost Msft a bit of $$
  • weekly cadence releases
  • izs to do npm release, then v0.10 and v0.12 tomorrow

new node guy at msft: alexis, from spain windows build fails on master on windows 2 ways to build: 1. one way works great for core, not great for anyone who depends on objectwrap 2. ugly, lost ben's confidence, apply copyable trait to persistent pointers we're carrying around. makes ow build for everyone.

bnoordhuis: multicontext ready to land, will post pull req, isaacs agreed to review. piscisaureus: spawnSync with simple test, needs polished test, bert wil do after nodeconf indutny: did tls.renegotiate. ben to review sblom: windows tj: closing pipes on the way out, random nodeconf stuff. ned to release 10 and 11 tomorrow

Weekly "North House Day" for each core committer review processes decision on macros: put off until post v0.12 meeting: have a topic to discuss write scrumlord bot for status updates

cluster distribute API

node call 2013-07-09

Question: Would we implement the JSAPI?

Trevor

  • Waiting to see how the api goes
  • Could be a bolt on

Isaacs

  • We've never guaranteed the v8 api
  • the 0.12 change is severe, worst change yet
  • when we dropped eio and ev we added compat shims
  • if we're going to add a shim for 0.10 and 0.12 we might as well specify the full api

Scott

  • if we push the api decision until 1.0, we have less time to bake the API itself

Isaacs

  • Binary addons suck, already, building is hard
  • We could just release 0.12 on some date, and have a list and things that get done are done, and that's what v0.12 is

Nate

  • what is the list of 0.12?

Isaacs

Trevor

 - stop so many boundaries jumps for http and its parsing header

Nate

  • building node with openssl disabled
  • wants to expand the matrix builds configuration for our builds
  • is there a plain text npm mode?   - just set the registry url to plain text
  • will have more time this week and weekend

Scott

  • 0.12 to rally support for the tests working on windows

TJ

  • libuv dtrace autotools
  • fixed some tests
  • working on the api shim
  • will be doing releases

Trevor

  • working on the http parser fixes
  • https://groups.google.com/forum/#!msg/v8-users/6kSAbnUb-rQ/y2E-dYPHh80J
  • Buffer.dispose  - won't dispose until all slices are gone
  • fs.write* changes to make writing strings faster needs reviewed  - joyent/node#5747
  • looking for other places to avoid the multiple boundary jumps  - like may specific cases for pipe
  • making string encoding pass through the levels    

node call 2013-07-02

ben

  • switched libuv to auto tools (ugh, but lots of benefits)
  • upgrading to V8 3.20, code changes (changing Persistent, Local, etc.)
  • patches for bert to look at, errors and bajtos' patch

bert

  • landed henryw's stdio stuff
  • want to do another way (uvwritesync)
  • execSync

isaac

  • nodeconf
  • need to do 0.12 list
  • push for review of http-better

tj

  • mostly at nodeconf
  • cleaned up some stuff
  • full nightly test 1/3 builds hangs
  • a node bug that we fixed later
  • updated Jankins slave node version
  • filed 5772 pull req, https already finished issue.
  • update build slave re autotools
  • rsync endpoint for nodejitsu /dist
  • documentation re dtrace/stap/etw probes

trevor

  • finished https://github.com/joyent/node/pull/5747 needs review/cleanup. 20-25% faster utf, twice with ascii or UCS2
  • waiting for review with SlabBuffer, isaacs and bnoordhuis

node call 2013-06-252013-07-02

ben

  • switched libuv to auto tools (ugh, but lots of benefits)
  • upgrading to V8 3.20, code changes (changing Persistent, Local, etc.)
  • patches for bert to look at, errors and bajtos' patch

bert

  • landed henryw's stdio stuff
  • want to do another way (uvwritesync)
  • execSync

isaac

  • nodeconf
  • need to do 0.12 list
  • push for review of http-better

tj

  • mostly at nodeconf
  • cleaned up some stuff
  • full nightly test 1/3 builds hangs
  • a node bug that we fixed later
  • updated Jankins slave node version
  • filed 5772 pull req, https already finished issue.
  • update build slave re autotools
  • rsync endpoint for nodejitsu /dist
  • documentation re dtrace/stap/etw probes

trevor

  • finished https://github.com/joyent/node/pull/5747 needs review/cleanup. 20-25% faster utf, twice with ascii or UCS2
  • waiting for review with SlabBuffer, isaacs and bnoordhuis

node call 2013-06-252013-07-02

ben

  • switched libuv to auto tools (ugh, but lots of benefits)
  • upgrading to V8 3.20, code changes (changing Persistent, Local, etc.)
  • patches for bert to look at, errors and bajtos' patch

bert

  • landed henryw's stdio stuff
  • want to do another way (uvwritesync)
  • execSync

isaac

  • nodeconf
  • need to do 0.12 list
  • push for review of http-better

tj

  • mostly at nodeconf
  • cleaned up some stuff
  • full nightly test 1/3 builds hangs
  • a node bug that we fixed later
  • updated Jankins slave node version
  • filed 5772 pull req, https already finished issue.
  • update build slave re autotools
  • rsync endpoint for nodejitsu /dist
  • documentation re dtrace/stap/etw probes

trevor

  • finished https://github.com/joyent/node/pull/5747 needs review/cleanup. 20-25% faster utf, twice with ascii or UCS2
  • waiting for review with SlabBuffer, isaacs and bnoordhuis

node call 2013-06-252013-07-02

ben

  • switched libuv to auto tools (ugh, but lots of benefits)
  • upgrading to V8 3.20, code changes (changing Persistent, Local, etc.)
  • patches for bert to look at, errors and bajtos' patch

bert

  • landed henryw's stdio stuff
  • want to do another way (uvwritesync)
  • execSync

isaac

  • nodeconf
  • need to do 0.12 list
  • push for review of http-better

tj

  • mostly at nodeconf
  • cleaned up some stuff
  • full nightly test 1/3 builds hangs
  • a node bug that we fixed later
  • updated Jankins slave node version
  • filed 5772 pull req, https already finished issue.
  • update build slave re autotools
  • rsync endpoint for nodejitsu /dist
  • documentation re dtrace/stap/etw probes

trevor

  • finished https://github.com/joyent/node/pull/5747 needs review/cleanup. 20-25% faster utf, twice with ascii or UCS2
  • waiting for review with SlabBuffer, isaacs and bnoordhuis

node call 2013-06-252013-07-02

ben

  • switched libuv to auto tools (ugh, but lots of benefits)
  • upgrading to V8 3.20, code changes (changing Persistent, Local, etc.)
  • patches for bert to look at, errors and bajtos' patch

bert

  • landed henryw's stdio stuff
  • want to do another way (uvwritesync)
  • execSync

isaac

  • nodeconf
  • need to do 0.12 list
  • push for review of http-better

tj

  • mostly at nodeconf
  • cleaned up some stuff
  • full nightly test 1/3 builds hangs
  • a node bug that we fixed later
  • updated Jankins slave node version
  • filed 5772 pull req, https already finished issue.
  • update build slave re autotools
  • rsync endpoint for nodejitsu /dist
  • documentation re dtrace/stap/etw probes

trevor

  • finished https://github.com/joyent/node/pull/5747 needs review/cleanup. 20-25% faster utf, twice with ascii or UCS2
  • waiting for review with SlabBuffer, isaacs and bnoordhuis

node call 2013-06-25

  • v0.11.3
  • 'finish' not finishing - can't be fixed in 0.10

fedor

  • experimenting with rust
  • tls_wrap
  • give some love to libuv thread pool impl

trevor

  • wip slab allocator pull req
  • small perf reg in http
  • better solution is to override the callbacks in the stream wrap
  • obejcts created in c++
  • more beneficial to get data in C++ layer, and keep until we have entire headers, then pass to http parser, no back-and-forth through JS
  • a lot easier with this pull req in
  • make bench-http, shows ~10-15% reg, but decreases down to 3-5%
  • going to start working on writing strings out directly instead of converting to a buffer for fs
  • allow propagate encoding all the way to stream callback layer, to avoid buffer creation

tj

  • fixed detecting 64bit properly for StringBytes refactor
  • working mostly on Joyent Manta stuff
  • windows and master are kind of a disaster

node call 2013-06-11

Isaac

  • doing some releases
  • url security bugs
    • waiting on confirmation that persona is not vulnerable
    • writing blog post today
  • npm signing stuff with ssh keys
    • step 1 email change security

Ben

  • caught a turtle/tortoise
  • libuv error handling, removing uvlasterror()
  • centos eof busy loop still reproducible
    • best fix has some subtle changes to existing behavior
    • or a cheap hack to work around

Bert

  • Henry's stdio sync pipe/flush issue
    • reworking the way bert wants it
  • make libuv for windows support apcs
    • cluster round robin doesn't work on windows
    • requires a different event loop

trevor

  • StringBytes new v8 api
  • ExternalStrings mechanism
    • utf8 still sucks because it interprets
    • from1byte works like binary strings (2x as fast as ascii encoding)
  • v8 + gc pressure has a magic value that starts to slow things
  • review joyent/node#4964
  • clang 3.3 and v8 <= 3.14 possible miscompile

Fedor

  • tls_wrap joyent/node#5645
    • adding hooks into StreamWrap interface
    • allow descendent classes to pipe data straight into binding
  • CryptoStream deprecation?
    • we could util.deprecate CryptoStream
  • there's a small race trying to get STARTTLS right if the previous wrap was still reading

Scott

  • help facilitate stdio issue
  • have time this thursday and friday for node

TJ

  • worked some on tls_wrap but Fedors work supersedes that
  • refactor path to allow you to access platform specific methods
  • pkgsrc rule creates useful packages

node call 2013-06-04

Isaac

  • url.parse security issue
    • fixed in 0.8.24 waiting for release
    • 0.10.10 scheduled for release today
      • including streams readadble unshift fix
  • npm stuff
    • package signing with ssh keys
    • locking down account changes
    • hopefully done before end of year
  • joyent IT is creating security@nodejs.org and various other addresses

Trevor

  • Buffer joyent/node#4964 changes still needs review
    • removal of the slab allocator
    • easier to have discrete memory on a request
    • potentially using setEncoding directly in StreamWrap
    • Leads to being able to use External Strings which have a lot of perf
    • maybe use this for .toString on larger buffers
  • fs.write removing the buffer coercion step for writing strings
  • Look into different v8 string constructors
  • Preliminary setting http parser object properties in JS
    • increased perf but add complexity
    • ultimately not where the time is spent

Nathan

  • at jsconf being social and networking and what not

Scott

  • did some node stuff, about a day a week
  • post processing for etw tracing
  • likes to work from a triage list
  • will be going to nodeconf
  • sync stdio review
    • working with Henry on getting to match the api
    • process.std.sync = true|false
    • process.std.writeSync
    • windows sender owns the pipe buffer, so you can still lose 1k after the sender quits

Ben

  • Multiple contexts for github
    • github wants to embed node into chrome
    • want each window to have its own "node"
      • but not full isolate or process
    • separate require caches
    • remove globals like process._errno
  • fixing bugs and issues
  • #5504 centos busyloop
    • fairly sure it's a node.js bug
  • walmart hitting CLOSE_WAIT bug

TJ

  • tls_wrap
    • basically something along the lines of tls.start(socket) where you can pass in any Wrap
  • linestream for readline
  • pkgsrc makefile rule

node call 2013-05-28

Fedor

  • TLS issue: some incorrect streams2 behavior. fix has slight perf regression. isaacs will review/advise
  • Correcting TLS shutdown error handling
  • Playing with Rust

Bert

  • Working on libuv window dequeue
  • TLS destroy() not destroying underlying socket
  • Reviewing the security issue Fedor fixed

Ben

  • Fixing Bugs
  • code cleanup in net.js
  • planning on reviewing buffer stuff
  • Discuss pull req for beforeExit event

Trevor

  • Waiting for reviews on Buffer impl changes to get in 0.12
  • Bufer.dispose()
  • Discussion of external memory hinting and performance implications

isaacs

  • 0.10.9
  • Will start v0.10-to-v0.12 wiki soon
  • working on http.Agent changes. (http-better pull req)

TJ

  • Some older PRs landed (stap/dtrace consistency)
  • Tests that read stdio and do line counting wrong

node call 2013-05-07

Isaac

  • Work on making http more writev-ified, and cleaning up writev a bit
  • Had a discussion about an interesting timing issue while cleaning up writev http stuff.
    • basically, 'finish' event can fire before all the write() callbacks have been called. So far no one's complained, and streams1 semantics were even more wonky, and making it consistent makes stream.Transform have to be very different.
    • Eventually closed:WONTFIX

Ben

  • Working on cluster refactoring for round-robin load balancing
  • Similar performance, but hasn't been extensively tested
  • Bert reviewed
  • In SF until Friday morning

Bert

  • execSync almost done
  • Adding some stdio options, a bit fancier than the bare-bones simplified proposal.
  • In SF this week
  • Presenting Thursday

Trevor

  • Fine-tuning Buffer refactor
  • hammering on user-controlled memory allocator. Extremely unsafe, but also extremely fast and useful in some cases.
    • Sets read-only flag isThinBuffer on proto, and a .destroyed boolean, so that they can be easily identified in heapdumps
    • toBuffer function: Same overhead as node::Buffer() ctor
  • TJ: Similar to FFI ref stuff
  • See https://github.com/joyent/node/pull/4964
  • Raised issue about V8 TypedArrays: No way to back an ArrayBuffer with a Buffer as easily once we switch to native V8-implemented ArrayBuffers

TJ

  • Toiling in the Jenkins mines
  • Fighting with Windows
  • Brought up issue of test suite locking up slave on windows. fs.writeSync cannot be interrupted, so things mess up.
    • Bert: Write the file in that pummel test in 40-byte chunks, instead of all at once, so that it will be able to be killed.

Fedor

  • Experimenting with mad science stuff around Dropbox and S3
  • Isaac: discussed ideas to move TLS into C++, Fedor seemed interested in doing it. TODO: isaacs to post github issue, assign to fedor
    • https://github.com/joyent/node/issues/5426
  • starttls might be tricky to do without some kind of awkward API changes, since it's not as obvious how to turn a tcpwrap into a tlswrap as it is to turn a net.Socket into a tls.CryptoStream (in JS), since it's just a matter of piping and returning the new thing.

Discussion about V8 3.19

  • Trevor brings up that v8::Local<T> is deprecated, and all functions are switching to require that you pass in a v8::Handle<T> instead of them returning a v8::Local<T>.
  • This kind of sucks for backwards compatibility of addons, but it is faster, and if they don't provide a compatibility layer for at least a version, we can probably do something to help.

node call 2013-05-07

Isaac

  • Work on making http more writev-ified, and cleaning up writev a bit
  • Had a discussion about an interesting timing issue while cleaning up writev http stuff.
    • basically, 'finish' event can fire before all the write() callbacks have been called. So far no one's complained, and streams1 semantics were even more wonky, and making it consistent makes stream.Transform have to be very different.
    • Eventually closed:WONTFIX

Ben

  • Working on cluster refactoring for round-robin load balancing
  • Similar performance, but hasn't been extensively tested
  • Bert reviewed
  • In SF until Friday morning

Bert

  • execSync almost done
  • Adding some stdio options, a bit fancier than the bare-bones simplified proposal.
  • In SF this week
  • Presenting Thursday

Trevor

  • Fine-tuning Buffer refactor
  • hammering on user-controlled memory allocator. Extremely unsafe, but also extremely fast and useful in some cases.
    • Sets read-only flag isThinBuffer on proto, and a .destroyed boolean, so that they can be easily identified in heapdumps
    • toBuffer function: Same overhead as node::Buffer() ctor
  • TJ: Similar to FFI ref stuff
  • See https://github.com/joyent/node/pull/4964
  • Raised issue about V8 TypedArrays: No way to back an ArrayBuffer with a Buffer as easily once we switch to native V8-implemented ArrayBuffers

TJ

  • Toiling in the Jenkins mines
  • Fighting with Windows
  • Brought up issue of test suite locking up slave on windows. fs.writeSync cannot be interrupted, so things mess up.
    • Bert: Write the file in that pummel test in 40-byte chunks, instead of all at once, so that it will be able to be killed.

Fedor

  • Experimenting with mad science stuff around Dropbox and S3
  • Isaac: discussed ideas to move TLS into C++, Fedor seemed interested in doing it. TODO: isaacs to post github issue, assign to fedor
    • https://github.com/joyent/node/issues/5426
  • starttls might be tricky to do without some kind of awkward API changes, since it's not as obvious how to turn a tcpwrap into a tlswrap as it is to turn a net.Socket into a tls.CryptoStream (in JS), since it's just a matter of piping and returning the new thing.

Discussion about V8 3.19

  • Trevor brings up that v8::Local<T> is deprecated, and all functions are switching to require that you pass in a v8::Handle<T> instead of them returning a v8::Local<T>.
  • This kind of sucks for backwards compatibility of addons, but it is faster, and if they don't provide a compatibility layer for at least a version, we can probably do something to help.

node call 2013-04-30

Isaac

  • perf regressions in crypto cipher/hmac
  • make it look like stream wrap, doesn't help that much

Fedor

  • v8 c++ property cache
  • upstream wants to do an inline cache instead

Nathan

  • Rasp Pi builds working
  • cross compile failed because of DTrace

Ben

  • Distracted by business stuff
  • Fixed some bugs, refused patches
  • Downgraded openssl 0.10.X to 1.0.0

Scott

  • Pull request on documentation work
  • will have time on the second half of the week

Trevor

  • Buffer changes ready for review
  • added new tests, and perf looks good

TJ

  • More work on nightly builds
  • now generating proper debian packages
  • One node build/test run on a slave at a time
  • working on dynamic provisioning on JPC

Buffers Ben's Idea

  • http can reallocate buffer into set buffer, pass buffer to userland
  • parse the headers and don't do anything with the buffer
  • majority are get request without headers
  • static buffer for headers and reuse that for each request
  • only copy out when it's necessary

Openssl

  • a 1.0.1 -> 1.0.0 downgrade isn't strictly necessary
  • 1.0.1 s_client hangs connecting to user-service.condenastdigital.com:443
  • passing -notls12 allows it to work
  • setting however in node SSLOPNOTLSv12 doesn't solve the issue
  • tweaking secureProtocol or secureOptions doesn't have an effect

node call 2013-04-23

trevnorris

  • Buffer investigations
  • ?Should we coerce or throw on bad args?
    • isaacs: "Whatever you and bnoordhuis agree on is fine"
  • Hacking on Slab allocator, currently at a 10% perf regression on small buffers (expected)
  • Talked about "quickbuffer" idea, pretty soundly rejected, but sure, investigate

piscisaureus

  • Reviewing libuv patches
  • Fixed a timers bug
  • hacking on V8 to make Buffers a native object. Lots of work to do there.

bnoordhuis

  • Cluster Round-robin nearly finished, looking good
  • Investigating multi-context support to make Node more embeddable

TooTallNate

  • Not working on Node this week
  • Busy with work on cloudup.com

indutny

  • http writev iterations
  • streams2 http (removing socket.ondata/onend calls)
    • path from push(chunk) to on('readable') is too long
    • trevnorris has some ideas to make perf better
  • working on tls.js experiment
  • Idea for piscisaureus: Inline Caches for Object::Get/Set in C++. Take to IRC

sblom

  • scrubbing windows issues
  • working on docs for new installer features

isaacs

  • working on some npm stuff lately
  • releasing 0.10.5 today
  • will draft execSync API for piscisaureus to review

node call 2013-04-09

Ben

  • Preliminary work on new TLS, coming along reasonably well, needs review with Fedor
  • Cluster round-robin option to distribute load more effectively. 8% speed increase in some (admittedly trivial/silly) benchmarks. (this is for 0.12)
  • Brought up need for a non-shared socket in cluster. joyent/node#3856

Trevor

  • New buffer working, but a few tests failing.
  • Met with Adam Crabtree (CrabDude) irl. CD has 3 requests
    1. JS uses Node-like errors. Node should use specific Node-type errors for TypeErrors/etc that we throw ourselves. (No objections, but not high priority.)
    2. Suggested Node could process.emit('badType') instead of process.emit('uncaughtException') on TypeErrors. (isaacs: Doesn't really solve anything, since it'd still have to throw, and the default of "crash the program" is important.)
    3. Wants a way to wrap a request in a domain, such that you can clean up and close all resources that were triggered by that domain, and reliably not leak resources or break programs. (isaacs: We've explored this thoroughly. That was the original vision of domains. Can't be done without shared-nothing zones that are incapable of mutating one another's state, which is simply unreasonable in JavaScript. Answer: Use Erlang.)

Bert

  • Working on V8 issues in Windows: "Error: No Error" errors, which are kind of confusing
  • Hacking on V8 to make Buffer a native type
    • This is a parallel/complementary effort to Trevor's Buffer work.
    • Had some back and forth about memory management, slabs, leaks, etc.
    • The interaction with libuv makes it tricky to do without a slab allocator, since we alloc 64K and then usually only use a little bit of it, but with a slab allocator, we hold on to way too much memory when we hold onto a single buffer.
  • Publishing libuv release tools

Scott

  • Looking into libuv threadpool impl on windows.
  • libuv tests

Fedor

  • Landed crypto BIO fixes in v0.10
  • Has been working on chunked encoding, adding a writev option/method to Writable streams
  • Very promising. 15-20% faster on http chunk benchmarks, others unaffected.
  • Had some discussion about Stream API changes. isaacs to review/oversee

TJ

  • libuv dtrace probes
  • bona fide linker bug found, reported upstream, worked around
  • added node-libuv integration test to jenkins
  • working on feature-branch test job

Node Call Notes:

bert - working on test failures for libuv on win8 - thread pool bug on windows - investigative work on native Buffer types - tool that guides through making a build

trevnorris - working on underlying buffer structure - perf is good, but keeping backwards compatibility is hard - moving everything to external module, and get it passing all the tests, then port over - new impl doesn't have memory issues, but slices have the possibility of memory leaks, but it's more explicit than what we have

ben - started implementing preliminary basics of some proposed TLS changes - make the current impl zero-overhead as possible - move more of the TLS stuff into c/c++ with minimal overhead - make tls sessions work in a cluster env

fedor - fixing bugs - working with ben on tls refactoring

sblom - no node stuff, but thursday is node day

tj - pull bot commenting - dtrace, stap using consistent providers - backport dtrace osx

isaacs - when do we throw, and when do we coerce? Patterns getting more clear, but still needs to be messaged better - Working on tcp socket client pooling next


Node Call Notes

bert - planning to look at bug TJ posted, EINVAL when an EADDRINUSE is expected - libuv releases with notes and tags and all that good stuff.

tj - figured out the root cause of the issue. - problem is that the bind error is delayed on windows until we try to listen() - So, it's an error, and it errors, which is good, but does so at the wrong time. - Probably test just needs to be fixed up for windows

nathan - back from hawaii

scott - working on node ~8 hrs a week - wants to do more. - isaacs and bert offered to call in favors from our folks at msft if necessary - will raise alarms if nothing improves in the next week

ben - fixing boogs - brought up the issue of the v0.11 roadmap, we had a pretty good discussion about what each of our pet peeves are that we'd like to see addressed.

trevor - full time on Node with Moz's blessing. Expect official announcement next week. - working on re-thinking how we do Buffers, which is a huge pain point atm for many users. - still in very experimental phases. - indutny/bnoordhuis may help with this effort - Persistent/MakeWeak in V8 is way too slow to be useful here. - Perhaps work with V8 team to figure out how to extend Buffers as a first-class object type in the VM.

-- v0.11 todos:

  • Fix slab allocation (ie, trevor's buffer stuff)
  • break up http.js into pieces
  • reusable socket pool api
  • rewrite http.js to not be such a crap API
  • tls connections are way too slow