5 comments

  • uecker 1 hour ago
    Cool! And I do think the world needs more C compilers. There is so much you could do with this language, but it needs to be disentangled from the C++ compiler behemoths. (yes, I now that there are other small C compilers)
    • isitcontent 1 hour ago
      There is the TCC. Adapting that would probably be a faster path to a full featured C compiler on esp32 than building up my xcc700. This is more of an educational sandbox project.
      • uecker 40 minutes ago
        I know, and there are chibicc, kefir, etc. .. and I have my own experimental C compiler.
  • ladyanita22 1 hour ago
    That's super cool! I have been wondering what could be done with ESP32 if it weren't for the lack of RAM.

    As a fun of Rust, one thing that saddens me is knowing these things would be difficult to achieve with a Rust compiler, given the language seems to be vastly more complex.

    Unless someone created a subset of Rust without (some?) safety checks, I guess.

    • isitcontent 1 hour ago
      Right, Rust is more complex, and it is the complex bits that make it Rust. There are sure some shortcuts possible for starters, for example scope-based lifetimes like in early Rust versions, but still, to make it a worthwhile upgrade over C, it would take some intermediate representation, and definitely more than 700 lines.

      There is a lively movement for coding in Rust for esp32, that works, just not on the device I think.

  • boznz 3 hours ago
    Cool, always refreshing to see different approaches to the same problem, and you learn so much by doing, this is more the kind of tinkering I will be doing in retirement.
  • nunobrito 47 minutes ago
    Can this run ELF programs that are placed on the memory card?
    • isitcontent 43 minutes ago
      I only wrote the compiler. But ESP-IDF elf_loader component can do that, yes.
  • MobiusHorizons 2 hours ago
    Very cool! What was the shell you are running in the demo video?
    • isitcontent 2 hours ago
      Thanks! That is just my small custom experimental mini shell. This project started as a retro DOS-like cyberdeck, and first thing I tried to run there was DOS programs, which is why it looks like that. Only got to COM files, when I learned about elf_loader, so I now focus on that. I might extract and release whatever is valuable/reusable in that shell later on.
      • MobiusHorizons 47 minutes ago
        Yeah, very cool. I was thinking about possibly porting it to risc-v and using it on my fpga based core. I was trying to build a monitor style shell, but C like environment would be very cool.
        • isitcontent 36 minutes ago
          Porting to different CPU/bytecodes should be doable. Just keep in mind that in ESP-IDF we also get the dynamic linker and the libc for free (and any other C functions exposed in the firmware). On the other platforms, that may be some extra work for the compiler.
      • guestbest 2 hours ago
        Thanks for posting this here. I star’d the project. Getting a portable computer with a minimal flexible and previously well supported operating system was one of my goals for the esp32 as well. I’ll be watching for more.