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
    T

    The Incredible Holk

    blog.theincredibleholk.org · Personal blog · on HN since 2012

    Eric Holk, a programming languages researcher, writes about Rust, GPU compilers, the Harlan language, and Scheme.

    Visit blogRSSHN submissions
    Languages & CompilersProgrammingSystems & Performance
    What HN says

    HN commenters cite it as an early source on compiling Rust for GPUs, booting to Rust, and understanding continuations through a Scheme interpreter.

    Stats for nerds
    23HN people shared it
    20linked in comments
    891story points
    May 2019last shared
    2013people per year2019

    Top posts on HN

    1. 1
      Booting to Rust
      3 people · 369 points · first shared 2013 · 40 comments on HN
    2. 2
      How do we read code?
      1 person · 214 points · first shared 2012 · 77 comments on HN
    3. 3
      Harlan, new Lispy language for GPU programming
      2 people · 201 points · first shared 2013 · 39 comments on HN
    4. 4
      Compiling Rust for GPUs
      4 people · 79 points · first shared 2013 · 39 comments on HN
    5. 5
      Why the Harlan compiler was written in Scheme
      1 person · 6 points · first shared 2013 · Discussion on HN
    6. 6
      A Look at Dyn* Code Generation
      3 people · 3 points · first shared 2022 · Discussion on HN
    7. 7
      How Async Functions in Traits Could Work in Rustc
      2 people · 3 points · first shared 2022 · Discussion on HN
    8. 8
      Monads as a Design Pattern
      1 person · 3 points · first shared 2017 · Discussion on HN
    9. 9
      Beware the Logarithms
      1 person · 3 points · first shared 2013 · Discussion on HN
    10. 10
      Access patterns matter for GPU Programming
      1 person · 2 points · first shared 2012 · Discussion on HN

    What HN people wrote when they linked it

    • groovy2shoesOct 2017

      You may find this paper helpful [1]. As noted there, syntax-rules consists really of two different parts: (1) the hygiene-preserving macro expander and (2) the pattern-matching facility. Once you wrap your head around the two pieces, it's actually pretty straightforward to implement them both. It's very common to write some "low-level" macro facility as a stepping-stone to syntax-rules (such as explicit-renaming macros or syntactic closures): the implementation of syntax-rules then becomes a composition of the pattern-matcher and the low-level facility. A tutorial implementation of an appropriate pattern-matcher can be found at [2],[3].

      There's lots of good reading to be found at the ReadScheme Library [4]. Most if not all of the references in [1] can be found there.

      Tangentially: yeah, syntax-rules kinda flies in the face of the oft-mentioned minimalism of Scheme, but there's a reason for it: at the time syntax-rules was standardized, there was no consensus on which (if any) low-level facility should be standardized (and, really, there still isn't any such consensus). The reason syntax-rules operates as a pattern-template rewriting system rather than as a procedural system is that such a system is able to guarantee that the macros it produces are hygienic in a (comparably) simple and intuitive way. The idea was to standardize on a high-level system so that Scheme could have a standard macro facility, whilst leaving the low-level systems open for further…

    • eholkJul 2013

      I really should update the user guide, since the language has changed a lot in the last year.

      I have an earlier post that discusses a couple of the optimizations that Harlan does: http://blog.theincredibleholk.org/blog/2013/06/10/some-simple-gpu-optimizations/

      To me the win for Harlan over CUDA is its region system, which lets you work with more intricate pointer structures in the GPU. For example, there is an interpreter for the Lambda Calculus as one of the test cases, which would be much harder to do in straight CUDA: https://github.com/eholk/harlan/blob/master/test/lambda3.kfc

      Very soon, Harlan will have support for higher order procedures, which is also not available in CUDA.

    • shmerlAug 2016

      > Des­pite my strong at­tach­ment to the Rust com­munity and Rust’s per­fect suit­ab­il­ity for ker­nels1, I’ll be writ­ing the ker­nel in C. Mostly be­cause it is un­likely people in­side the uni­ver­sity will be fa­mil­iar with Rust, but also be­cause GNU-EFI is a C lib­rary and I can­not be bothered to bind it. I’d surely be writ­ing it in Rust were I more ser­i­ous about the pro­ject.

      I saw an example of booting from UEFI in Rust: http://blog.theincredibleholk.org/blog/2013/11/18/booting-to-rust/

    • dbauppSep 2014

      Rust is a low-level language so everything user-space can be implemented, and the main (and only) compiler rustc uses an industrial strength optimiser (LLVM) which has support for automatic vectorisation.

      Furthermore, the type system is designed to be very good for high-performance concurrency.

      See http://blog.theincredibleholk.org/blog/2012/12/05/compiling-rust-for-gpus/ for an example of using Rust on a GPU, and I can only imagine that it has become easier since then.

    • mrecMay 2016

      Is eholk no longer active in Rust-land? I remember reading his post [1] about compiling Rust for GPUs (i.e. app code + OpenCL kernels from a single source) back in 2012 and getting quite excited. Presumably generating SPIR-V wouldn't be vastly different in principle.

      [1] http://blog.theincredibleholk.org/blog/2012/12/05/compiling-rust-for-gpus/

    • sklogicOct 2015

      Language development have not been "stalled", it's just mainly under the radar.

      Some nice designs are out there, see Vobla and Pencil [1] for example, or Harlan [2] as another extreme.

      [1] http://carp.doc.ic.ac.uk/external/dissemination.php

      [2] http://blog.theincredibleholk.org/blog/2013/06/28/announcing-the-release-of-harlan/

    Related

    Brian Andersonbrson.github.io32 people

    Dave Herman’s contributions to Rust

    Brian Anderson
    Personal · last shared 2025
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Keegan McAllistermainisusuallyafunction.blogspot.com52 people

    151-byte static Linux binary in Rust

    Keegan McAllister
    Personal · last shared 2023
    gfx-rs Bloggfx-rs.github.io19 people

    The rise of wgpu

    gfx-rs Blog
    Company · last shared 2024
    Aaron Turonaturon.github.io49 people

    Zero-cost futures in Rust

    Aaron Turon
    Personal · last shared 2025
    Chris Fallincfallin.org18 people

    Cranelift, Part 2: Compiler Efficiency, CFGs, and a Branch Peephole Optimizer

    Chris Fallin
    Personal · last shared 2026
    Manish Goregaokarmanishearth.github.io97 people

    Picking Apart the Crashing iOS String

    Manish Goregaokar
    Personal · last shared 2026
    Eric Kiddrandomhacks.net65 people

    Rust lifetimes: Getting away with things that would be reckless in C++

    Eric Kidd
    Personal · last shared 2026