Tracking master subjects us to breakages (as happened when
luacheck-scm-1.rockspec got renamed to luacheck-dev-1.rockspec) and
makes older releases unbuildable when that happens.
❯ git log --oneline v2.0.0...v1.2.1
e3b16d6 (HEAD -> master, tag: v2.0.0, origin/master, origin/HEAD) version 2.0.0
6f0037b (origin/wide-int) update README with build instructions / prerequisites
f40c97a explicitly mention the new "wide integer" format in the man pages
37aa305 use ncurses*-config to get TERMINFO_DIRS if possible
2461ee1 use perl instead of sed hackery to create unibilium.pc
23e9dea don't cast between pointer types of different alignments
1b5b8fd add basic test for wide format
cfe4216 add xterm-256color; regenerate static tests from ncurses 6.1
6e55e75 escape backslashes properly
42f3cdd add 32 bit number support (wide terminfo format)
73385ba unibi-dump: accept a filename as argument
ec9ef0a don't pass NULL to memcpy
b42315b (origin/typecheck) make unibi_var_t slightly more type-safe
* Update libuv to 1.12.0
* Update msgpack-c to 2.13
* Update LuaJIT to 2.0.5 (82151a45 for a Windows build fix)
* Update jemalloc to 4.5.0
* Update luv to 1.9.1-1
* Update gperf to 3.1
LuaRocks 2.3 and onwards changed the /P option to no longer include the
version number which made newer releases of LuaRocks fail when compiling
on Windows.
For CI builds unibilium is provided through msys2 packages, and
libtermkey is built from source in third-party from equalsraf/libtermkey.
In Windows we cannot read terminal input from the stdin file descriptor,
instead use libuv's uv_tty API. It should handle key input and encoding.
The UI suspend is not implemented for Windows, because the
SIGSTP/SIGCONT do not exist in windows. Currently this is a NOOP.
Closes#3902Closes#6640
https://github.com/mpeterv/luacheck/pull/81#issuecomment-261099606
> If you really want to use bleeding-edge version you should get the
> rockspec from master branch, not a fixed commit ...
> The correct way to install from a specific commit is cloning that
> commit and running "luarocks make" from project directory. The reason
> is that running "install" or "build" on an scm rockspec fetches
> sources from master but uses build description from the rockspec
> itself, which may be outdated.
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.
Luv is a simple lua binding to libuv, which is now used by neovim lua client.
The bundled luv installation a bit different from other dependencies in that it
is installed two times:
- The "BuildLuv.cmake" script downloads and installs a static version of luv
using its normal cmake build script. This static version will be used later.
- Luv default rockspec is replaced with the alternate under the "rockspecs"
directory(the alternate rockspec plays nicer with neovim build system)
- The alternate rockspec is used to build/install the lua module and make it
available to lua scripts.
New feature: `VTermState->mode.bracketpaste`
Enabled by default, but note that `vterm_state_reset()` disables it.
03981def6b
References #3476
New feature: `vterm_state_set_unrecognised_fallbacks`
acf7f19713
Oh, and terminal reflow works now.
Closes#2514 (but not #3864, that's a bit more tricky)
Otherwise the dynamic library is built also and find_library will prefer
that over the static one. That results in linking against the dynamic
library which will not be found after install.
This code:
8b3c399b6d/third-party/CMakeLists.txt (L130)
should prevent the above problem, but it doesn't hurt to be explicit.
So far luacheck's rockspec specified only the git protocol. Hence people
behind firewalls/proxies, that block port 9814, had trouble fetching this
dependency via luarocks.
The latest commit updated the rockspec to use either git or https. Thus common
workarounds like this are not needed anymore:
git config --global url."https://".insteadOf git://
References #3769.
Libuv and LuaJIT like to hide the actual compilation and linking
commands behind nice text. This change makes them spit out the actual
command line to help us with debugging issues that people are seeing.
Introduce ALLOW_EXISTING_SRC_DIR option, turned off by default.
The Homebrew formula, which downloads and extracts the third-party
dependency sources before starting the build, would turn this option
ON.
This effectively reverts 585e5d32a3
The pinning was done at a time when `lua_cliargs` caused test failures,
so an older version which didn't was pinned. We're now using the latest
version (2.5-1), so the cause of those failures were presumably fixed.