{"push_id":762323704,"size":36,"distinct_size":36,"ref":"refs/heads/master","head":"ffcd6923f32cfdc77c2929dc6845d5fbcc5b3f0c","before":"dc1fa84349fab063f675c0d8e7a75c022a1fbc1b","commits":[{"sha":"6ba6763fe49e488486ebd57d7b5847b4752ff79e","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@thequod.de","name":"Daniel Hahler"},"message":"python: VimPathFinder: use find_spec for Python 3.4\n\nFixes https://github.com/neovim/neovim/issues/2909","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/6ba6763fe49e488486ebd57d7b5847b4752ff79e"},{"sha":"2dc84a702eec8392290356ed967e8ad41d756a90","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@thequod.de","name":"Daniel Hahler"},"message":"python: VimModuleLoader: check sys.modules[fullname]\n\nThis is required by PEP302 for `reload()`ing modules.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/2dc84a702eec8392290356ed967e8ad41d756a90"},{"sha":"aaedd2ebb985d97a3d5315f00bbdc5d1bd653418","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@thequod.de","name":"Daniel Hahler"},"message":"python: path_hook: properly implement PEP302\n\nThe path hook used to load the module already in the `find_module` hook.\n\nThis caused different behaviour between Python 2.7 and 3.3, where the\nformer would call the `VimModuleLoader`, while Python 3.3 appears to\nshort-circuited this (because the module was loaded already).\n\nThis patch will now only find the module, but not load it in the\n`find_module` hook.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/aaedd2ebb985d97a3d5315f00bbdc5d1bd653418"},{"sha":"c15dc01254e4836bfd708d7bf980951aeaaf127a","author":{"email":"46f1a0bd5592a2f9244ca321b129902a06b53e03@thequod.de","name":"Daniel Hahler"},"message":"python: VimPathFinder: remove unused load_module method\n\nThis method was not used, but `VimModuleLoader.load_module` is.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/c15dc01254e4836bfd708d7bf980951aeaaf127a"},{"sha":"b57821486f5b7b661997b849ae6b93b21b8dfd29","author":{"email":"b8ecd6b45b1aabf66da0027f0b3f2a1d9a863448@gmail.com","name":"oni-link"},"message":"shell.c: A full RBuffer with no NL can freeze shell output. #3156\n\nout_data_cb() can return without emptying the full RBuffer (no NL was\nseen). Because the shell output stream is stopped until space in the\nRbuffer is freed up, no more shell output is written.\n\nTo prevent this, output the full RBuffer when write_output() did not\nwrite anything.\n\nwrite_output() can also process the same RBuffer content more than once,\nif no NL was seen. To prevent NUL bytes from producing new lines (if\nlines are not written to a buffer), translate NUL to SOH(1).\n\nFixes #2983","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/b57821486f5b7b661997b849ae6b93b21b8dfd29"},{"sha":"c5ba1b29357096e3b605127016e0308befc1319f","author":{"email":"224e6c20330e5fdd86c45c03a865a241c1b7bd00@gmail.com","name":"Justin M. Keyes"},"message":"test: cover :grep\n\nReferences #3156","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/c5ba1b29357096e3b605127016e0308befc1319f"},{"sha":"3e2f1929805b56f859db1daaadf572e8c49c54a4","author":{"email":"86648a566df4d712cc02edcb5c4d90e33fddf42f@yandex.ru","name":"ZyX"},"message":"runtime: Do install generated syntax file, also test this. #3160\n\nFixes #3157","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/3e2f1929805b56f859db1daaadf572e8c49c54a4"},{"sha":"e766042ecec31983b216df551885ba168d7dcef5","author":{"email":"87a6d9f833c7f211274c4b334c1e0831f1ca6f94@gmail.com","name":"Daniel Kosinski"},"message":"doc: Fix typo in nvim-python. #3162","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/e766042ecec31983b216df551885ba168d7dcef5"},{"sha":"d3e28c605a06cb6a6477fd81e6780ddec145f884","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"events: Add missing function attributes to some APIs","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/d3e28c605a06cb6a6477fd81e6780ddec145f884"},{"sha":"aa1f6e46f9eaf76a982cd50b1b4f7d2b5a051ede","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"eval: Fixes to job control\n\n- Ensure TerminalJobData is freed in case of error when spawning pty jobs\n- Check if job was stopped in every function that receives a job id.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/aa1f6e46f9eaf76a982cd50b1b4f7d2b5a051ede"},{"sha":"e35940b26295f72b2ecd0e79b373db555db19ee9","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"pty_process: Simplify cleanup after error during spawn","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/e35940b26295f72b2ecd0e79b373db555db19ee9"},{"sha":"5dbd40a27f6a8087e449786c1f2b9053bbfb41f3","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"msgpack: Replace FUNC_ATTR_DEFERRED by FUNC_ATTR_ASYNC\n\nAPI functions exposed via msgpack-rpc now fall into two categories:\n\n- async functions, which are executed as soon as the request is parsed\n- sync functions, which are invoked in nvim main loop when processing the\n  `K_EVENT special key\n\nOnly a few functions which can be safely executed in any context are marked as\nasync.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/5dbd40a27f6a8087e449786c1f2b9053bbfb41f3"},{"sha":"dc94a86596f3e4809a498cb62b024950af43761a","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"loop: Simplify loop.c and move some code to input.c\n\n- Declare poll timer in Loop structure instead of a loop_poll_events local\n  variable.\n- Move deferred event management to input.c","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/dc94a86596f3e4809a498cb62b024950af43761a"},{"sha":"4c8b8eb9171cdf0c6d736039b96118757ae8e3a3","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"process: Pass loop reference during initialization\n\nChange the API so that it is passed to {uv,pty}_process_init instead of\n`process_spawn`.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/4c8b8eb9171cdf0c6d736039b96118757ae8e3a3"},{"sha":"a5e0233b6ad3ca8357bdbd5d1ac9421f779a54f5","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"terminal: Ensure terminal buffers are flushed on exit\n\nWhen a terminal closed, make sure it is refreshed before the Terminal structure\nis freed. Also extract `refresh_terminal` from `on_refresh`.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/a5e0233b6ad3ca8357bdbd5d1ac9421f779a54f5"},{"sha":"969df0277439f01411571acee05dd853416bee19","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"test: Make sure ENTER prompt is exited in clipboard_provider_spec\n\nThe test may hang without this.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/969df0277439f01411571acee05dd853416bee19"},{"sha":"edc2385a65ccab97a70c9bce1420c2e806c487c9","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"lib: Include libuv circularly linked list\n\nThis is simpler and more efficient than klist.h for implementing queues that\nsupport insertion or removal at arbitrary positions.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/edc2385a65ccab97a70c9bce1420c2e806c487c9"},{"sha":"aa098fb65dbcb053c5fb3fb9d0e6f09f6b421df5","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"queue: Implement a more flexible event queue","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/aa098fb65dbcb053c5fb3fb9d0e6f09f6b421df5"},{"sha":"8435f5815694d2c9834bc5a19cacffdb5fb0371d","author":{"email":"052f65e75483bf533f63bf1694e37161a0674aa9@gmail.com","name":"Thiago de Arruda"},"message":"event: Refactor async event processing\n\n- Improve the implementation of deferred/immediate events.\n- Use the new queue module to change how/when events are queued/processed by\n  giving a private queue to each emitter.\n- Immediate events(which only exist to break uv_run recursion) are now\n  represented in the `loop->fast_events` queue.\n- Events pushed to child queues are propagated to the event loop main queue and\n  processed as K_EVENT keys.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/8435f5815694d2c9834bc5a19cacffdb5fb0371d"},{"sha":"3847f05f7717398cbe284771adb66bac98c0a5cf","author":{"email":"b8ecd6b45b1aabf66da0027f0b3f2a1d9a863448@gmail.com","name":"oni-link"},"message":"process: Remove indeterminism that causes reordering of pty events\n\nSince pty events are queued, it is possible that the reads will be reordered.\nExample scenario:\n\nIn the terminal you have output combined from stdout and stderr. A program\ngenerates output, first you have some output on stdout, then output on stderr,\noutput on stdout, output on stderr,...  The whole output should be interleaved\nfrom both streams.\n\nEach output generates a read_event and they are placed in the same queue. If the\nqueue is processed, the first read_event will send the whole stdout output to\nthe terminal (on_job_output() consumes the whole buffer). The next read_event is\nsimilar for stderr. The remaining read events do nothing because now both\nRBuffer are already empty. So the terminal would show first the stdout output\nand after that the stderr output.\n\nThis commit fixes the problem by disabling stderr stream in pty processes.\nThat's ok because they all represent the same stream(duplicate file\ndescriptors), plus one stream is simpler to deal with.","distinct":true,"url":"https://api.github.com/repos/mgraczyk/neovim/commits/3847f05f7717398cbe284771adb66bac98c0a5cf"}]}