r/programming 56m ago

Cats-Actors 2.2.0 is released

Thumbnail cloudmark.github.io
Upvotes

Cats-Actors is a Cats Effect native actor library: typed messages, functional state, supervision, and the familiar ! operator, all in F[_].

What is new in this release:

- ControlledTestKit, a new trait in the cats-actors-testkit module. It

provisions an ActorSystem[IO] inside Cats Effect's TestControl and ticks the

simulated clock for you, so scheduled work and timeouts resolve without real

waiting. A one hour receive timeout is now an ordinary unit test that finishes

in milliseconds.

- Receive timeouts, the supervisor restart window and the dead letter mailbox

idle check now read Clock[F].monotonic instead of System.currentTimeMillis, so

they all honour simulated time.

- New TestKit assertions, expectMsgTypeCountN and expectMsgTypeSingle, which

count messages of a type and do not depend on when they arrive relative to

the call.

- Breaking: ActorSystem.uptime is now F[Long] rather than Long.

Scala 2.13 and 3, on JVM, Scala.js and Scala Native.

```

resolvers += "jitpack" at "https://jitpack.io"

libraryDependencies += "com.github.cloudmark.cats-actors" %%% "cats-actors" % "2.2.0"

libraryDependencies += "com.github.cloudmark.cats-actors" %%% "cats-actors-testkit" % "2.2.0" % Test

```

Write up: https://cloudmark.github.io/Cats-Actors-Controlling-Time/

Repo: https://github.com/cloudmark/cats-actors

Feedback and issues welcome.


r/programming 2h ago

How Do HashMaps Work Under the Hood? (putting together a toy implementation in Rust to understand performance optimization, collisions, and time complexities)

Thumbnail medium.com
9 Upvotes

HashMaps are incredibly convenient, but treating them like a magical black box can make it easy to overlook where their performance comes from.

In this article, I explain how HashMaps work using a simple implementation in Rust. I go through hash collisions and linear probing, why primary clustering hurts performance, load factors, resizing, and more.

The implementation is intentionally simplified, but it gives a good picture of what's actually happening underneath a HashMap.

Let me know your thoughts or any feedback you have!

All writing, illustrations, and code are my own. AI was used to clean up wording and catch grammatical mistakes.


r/programming 3h ago

Wasmer SDK: Run Node.js, Python, Postgres and PHP embedded in your application

Thumbnail wasmer.io
1 Upvotes

r/programming 3h ago

Sixteen branches is all you ... get?

Thumbnail rushed-reflections.bearblog.dev
3 Upvotes

Wrote a quick blog post about pushing branch prediction to its limits in a simple experiment. Take a read to learn with me about measuring performance on linux machines and a very basic understanding of branch prediction 😄


r/programming 4h ago

GitHub Runners Benchmarking

Thumbnail runnerbench.com
2 Upvotes

r/programming 6h ago

Performance of WebAssembly runtimes in 2026

Thumbnail 00f.net
9 Upvotes

r/programming 6h ago

Bazel's UX is really, really, really bad

Thumbnail blog.appliedcomputing.io
153 Upvotes

r/programming 8h ago

The Browser's Main Thread Is Expensive

Thumbnail kciter.so
82 Upvotes

r/programming 8h ago

I need to keep some Slack connections alive. This should be easy.

Thumbnail failedexperiments.substack.com
0 Upvotes

Okay, but I have multiple replicas.

And it gets slightly worse: the number of physical connections is not equal to the number of replicas, and it is not equal to the number of business-level connectors either.

Several business connectors may share one external identity. One external identity may require several physical connections. And those connections need to be spread across whatever replicas are currently alive and have capacity.

So who actually owns the connection?

Then the questions start piling up.

What if one replica dies?
What if it doesn’t die, but loses access to the database?
What if two replicas race for the same connection?
What if the event that was supposed to wake the right worker never arrives?
What if most workers are already full?

A few questions and 2 hours of midnight walk in headphones and ChatGPT later, I had leases, runtime slots, reconciliation, failover, capacity limits, and a distributed ownership problem on my hands.

This is the architecture I ended up with, and I have mixed feelings about this design.

On one hand, I’m proud that I managed to account for so many different edge cases. On the other, the whole thing feels worryingly complex.

So I’d really value input from people who have built similar systems.

What did I miss or do you see anything that can break?
And most importantly: what can be simplified without losing the guarantees?

The full architecture description is a bit lengthy: AEON NEON - Connector Runtime - by Jarek J.

Many thanks if you decide to read it and share your thoughts. I’d really like this one not to become another failed experiment.


r/programming 9h ago

Wasmi 2.0 - Engineering of the Fastest Wasm Interpreters

Thumbnail wasmi-labs.github.io
41 Upvotes

r/programming 10h ago

What I find interesting about this video is that the game was developed by a small but highly professional team.

Thumbnail youtube.com
0 Upvotes

Yes, the game development industry wasn’t nearly as complex as it is today. You could probably say that making and releasing a good game was easier back then.

But these people created a legend precisely because they were professionals.

Of course, DOOM wasn’t their first game. There was a time when the team was making a game every month.

What I like most about this video is the sense of creativity — and the feeling that these people simply loved making games.


r/programming 14h ago

Subsize 【 subscalar 】 encoding

Thumbnail gitlab.com
2 Upvotes

Indexing strings by character (Unicode scalar) instead of UTF offsets can be more comfortable for parsers or short manipulations.

The minimum cost for reading a >= U+FE character is:

  1. Lookup rope table by byte key (holding a high bit position), in goal of the scalar value in a sequence of higher fixed scalars
  2. Check for collision subtable (is not null => repeat the step 1), specializing the target high bit further

For optimal use, contiguous sequences of characters after Latin-* that turn into reserves into the mask sequence still allow for a few trailing Latin-* (e.g. Katakana can still be mixed with Latin-* whitespace), so those trails turn into reseves as well.

Update (I miswrote a detail in the implementation).

https://gitlab.com/mryun/langopt/-/blob/master/encoding/string.md


r/programming 14h ago

Rui Ueyama: "We are rewriting the mold linker in Rust"

Thumbnail x.com
187 Upvotes

r/programming 1d ago

io_uring without readahead

Thumbnail frn.sh
37 Upvotes

r/programming 1d ago

Terminating elegantly: a guide to graceful shutdowns

Thumbnail packagemain.tech
27 Upvotes

r/programming 1d ago

35 years later, Torvalds' hobby project remains developed worldwide.

Thumbnail tech.yahoo.com
742 Upvotes

r/programming 1d ago

Node.js sandboxes powered by QuickJS and WebAssembly

Thumbnail wasmer.io
16 Upvotes

r/programming 1d ago

A Self-Baked Async FFI Framework for Rust C# Interop

Thumbnail scylladb.com
23 Upvotes

Getting tokio and .NET’s async runtime talking to each other, over the C ABI


r/programming 1d ago

On End-to-End Tests During Redesign

Thumbnail radekmie.dev
0 Upvotes

r/programming 1d ago

Using stable and evolutionary problems to guide program decomposition

Thumbnail codeutopia.net
12 Upvotes

r/programming 1d ago

Please, I beg you, we need to stop using Stored Procedures (from applications)

Thumbnail heffree.dev
491 Upvotes

r/programming 1d ago

C++ metaprogramming now looks like Python

Thumbnail reddit.com
0 Upvotes

r/programming 1d ago

The Hugging Face incident from a security engineering perspective

Thumbnail uphack.io
95 Upvotes

r/programming 1d ago

a CVE dispute

Thumbnail daniel.haxx.se
439 Upvotes

r/programming 1d ago

p99 0 ms* autocomplete for 240 million domain names

Thumbnail ruurtjan.com
209 Upvotes