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
    O

    Ori Bernstein

    eigenstate.org · Personal blog · on HN since 2008

    Ori Bernstein writes about systems programming, including his Myrddin language, C declarations, Makefiles, seccomp, and regex debugging.

    Visit blogHN submissions
    Languages & CompilersSystems & PerformanceProgramming
    What HN says

    HN links his C declaration notes as an alternative to the spiral rule, and his Myrddin pages when discussing C-like languages; the author also comments there himself.

    Stats for nerds
    18HN people shared it
    12linked in comments
    186story points
    Jul 2026last shared
    2008people per year2026

    Top posts on HN

    1. 1
      Notes on Writing Makefiles
      2 people · 87 points · first shared 2015 · 9 comments on HN
    2. 2
      Myrddin: a systems language that is powerful and fun
      8 people · 74 points · first shared 2014 · 66 comments on HN
    3. 3
      Myrddin: A language for coding close to the metal.
      4 people · 9 points · first shared 2013 · 1 comments on HN
    4. 4
      Irc.myr: A libc-free IRC client in Myrddin
      1 person · 6 points · first shared 2017 · Discussion on HN
    5. 5
      A Regex Debugger
      1 person · 3 points · first shared 2016 · 2 comments on HN
    6. 6
      Denying Syscalls with Seccomp
      1 person · 3 points · first shared 2015 · Discussion on HN
    7. 7
      Myrddin Monthly: Language Updates in December/January.
      1 person · 2 points · first shared 2014 · Discussion on HN
    8. 8
      Debugging Regexes (2016)
      1 person · 2 points · first shared 2016 · Discussion on HN
    9. 9
      C decl
      3 people · first shared 2020
    10. 10
      Lang checklist
      1 person · first shared 2016

    What HN people wrote when they linked it

    • ori_bNov 2013

      As the developer of Myrddin (http://eigenstate.org/myrddin.html), I felt the need to fill it in for my pet language:

      You appear to be advocating a new:
      [ ] functional [ ] imperative [ ] object-oriented [x] procedural
      [ ] stack-based [x] "multi-paradigm" [ ] lazy [x] eager
      [x] statically-typed [ ] dynamically-typed [ ] pure [x] impure
      [ ] non-hygienic [ ] visual [ ] beginner-friendly
      [ ] non-programmer-friendly [ ] completely incomprehensible

      programming language. Your language will not work. Here is why it
      will not work.

      You appear to believe that:
      [ ] Syntax is what makes programming difficult
      [ ] Garbage collection is free
      [ ] Computers have infinite memory
      [x] Nobody really needs:
      [x] concurrency [x] a REPL [x] debugger support [x] IDE support [ ] I/O
      [x] to interact with code not written in your language
      [ ] The entire world speaks 7-bit ASCII
      [x] Scaling up to large software projects will be easy
      [x] Convincing programmers to adopt a new language will be easy
      [ ] Convincing programmers to adopt a language-specific IDE
      will be easy
      [ ] Programmers love writing lots of boilerplate
      [ ] Specifying behaviors as "undefined" means that programmers
      won't rely on them
      [ ] "Spooky action at a distance" makes programming more fun

      Unfortunately, your language (has/lacks): [Lacks => L, Has => H]
      [L] comprehensible syntax [L] semicolons
      …

    • nickpsecurityMay 2016

      It's not. Like most of academic ones, it can be picked up or clean-slated if people really want it. The authors tend to move on, though, as in BitC (unfortunately...). I have some others for you, though. Most research is on automatically transforming C instead of a safer, manually-done C. Best are these:

      https://www.cs.rutgers.edu/~santosh.nagarakatte/softbound/

      http://sva.cs.illinois.edu/downloads.html

      http://dslab.epfl.ch/proj/cpi/

      Paper mentioning several of the safe C's, including those like Vault you can't have:

      https://pdfs.semanticscholar.org/a890/a850dc78e65e26f8f4def435b17094ce08cf.pdf

      Galois, as usual, graciously open-sourced two of theirs (Ivory & Tower) that's already fielded in real world:

      http://ivorylang.org/

      Popcorn and TALC are older ones in prototype form:

      https://www.cs.cornell.edu/talc/releases.html

      Someone here showed me this one I haven't evaluated but is used in compiler front-end:

      https://eigenstate.org/myrddin/

      The C0 one used in Verisoft is embedded in vc0compiler-trunk probably. They did great things with it but I haven't been brave enough to try to retrieve it ;).

      http://www.verisoft.de/VerisoftRepository.html

      So, altogether, what remains is quite scattered and prototype form. Plus, you still have to rewrite the software. So, I've mostly been recommending people apply Softbound, SAFECode, and CPI to their code just to see what happens. If it still works and fast enough, then just use it as it covers most bases. Also, contributing to…

    • zemFeb 2017

      some others worth checking out (all largely single-developer efforts):

      http://www.ats-lang.org/ [ml + c + everything dialled up to eleven. linear and dependent types. comes out of academia, but under active development and slowly beginning to gather a community.]

      https://eigenstate.org/myrddin/ [not really familiar with this one but it looks interetsing. close to the metal, has pattern matching over algebraic datatypes but seems more towards the c than the ml end of the spectrum from the brief glance i took.]

      http://mythryl.org/ [never took off, sadly; i really liked the looks of this one and its ambitious goals. strong sml influence, with better posix integration and some c-like surface features. developer is currently battling cancer: http://mythryl.org/pipermail/mythryl/2016-April/000942.html]

      http://felix-lang.org/ [spawn of ml + c++ rather than ml + c. under enthusiastic if haphazard development.]

      there have been a few others i've seen pop up over the years; i keep meaning to make a website or at least a github awesome-style list cataloguing and tracking them.

    • akkartikDec 2015

      I've actually been building a teaching VM with these properties. You can't take the address of arbitrary values (so there's no distinction between lvalues and rvalues), there's no pointer arithmetic (instead you have type-safe primitives for record access and array indexing), all arrays (including strings) know their length and bounds-check accesses, and unions behave more like sum types, always knowing precisely what type they have stored. All these constraints ensure you can never convert a number to an address, or generate an address to an illegal value. More info about the goal and rationale: http://akkartik.name/post/mu; http://github.com/akkartik/mu.

      I also recently found out about http://eigenstate.org/myrddin which seems more mature with very similar goals/aesthetics. I've been digging into it a fair bit.

      Finally, on the extreme other end of the spectrum, there's Rust.

    • pcfwikJul 2026

      Being taught this rule in undergrad really hampered my appreciation of C. As I've said in a previous comment, the real key that unlocked understanding C declarations for me is the mantra "declaration follows use." You declare a variable in C in exactly the same way you would use it: if you know how to use a variable, then you know how to read and write a declaration for it. Once I understood this elegant idea, it became hard to enjoy using statically typed languages that eschew it.

      It is explained in more detail at this link:
      https://eigenstate.org/notes/c-decl

    • jstimpfleApr 2025

      There is no spiral rule, that is a misconception. Look up how "declaration follows usage" in C. E.g. https://eigenstate.org/notes/c-decl

      While this rule has become somewhat diluted when C developed and gradually took on features from C++ (like types in function parameters), it's still very helpful to understand the guiding principle. (But those inconsistencies that crept in over time are also the reason why newer languages don't do that anymore).

    Related

    Bluish Coderbluishcoder.co.nz77 people

    Using Freenet

    Bluish Coder
    Personal · last shared 2025
    Not a Monad Tutorialnotamonadtutorial.com40 people

    Weld: Accelerating numpy, scikit and pandas as much as 100x with Rust and LLVM

    Not a Monad Tutorial
    Publication · last shared 2023
    Piers Cawleybofh.org.uk16 people

    Running a Bakery on Emacs and PostgreSQL

    Piers Cawley
    Personal · last shared 2024
    Gergő Érdigergo.erdi.hu22 people

    Rust on the MOS 6502: Beyond Fibonacci

    Gergő Érdi
    Personal · last shared 2026
    Tony Finchdotat.at58 people

    tolower() with AVX-512

    Tony Finch
    Personal · last shared 2026
    C++ Truthscpptruths.blogspot.com17 people

    Covariance and Contravariance in C++ Standard Library

    C++ Truths
    Personal · last shared 2019
    John Regehrblog.regehr.org401 people

    Teaching C

    John Regehr
    Personal · last shared 2026
    Max Bernsteinbernsteinbear.com68 people

    You can use C-Reduce for any language

    Max Bernstein
    Personal · last shared 2026