Commit Graph

2 Commits

Author SHA1 Message Date
saqut f1cb983b69 feat(array): GC-hazır nesne modeli + array runtime (ADR-020/022/023)
- src/vm/object.hpp: Object, ArrayObject, Heap (v1: toplama yok, mark-sweep kancaları hazır)
- src/vm/value.hpp: ValueKind::Ref + Nil eklendi (ADR-020/021)
- src/ir/instruction.hpp: ARRAY_NEW/GET/SET/LEN opcodes
- src/ir/ir_generator: array literal + a[i] okuma/yazma codegen
- src/parser: [1,2,3] array literal, int[] tip sözdizimi (Java/C# stili)
- src/vm/interpreter: ARRAY_NEW/GET/SET/LEN, sınır kontrolü, referans semantiği
- EQUAL_EQUAL/NOT_EQUAL: Ref türü için kimlik karşılaştırması (ADR-023)
- type.hpp: Type::fromName "int[]" vb. array tipleri destekliyor
- golden test: tests/golden/array/ref_semantics.sqt (referans semantiği, kimlik ==)
- 20 golden test geçiyor

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 16:18:23 +03:00
saqut 3c31f606d6 docs(ir): LOAD_GLOBAL/STORE_GLOBAL modül-düzeyi olarak yeniden çerçevelendi
Global değil — her değişken kendi dosyasına (modülüne) aittir.
ES6 modül mantığı: ortak global alan yok, yalnızca modül kapsamlı değişkenler.

İlgili: #53 (IRFunction.moduleId), #54 (Symbol.sourceModule)
Teknik borç: TODO.md #modül-scope başlığı

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 15:16:40 +03:00