A Modern C Development Environment

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • zig

    General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

  • > 9. The debugger can modify a variable while the program is running.

    > 11. The debugger can modify a function while the program is running (any new calls are done to that function).

    Another words: hot code reloading / swapping [1].

    And I would add:

    > You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time. [2]

    [1] e.g. https://github.com/ddovod/jet-live, https://github.com/crosire/blink, https://github.com/ziglang/zig/issues/68

  • jet-live

    c++ hot code reload for linux and macos

  • > 9. The debugger can modify a variable while the program is running.

    > 11. The debugger can modify a function while the program is running (any new calls are done to that function).

    Another words: hot code reloading / swapping [1].

    And I would add:

    > You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time. [2]

    [1] e.g. https://github.com/ddovod/jet-live, https://github.com/crosire/blink, https://github.com/ziglang/zig/issues/68

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • rr

    Record and Replay Framework

  • > 9. The debugger can modify a variable while the program is running.

    > 11. The debugger can modify a function while the program is running (any new calls are done to that function).

    Another words: hot code reloading / swapping [1].

    And I would add:

    > You record a failure once, then debug the recording, deterministically, as many times as you want. The same execution is replayed every time. [2]

    [1] e.g. https://github.com/ddovod/jet-live, https://github.com/crosire/blink, https://github.com/ziglang/zig/issues/68

  • meson

    The Meson Build System

  • > C's only REAL problem (in my opinion) which is the lack of dependency management. Most everything else can be done with a makefile and a half decent editor.

    Care to hear about our lord and saviour Meson?

    Both of your quoted problems are mutually incompatible: dependency management isn't the job of the compiler, it's a job for the build or host system. If you want to keep writing makefiles, be prepared to write your own `wget` and `git` invocations to download subprojects.

    Meanwhile, Meson solves the dependency management problem in a way that makes both developers and system integrators/distributions happy. It forces you to make a project that doesn't have broken inter-file or header dependency chains and cleans up all the clutter and cruft of a makefile written for any non-trivial project, while making it trivial to integrate other meson projects into your build, let other people integrate your project into theirs, and provides all of the toggles and environment variables distribution developers need to package your library properly. You can really have your cake and eat it too.

    https://mesonbuild.com/

  • Bazel

    a fast, scalable, multi-language and extensible build system

  • > None of this solves C's only REAL problem (in my opinion) which is the lack of dependency management.

    Bazel solves this really nicely, I know some people have strong opinions on it but I cannot recommend it enough

    https://bazel.build/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts