frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

LLMs are powerful, but enterprises are deterministic by nature

2•prateekdalal•47m ago•0 comments

Ask HN: Anyone Using a Mac Studio for Local AI/LLM?

44•UmYeahNo•1d ago•28 comments

Ask HN: Ideas for small ways to make the world a better place

13•jlmcgraw•13h ago•19 comments

Ask HN: Non AI-obsessed tech forums

23•nanocat•11h ago•19 comments

Ask HN: 10 months since the Llama-4 release: what happened to Meta AI?

44•Invictus0•1d ago•11 comments

Ask HN: Non-profit, volunteers run org needs CRM. Is Odoo Community a good sol.?

2•netfortius•8h ago•1 comments

Ask HN: Who wants to be hired? (February 2026)

139•whoishiring•4d ago•514 comments

AI Regex Scientist: A self-improving regex solver

6•PranoyP•15h ago•1 comments

Ask HN: Who is hiring? (February 2026)

312•whoishiring•4d ago•511 comments

Tell HN: Another round of Zendesk email spam

104•Philpax•2d ago•54 comments

Ask HN: Is Connecting via SSH Risky?

19•atrevbot•2d ago•37 comments

Ask HN: Has your whole engineering team gone big into AI coding? How's it going?

17•jchung•2d ago•12 comments

Ask HN: Why LLM providers sell access instead of consulting services?

4•pera•21h ago•13 comments

Ask HN: What is the most complicated Algorithm you came up with yourself?

3•meffmadd•23h ago•7 comments

Ask HN: How does ChatGPT decide which websites to recommend?

5•nworley•1d ago•11 comments

Ask HN: Is it just me or are most businesses insane?

7•justenough•1d ago•6 comments

Ask HN: Any International Job Boards for International Workers?

2•15charslong•11h ago•2 comments

Ask HN: Mem0 stores memories, but doesn't learn user patterns

9•fliellerjulian•2d ago•6 comments

Ask HN: Is there anyone here who still uses slide rules?

123•blenderob•3d ago•122 comments

Kernighan on Programming

170•chrisjj•4d ago•61 comments

Ask HN: Anyone Seeing YT ads related to chats on ChatGPT?

2•guhsnamih•1d ago•4 comments

Ask HN: Does global decoupling from the USA signal comeback of the desktop app?

5•wewewedxfgdf•1d ago•2 comments

We built a serverless GPU inference platform with predictable latency

5•QubridAI•2d ago•1 comments

Ask HN: How Did You Validate?

4•haute_cuisine•1d ago•4 comments

Ask HN: Does a good "read it later" app exist?

8•buchanae•3d ago•18 comments

Ask HN: Have you been fired because of AI?

17•s-stude•4d ago•15 comments

Ask HN: Cheap laptop for Linux without GUI (for writing)

15•locusofself•3d ago•16 comments

Ask HN: Anyone have a "sovereign" solution for phone calls?

12•kldg•3d ago•1 comments

Test management tools for automation heavy teams

2•Divyakurian•2d ago•2 comments

Ask HN: OpenClaw users, what is your token spend?

14•8cvor6j844qw_d6•4d ago•6 comments
Open in hackernews

I built a C++ runtime with immutable objects and no GIL

7•gamarino•1w ago
I’ve spent the last few months rethinking how a dynamic language runtime should interact with modern hardware. The result is ProtoCore and its first major implementation, ProtoJS.

Most dynamic runtimes (Python, Ruby, and even JS engines) handle concurrency through Global Interpreter Locks (GIL) or complex memory barriers because managing mutable state across threads is notoriously difficult.

With ProtoCore, I took a different path based on three pillars:

Immutability by Default: All core data structures are immutable. Instead of locking, we use structural sharing for memory efficiency. This inherently eliminates data races at the object level.

Hardware-Aware Memory Model: Objects are cache-line aligned (64-byte cells) to prevent false sharing and optimize cache locality.

Tagged Pointers: We use a 56-bit embedded payload for SmallIntegers, meaning zero heap allocation for most numeric operations.

To prove the architecture, I built ProtoJS. It uses QuickJS for parsing but replaces the entire runtime with ProtoCore primitives. This allows for real worker thread execution ("Deferred") where immutable objects are shared across threads without copying or GIL-related contention.

Current Status:

ProtoCore: 100% test pass rate (50/50 tests) and a comprehensive technical audit completed today.

ProtoJS: Phase 1 complete, demonstrating real parallel execution and sub-1ms GC pauses.

I’m an Electronic Engineer by training (now a university professor), and I wanted to see if applying low-level hardware principles could fix the high-level concurrency "mess."

I’d love to hear your thoughts on the trade-offs of this immutable-first approach in systems programming.

ProtoCore (The engine): https://github.com/numaes/protoCore ProtoJS (The JS runtime): https://github.com/gamarino/protoJS

Comments

gamarino•1w ago
Context & Technical Highlights I’ve been exploring the intersection of low-level hardware constraints and high-level dynamic runtimes. The goal with ProtoCore was to build a system where concurrency isn’t an afterthought, but a result of the memory model itself.

Key Architectural Decisions:

Immutability-First: Every core data structure is immutable by default, utilizing structural sharing to remain memory-efficient. This allows us to run without a Global Interpreter Lock (GIL).

Hardware-Aware Design: Objects are allocated as 64-byte Cells, aligned with CPU cache lines to prevent false sharing and optimize cache locality.

Tagged Pointers: We use the lower bits for type tagging, allowing 56-bit integers to be stored directly in the pointer (zero-allocation for small integers).

Concurrent GC: A dedicated GC thread handles reclamation with minimal stop-the-world pauses (typically <1ms).

To demonstrate this, I built ProtoJS. It uses QuickJS for the frontend (parsing/bytecode) but replaces the entire runtime with ProtoCore primitives. This enables a unique "Deferred" execution model where we can ship bytecode to real worker threads and share immutable state with zero-copy overhead.

Project Status: ProtoCore has just passed a full technical audit with 100% test coverage (50/50 tests) and ~5,780 LOC of production-grade C++20. ProtoJS is currently in its Phase 1 (demonstrator), successfully proving parallel execution across thread pools.

I'm a university professor and electronic engineer based in Argentina, and I'm very interested in discussing the trade-offs of this "immutable-at-the-bottom" approach for future runtime development.

gus_massa•1w ago
Clicky: https://github.com/numaes/protoCore https://github.com/gamarino/protoJS

> ProtoJS: Phase 1 complete, demonstrating real parallel execution and sub-1ms GC pauses.

Is it a moving GC or a non-moving GC? IIRC Golang use a non-moving GC to make pauses very short.

Is it possible to create cycles? I think I didn't use cycles since a long time ago, but it's useful for big systems with a lot of interacting objects.

gamarino•1w ago
It is a non-moving GC.

The short pauses are a direct consequence of the immutable-by-default model. Once we collect the roots from thread stacks and global data during a brief Stop-The-World (STW) phase, those objects will not be modified by user threads. This allows the GC thread to perform the marking and sweeping phases in parallel with application threads without needing complex write barriers or locks.

Regarding mutability and cycles:

All mutable objects are managed through a centralized structure whose root is scanned during the STW phase.

Even this internal tracking structure uses immutable tree patterns, ensuring that once the GC starts its parallel phase, the pointers it is traversing remain stable.

Cycles are indeed possible in the object model, and the Mark-and-Sweep algorithm handles them naturally, ensuring that big systems with complex interactions don't leak memory.

The goal was to eliminate the standard synchronization overhead (locks/barriers) by leveraging the fact that 99% of the object graph is immutable and hardware-aligned.

aristofun•1w ago
What are the implications for an average Joe ruby/js developer if this matures to production grade? Could you explain like Im 5?