惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
Engineering at Meta
Engineering at Meta
V
Visual Studio Blog
Martin Fowler
Martin Fowler
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
I
InfoQ
B
Blog RSS Feed
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
IT之家
IT之家
P
Proofpoint News Feed
WordPress大学
WordPress大学
小众软件
小众软件
B
Blog
MongoDB | Blog
MongoDB | Blog
人人都是产品经理
人人都是产品经理
量子位
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
Cx Dev Log — 2026-04-25
COMMENTERTHE · 2026-04-26 · via DEV Community

COMMENTERTHE9

Breaking through the six-day stagnation on submain, we've finally hit a major milestone with four committed changes pushing Cx 0.1 over to release candidate status. A significant memory boundary audit unveiled a critical StrRef soundness bug, now resolved, and all nine hard blockers are cleared up, leaving the merge gap the last major step before declaring release.

Audit Part 2 and Type Parser Refactor

The stalled audit Part 2 is no longer a hurdle. Commit a576f20 brought this to life, touching parser.rs, semantic.rs, main.rs, runtime.rs, and adding six new matrix tests (t109 to t114). Of particular interest was a critical refactor of the type parser, moving from flat alternatives to a recursive() approach. This change opens the door to parsing nested types like Result> and Handle, previously a roadblock for complex generics.

Other updates in this commit saw the semantic pass enhancing field type resolution from struct definitions for DotAccess LValues and rejecting mismatched types, while apply_numeric_cast in runtime adapts using the declared type of LValues for both Assign and CompoundAssign. A new dedicated 64 MB stack thread supports the interpreter, safeguarding against stack overflow, a real risk in recursive Cx programs. The numbers tell the tale: 17 files changed, with a net increase of 119 lines.

Memory Boundary Soundness Audit Findings

Commit 41099fb added 12 targeted test programs in examples/audit_memory/, scrutinizing Handle lifecycle, copy semantics, and string arena operations. Results? Nine tests passed cleanly, one known limitation on arena growth remains (accepted for v0.1), one intentional semantic rejection, and importantly, one critical soundness bug identified.

StrRef Escape Challenge

The fix for the crucial StrRef issue (b057340) is now in place. This bug allowed StrRef values into struct fields, sidestepping current escape checks blocking such entries in variable assignments and function returns. New safety layers in semantic.rs now block these potential escapes during struct field assignment and instantiation. Added matrix test t115 confirms the fix with a planned failure, ensuring stricter scope adherence for arena-backed string references. Additional escape paths? None found, but vigilance remains key.

Key Design Decisions

Three pivotal decisions shape the future path:

  • StrRef and Struct Fields: We've shut off all StrRef escape routes via struct fields. This change aligns with our existing policy, sealing the last loophole.

  • Handle Double-Drop as Silent No-op: Confirmed safe by the audit, the handle's generational indexing handles double-drops without incident. Future releases might add warnings, but for now, it's a silent guardian.

  • 64 MB Interpreter Stack Approach: Opting for a simple solution over complex optimizations, a 64MB stack on a dedicated thread solves stack overflow issues for recursive Cx programs without delving into per-frame stack tweaks. It's efficient for v0.1; further reductions remain on the horizon.

Charting the Roadmap to v5.0 and Beyond

The culmination of these efforts shows in commit 587bd20, escalating the submain roadmap to v5.0, complete with the removal of all nine barrier benchmarks. Known limitations are transparent rather than hidden. With submain adjusting to these changes, the main branch roadmap moves to v4.9, noting that the crucial merge work lingers.

What's Next on This Journey

The merge stands as the immediate goal. Submain leads with 19 new commits, while main trails with about 15 that need integrating. This merge won't be trivial — it promises to boost the main matrix from 78 to 117 tests, incorporating all hard blocker resolutions on the main stage.

Post-merge, the focus is on operational tidying — think daily-log branches — and enhancing the quality gate with := type inference and pattern matching advancements. IR lowering for new constructs beckons in the distance, shaping future versions. Though not immediate blockers for v0.1, these will eventually enhance the competing developer experience.

All soundness issues patched, all blockers resolved, and the path from RC to stable release is clear. Now, it's all about integration and refinement, making the magic happen for Cx 0.1.


Follow the Cx language project:

Originally published at https://cx-lang.com/blog/2026-04-25