December 2024
Posted December 1, 2024 ‐ 4 min read
Next ⇨Languages
Zig: 本月重点花一些时间学习理解 zig。
- Zig Compiler Internals
-
Tokenizer: bytes -> token tokenizer 过程不使用 heap.
-
Parser: token -> AST
- 使用 MultiArrayList 作为存储数据结构(structure of array):减少内存占用,缓存友好。(使用 macro 可以简化 SOA 的 api)
-
AstGen: AST => ZIR AST => ZIR( Zig IR)
zig ast-check -t <file>
可以查看 ZIR- zir is untyped
-
Zig Sema: ZIR -> AIR (Analyzed IR) The heart of zig compiler.
zig build-obj --verbose-air <file>
- comptime evaluation
- AIR is fully typed
- AIR is only generated for exported or referenced functions.
- Value: comptime-known value.
- Type: comptime-known type(all types are comptime-known). a type can be a value of type
type
. - TypedValue: value with type.
理解 comptime, 我准备了一个实验,参考:comptime 是如何工作的
-
- 发现了 Zig 编译器的一个 BUG,还比较严重的。
- What is Zig got than C. Rust, and Go don't have
others
- Scala Macro: 两篇关于 Scala 3 Macro 的文章,较为深入,值得收藏学习。
- Scala 3.6.2 Released
- Clause Interleave. 支持:
def getOrElse(k: Key)[V >: k.Value](default: V): V
, 更强的 path-dependent type. - Improve Syntax for Context Bounds and Givens
- NamedTuple 很期待的一个语法糖,可以让使用 Tuple 的代码更加可读。 对 参数较多的 case class 进行 pattern match 也可以享受 NamedTuple 的便利了
- Clause Interleave. 支持:
- How We Made the Deno Language Server Ten Times Faster, +8s -> <1s
- 封装(样式、行为通过 Shadow DOM)、互操作性(框架无关)、标准化
- Modeling in scala, part 1: modeling you domain
MPP & OLAP
Web & Visualization
- WC 在现代UI中的无名贡献
- Scoped Components
- 可以为某个组件的 html`` 中使用的 webcomponent 提供一个 scope,重新定义 tag -> element 的映射关系。
- 为组件提供示例级的 css
- Setting up bun in webstorm
- No Build 后续
- Why do we still need bundlers
- HTTP/2 并不意味可以停止关心 HTTP 请求的数量(大部份浏览器的限制是100个,每个请求的额外开销),对包含数千个模块的应用仍然需要 bundling。
- 深层次的 import 会导致 waterfalls.
- Cache:
- 减少网络字节数
- 编译优化
- Why do we still need bundlers
- Hot Module Replacement: How it works?