CJIT: C, Just in Time

(dyne.org)

63 points | by smartmic 3 hours ago

14 comments

  • dang 2 hours ago
    Related:

    Show HN: CJIT, a single-binary C compiler that can self host - https://news.ycombinator.com/item?id=47751458 - April 2026 (1 comment)

    C, Just in Time - https://news.ycombinator.com/item?id=42246209 - Nov 2024 (7 comments)

    (Pity the Show HN didn't get attention - we'll email the author)

  • taylorallred 1 hour ago
    Pair this with Fil-C(https://fil-c.org/) and now you have C but as a truly bonafide scripting language.
  • apitman 1 hour ago
    Cool idea.

    I was wondering why the release explicitly is `cjit-x86_64-ubuntu-24.04` instead of generic linux, but it does in fact appear to not work on Arch:

    `tcc: error: file '/lib/x86_64-linux-gnu/libgcc_s.so.1' not found`

    I'm guessing that's due to a `dlopen` since it's not listed by `ldd`

    The TUI demos work great, but I couldn't get the SDL examples to resolve all the missing symbols after trying for a bit.

  • michaelcampbell 3 hours ago
    Looks interesting and fun, but in no instance of any C compiler I've come across is the "classic example" of "hello, world" using `fprintf(stderr, ...)`

    To each their own I guess.

    • apitman 1 hour ago
      Give io buffering an inch and it will take a mile
  • theogravity 1 hour ago
    The site visually feels "compressed" due to the font used? It's a bit jarring. The tutorial link in the header nav doesn't go anywhere.
  • gosukiwi 1 hour ago
    Did you use Codex 5.4 for the web design? :p I think Codex tends to do very similar designs, could be completely mistaken tho
    • ethmarks 1 hour ago
      The source for the site is here: https://github.com/dyne/cjit/tree/main/docs. It's a VitePress site with a custom theme. Glancing through the code, I don't see any obvious signs of LLM coding. It also definitely wasn't created with Codex specifically, because according to the commit history, the first version of the site was in late 2024, months before Codex even released.
    • zamadatix 1 hour ago
      Looks like a generic static site generator page to me. I'd be surprised if dyne folks used a closed system like Codex specifically.
  • omoikane 1 hour ago
    > inspired by HolyC by Terry Davis

    Definitely was not expecting this reference.

    https://en.wikipedia.org/wiki/TempleOS#HolyC

    https://en.wikipedia.org/wiki/Terry_A._Davis

    • BirAdam 1 hour ago
      I’m not surprised by it, but I am confused as I do not see anything that reminds me of TempleOS, HolyC, or Davis. If anything, this is just pushing the tcc —run functionality one step further.
  • jsLavaGoat 1 hour ago
    Inspired by Terry. But does it glow?
  • slopinthebag 5 minutes ago
    > CJIT is not a tracing or adaptive JIT in the VM sense. It does not interpret first and optimize hot paths later.

    > CJIT uses TinyCC to compile C quickly, often in memory, and can execute the resulting code immediately.

    Wait, what's the difference between this and just using tinycc directly?

       cat program.c | tcc -run -
    
    Happy to be proven wrong here, since the project has been around for a couple years. It doesn't appear to just be a random AI one-shot thing.
  • grebc 1 hour ago
    Sweet project! I will give this a go today :)
  • wavemode 2 minutes ago
    > inspired by HolyC by Terry Davis

    ...in what way? o.O

  • nutjob2 52 minutes ago
    Much more interesting is Mir: https://github.com/vnmakarov/mir

    It has all the tools for custom JIT including a nice C compiler.

  • uticus 3 hours ago
    https://dyne.org/cjit/graphics.html#cjit-for-graphical-appli...

    > Be welcome to the exciting world of graphical C applications using SDL (Simple DirectMedia Layer). SDL, originally developed by Sam Lantinga in 1998...

    That's batteries included.

    • apitman 1 hour ago
      It links to the system SDL, on Linux at least.