Live data from Hacker News

Viewing profile — 414owen

414owen

HN member
Joined
Tue, Oct 11, 2016, 5:57 PM UTC
HN karma
370
Public activity
36 items

About 414owen

Haskell/Rust/C developer. Compiler engineer.

[ my public key: https://keybase.io/414owen; my proof: https://keybase.io/414owen/sigs/QGb2QrkyTUSMzBiHib_rL_aoACN-NGtHJHQ8RmxQguY ]

Recent public activity

  1. story
  2. story
  3. comment
    Comment #46401140

    Wow, okay. I would imagine this makes mathematicians quite angry? I guess you're responsible for all the operations you use in your proof being well-behaved. It sounds like subtrac…

  4. comment
  5. comment
    Comment #39466145

    re2c works like a charm. I'm generally confident that I couldn't write faster scanners by hand if I tried.

  6. comment
    Comment #37040272

    This code was written a while ago, but I decided it merited a write-up recently.

  7. story
  8. comment
    Comment #36848204

    I have DietPi running on a Raspberry pi Zero W (armv6l), which is a system that's supported by barely any distros nowadays. It was easy to preseed, has the absolute bare minimum am…

  9. comment
    Comment #36657790

    This is pretty much `assembly language the game`: https://tomorrowcorporation.com/humanresourcemachine It's not a useful architecture, but it teaches the thought process really wel…

  10. comment
    Comment #36657666

    The array lookup approach taken in part two: https://owen.cafe/posts/the-same-speed-as-c/ But taking the length of the string as a parameter is not, because that changes the proble…

  11. comment
    Comment #36628757

    Kind words, much appreciated!

  12. comment
    Comment #36628372

    I guess the question is whether the compiler should optimize a function containing a loop for a single null terminator, or for more data. I would suggest the latter is what you wan…

  13. comment
    Comment #36625014

    So I actually did try that, but and IIRC it didn't produce a CMOV with either gcc or clang. I didn't put it in the repo because it wasn't an improvement (on my machine) and I decid…

  14. comment
    Comment #36624742

    That's the thing, a C compiler has all the information it needs to know that the maximum amount of times a '\0' can be processed in the loop is once (because the function returns),…

  15. comment
    Comment #36624157

    Very interesting approach. I should probably have specified that the somewhat naive assembly in `02-the-same-speed-as-c/loop-5.x64.s` is the fastest version I have. On my machine I…

  16. comment
    Comment #36623958

    Nice! There's a part two in which I rewrote the C. I got a 12x speedup :) https://owen.cafe/posts/the-same-speed-as-c/ And as others have pointed out, you can tweak the input, then…

  17. comment
    Comment #36623823

    The version that's friendly to the compiler is described in part two: https://owen.cafe/posts/the-same-speed-as-c/ It achieves 3.88GiB/s I intentionally didn't go down the route of…

  18. comment
    Comment #36623739

    > because without FDO (or PGO) the compiler has no idea how likely each branch is to be taken So, the maximum amount of times you can hit '\0' is once in the string, because then t…

  19. comment
    Comment #36623500

    Yes, I explained in the `Benchmarking setup` section that I used `march=native`, but I guess I forgot to mention I used -O3.

  20. comment
    Comment #36620483

    I'd probably look for a tech co-founder. Such a small percentage of startups make it, and having a learning-as-you-go tech team will not help those already small chances. That said…

  21. comment
    Comment #36618345

    A clickbait title for an in-depth look at hand-optimizing a very simple loop.

  22. story
  23. comment
    Comment #33340855

    I would. A few basic requirements are: git, linux, a desktop computer (or to be allowed to use my own)

  24. comment
    Comment #32594977

    I'm using lemon to parse a programming language. Lemon produces this report for my grammar: Parser statistics: terminal symbols................... 19 non-terminal symbols..........…

  25. comment
    Comment #32480699

    I migrated my main personal project (a programming language written in C) to Tup recently. So far I love it, it seems to 'just work'. Some highlights: No need to map header (or oth…