Multistage Programming / First Class runtime compiler support

This page summarizes the projects mentioned and recommended in the original post on /r/ProgrammingLanguages

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.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • with-branching

    An implementation of macroexpand-time conditionalization.

  • It is not the same, but that does not mean they can't be helpful. Notionally, the compiler is available at runtime--there is no 'staging'--making on-the-fly code generation and compilation a breeze. A pertinent example is with-compile-time-branching, a macro which effects hoisting of branches--similar to what you are asking for.

  • Numba

    NumPy aware dynamic Python compiler using LLVM

  • For scientific computation, definitely check out Numba. It's even got support for targeting CUDA.

  • 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
  • Cython

    The most widely used Python to C compiler

  • There are several packages that do this for Python. Cython is probably the most used. Usually it's used for compiling modules at installation time, but it can be used for dynamic compilation (I wouldn't call it just-in-time, more like 'as-needed').

  • CompTime.jl

    Library for compile-time computing in julia

  • On a related note, there's a package called CompTime.jl that was recently announed on the last juliacon. It's supposed to make working with generated functions easier, although I haven't used it (it's only entering the general registry of packages next week).

  • ocaml-asp

    Algebraic, staged parsing for OCaml: typed, compositional, and faster than yacc

  • BER MetaOCaml is a variant of OCaml with first-class staging constructs. You can write a program that returns something of type "code for a program of type T" (possibly a function type), and then ask to compile this code and you get a value of type T. This has been used to demonstrate removing interpretation overhead in various settings, for example parser generators as a library.

  • The-Spiral-Language

    Functional language with intensional polymorphism and first-class staging.

  • Spiral

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

  • Been using Python for 3 years, never used a Class.

    2 projects | /r/learnpython | 15 Mar 2023
  • Do you guys have any resources for learning C++ and/or Fortran programming for physics?

    3 projects | /r/Physics | 21 Nov 2022
  • Mistakes to Avoid During Python Library Creation

    3 projects | dev.to | 13 Nov 2022
  • Python devs Vs C++ chads

    2 projects | /r/ProgrammerHumor | 12 Nov 2022
  • In One Minute : Pandas

    6 projects | dev.to | 5 Nov 2022