Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    C

    Corsix

    corsix.org · Personal blog · on HN since 2009

    Corsix writes low-level posts on CPU instructions, SIMD, CRC performance, LuaJIT and processor architecture.

    Visit blogRSSHN submissions
    Systems & PerformanceHardware & ElectronicsLanguages & Compilers
    What HN says

    HN links his posts on Galois field instructions, fast CRC32-C, ARM instructions and malicious LuaJIT bytecode as useful technical references.

    Stats for nerds
    35HN people shared it
    49linked in comments
    1.1Kstory points
    Dec 2025last shared
    2009people per year2025

    Top posts on HN

    1. 1
      Galois field instructions on 2021 CPUs
      3 people · 164 points · first shared 2022 · 41 comments on HN
    2. 2
      My favourite small hash table
      1 person · 159 points · first shared 2025 · 36 comments on HN
    3. 3
      Faster CRC32-C on x86
      2 people · 107 points · first shared 2022 · 21 comments on HN
    4. 4
      Linux/ELF .eh_frame from the bottom up
      1 person · 105 points · first shared 2024 · 11 comments on HN
    5. 5
      Converting floats to strings
      1 person · 97 points · first shared 2017 · 18 comments on HN
    6. 6
      On libunwind and dynamically generated code on x86-64
      1 person · 96 points · first shared 2016 · 29 comments on HN
    7. 7
      RISC-V Conditional Moves
      4 people · 88 points · first shared 2025 · 71 comments on HN
    8. 8
      Alternatives to short unconditional jumps on x86
      1 person · 68 points · first shared 2017 · 24 comments on HN
    9. 9
      Contrasting Intel AMX and Apple AMX
      2 people · 65 points · first shared 2022 · 19 comments on HN
    10. 10
      __VA_OPT__ Minutiae
      2 people · 63 points · first shared 2024 · 6 comments on HN

    What HN people wrote when they linked it

    • i336_Dec 2015

      A sidenote on JIT: I wrote the following while working out the structure of my post; I figured it wouldn't hurt too much to post it too. The bulk of my question is above; what follows is more or less incidental.

      I understand that JIT has something of a role in performance, and that modern Javascript engines couple the performance gains of JIT execution with a mind-boggling slew of different security and sandboxing techniques that aim to prevent unwanted data colliding with the CPU's instruction pointer while still allowing near-C levels of performance. Thing is, what generally makes browsers' sometimes unbelievable JIT-powered performance[1] possible is the fact that the major JS engines - V8, JavaScriptCore, Chakra, Spidermonkey - have huge companies behind them that have the resources to fund continuous R&D to iterate on performance while keeping abreast of security issues.

      [1]: http://www.gopherjs.org/blog/2015/09/28/surprises-in-gopherjs-performance/

      But I'm not a browser manufacturer, or a computer science major (or even undergrad). I'm just a tinkerer who wants to play around with ideas that generally need safe remote code execution in a way that is transparent (to the extent a high-level competent end user could introspect all operations and control low-level settings) and trustable (for both the end user, who wants control of their device, and the developer, who wants a predictable environment).

      I understand that JIT is generally incredibly hard to get right -…

    • zapharSep 2009

      seriously?

      You have to know perl's control flow ("unless"

      unless is that difficult to understand? Its plain english has totally understandable semantics without reading a lick of documentation about perl.

      you have to know perl references(->)

      This is just like C++ and an arrow is pretty dang readable and plain to me. Perhaps even more informative than a period.

      you have to know perl's variable prefixes.

      I might be convinced to give you this one but really reading the perl code isn't that difficult even with 3 extra symbols to know. Even not knowing the symbols the code example you show is both readable and concise.

      Yes perl may have some quirks but for the most part it "Does exactly what you think it would by reading it". That was a design goal of the language after all.

      Of course anyone could write perl code that is incomprehensible and makes use of perls semantics to obfuscate their purpose (using every example you cite) but that is with effort on their part and significant effort in some cases. And just to drive the point home may I present lua code that is way harder to read than any perl code I've ever seen even in an obfuscated perl contest: http://www.corsix.org/content/obfuscated-lua

      To reiterate, no one in their right mind would right lua code like that except as an exercize and experiment. Same thing goes for perl. The perl code you show above is perfectly readable. Unless does exactly what you expect it to. -> arrows mean exactly what you would…

    • anonymoushnJul 2024

      If you learn AVX2 programming via highload, my impression is that NEON is quite similar. The main difference is the lack of movemask. You can read these[0] articles[1] about what to do instead.

      For SVE, prior to very recent versions of SVE, there was no tblq (pshufb equivalent) so I didn't have much hope for using it for general-purpose programming, though of course it would be fine for stuff like TFA.

      [0]: https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/porting-x86-vector-bitmask-optimizations-to-arm-neon

      [1]: https://www.corsix.org/content/whirlwind-tour-aarch64-vector-instructions

    • myrmidonJan 2025

      Note that loading (maliciously crafted) bytecode is generally not safe in Lua; sandboxing can be escaped in more ways than what's possible when loading plaintext sourcecode, and there are no full mitigations for this currently as far as I know (and would probably be highly interpreter/version sensitive anyway)-- the only "real" mitigation strategy is to just not `load` bytecode at all.

      But this is probably a non-issue for a lot of usecases.

      See e.g.

      https://gist.github.com/corsix/6575486

      https://www.corsix.org/content/malicious-luajit-bytecode

    • spc476Aug 2017

      There's a problem---you can break out of Lua with malformed bytecode [1] and the Lua team don't want to spend the time trying to validate Lua byte code [2]. That's why the latest Lua version has an option to ignore precompiled Lua scripts.

      And sadly, I can see the same happening here.

      [1] https://www.corsix.org/content/malicious-luajit-bytecode

      [2] The overhead will eat any performance gained by using precompiled Lua code in the first place.

    • exikyutJun 2020

      A small history of LuaJIT sandbox escapes:

      - 5.2, 2016: https://apocrypha.numin.it/talks/lua_bytecode_exploitation.pdf (9MB PDF)

      - 5.2, 2016: https://github.com/erezto/lua-sandbox-escape

      - 5.1, 2015: https://www.corsix.org/content/malicious-luajit-bytecode (warning: dense)

      There's a "luarop" link (boop.i0i0.me/blog.lua/luarop) referenced in the PDF, but the link sadly seems to have died (IA never crawled the domain).

    Related

    Arm Community Blogcommunity.arm.com147 people

    An update on GNU performance

    Arm Community Blog
    Company · last shared 2025
    Erik Rigtorprigtorp.se21 people

    Low latency tuning guide

    Erik Rigtorp
    Personal · last shared 2026
    Random ASCIIrandomascii.wordpress.com274 people

    There are only four billion floats, so test them all (2014)

    Random ASCII
    Personal · last shared 2026
    Joe Damatotimetobleed.com39 people

    American Express fails miserably at basic security

    Joe Damato
    Personal · last shared 2022
    Agner Fogagner.org293 people

    An optimization guide for assembly programmers and compiler makers (2018) [pdf]

    Agner Fog
    Personal · last shared 2026
    Theia Vogelvgel.me36 people

    Why do LLMs freak out over the seahorse emoji?

    Theia Vogel
    Personal · last shared 2026
    Dougall Johnsondougallj.wordpress.com48 people

    Why is Rosetta 2 fast?

    Dougall Johnson
    Personal · last shared 2026
    Justine Tunneyjustine.lol251 people

    Show HN: Redbean – Single-file distributable web server

    Justine Tunney
    Personal · last shared 2026