Tag
A blog post exploring union types and their special case, option types (T|Nothing), and the author's experiments implementing them in Copper, a minimalist low-level 'better C' language, including design restrictions and why full union types proved too complex.
Futhark 团队总结了其类型检查器中别名传播(alias propagation)相关开放问题的最终解决方案,重点介绍了利用参数性(parametricity)推断更精确的 freshness 类型,以改善高阶函数与别名交互时的人体工学。
Rust设计者Niko Matsakis在博客中论证,为了支持循环trait实现(cyclic trait impls),Rust的supertrait验证必须采用「模块化证明」策略(由impl自身保证supertrait成立),而「外部化证明」策略与Rust现有设计不兼容。
A technical writeup presenting lang_narrow, a small language with flow typing that structurally narrows union types at control-flow branches using is/in expressions, along with a runtime implementation, performance considerations, and discussion comparing its union types to algebraic data types.
The article examines the complexities of aliasing in type systems for programming languages, using Futhark's in-place updates as an example, and warns about the design challenges it can introduce.
The article argues that assembly is actually typed and presents Odin's inline assembler as the best implementation due to its deep integration with the language's type system and semantic diagnostics.
This paper presents CAKE, a compiler-agent co-design framework that lets AI agents author a hardware-explicit IR for GPU kernels, achieving significant speedups over baselines across various workload families.
This technical note from 1994 describes methods for constructing deterministic and nondeterministic finite state automata in Forth, emphasizing a one-to-one mapping between definitions and state tables to avoid slow nested IFs.
Discusses two approaches to parallelizing compilation: multi-process (single-threaded compiler with build system spawning multiple instances) and in-process multi-threading (used by Rust and Zig). Compares trade-offs for language design.
A technical deep-dive explaining what a memory compiler is, how it uses bitcells to generate SRAM layouts, and the design concepts involved from cross-coupled inverters to GDS tiling.
Typst uses constrained memoization (comemo) and pure function design to make the language and compiler work together, achieving efficient incremental compilation and real-time preview. The article details the design ideas of layout caching, module evaluation memoization, function purity, and the introspection system.
The article proposes a principled rethinking of array languages like APL by modeling variables as functions of input dimensions, aiming to improve readability and error checking compared to traditional approaches.
A developer shares progress on Ekto, an embeddable typed language influenced by Lua, Koka, and Erlang, discussing implementation challenges around reference counting, memory management, and delimited continuations for the Casper VM.
A technical blog post critiques query-based compilers, arguing that their effectiveness is limited by the dependency structure of the source language, particularly the avalanche effect where changes can propagate widely, making incremental updates often as expensive as a full rebuild.