<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/third-party/cmake, branch usermarks</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>build: rename build-related dirs</title>
<updated>2022-06-28T11:02:29+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2022-06-27T10:08:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b'/>
<id>f05a2891d3da9f9fcd9c7457ca0c2a54ff65078b</id>
<content type='text'>
Problem:
Dirs "config", "packaging", and "third-party" are all closely related
but this is not obvious from the layout. This adds friction for new
contributors.

Solution:
- rename config/ to cmake.config/
- rename test/config/ to test/cmakeconfig/ because it is used in Lua
  tests: require('test.cmakeconfig.paths').
- rename packaging/ to cmake.packaging/
- rename third-party/ to cmake.deps/ (parallel with .deps/)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Dirs "config", "packaging", and "third-party" are all closely related
but this is not obvious from the layout. This adds friction for new
contributors.

Solution:
- rename config/ to cmake.config/
- rename test/config/ to test/cmakeconfig/ because it is used in Lua
  tests: require('test.cmakeconfig.paths').
- rename packaging/ to cmake.packaging/
- rename third-party/ to cmake.deps/ (parallel with .deps/)
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(build): strip trailing newline from variable (#19084)</title>
<updated>2022-06-25T11:45:20+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2022-06-25T11:45:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b7084fef4c850d0352488b14dcff0f36a7e75e1c'/>
<id>b7084fef4c850d0352488b14dcff0f36a7e75e1c</id>
<content type='text'>
Problem: #19029 added a new fallback that sets
`$MACOSX_DEPLOYMENT_TARGET` to the local macOS version via `sw_vers`.
However, the output included a newline, which broke the generated Ninja
build script.

Solution: use `OUTPUT_STRIP_TRAILING_WHITESPACE` for `execute_process`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: #19029 added a new fallback that sets
`$MACOSX_DEPLOYMENT_TARGET` to the local macOS version via `sw_vers`.
However, the output included a newline, which broke the generated Ninja
build script.

Solution: use `OUTPUT_STRIP_TRAILING_WHITESPACE` for `execute_process`.</pre>
</div>
</content>
</entry>
<entry>
<title>build(deps): support universal builds on macOS</title>
<updated>2022-06-24T15:43:11+00:00</updated>
<author>
<name>Carlo Cabrera</name>
<email>30379873+carlocab@users.noreply.github.com</email>
</author>
<published>2022-06-24T15:43:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b70f16041439aa070ad1bc759d634a4c5f6587d8'/>
<id>b70f16041439aa070ad1bc759d634a4c5f6587d8</id>
<content type='text'>
CMake can handle building universal binaries on macOS using the
`CMAKE_OSX_ARCHITECTURES` variable. Let's pass this variable to the
relevant dep builds. We use the `LIST_SEPARATOR` argument to prevent the
shell from interpreting the `;` that CMake uses as a list separator.

For dependencies that don't build using CMake, we only need to make sure
that the compiler is invoked with the correct `-arch` flags. The
compiler does the rest.

The only exception to this is the LuaJIT build, which we handle
separately as a special case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CMake can handle building universal binaries on macOS using the
`CMAKE_OSX_ARCHITECTURES` variable. Let's pass this variable to the
relevant dep builds. We use the `LIST_SEPARATOR` argument to prevent the
shell from interpreting the `;` that CMake uses as a list separator.

For dependencies that don't build using CMake, we only need to make sure
that the compiler is invoked with the correct `-arch` flags. The
compiler does the rest.

The only exception to this is the LuaJIT build, which we handle
separately as a special case.
</pre>
</div>
</content>
</entry>
<entry>
<title>build(luajit): support universal builds on macOS</title>
<updated>2022-06-24T15:34:57+00:00</updated>
<author>
<name>Carlo Cabrera</name>
<email>30379873+carlocab@users.noreply.github.com</email>
</author>
<published>2022-06-24T15:34:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=adcaf24f422d4a4988f18d738acb843e51ba643e'/>
<id>adcaf24f422d4a4988f18d738acb843e51ba643e</id>
<content type='text'>
To build universal binaries on macOS, one typically only needs to pass
multiple `-arch` flags to `clang`.

Unfortunately, this strategy causes LuaJIT builds to fail. To work
around this, we build LuaJIT for each requested architecture
individually first and then use `lipo` to package each architecture
slice into a universal binary.

To be able to do this on an Intel macOS host or an M1 macOS host without
a Rosetta installation, we need some special flags in order to tell
LuaJIT that it is cross-compiling for a different target. See [1] for
details.

[1] https://luajit.org/install.html#cross
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To build universal binaries on macOS, one typically only needs to pass
multiple `-arch` flags to `clang`.

Unfortunately, this strategy causes LuaJIT builds to fail. To work
around this, we build LuaJIT for each requested architecture
individually first and then use `lipo` to package each architecture
slice into a universal binary.

To be able to do this on an Intel macOS host or an M1 macOS host without
a Rosetta installation, we need some special flags in order to tell
LuaJIT that it is cross-compiling for a different target. See [1] for
details.

[1] https://luajit.org/install.html#cross
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tests): check for EOF on exit of nvim properly</title>
<updated>2022-06-13T08:15:44+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-06-08T21:22:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e3281d992e1b9366d67a4b4399e3b5e11bb6c1cc'/>
<id>e3281d992e1b9366d67a4b4399e3b5e11bb6c1cc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>build: remove CMAKE_CROSSCOMPILING code #18914</title>
<updated>2022-06-12T22:11:14+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2022-06-12T22:11:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=3c7b91da10436fb503934a735958b445bbde580e'/>
<id>3c7b91da10436fb503934a735958b445bbde580e</id>
<content type='text'>
This is rarely, if ever, used and certainly not tested. It's likely this
isn't functional anymore.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is rarely, if ever, used and certainly not tested. It's likely this
isn't functional anymore.</pre>
</div>
</content>
</entry>
<entry>
<title>revert: "ci: remove mingw job #18580"</title>
<updated>2022-05-17T15:07:45+00:00</updated>
<author>
<name>Dundar Goc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2022-05-17T13:08:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a4c0c0704308ee18e3a23954c07666f36cfbb930'/>
<id>a4c0c0704308ee18e3a23954c07666f36cfbb930</id>
<content type='text'>
This partially reverts commit f8af81445bb48966d54f4a956842d935d009d275.

The mingw parts of cmake was removed to see if it was still used
(ref: https://github.com/neovim/neovim/pull/18580). It turns out it is,
so this will fix that.

Closes: https://github.com/neovim/neovim/issues/18597
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This partially reverts commit f8af81445bb48966d54f4a956842d935d009d275.

The mingw parts of cmake was removed to see if it was still used
(ref: https://github.com/neovim/neovim/pull/18580). It turns out it is,
so this will fix that.

Closes: https://github.com/neovim/neovim/issues/18597
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: remove mingw job #18580</title>
<updated>2022-05-15T22:59:58+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2022-05-15T22:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f8af81445bb48966d54f4a956842d935d009d275'/>
<id>f8af81445bb48966d54f4a956842d935d009d275</id>
<content type='text'>
Unnecessary CI builds increase the change of spurious failures, which are costly
noise. Of course, we should fix all legitimate bugs, but we also cannot
micro-manage every platform, so there needs to be a clear motivation for the CI
builds that we maintain.

Reasons against maintaining a mingw CI job:
1. The windows mingw build is slow.
2. Failures:
    - https://github.com/neovim/neovim/issues/18494
    - https://github.com/neovim/neovim/issues/18495
3. The mingw artifact is 10x bigger than the windows MSVC artifact:
   https://github.com/neovim/neovim/issues/10560
4. Our releases publish the MSVC (not mingw) artifact for Windows users:
   https://github.com/neovim/neovim/releases
5. Non-MSVCRT has limitations documented by libuv: http://docs.libuv.org/en/v1.x/process.html
   &gt; On Windows file descriptors greater than 2 are available to the child process only if the child processes uses the MSVCRT runtime.

Closes https://github.com/neovim/neovim/issues/18551</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unnecessary CI builds increase the change of spurious failures, which are costly
noise. Of course, we should fix all legitimate bugs, but we also cannot
micro-manage every platform, so there needs to be a clear motivation for the CI
builds that we maintain.

Reasons against maintaining a mingw CI job:
1. The windows mingw build is slow.
2. Failures:
    - https://github.com/neovim/neovim/issues/18494
    - https://github.com/neovim/neovim/issues/18495
3. The mingw artifact is 10x bigger than the windows MSVC artifact:
   https://github.com/neovim/neovim/issues/10560
4. Our releases publish the MSVC (not mingw) artifact for Windows users:
   https://github.com/neovim/neovim/releases
5. Non-MSVCRT has limitations documented by libuv: http://docs.libuv.org/en/v1.x/process.html
   &gt; On Windows file descriptors greater than 2 are available to the child process only if the child processes uses the MSVCRT runtime.

Closes https://github.com/neovim/neovim/issues/18551</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(eval): use Hashy McHashFace instead of gperf</title>
<updated>2022-05-12T18:01:04+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-05-12T16:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=36613b888bae7df764a26a28ca1627a2c0c2edeb'/>
<id>36613b888bae7df764a26a28ca1627a2c0c2edeb</id>
<content type='text'>
this removes gperf as a build dependency
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this removes gperf as a build dependency
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(ui): simplify stdin handling</title>
<updated>2022-05-02T20:19:41+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2022-04-22T18:56:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=ad63b94b03c166f37bda477db6cbac2a9583d586'/>
<id>ad63b94b03c166f37bda477db6cbac2a9583d586</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
