1. 20 Dec, 2018 1 commit
    • Justin M. Keyes's avatar
      runtime/lua/vim/compat.lua · 221f6fff
      Justin M. Keyes authored
      ref #9280
      Introduce the `vim.compat` module, to help environments with system Lua
      5.2+ run the build/tests. Include the module implicitly in all tests.
      
      ref #8677
      legacy `vim` module:
          beep
          buffer
          command
          dict
          eval
          firstline
          lastline
          line
          list
          open
          type
          window
      221f6fff
  2. 06 Oct, 2018 1 commit
  3. 16 Jun, 2018 1 commit
  4. 10 Jun, 2018 1 commit
  5. 05 Jun, 2018 1 commit
    • Justin M. Keyes's avatar
      cmake/FindLibIntl.cmake: handle passive case explicitly · 42037933
      Justin M. Keyes authored
      If check_c_source_compiles() succeeded (HAVE_WORKING_LIBINTL is set)
      then the result of find_xxx() doesn't matter. This happens on systems
      (linux+glibc) where libintl is available passively.
      
      This allows `find_package(LibIntl REQUIRED)` to work and will still
      correctly fail (REQUIRED) on systems lacking libintl.
      42037933
  6. 23 May, 2018 1 commit
  7. 24 Mar, 2018 1 commit
  8. 01 Mar, 2018 1 commit
  9. 22 Feb, 2018 2 commits
    • Daniel Hahler's avatar
      cmake/LuaHelpers.cmake: check_lua_module: use 'lua -l' · ef0a07c0
      Daniel Hahler authored
      It only shortens the traceback a bit for when a module is not found
      though, only removing the "(command line):1: in main chunk" (with
      lua5.2).
      ef0a07c0
    • Daniel Hahler's avatar
      cmake/LuaHelpers.cmake: check_lua_module: display errors · 88519034
      Daniel Hahler authored
      This helps to figure out what the problem is, e.g. in my case I have
      lua51-mpack installed to be used with luajit, but it is broken (missing
      libmpack).
      
      With this patch you get:
      
          -- Checking Lua interpreter /usr/bin/luajit
          /usr/bin/luajit: error loading module 'mpack' from file '/usr/lib/lua/5.1/mpack.so':
                  libmpack.so.0: cannot open shared object file: No such file or directory
          stack traceback:
                  [C]: at 0x55fcf0166fb0
                  [C]: in function 'require'
                  (command line):1: in main chunk
                  [C]: at 0x55fcf01188a0
          -- [/usr/bin/luajit] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua5.1
          /usr/bin/lua5.1: error loading module 'mpack' from file '/usr/lib/lua/5.1/mpack.so':
                  libmpack.so.0: cannot open shared object file: No such file or directory
          stack traceback:
                  [C]: ?
                  [C]: in function 'require'
                  (command line):1: in main chunk
                  [C]: ?
          -- [/usr/bin/lua5.1] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua5.2
          /usr/bin/lua5.2: (command line):1: module 'mpack' not found:
                  no field package.preload['mpack']
                  no file '/usr/share/lua/5.2/mpack.lua'
                  no file '/usr/share/lua/5.2/mpack/init.lua'
                  no file '/usr/lib/lua/5.2/mpack.lua'
                  no file '/usr/lib/lua/5.2/mpack/init.lua'
                  no file './mpack.lua'
                  no file '/usr/lib/lua/5.2/mpack.so'
                  no file '/usr/lib/lua/5.2/loadall.so'
                  no file './mpack.so'
          stack traceback:
                  [C]: in function 'require'
                  (command line):1: in main chunk
                  [C]: in ?
          -- [/usr/bin/lua5.2] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua
          /usr/bin/lua: (command line):1: module 'mpack' not found:
                  no field package.preload['mpack']
                  no file '/usr/share/lua/5.3/mpack.lua'
                  no file '/usr/share/lua/5.3/mpack/init.lua'
                  no file '/usr/lib/lua/5.3/mpack.lua'
                  no file '/usr/lib/lua/5.3/mpack/init.lua'
                  no file './mpack.lua'
                  no file './mpack/init.lua'
                  no file '/usr/lib/lua/5.3/mpack.so'
                  no file '/usr/lib/lua/5.3/loadall.so'
                  no file './mpack.so'
          stack traceback:
                  [C]: in function 'require'
                  (command line):1: in main chunk
                  [C]: in ?
          -- [/usr/bin/lua] The 'mpack' lua package is required for building Neovim
          CMake Error at CMakeLists.txt:459 (message):
            A suitable Lua interpreter was not found.
      
      While this makes it more verbose for the expected error case ("module
      'mpack' not found"), the behavior before this patch hides too much.
      This is the old output:
      
          -- Checking Lua interpreter /usr/bin/luajit
          -- [/usr/bin/luajit] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua5.1
          -- [/usr/bin/lua5.1] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua5.2
          -- [/usr/bin/lua5.2] The 'mpack' lua package is required for building Neovim
          -- Checking Lua interpreter /usr/bin/lua
          -- [/usr/bin/lua] The 'mpack' lua package is required for building Neovim
          CMake Error at CMakeLists.txt:459 (message):
            A suitable Lua interpreter was not found.
      
      This is for when the whole configuration runs (i.e. after `make
      distclean`), afterwards only one Lua interpreter gets checked only.
      88519034
  10. 14 Feb, 2018 1 commit
  11. 20 Jan, 2018 1 commit
  12. 21 Oct, 2017 1 commit
    • Franklin Mathieu's avatar
      cmake,bsd: Fix mandir to saner defaults. (#7417) · 3ce97879
      Franklin Mathieu authored
      closes #7239
      
      The old behaviour was to set CMAKE_INSTALL_MANDIR to /usr/local/man
      when MANPREFIX wasn't defined. This caused mismatching installation
      paths when the installation prefix wasn't /usr/local.
      
      This fix explicitely checks that the prefix is /usr/local to change
      the value of CMAKE_INSTALL_MANDIR, and uses the default behaviour
      otherwise, as /usr/local is the exception rather than the norm
      (as per man hier(7)).
      3ce97879
  13. 03 Oct, 2017 1 commit
  14. 16 Aug, 2017 1 commit
    • Ryan Prichard's avatar
      win: integrate winpty (WIP) · 7f22a27a
      Ryan Prichard authored
      Handling of process exit is still broken.  It detects the moment when the
      child process exits, then quickly stops polling for process output.  It
      should continue polling for output until the agent has scraped all of the
      process' output.  This problem is easy to notice by running a command like
      "dir && exit", but even typing "exit<ENTER>" can manifest the problem --
      the "t" might not appear.
      
      winpty's Cygwin adapter handles shutdown by waiting for the agent to close
      the CONOUT pipe, which it does after it has scraped the child's last
      output.  AFAIK, neovim doesn't do anything interesting when winpty closes
      the CONOUT pipe.
      7f22a27a
  15. 29 Jul, 2017 1 commit
    • Justin M. Keyes's avatar
      test: force LC_ALL=en_US.UTF-8 · 5c08c8c0
      Justin M. Keyes authored
      Tests that check localized error messages need a stable locale, else
      errors like this occur:
      
          [  FAILED  ] 2 tests, listed below:
          [  FAILED  ] ...npack/file/vim/neovim/test/functional/eval/null_spec.lua @ 29: NULL list is accepted as an empty list by writefile()
          ...npack/file/vim/neovim/test/functional/eval/null_spec.lua:30: Expected objects to be the same.
          Passed in:
          (string) '
          E484: Cannot open file Xtest-functional-viml-null'
          Expected:
          (string) '
          E484: Can't open file Xtest-functional-viml-null'
      
          stack traceback:
                  ...npack/file/vim/neovim/test/functional/eval/null_spec.lua:30: in function <...npack/file/vim/neovim/test/functional/eval/null_spec.lua:29>
      
          [  FAILED  ] ...k/file/vim/neovim/test/functional/ex_cmds/write_spec.lua @ 81: :write errors out correctly
          ...k/file/vim/neovim/test/functional/ex_cmds/write_spec.lua:97: Expected objects to be the same.
          Passed in:
          (string) 'Vim(write):E510: Cannot make backup file (add ! to override)'
          Expected:
          (string) 'Vim(write):E510: Can't make backup file (add ! to override)'
      
          stack traceback:
                  ...k/file/vim/neovim/test/functional/ex_cmds/write_spec.lua:97: in function <...k/file/vim/neovim/test/functional/ex_cmds/write_spec.lua:81>
      
           10 SKIPPED TESTS
           2 FAILED TESTS
          -- Output to stderr:
          2017/07/29 00:41:32 ERROR 31133/open_log_file:170: Logging to stderr, failed to open $NVIM_LOG_FILE: Xtest-startup-xdg-logpath/nvim/log
          2017/07/29 00:41:32 WARN  31133/call_set_error:815: RPC: ch 1 was closed by the client
      
          CMake Error at /home/shlomif/Download/unpack/file/vim/neovim/cmake/RunTests.cmake:50 (message):
            Running functional tests failed with error: 1.
      
          FAILED: CMakeFiles/functionaltest
          cd /home/shlomif/Download/unpack/file/vim/neovim/build && /usr/bin/cmake -DBUSTED_PRG=/home/shlomif/Download/unpack/file/vim/neovim/.deps/usr/bin/busted -DLUA_PRG=/home/shlomif/Download/unpack/file/vim/neovim/.deps/usr/bin/luajit -DNVIM_PRG=/home/shlomif/Download/unpack/file/vim/neovim/build/bin/nvim -DWORKING_DIR=/home/shlomif/Download/unpack/file/vim/neovim -DBUSTED_OUTPUT_TYPE=nvim -DTEST_DIR=/home/shlomif/Download/unpack/file/vim/neovim/test -DBUILD_DIR=/home/shlomif/Download/unpack/file/vim/neovim/build -DTEST_TYPE=functional -DSYSTEM_NAME=Linux -P /home/shlomif/Download/unpack/file/vim/neovim/cmake/RunTests.cmake
          ninja: build stopped: subcommand failed.
          Makefile:102: recipe for target 'functionaltest' failed
          make: *** [functionaltest] Error 1
      5c08c8c0
  16. 07 Jul, 2017 1 commit
  17. 06 Jun, 2017 1 commit
  18. 27 May, 2017 1 commit
  19. 25 May, 2017 2 commits
  20. 03 May, 2017 1 commit
  21. 10 Apr, 2017 1 commit
    • ZyX's avatar
      cmake: Add FindLua.cmake · 3ea2063e
      ZyX authored
      Copied from CMake v3.8.0-707-g0419ecb, modified one include() line.
      3ea2063e
  22. 09 Apr, 2017 1 commit
  23. 31 Mar, 2017 4 commits
    • ZyX's avatar
      cmake: Replace RunLint.cmake with code in src/nvim/CMakeLists.txt · c61858a9
      ZyX authored
      This also removes LINT_FILE environment variable, other then that functionality 
      is kept. It is expected that developers needing partial linting will use `make 
      lint`, touching interesting file before (if not done already by writing to 
      them).
      c61858a9
    • ZyX's avatar
      24fd1258
    • ZyX's avatar
      cmake: Make Download.cmake check for errors · 8204eaea
      ZyX authored
      Copying from third-party/cmake/DownloadAndExtractFile.cmake.
      8204eaea
    • ZyX's avatar
      cmake: Add `clint` target to build Makefile · 030c0588
      ZyX authored
      Allows linting only modified files and linting multiple files in
      parallel. In the current state is rather slow because errors.json is
      a 6 MiB file and needs to be reparsed each time.
      
      Results on my system (6-core):
      
          # In build dir, actually parallel
          make -j5 clint  241.24s user 8.39s system 334% cpu 1:14.74 total
          # In root, one process
          make -j5 clint  60.69s user 0.37s system 93% cpu 1:05.19 total
      
      In both cases download time included.
      
      That is not well for travis (though I would keep travis as-is because
      new variant will fail before checking all files), but already good
      enough for regular development: total times are nearly identical and
      this is the *full* build, further `make -C build clint` will check only
      modified files.
      030c0588
  24. 30 Mar, 2017 1 commit
  25. 25 Mar, 2017 1 commit
  26. 12 Feb, 2017 1 commit
    • Justin M. Keyes's avatar
      build: `oldtest` target: TEST_FILE, NVIM_PRG (#6098) · 30826cb2
      Justin M. Keyes authored
      - Add support for TEST_FILE to the `oldtest` target, for consistency
        with the busted/lua tests.
        Caveat: with the busted/lua tests TEST_FILE takes a full path, whereas
        for `oldtest` it must be "test_foo.res".
      - Add support for NVIM_PRG, again so that all test-related targets are
        consistent.
      - Use consistent name for NVIM_PRG. But still need to support NVIM_PROG
        for QuickBuild CI.
      
      Note: The `oldtest` target is driven by the top-level Makefile, because
      it requires a TTY. CMake 3.2 added a USES_TERMINAL flag to
      add_custom_target(). But we support CMake 2.8...
      
          add_custom_target(oldtest
            COMMAND make clean
            COMMAND make NVIM_PRG=$<TARGET_FILE:nvim> $ENV{MAKEOVERRIDES}
            DEPENDS nvim
            WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/nvim/testdir"
            USES_TERMINAL true
          )
      30826cb2
  27. 04 Feb, 2017 1 commit
    • Justin M. Keyes's avatar
      build: Do not force busted into front of $PATH · bbfdb84a
      Justin M. Keyes authored
      This was a workaround from long ago, but it doesn't seem to be needed
      anymore. And it breaks the $PATH on the Windows build (AppVeyor CI).
      
      After this change python3 (and 2) is correctly detected on AppVeyor CI.
      
      References #5946
      bbfdb84a
  28. 12 Oct, 2016 1 commit
  29. 31 Aug, 2016 1 commit
    • Rui Abreu Ferreira's avatar
      functionaltest: Create lua helper for os.tmpname() · 9ce81f7b
      Rui Abreu Ferreira authored
      In Windows Lua's os.tmpname() returns relative paths starting with \s,
      prepend them with $TEMP to generate a valid path.
      
      In OS X os.tmpname() returns paths in '/tmp' but they should be in
      '/private/tmp'. We cannot use os_name() for platform detection because
      some tests use tempname() before nvim is spawned, instead use one of the
      following:
      
      1. Set SYSTEM_NAME environment variable before calling the tests, it
         is set from CMAKE_SYSTEM_NAME(i.e. uname -s or 'Windows')
      2. Call uname -s
      3. Assume windows
      9ce81f7b
  30. 17 Aug, 2016 1 commit
  31. 07 Aug, 2016 1 commit
    • Rui Abreu Ferreira's avatar
      MSVC: Build third-party dependencies as release DLLs · db7fdcd0
      Rui Abreu Ferreira authored
      Using /MT was causing issues when building luarocks, revert it, use the
      dynammic runtime and generate release DLLs for the dependencies.
      Some refactoring was required because for linking cmake looks for the
      import libraries (.lib) but on runtime executables we need the .dll files
      to be in the same folder.
      
      The DLLs are placed in the bin/ folder in order for nvim.exe to run
      during the build and tests. The install target installs the DLLs with
      the nvim binary - uses GetPrerequisites to find runtime DLLs.
      
      Some minor issues that required adjustments:
      - [MSVC] FindMsgpack.cmake now looks for msgpack_import.lib instead of
        msgpack.lib
      - The lua-client fails to find libuv.lib, instead it looks for uv.lib,
        added second copy of the file to the install command.
      - [MSVC] CMAKE_BUILD_TYPE affects the output paths, default to Release.
      
      Part of these changes are credited to @jasonwilliams200OK who fixed the
      third-party recipes to consistently use the same build type.
      db7fdcd0
  32. 13 Jul, 2016 1 commit
    • Josh Triplett's avatar
      Pass busted the path to the detected Lua interpreter · fc98d2d9
      Josh Triplett authored
      Otherwise, busted may run a different interpreter than the one we
      detected, without the capabilities we expect.  (For instance, we might
      have detected the luajit interpreter, but busted might run the lua
      interpreter, without the ffi module.)
      fc98d2d9
  33. 19 May, 2016 1 commit
    • Rui Abreu Ferreira's avatar
      cmake: Allow building without Luajit · d5c89b18
      Rui Abreu Ferreira authored
      By default Neovim searched a Luajit instalation and linked against
      the luajit library.
      
      In practice Neovim only requires luajit to run the unit tests. All other
      targets only require lua and the correct lua modules. This commit:
      
      1. Remove the strict dependency on Luajit
      2. Makes the unittest target depend on the lua 'ffi' module.
         If the module is not available the target is not enabled
         and a message is displayed.
      d5c89b18
  34. 28 Apr, 2016 1 commit
  35. 25 Feb, 2016 1 commit