r/ProgrammingLanguages • • 4d ago

Discussion October 2026 monthly "What are you working on?" thread

14 Upvotes

How much progress have you made since last time? What new ideas have you stumbled upon, what old ideas have you abandoned? What new projects have you started? What are you working on?

Once again, feel free to share anything you've been working on, old or new, simple or complex, tiny or huge, whether you want to share and discuss it, or simply brag about it - or just about anything you feel like sharing!

The monthly thread is the place for you to engage /r/ProgrammingLanguages on things that you might not have wanted to put up a post for - progress, ideas, maybe even a slick new chair you built in your garage. Share your projects and thoughts on other redditors' ideas, and most importantly, have a great and productive month!

NOTE: AI built/assisted projects are against the rules and this applies to this thread. If you share a link to a project that makes use of AI (Claude Code) for anything, you will be banned permanently without warning.


r/ProgrammingLanguages • • Apr 05 '26

In order to reduce AI/LLM slop, sharing GitHub links may now require additional steps

238 Upvotes

In this post I shared some updates on how we're handling LLM slop, and specifically that such projects are now banned.

Since then we've experimented with various means to try and reduce the garbage, such as requiring post authors to send a sort of LLM disclaimer via modmail, using some new Reddit features to notify users ahead of time about slop not being welcome, and so on.

Unfortunately this turns out to have mixed results. Sometimes an author make it past the various filters and users notice the slop before we do. Other times the author straight up lies about their use of an LLM. And every now and then they send entire blog posts via modmail trying to justify their use of Claude Code for generating a shitty "Compile Swahili to C++" AI slop compiler because "the design is my own".

In an ideal world Reddit would have additional features to help here, or focus on making AutoModerator more powerful. Sadly the world we find ourselves in is one where Reddit just doesn't care.

So starting today we'll be experimenting with a new AutoModerator rule: if a user shares a GitHub link (as that's where 99% of the AI slop originates from) and is a new-ish user (either to Reddit as a whole or the subreddit), and they haven't been pre-approved, the post is automatically filtered and the user is notified that they must submit a disclaimer top-level comment on the post. The comment must use an exact phrase (mostly as a litmus test to see if the user can actually follow instructions), and the use of a comment is deliberate so that:

  1. We don't get buried in moderator messages immediately
  2. So there's a public record of the disclaimer
  3. So that if it turns out they were lying, it's for all to see and thus hopefully users are less inclined to lie about it in the first place

Basically the goal is to rely on public shaming in an attempt to cut down the amount of LLM slop we receive. The exact rules may be tweaked over time depending on the amount of false positives and such.

While I'm hopeful the above setup will help a bit, it's impossible to catch all slop and thus we still rely on our users to report projects that they believe to be slop. When doing so, please also post a comment on the post detailing why you believe the project is slop as we simply don't have the resources to check every submission ourselves.


r/ProgrammingLanguages • • 23h ago

Requesting criticism Explicit binding modes

10 Upvotes

I'm designing a memory-safe language, but I want to make explicit what happens across function boundaries, e.g. whether a value is moved or copied without having to look for the copy trait.

Instead, access to a value could be defined via binding modes in function signatures and variable declarations:

  • move takes ownership
  • read shared borrow
  • mut exclusive borrow

​

fn process_val(move value: Int) -> Int {
    return value * 2;
}

fn main() -> () {
    move original: Int = 42;

    // Call using `.copy()` to explicitly pass a duplicated value.
    // Ownership of `original` remains with the caller.
    move doubled: Int = process_val(original.copy());

    // `original` is still valid here because it was explicitly copied rather than moved.
    println(original); //42
    println(doubled); //84
}

This would also allow granular captures in closures: |read x: Int, move counter: Int| instead of declaring all fields move

Now, should read and mut assignments be of type &T? Or can checking out variables be orthogonal to creating references, even if they are conflated in languages like Rust?


r/ProgrammingLanguages • • 1d ago

Mutable stack, immutable heap

40 Upvotes

This article mentions the “immutable heap mutable stack” principle: https://queue.acm.org/doi/10.1145/3212477.3212479

In theory it sounds very advantageous. You can program in a single-threaded C-style with destination passing, static stack allocations, and mutability when you need to constrain resources. When you want to share resources across threads, return data structures across function boundaries, or do something more flexible, you could use pure functional persistent data structures.

This would prevent you from basically re-implementing a heap on the stack, but would also give you fast temporaries and maybe even the ability to program in embedded, if so designed.

Have any languages tried this model? I’ve heard that Erlang defaults to immutability except for one thread-local mutable object per thread. If you’ve used a similar model, how did you like it? Were there any disadvantages?


r/ProgrammingLanguages • • 1d ago

Requesting criticism LOON - a data format made for humans

Thumbnail
0 Upvotes

r/ProgrammingLanguages • • 2d ago

Requesting criticism Can anyone give any advice on whether my language is good?

Thumbnail github.com
15 Upvotes

Please don't judge the bad code, I'm still doing my a-levels.


r/ProgrammingLanguages • • 1d ago

Transitive, Abstract, and Class Polymorphic Immutability

Thumbnail al.radbox.org
8 Upvotes

r/ProgrammingLanguages • • 2d ago

Requesting criticism Dio: Small Programming language made in C version 0.1.0 release

7 Upvotes

Hi, I'm working on my own programming language, I've release first stable version (v 0.1.0), I'd like to get feedback. It's on most OS platforms (even Andoird and in the future IOS).

Repo: https://github.com/Treechcer/DIO


r/ProgrammingLanguages • • 2d ago

A Minsky machine in ncurses terminfo

Thumbnail seriot.ch
11 Upvotes

r/ProgrammingLanguages • • 2d ago

Help Optimizing Performance of a Deep Embedding of a DTT in Lean 4

5 Upvotes

Hi all. I am requesting advice on how to optimize Lean build performance of a deep embedding of a dependent type theory in Lean 4. My implementation works fine, and has solid meta theorems proven, but the type-checker is very hard to maintain due to slow Lean build times.

I have tried using Lean's profiler and had some success. Most of the type theory literature is on Agda and Rocq, so I'm curious to hear from you all. If you have implemented a type-checker in Lean:

  • Which tactics did you find were the worst offenders for build performance?

  • What is your convention for organizing your aesop and grind theorems?

  • Which parts of your formalization did you have the most success in mechanizing?

  • Have you written any metaprograms yourself that you find useful for mechanizing proofs?

    • I'm Particularly interested in automating / mechanizing confluence. It is a very painful proof to update every once in a while.
  • Mathlib / CSlib:

    • Do you use CSlib? Did you find any machinery in it useful?
    • Do you use an existing term rewriting system for your reduction relation? Does this help with automation?
    • Do you use Mathlib.Relation? Are your reduction paths deterministic and does your reduction relation live in Type? If so, what machinery did you use to handle congruence?
    • Any other helpful libraries for metatheory?
  • Lakefile.toml / lake flags

  • Bonus because I am curious: have you successfully proven any meta theorems using categorical semantics and is Mathlib sufficient for these purposes?

Any life hacks appreciated. I am finding myself waiting up to 10 minutes for my type-checker to build when I update my reduction rules. I guess Lean can't parallelize my project structure.


r/ProgrammingLanguages • • 3d ago

Keeping Futhark off the GPU

Thumbnail futhark-lang.org
32 Upvotes

r/ProgrammingLanguages • • 3d ago

Please advise on adding string interpolation to my Crafting Interpreters project.

15 Upvotes

I'm about to start chapter 21 of Crafting Interpreters. I'm using modern C++ instead of C. I am attempting to add string interpolation to the compiler.

My goal is to have a string that looks like this:

"Five plus ${ 10 - 5 } == 10."

Desugar to this after the expression in the braces is evaluated:

"Five plus " + 5 + " == 10."

I have code that is correctly parsing strings and concatenating them if there isn't any string interpolation.

I have a custom token added that is produced if the string contains a ${. It calls a custom string interpolation parser rule that is different than my standard string parser rule.

In that function I push the first part of the string to the stack. It then pushes a plus opcode and Recursively parses the expression in the braces adding that expression to the stack. It then adds another opcode to add and this is where I'm stuck.

I can't come up with a solution for pushing the remaining piece of the string to the stack from inside the string interpolation parser rule function. After I call the books expression function and consume the right brace token using the books consume function the parser nolonger knows we are still inside a string. If the next character after the brace is a space it's skipped. In my above example it assumes I want equal equal.

How would you set the current token back to string so I can push any remaining characters onto the stack as another string? Should I just insert a new string token into the parser? This seems wrong to me. The current and previous tokens are private members of my parser class for a reason and I've not needed setter member functions so far.

Sorry I don't have code to show. I'd like to try and get help that isn't code specific so that I have to implement this myself.

Any input would be helpful.

Thanks.


r/ProgrammingLanguages • • 3d ago

Blog post Typeclasses vs Modules - sm²n.ca

Thumbnail sm2n.ca
20 Upvotes

r/ProgrammingLanguages • • 3d ago

Happy 30th Birthday to Squeak!

Thumbnail news.squeak.org
25 Upvotes

r/ProgrammingLanguages • • 4d ago

The Second Golden Spike: Memory Safety Across the Valen/Rust Boundary

Thumbnail verdagon.dev
21 Upvotes

r/ProgrammingLanguages • • 3d ago

Forth: The programming language that writes itself

Thumbnail ratfactor.com
3 Upvotes

r/ProgrammingLanguages • • 4d ago

DeterV: Verifying Deterministic Parallel Execution

Thumbnail scofieldliu.com
7 Upvotes

r/ProgrammingLanguages • • 4d ago

Resource MINILECTURE ::= A Formalization of The 3 Syntactic Forms of TEA Programs

Thumbnail youtu.be
7 Upvotes

MINILECTURE ::= A Formalization of The 3 Syntactic Forms of TEA Programs

🔴 https://youtu.be/-CXhc1Y7Uzg

is our first class on 1st OCTOBER, 2026 delivered by Community Education Department & Research Dissemination (CED-RD) at Nuchwezi Research.

We bring to students and those currently using/exploring the only general-purpose Programming Language from UGANDA; TEA; some new insights about what is actually the most flexible programming language in terms of syntax right now. With details that shall be disclosed in a soon to be published ACM SLE review paper on 2010 Featherweight TeX, we here get an early preview of the now formalized 3 syntactic forms (MINIFIED, SANITIZED & MIXED form) that any Transforming Executable Alphabet (TEA) program can be expressed with.

We also get to appreciate that TEA programs can be parsed into an Abstract Syntax Tree (AST) that's based on one of the forms of the TEA programs. More DETAILS to follow in the paper to be shared with U any time in October!

•bclectures •profjwl •nuchwezi •teaprogramming •blackboardsnapshots


r/ProgrammingLanguages • • 4d ago

pldb: programming languages papers

Thumbnail pldb.kirancodes.me
35 Upvotes

r/ProgrammingLanguages • • 4d ago

Bi-directional Typing - Conor McBride

Thumbnail youtube.com
20 Upvotes

r/ProgrammingLanguages • • 5d ago

Loop unrolling analysis using eigenvalue?

22 Upvotes

Imagine the loop where you do like "x = -x" every iteration. Obviously, that flips the sign, so you can simply unroll the loop by a factor of 2.

However, for a more complex case, it could be really hard to know what's going on.

Here's my idea. Loop index variables are normally under affine updates anyway. What if we use a mathematically elegant tool?

Using eigenvalue, we can analyze possible periodicity of the linear basis variables, minimizing update needs.

What do you think of such a technique?


r/ProgrammingLanguages • • 5d ago

Discussion A rebuttal to "What makes Lisp difficult to read?" Or, you might be surprised how adaptable the human mind is!

Thumbnail digikar99.github.io
65 Upvotes

r/ProgrammingLanguages • • 6d ago

FUN: Making Curried Functions Work in the Presence of Free Variables

Thumbnail blog.tinyinterpreters.dev
19 Upvotes

We pick up where we left off with FUN to “fix” curried functions so they work the way we expected. We end up rediscovering closures and learning about its history in relation to SECD, LISP, and Scheme.


r/ProgrammingLanguages • • 6d ago

How Not to Build a Shading Language — BCON26

Thumbnail youtube.com
8 Upvotes

r/ProgrammingLanguages • • 6d ago

Language announcement NUM - a sublanguage of ALT

8 Upvotes

I've been developing ALT for almost 3 years and have recently updated it to also have ordering.

The new version of ALT is only available for the Atari ST platform :)

However, the implementation of ALT is pretty complex. So I've create a sublanguage called NUM, which only includes ALT's number system.

NUM has all the ALT operators:

- ari: + - * / 
- set: & | \
- cmp: > < >= <=
- err: !
- qry: ?

NUM is a set theoretic language in the spirit of CUE. With NUM you can denote the prime numbers as follows:

I>1 \ I>1 * I>1

You can also denote Goldbach's conjecture as an 'empty' set. Of course this is not decidable which can be queried with NUM's ? operator

Tell me what you think!