aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* nvim_get_proc_children: fallback to shellJustin M. Keyes2018-03-16
| | | | | /proc/…/children may be unavailable because of an unset kernel option. Fallback to `pgrep` invoked in a shell.
* API: nvim_get_proc_children()Justin M. Keyes2018-03-16
| | | | ref https://github.com/libuv/libuv/pull/836
* win: os_proc_tree_kill()Justin M. Keyes2018-03-16
| | | | | | | | XXX: comment at https://stackoverflow.com/q/1173342 : > Windows recycles PIDs quite fast, you have to be extra careful not > to kill unrelated processes. These APIs will report PPIDs for long > dead processes whose PIDs may have been recycled. Check the parent > start date to make sure it is related to the processes you spawned.
* jobs: child proc must have a separate process-groupJustin M. Keyes2018-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UV_PROCESS_DETACHED compels libuv:uv__process_child_init() to call setsid() in the child just after fork(). That ensures the process and its descendants are grouped in a separate session (and process group). The following jobstart() call correctly groups `sh` and `sleep` in a new session (and process-group), where `sh` is the "session leader" (and process-group leader): :call jobstart(['sh','-c','sleep 60']) SESN PGRP PID PPID Command 30383 30383 30383 3620 │ ├─ -bash 30383 31432 31432 30383 │ │ └─ nvim -u NORC 30383 31432 31433 30383 │ │ ├─ nvim -u NORC 8105 8105 8105 31432 │ │ └─ sh -c sleep 60 8105 8105 8106 8105 │ │ └─ sleep 60 closes #6530 ref: https://stackoverflow.com/q/1046933 ref: https://unix.stackexchange.com/a/404065 Helped-by: Marco Hinz <mh.codebro+github@gmail.com> Discussion ------------------------------------------------------------------------ On my linux box before this patch, the termclose_spec.lua:'kills job trapping SIGTERM' test indirectly causes cmake/busted to wait for 60s. That's because the test spawns a `sleep 60` descendant process which hangs around even after nvim exits: nvim killed the parent PID, but not PGID (process-group), so the grandchild "reparented" to init (PID 1). Session contains processes (and process-groups) which are logically part of the same "login session". Process-group is a set of logically/informally-related processes within a session; for example, shells assign a process group to each "job". Session IDs and PGIDs both have type pid_t (like PIDs). These OS-level mechanisms are, as usual, legacy accidents whose purpose is upheld by convention and folklore. We can use session-level grouping (setsid), or we could use process-group-level grouping (setpgid). Vim uses setsid() if available, otherwise setpgid(0,0). Windows ------------------------------------------------------------------------ UV_PROCESS_DETACHED on win32 sets CREATE_NEW_PROCESS_GROUP flag. But uv_kill() does not kill the process-group: https://github.com/nodejs/node/issues/3617 Ideas: - Set UV_PROCESS_DETACHED (CREATE_NEW_PROCESS_GROUP), then call GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, pid) - Maybe won't work because MSDN says "Only processes that share the same console as the calling process receive the signal." https://docs.microsoft.com/en-us/windows/console/generateconsolectrlevent But CREATE_NEW_PROCESS_GROUP creates a new console ... ref https://stackoverflow.com/q/1453520 - Group processes within a "job". libuv does that *globally* for non-detached processes: uv__init_global_job_handle. - Iterate through CreateToolhelp32Snapshot(). - https://stackoverflow.com/q/1173342 - Vim does this, see terminate_all()
* test: use luv.now() instead of os.time()Justin M. Keyes2018-03-16
|
* DirChanged: support <buffer> (#8140)Marco Hinz2018-03-16
|
* doc: nodejsJustin M. Keyes2018-03-15
|
* node/provider: support g:node_host_prog #8135chemzqm2018-03-15
|
* vim-patch:8.0.0316: :help z? does not work (#8134)KunMing Xie2018-03-14
| | | | | Problem: ":help z?" does not work. (Pavol Juhas) Solution: Remove exception for z?. https://github.com/vim/vim/commit/dad7309dd22f0c6b5de0b031acd7f54d3aa94326
* Merge pull request #8127 from jamessan/update-pvs-headersJames McCoy2018-03-11
|\ | | | | Add missing PVS headers to new files
| * pvscheck: Ignore exit code of pvs-studio-analyzerJames McCoy2018-03-11
| | | | | | | | | | Since its typically non-zero, the script immediately exits instead of converting the binary log into useful formats.
| * Add missing PVS headers to new filesJames McCoy2018-03-11
| |
* | ci/AppVeyor: use PowerShell (#8124)b-r-o-c-k2018-03-11
|/
* ci/travis: Don't destroy cache during prepareJustin M. Keyes2018-03-11
| | | | | | | Use `cp -r` instead of `mv`. Remove use of `dirname`, that was missed in 10cdf8c28621. closes #5166
* Merge #8117 'build/CI/MSVC/LuaRocks'Justin M. Keyes2018-03-11
|\
| * ci/travis: rename $BUILD_NVIM_DEPS to $CACHE_ENABLEJustin M. Keyes2018-03-11
| |
| * build: respect $DEPS_BUILD_DIRJustin M. Keyes2018-03-11
| | | | | | | | | | Without this, the CI_TARGET=lint travis job cant't find the cached deps (in $HOME/nvim-deps), nor can it update the cache.
| * ci/macOS: skip python2 on travis macOSJustin M. Keyes2018-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macOS travis builds recently started failing (travis caches were cleared recently, maybe related). python2 is reasonably covered by linux CI. Not going to waste time on it for macOS CI. ==> Installing python@2 ==> Downloading https://homebrew.bintray.com/bottles/python@2-2.7.14_3.el_capita ==> Pouring python@2-2.7.14_3.el_capitan.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/2to3-2 Target /usr/local/bin/2to3-2 is a symlink belonging to python. You can unlink it: brew unlink python To force the link and overwrite all conflicting files: brew link --overwrite python@2 To list all files that would be deleted: brew link --overwrite --dry-run python@2 Possible conflicting files are: /usr/local/bin/2to3-2 -> /usr/local/Cellar/python/2.7.12_1/bin/2to3-2 /usr/local/bin/2to3-2.7 -> /usr/local/Cellar/python/2.7.12_1/bin/2to3-2.7 /usr/local/bin/idle -> /usr/local/Cellar/python/2.7.12_1/bin/idle ...
| * ci/travis: use ninja instead of makeJustin M. Keyes2018-03-11
| |
| * ci/AppVeyor: disable MSVC_32 buildJustin M. Keyes2018-03-11
| | | | | | | | | | | | The MSVC_32 currently hangs. When MSVC becomes the primary Windows target, we can enable MSVC_32 and retire one of the mingw builds. In the meantime it adds too much time.
| * build/luarocks: avoid parallelism for luarocks buildJustin M. Keyes2018-03-11
| | | | | | | | | | | | | | Is there a race between the luarocks `make bootstrap` dependencies? reverts f73b4911312b35bfe38ed068672a2f8ba8875ba7 ref https://github.com/luarocks/luarocks/pull/774
| * build/luarocks: apply "Fix siteconfig" patchJustin M. Keyes2018-03-11
| | | | | | | | upstream: https://github.com/luarocks/luarocks/pull/774
| * test: next_msg(): default `timeout` to 10sJustin M. Keyes2018-03-11
| | | | | | | | | | | | Infinite timeout results in hangs which waste time. If some test needs longer than 10s to wait for a message, it should specify the timeout explicitly.
| * test: rename next_message() to next_msg()Justin M. Keyes2018-03-11
| |
| * ci/AppVeyor: fix `set` whitespace quotingJustin M. Keyes2018-03-11
| |
| * test: handle non-deterministic message cadenceJustin M. Keyes2018-03-11
| |
* | vim-patch:8.0.0262,8.0.0263 (#8123)KunMing Xie2018-03-11
|/ | | | | | | | | | | | | vim-patch:8.0.0262: Farsi support is barely tested Problem: Farsi support is barely tested. Solution: Add more tests for Farsi. Clean up the code. https://github.com/vim/vim/commit/ddf662a1c86ef0b4bd0c55c5f0aa192ebd6d9a5e vim-patch:8.0.0263: Farsi support is not tested enough Problem: Farsi support is not tested enough. Solution: Add more tests for Farsi. Clean up the code. https://github.com/vim/vim/commit/80627cf51fd4274320875193a43ce11cee58c96e
* Merge pull request #8122 from jamessan/appimagev2James McCoy2018-03-09
|\ | | | | Create v2 AppImages and include update information
| * genappimage: Include update information for releases/nightliesJames McCoy2018-03-09
| | | | | | | | | | | | This will allow users to use AppImageUpdate to update their AppImage. It requires publishing the created zsync file alongside the appimage file for the releases.
| * genappimage: Create a type 2 AppImageJames McCoy2018-03-09
| |
| * genappimage: Use AppImage/AppImages repo to avoid redirectsJames McCoy2018-03-09
|/
* vim-patch.sh: more colorful #8115Giuseppe2018-03-09
|
* Merge #8084 'build/win: support MSVC'Justin M. Keyes2018-03-08
|\
| * build/msvc: Fix AppVeyor build script for 'MINGW_64-gcov' configurationb-r-o-c-k2018-03-07
| |
| * build/msvc: Add Git as a requirement for Windows patchesb-r-o-c-k2018-03-06
| |
| * build/msvc: Make shell-test fix only apply to MSCVb-r-o-c-k2018-03-06
| |
| * build/msvc: Allow MSVC AppVeyor builds to failb-r-o-c-k2018-03-05
| |
| * build/msvc: Change MSBuild verbosity to normalb-r-o-c-k2018-03-05
| |
| * build/msvc: Remove confusing commentb-r-o-c-k2018-03-04
| |
| * build/msvc: Add Appveyor CI for MSVCb-r-o-c-k2018-03-04
| |
| * build/msvc: Workaround for compiler optimization bugb-r-o-c-k2018-03-04
| |
| * build/msvc: Fix errors caused by compiler intrinsicsb-r-o-c-k2018-03-04
| |
| * build/msvc: Make shell-test workb-r-o-c-k2018-03-04
| | | | | | | | | | MSVC doesn't have unistd.h or usleep() so it was replaced with the Sleep() WinAPI function.
| * build/msvc: Add missing WIN32 macrob-r-o-c-k2018-03-04
| | | | | | | | MSVC predefines `_WIN32`, but not `WIN32`. Also, some unnecessary includes have been removed.
| * build/msvc: Remove pkgconfig dependency on Windowsb-r-o-c-k2018-03-04
| |
| * Merge branch 'master' into msvc-compatb-r-o-c-k2018-03-01
| |\
| * | build/msvc: Make libtermkey depend on Unibiliumb-r-o-c-k2018-03-01
| | |
| * | build/msvc: Add patch for LuaRocksb-r-o-c-k2018-03-01
| | | | | | | | | | | | LuaRocks bundles an outdated wget.exe for downloading packages on Windows. It is too old to support GitHub's TLS, so this patch will replace it with curl.
| * | build/msvc: Add patch for libvtermb-r-o-c-k2018-03-01
| | | | | | | | | | | | The patch removes VLAs because MSVC does not support them.
| * | build/msvc: Add CMakeLists.txt and header for Unibiliumb-r-o-c-k2018-03-01
| | | | | | | | | | | | | | | A header was added for compatibility with MSVC and CMakeLists.txt was added for building with CMake.