May 2021 monthly "What are you working on?" thread

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

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

    A work-in-progess programming language modeled after Ada and C++ (by csb6)

  • I didn’t add too many new features to my Ada-like language bluebird this month because of lots of projects/school stuff.

  • frozen

    a header-only, constexpr alternative to gperf for C++14 users

  • In the language, I added anonymous array literals. I did some cleanup in the compiler and updated to LLVM 12 from 10 (which was pretty trivial, surprisingly). I also added frozen, a C++ perfect-hashing library, as a dependency to speed up the lookup of keywords in my lexer. The library exploits C++’s constexpr features to generate a perfect hash at compile-time without any separate build step, which is great, and it also provides a drop-in replacement for std::unordered_map that uses the hash.

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

    Kong is an implementation of the Monkey interpreter in Java 8 from The Writing An Interpreter In Go books (by AmrDeveloper)

  • Just finished Writing An Interpreter In Go book and implemented the interpreter in java https://github.com/AmrDeveloper/Kong and I will start Writing A Compiler In Go book and work on my language design :D

  • tailspin-v0

    A programming language with extreme data-pattern matching and data-declarative syntax, hopefully different enough to be interesting

  • If I get time this month I will add typestates to Tailspin, with essentially a simple syntax for implementing the State pattern which is one of my favourite patterns.

  • xvm

    Ecstasy and XVM

  • Current work on the Ecstasy project includes

  • never

    Never: statically typed, embeddable functional programming language.

  • Recently Never was extended with tuples. I hope to add documentation and examples soon. Also some bugs and improvements were removed and added. Now I am looking for ideas what to do next. Maybe you could suggest something?

  • AFK-Script

    A minimalist instruction language for automating user input at specified times

  • Here is a link to the repo for AFK Script in case anyone is interested.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • pika

    A WIP little dependently-typed systems language (by naalit)

  • Recently, I've been working on adding garbage collection to Pika. I've successfully written an Immix-based garbage collector that works with the LLVM GC support infrastructure, and I'm currently working on integrating the GC with Pika, or really Durin, the dependently-typed intermediate representation that Pika compiles to. Because types are passed around at runtime, objects of unknown type and size can be stored unboxed in polymorphic data structures; but that makes keeping track of type information for heap allocations somewhat harder, because type information needs to be allocated and constructed at runtime in some cases. It's an interesting design problem, because you want constructing type information to be fast; but the GC will run much more often, so maximizing tracing speed by avoiding e.g. indirection in type information is important; and you also want to construct as much type information as possible at compile time and embed it as constants.

  • durin

    the Dependent Unboxed higher-oRder Intermediate Notation

  • Recently, I've been working on adding garbage collection to Pika. I've successfully written an Immix-based garbage collector that works with the LLVM GC support infrastructure, and I'm currently working on integrating the GC with Pika, or really Durin, the dependently-typed intermediate representation that Pika compiles to. Because types are passed around at runtime, objects of unknown type and size can be stored unboxed in polymorphic data structures; but that makes keeping track of type information for heap allocations somewhat harder, because type information needs to be allocated and constructed at runtime in some cases. It's an interesting design problem, because you want constructing type information to be fast; but the GC will run much more often, so maximizing tracing speed by avoiding e.g. indirection in type information is important; and you also want to construct as much type information as possible at compile time and embed it as constants.

  • c3c

    Compiler for the C3 language

  • I've started a discord for low level programming language design https://discord.gg/tgmUz9cFyv other than that the C3 compiler is making progress piece by piece. I've got two major pieces left, which is the contract part and the generic modules. Recently I've been working on modules which had me revisiting some thing about module visibility and in general my module system to make sure it's done the right way. I should only need about a day's work to get the generic modules up and running so that I can start testing it, so that's going to be interesting. (If anyone is interested in talking C3, the discord is at https://discord.gg/qN76R87)

  • lisp

    A lisp JIT compiler and interpreter built with cranelift. (by 0xekez)

  • I just added variable-arity functions to my lisp which compiles to Cranelift. I was blocked for a while trying to work out how to convince Cranelift to put arguments on the stack but eventually gave up and I now heap allocate a location for function arguments. It's not great for performance but it feels great to have finally finished it!

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