HNHacker News
TopNewBestAskShowJobs

thetic

57 karma · joined February 11, 2014

submissionscomments
thetic··on Neovide – A simple, no-nonsense, cross-platform GUI for Neovim
these kinds of things are already possible (albeit without animation) with native features:

- https://neovim.io/doc/user/pi_paren.html - https://neovim.io/doc/user/lsp.html#lsp-highlight

thetic··on My personal C coding style as of late 2023
I don't even think that's a controversial opinion. Breaking convention isn't inherently bad; it has costs, some of which you described. In this case specifically, the novelty is not justified by any significant benefit.
thetic··on My personal C coding style as of late 2023
If only there were a way to indicate the function argument isn't mutated. </s>

My spidey senses tingle whenever I see const-ness cast away because it almost always means something is wrong. Either a function is missing a qualifier on an argument, or something very unsafe is happening. Why force callers to cast away const-ness in hopes that everything will be fine when you can just write the correct function signature.

thetic··on My personal C coding style as of late 2023
The legal cases in which he needs to cast away const could be avoided if the arguments to called functions were appropriately qualified.
thetic··on My personal C coding style as of late 2023
> #define sizeof(x) (size)sizeof(x)

Undefined behavior[1]

> #define assert(c) while (!(c)) __builtin_unreachable()

Undefined behavior[1]

> I’ll cast away the const if needed.

Undefined behavior[2]

> The assignments are separated by sequence points, giving them an explicit order.

I don't believe assignments are sequence points and only the function call is.

[1] https://en.cppreference.com/w/c/language/identifier#Reserved...

[2] https://en.cppreference.com/w/c/language/const

thetic··on How to improve Python packaging
https://github.com/python-poetry/roadmap/issues/3
thetic··on Neovim 0.8 Released
This is planned for the next release: https://github.com/neovim/neovim/issues/14790
thetic··on Ask HN: Is there other software similar to Vim and Emacs?
- qutebrowser

- vifm

- ranger

- i3

- sway

- tmux

- zathura

- tig

thetic··on Mastering Kitty Terminal
Kitty does not run on Windows.
thetic··on Moving the Linux Kernel to Modern C
Sure. This may not be a feasible approach for this case. I'm just pointing out alternative approaches to mitigate this kind of scoping problem in C89. Maybe wrap every use of list_for_each_entry in braces?

    {
        list_for_each_entry(...)
    }
thetic··on Moving the Linux Kernel to Modern C
Though C89 does not support declaration of a scoped loop variable like C99 does:

    for(int i = 0; i < 10; i++) {
        // ...
    }
C89 does support declaration of variables at the top of braced blocks whose scope is limited to that block:

    {
        int i;
        for(i = 0; i < 10; i++) {
            // ...
        }
    }
thetic··on Named Parameters in C++20
Though limited, C++ does support default parameters: https://en.cppreference.com/w/cpp/language/default_arguments.
thetic··on A Tutorial on Portable Makefiles
Wouldn't the header need to be explicitly listed as a dependency to prompt it's generation anyway?
thetic··on A Tutorial on Portable Makefiles
> The bad news is that inference rules are not compatible with out-of-source builds. You’ll need to repeat the same commands for each rule as if inference rules didn’t exist. This is tedious for large projects, so you may want to have some sort of “configure” script, even if hand-written, to generate all this for you. This is essentially what CMake is all about. That, plus dependency management.

This isn't a case for CMake. It's a case against POSIX Make. The proposed "portability" and "robustness" of adherence to the POSIX standard are not worth hamstringing the tool. GNU Make is ubiquitous and is leaps and bounds ahead of pure Make.

thetic··on Porting 4.5K lines of C to Go
This one tripped me up too. I'm guessing he meant `a |= b`.
thetic··on How Did Anyone Do Math in Roman Numerals?
On the subject of annoying ambiguities in mathematical notations, I would like to point out the ridiculous convention of inverse function notation.

Is there any sensible rationale for sin^(-1)(x) meaning arcsin(x) while sin^2(x) means (sin(x))^2?

thetic··on Input Mono – A Typeface for Code, from Font Bureau
I used Input Mono for quite a while, but the '8' and 'B' characters are too easy to confuse.
thetic··on Getting started with vim
This sounds like visual mode.