{"push_id":1262902859,"size":58,"distinct_size":58,"ref":"refs/heads/master","head":"308a7fdbaa0fd7d7d97cf01117ebdde504816b60","before":"873280296855f7dee4922032dfb4c3e08493531e","commits":[{"sha":"d07c397440f9724a24a1f495fd2539849f548fcb","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove Future::schedule\n\nA more appealing model is actually just automatically inferring what needs to be\nscheduled based on what actions are done during poll. For example if during a\npoll you check a oneshot channel, then the current task is registered for being\nwoken up if it's not ready. Similarly this will apply to I/O where if I/O is\nattempted but we see EAGAIN then we'll schedule the task to get notified when\nit's ready.\n\nThis may also have performance benefits in some niche situations because you\ndon't need to recompute where you are in the state machine both during poll and\nduring schedule. Instead, it now happens all at once.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/d07c397440f9724a24a1f495fd2539849f548fcb"},{"sha":"cb863674fc6b8148649484191bc5b7f84d07a726","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove the Task parameter to poll\n\nAfter some re-evaluation it was concluded that this parameter isn't actually\nneeded as part of the `poll` function. An alternative to threading through a\ntask is that there's simply a thread local global which indicates the \"current\ntask\". This global is then used in the same way `thread::{park, unpark}` are\nused to block and notify tasks.\n\nAdditionally, this change unlocks a few further benefits:\n\n* The core trait and all combinators are now `#![no_std]` compatible (minus\n  oneshot/channel)\n* Detaches `Task` from `Future` so different runtime systems can perhaps be used\n  to drive a future. (none planned currently)\n* It will soon be easier to remove the `'static` bounds from the trait because\n  the `Task` is stored separately and the lifetimes don't need to be connected.\n* The `poll` signature in general is now much simpler as it takes 0 arguments.\n\nA downside of this change is that it is much easier to panic a thread. All I/O\nor \"blocking\" operations require a current task to be set in a global context,\nand if not set these operations will panic. This drawback, however, seems well\nworth the benefits that it unlocks.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/cb863674fc6b8148649484191bc5b7f84d07a726"},{"sha":"4f685d3445060f73a0ecdfb896f538e349072ee5","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Re-work I/O\n\n* Auto-register interest whenever we see WouldBlock\n* Remove implementations of `Stream<Item=Ready>`, no longer needed\n* Add explicit `poll_{read,write}` methods, if needed\n* Remove all I/O streams, libstd ones suffice\n* Update all I/O futures","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/4f685d3445060f73a0ecdfb896f538e349072ee5"},{"sha":"f3c20025ba0dcd1354f2a8241313f30b11341be5","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Update futures-minihttp","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/f3c20025ba0dcd1354f2a8241313f30b11341be5"},{"sha":"a3fef55874245d7f837c27e47efd5f29f81d56b3","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Update futures-socks5","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/a3fef55874245d7f837c27e47efd5f29f81d56b3"},{"sha":"3f7325a5601ec3e0ce1393a4e62c9a6804ca88b1","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Update futures-uds","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/3f7325a5601ec3e0ce1393a4e62c9a6804ca88b1"},{"sha":"7fb72c11687e29e2f8761cd2ad9f5b905792ba6d","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Update futures-curl\n\nAlso involved yet another round of bug fixes to the timer wheel as well as an\nunfortunately serious rejiggering of the level-translation into libcurl. Eew.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/7fb72c11687e29e2f8761cd2ad9f5b905792ba6d"},{"sha":"bfa28cabba0d98fb5edabe1c4e51528e2f1d706e","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove tailcall\n\nThis optimization only rarely worked anyway and was otherwise a bit of an ugly\naddition to the `Future` trait. More technically, there are two reasons tailcall\nis not generally applicable:\n\n* It *only* works in chains like `.and_then(..).and_then(..)`. If, for example,\n  a `map` or `map_err` were inserted in the middle then the optimization\n  wouldn't appply. Additionally, it only worked with trait objects in play,\n  which isn't necessarily always the case.\n\n* It doesn't handle \"back pressure\". That is if a stream of events is ready very\n  quickly, there are still many test cases of it blowing the stack.\n\nIn other words, the problem that `tailcall` was supposed to solve, was still\nleft unsolved in most cases. Removing it also additionally unlocks removing the\n`'static` bound from the trait, which is another nice benefit!","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/bfa28cabba0d98fb5edabe1c4e51528e2f1d706e"},{"sha":"37f8f881f28353c4f52ad9a2de7ec66dddc43814","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove lots of 'static bounds\n\nThe core trait and associated types no longer require the `'static` bounds, and\nall associated methods have also had the `'static` bounds removed. The only\nlocation for the `'static` bound is `forget`.\n\nWhile the restriction of `'static` on `forget` is here to stay, we'll soon\nenable `Loop::run` to take a non-`'static` future, allowing driving a\nnon-`'static` future.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/37f8f881f28353c4f52ad9a2de7ec66dddc43814"},{"sha":"be7c5847256f10cd6ec04b1baf1eb867086426e4","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Fix a too-long borrow in futures-curl","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/be7c5847256f10cd6ec04b1baf1eb867086426e4"},{"sha":"fae5e787088cc6170592904fcad06362f97b6a66","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Relax the 'static bound on Loop::run\n\nWe know that the future will never persist beyond this stack frame, so we can\njust leave its ownership on the stack frame itself and receive notifications off\nthe event loop that we need to poll it.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/fae5e787088cc6170592904fcad06362f97b6a66"},{"sha":"05ce3cd8ef1191d40f95c2f78d25233e5f4b532d","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Rewrite recursion with a loop in sink.rs","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/05ce3cd8ef1191d40f95c2f78d25233e5f4b532d"},{"sha":"0b8ab8f6ee60864ca25f54df051397a29dd3f8b2","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Touch up docs","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/0b8ab8f6ee60864ca25f54df051397a29dd3f8b2"},{"sha":"c86990f4e911f8663f811aab3a772b3742925045","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Simplify code in futures-io\n\nAdd a macro, `try_nb!`, which was usable in all cases for simplifying handling\nof `WouldBlock`.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/c86990f4e911f8663f811aab3a772b3742925045"},{"sha":"c466c7e895eb706d4891825e7a26485488513e4c","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Update docs of futures-mio","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/c466c7e895eb706d4891825e7a26485488513e4c"},{"sha":"13f6cbf0bd47964894e0647fcf51142aab295836","author":{"name":"Markus Jais","email":"f86f9fbcd3d412b449ca06b2504bbc4b685e32e8@gmx.de"},"message":"added test for filter_map function of streams","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/13f6cbf0bd47964894e0647fcf51142aab295836"},{"sha":"65e65e37da52394830d3a12ce84c0119656e6139","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Merge pull request #74 from MarkusJais/master\n\nadded test for filter_map function of streams","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/65e65e37da52394830d3a12ce84c0119656e6139"},{"sha":"5070e1b6c79bb74223e0160478e3fc3b2599ce3b","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove unused util.rs file","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/5070e1b6c79bb74223e0160478e3fc3b2599ce3b"},{"sha":"6aa36812f7cceaab63c14fe99844de10c1b1e87c","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Remove 'static and Send bounds form channel/oneshot\n\nNo longer needed!","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/6aa36812f7cceaab63c14fe99844de10c1b1e87c"},{"sha":"6776ee3eecaab58db5851953a1cb77e351d66c4c","author":{"name":"Alex Crichton","email":"af52d3065b8b78750f844012b8e34dbc454a5a0a@alexcrichton.com"},"message":"Fix deadlock on OSX TLS\n\nWe see `Interrupted` once the server auth completed and we requested to break at\nthat point. If this happens then we need to turn the loop again, validate some\ncertificates, and then resume the handshake process.","distinct":true,"url":"https://api.github.com/repos/josephDunne/futures-rs/commits/6776ee3eecaab58db5851953a1cb77e351d66c4c"}]}
{"actor":{"display_login":"josephDunne"}}