90 pointsby smartmic8 hours ago15 comments
  • dang6 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)

  • taylorallred5 hours ago
    Pair this with Fil-C(https://fil-c.org/) and now you have C but as a truly bonafide scripting language.
    • rtpg3 hours ago
      The world-class script munging capabilities and rapid prototyping capabilities of C, combined with the durable performance of your favorite scripting language. A match made in heaven for operational scripts
    • simonask3 hours ago
      Which sounds a lot like the worst of all worlds.
  • apitman5 hours 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.

  • michaelcampbell7 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.

    • apitman5 hours ago
      Give io buffering an inch and it will take a mile
  • tnelsond42 hours ago
    > What's different between tcc -run and CJIT? >The main difference is in usability.

    > CJIT improves three main UX aspects for now:

    > It works as a single executable file which embeds the TinyCC compiler, all its headers and its standard library. This way there is no need to install anything system wide, check paths and setup build folders.

    > It supports adding multiple files into one execution: can accept wildcards to ingest anything that is a C source, a pre-compiled object or a shared library. The symbols exported by each file will be visible to all during the same execution.

    > It finds automatically common system libraries for each target platform, avoiding the need to repeat these settings and look for the right paths.

  • 6 hours ago
    undefined
  • omoikane6 hours 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

    • BirAdam5 hours 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.
      • jovial_cavalier3 hours ago
        probably because the shell on TempleOS is actually a HolyC REPL, and HolyC is JIT compiled.
  • theogravity5 hours 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.
  • gosukiwi6 hours 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
    • ethmarks5 hours 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.
    • zamadatix6 hours 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.
  • grebc6 hours ago
    Sweet project! I will give this a go today :)
  • jsLavaGoat5 hours ago
    Inspired by Terry. But does it glow?
  • uticus7 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.

    • apitman5 hours ago
      It links to the system SDL, on Linux at least.
  • nutjob25 hours ago
    Much more interesting is Mir: https://github.com/vnmakarov/mir

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

  • slopinthebag4 hours 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.
    • adgjlsfhk12 hours ago
      Julia uses a model similar to this. The main advantage is that you can interact much more easily if you have a REPL running where you can do things (assign variables load data etc) and then define/try out new code on that data.
    • zamadatix3 hours ago
      You may be disappointed by the FAQ then https://dyne.org/cjit/faq.html (other than it really isn't an AI thing).
  • wavemode4 hours ago
    > inspired by HolyC by Terry Davis

    ...in what way? o.O