From here[1]:
1.1.4 2015-04-26
- move maintainer options from GNUmakefile to maint.mk
- compile with -O2 by default
1.1.3 2015-04-25
- fix permission error when installing into existing directory
(gh PR #7)
- relicense tools/*.c under MIT (gh #9)
- add change log in Changes
[1]: https://github.com/mauke/unibilium/compare/v1.1.2...v1.1.4
Changes since 2.0.3:
- Fix stack check in narrowing optimization.
- Fix Lua/C API typecheck error for special indexes.
- Fix string to number conversion.
- Fix lexer error for chunks without tokens.
- Don't compile IR_RETF after CALLT to ff with-side effects.
- Fix BC_UCLO/BC_JMP join optimization in Lua parser.
- Fix corner case in string to number conversion.
- Gracefully handle lua_error() for a suspended coroutine.
- Avoid error messages when building with Clang.
- Fix snapshot #0 handling for traces with a stack check on entry.
- Fix fused constant loads under high register pressure.
- Invalidate backpropagation cache after DCE.
- Fix ABC elimination.
- Fix debug info for main chunk of stripped bytecode.
- Fix FOLD rule for string.sub(s, ...) == k.
- Fix FOLD rule for STRREF of SNEW.
- Fix frame traversal while searching for error function.
- Prevent GC estimate miscalculation due to buffer growth.
- Prevent adding side traces for stack checks.
- Fix top slot calculation for snapshots with continuations.
- Fix check for reuse of SCEV results in FORL.
- Add PS Vita port.
- Fix compatibility issues with Illumos.
- Fix DragonFly build (unsupported).
- OpenBSD/x86: Better executable memory allocation for W^X mode.
- x86: Fix argument checks for ipairs() iterator.
- x86: lj_math_random_step() clobbers XMM regs on OSX Clang.
- x86: Fix code generation for unused result of math.random().
- x64: Allow building with LUAJIT_USE_SYSMALLOC and LUAJIT_USE_VALGRIND.
- x86/x64: Fix argument check for bit shifts.
- x86/x64: Fix code generation for fused test/arith ops.
- ARM: Fix write barrier check in BC_USETS.
- PPC: Fix red zone overflow in machine code generation.
- PPC: Don't use mcrxr on PPE.
- Various archs: Fix excess stack growth in interpreter.
- FFI: Fix FOLD rule for TOBIT + CONV num.u32.
- FFI: Prevent DSE across ffi.string().
- FFI: No meta fallback when indexing pointer to incomplete struct.
- FFI: Fix initialization of unions of subtypes.
- FFI: Fix cdata vs. non-cdata arithmetic and comparisons.
- FFI: Fix __index/__newindex metamethod resolution for ctypes.
- FFI: Fix compilation of reference field access.
- FFI: Fix frame traversal for backtraces with FFI callbacks.
- FFI: Fix recording of indexing a struct pointer ctype object itself.
- FFI: Allow non-scalar cdata to be compared for equality by address.
- FFI: Fix pseudo type conversions for type punning.
Taken from http://luajit.org/changes.html
- Update recipes to build with MSVC or cross compile in Unix with Mingw
- For recipes that need to be reused, wrap recipe in CMake function
using cmake_parse_arguments
- New directory .deps/host is the install root for HOST targets, the old
.deps/usr is used for TARGET
- In windows disable builds for terminal libraries and jemalloc
- Added cmake script CopyFilesGlob.cmake to copy files using glob
cmake -DFROM_GLOB=*.h -DTO=/usr/include -P CopyFilesGlob.cmake
- New CMake variables HOSTDEPS_* can be used in cross compile recipes.
Except when the target is UNIX, since that would break 32bit builds
in 64bit Unix systems using the Travis 32bit toolchain
We didn't have ansicolors pegged, and several others were below the
minimum required versions causing busted to go out and grab newer
versions anyways. Let's peg them all to useful versions.
Libtermkey can be linked against unibilium or curses. For the bundled
dependencies Neovim links against static versions of libtermkey and
unibilium, after building both libraries.
However libtermkey requires pkg-config to be installed in order to detect
and link against unibilium, otherwise it falls back to curses by default.
In systems where pkg-config is not installed building Neovim against the
bundled libtermkey caused a linking error (#2484).
So pkg-config needs to be installed for the bundled libtermkey to build
properly.
* Set JEMALLOC_NO_DEMANGLE to be able to use `je_*` functions,
regardless of how jemalloc was compiled (--with-jemalloc-prefix)
* Show jemalloc information in Neovim's version output.
Resolve#2449.
- When not running the unit tests, building the third-party busted,
nvim-client and other dependencies can be skipped by passing
-DUSE_BUNDLED_BUSTED=FALSE to the third-party project.
Jemalloc will be used if the cmake option `USE_JEMALLOC` is enabled(which is the
default). To avoid trouble with clang's ASAN, it is disabled by default if the
`SANITIZE` option is enabled.
Since jemalloc has thread cache for small objects, it fills the gap created by
removing klib memory pools.
The `xstrdup` funciton(memory.c) had to be reimplemented on top of `xmalloc` to
make it work with a custom allocator.
This requires a couple of extra modules that are not installed by
default, and it requires capturing stdout of the tests--otherwise CMake
output is intermixed with the XML output of busted.
This is a variant of the utfTerminal output handler that will:
- Output the file name before each suite is executed
- Output the test name before each test is executed
This will make it simpler to identify crashing/hanging tests.
* Force building Lua rocks instead of trying to install a binary.
* Set the CC and LD environment variables to pass
CMAKE_C_COMPILER_ARG1 (contains `-m32` for 32-bit builds)
to `luarocks build`.
busted depends on a number of libraries that sometimes introduce crashing bugs.
The new custom target makes sure only stable versions of those dependencies are
installed.
It turns out that `file(DOWNLOAD ...)` is not very user friendly with
it's error message, and only supports MD5 on v2.8.10 of CMake (the
default for Ubuntu 12.04). If CMake is built without SSL support,
users are left hanging with a message that the hashes don't match.
It turns out that `file(SHA1 ...)` exists in v2.8.10, and we
can use that to compute the hash ourselves. So this splits the hash
checking into a separate step, where we can provide some additional
advice if the SHA1 is the hash for an empty file. Additionally, it also
allows us to drop the MD5 hashes and maintain only SHA1 hashes for our
dependencies.
The issue is that libuv decides to use ${PREFIX}/lib64 as the lib
directory instead of ${PREFIX}/lib. Since we're just installing it to
provide access to the static library, let's just force the libdir to be
${PREFIX}/lib.