Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
281 commits
Select commit Hold shift + click to select a range
57c3c6f
Поддержка многомерных срезов массивов
FuryBaM Jul 22, 2026
48d0005
Реализован copy-on-write для коллекций и улучшен overload
FuryBaM Jul 22, 2026
578b82c
Добавлены Builder-ы для коллекций и поддержка generic
FuryBaM Jul 23, 2026
ec667d3
Добавлены extension-алгоритмы для коллекций и тесты
FuryBaM Jul 23, 2026
c085174
Оптимизация загрузки массива и проверок границ
FuryBaM Jul 23, 2026
23f069c
Добавлены тесты SIMD/vectorization для числовых массивов
FuryBaM Jul 23, 2026
a41119d
Добавлены каналы, атомарные переменные и токены отмены
FuryBaM Jul 23, 2026
a53593a
Реализация transfer capsule и интеграция с ABI
FuryBaM Jul 23, 2026
fff6ad5
Расширение дескриптора ресурса плагина новыми операциями
FuryBaM Jul 23, 2026
2db35b5
Добавлена поддержка package manifest и lock-файла
FuryBaM Jul 23, 2026
86724bc
Улучшена система управления пакетами и кэширования
FuryBaM Jul 23, 2026
e9f6c51
Расширен ABI и система загрузки плагинов Absolute
FuryBaM Jul 23, 2026
9ef5070
Исправлены ошибки линковки после обновления toolset
FuryBaM Jul 23, 2026
af06aa5
Расширение манифеста плагинов и source mapping API
FuryBaM Jul 23, 2026
50d4615
Добавлена поддержка виртуальных модулей плагинов
FuryBaM Jul 23, 2026
ea76f11
Добавлен backend API и поддержка виртуальных модулей
FuryBaM Jul 23, 2026
954f48a
Добавлены IDE/отладчик API, время сборки и сборка math-плагина
FuryBaM Jul 23, 2026
4fb9e24
Добавлен IDE/Debugger API и enforcement разрешений для плагинов
FuryBaM Jul 23, 2026
476e467
Добавлены std.env и std.process в стандартную библиотеку
FuryBaM Jul 23, 2026
427d981
Добавлена std.datetime: даты, время, ISO-8601, тесты
FuryBaM Jul 23, 2026
3e50109
Добавлен std.string: StringBuilder и Unicode-операции
FuryBaM Jul 23, 2026
b2075e0
Добавлена интерполяция строк и тесты для Absolute
FuryBaM Jul 23, 2026
d93cae1
Реализация JSON и бинарной сериализации в рантайме
FuryBaM Jul 23, 2026
9e11c4c
Добавлены UDP, DNS, URI и HTTP в stdlib + тесты
FuryBaM Jul 23, 2026
398fda9
Рефакторинг HTTP-сервера и клиента, улучшение API
FuryBaM Jul 23, 2026
890f6c9
Implement durable string handling, logging, assertions, and testing f…
FuryBaM Jul 24, 2026
1f2254c
feat: update package.json for version 0.3.0 and enhance description
FuryBaM Jul 24, 2026
5ec3834
feat: enhance debugging support with opaque blocks and REPL
FuryBaM Jul 24, 2026
27ec126
feat: implement C ABI type validation and enhance error handling for …
FuryBaM Jul 24, 2026
6257b99
feat: implement C ABI function pointer support with cfunc type and en…
FuryBaM Jul 24, 2026
0679167
feat: add Absolute C header bindgen tool and enhance testing framework
FuryBaM Jul 24, 2026
ef918b4
feat: add experimental WebAssembly support for IR and object emission…
FuryBaM Jul 24, 2026
e389118
feat: implement WebAssembly export-only linking and enhance testing f…
FuryBaM Jul 24, 2026
f8941d8
feat: add WebAssembly console shim and enhance testing framework
FuryBaM Jul 24, 2026
ccceb28
feat: implement wasm runtime subset with managed pointers and error h…
FuryBaM Jul 24, 2026
630e71b
feat: enhance WebAssembly support with task scheduling, logging, and …
FuryBaM Jul 24, 2026
1508d1b
feat: add virtual filesystem and environment stubs for WebAssembly ru…
FuryBaM Jul 24, 2026
c85a9a5
feat: enhance WebAssembly support with HTTP GET functionality and WAS…
FuryBaM Jul 24, 2026
36fb288
feat: implement host-backed TCP support with mock echo server and net…
FuryBaM Jul 24, 2026
3290c0b
feat: implement real OS TCP support for WebAssembly with worker-backe…
FuryBaM Jul 24, 2026
7ec8128
feat: implement multi-threaded task support for WebAssembly with work…
FuryBaM Jul 24, 2026
ec3e6c4
feat: enhance WASI support with runtime object linking, environment h…
FuryBaM Jul 24, 2026
2fe1c37
feat: enhance WASM browser host support and optional wasi-sysroot int…
FuryBaM Jul 24, 2026
3801103
Add WASM browser session support with COOP/COEP server
FuryBaM Jul 24, 2026
cf8140f
feat: implement browser task worker pool for WebAssembly with nested …
FuryBaM Jul 24, 2026
ec8e7d9
feat: add shared-memory support for WebAssembly with runtime integrat…
FuryBaM Jul 24, 2026
cfd9bbe
Enhance WASM task pool with shared memory support and improve logging
FuryBaM Jul 24, 2026
0d8fd75
feat: enhance WebAssembly support with new build, run, and test comma…
FuryBaM Jul 24, 2026
9e26a6f
feat: Enhance desktop plugin with input handling and 2D drawing capab…
FuryBaM Jul 24, 2026
3d73991
feat: Implement soft sprite support and fixed timestep management in …
FuryBaM Jul 24, 2026
7134497
Enhance desktop plugin with gamepad support, text input handling, and…
FuryBaM Jul 24, 2026
78dc7a4
feat: Improve WASM toolchain configuration for cross-platform compati…
FuryBaM Jul 24, 2026
0ba1e40
feat: Add Absolute REPL module and improve loading mechanism in exten…
FuryBaM Jul 24, 2026
8b0c7bf
feat: Add built-in 8x8 soft bitmap font support and text rendering ca…
FuryBaM Jul 24, 2026
ce6c4d4
feat: Implement soft sprite batching and enhance drawing performance …
FuryBaM Jul 24, 2026
e8c4252
Add OpenGL RHI support for desktop platforms
FuryBaM Jul 24, 2026
a6c2390
Refactor OpenGL RHI for absolute.desktop: Introduce pipeline model wi…
FuryBaM Jul 24, 2026
401cefe
feat: Add GPU sprite scene example and enhance RHI with texture support
FuryBaM Jul 24, 2026
7d23139
feat: Enhance OpenGL RHI with index buffer and sampler support for de…
FuryBaM Jul 24, 2026
7084939
feat: Implement PNG loading for soft sprites and enhance image handling
FuryBaM Jul 24, 2026
654468d
feat: Add Soft TrueType/system font support with Desktop.Font class a…
FuryBaM Jul 24, 2026
796c77b
.
FuryBaM Jul 24, 2026
8a89223
feat: Add immediate-mode UI toolkit with buttons, sliders, and progre…
FuryBaM Jul 24, 2026
8f8a59c
feat: Implement Wavefront OBJ mesh loading and GPU integration
FuryBaM Jul 24, 2026
de456f6
feat(shader): Implement reflection and GLSL generation for Desktop.Gp…
FuryBaM Jul 24, 2026
b54d395
feat(shader): Add support for custom GLSL body in shader plugin and u…
FuryBaM Jul 24, 2026
685122f
feat: Enhance OpenGL support with GLX for Linux and improve PNG loadi…
FuryBaM Jul 24, 2026
5d9de8b
feat(gpu): add D3D11 backend support and multi-backend dispatch
FuryBaM Jul 24, 2026
91d11ae
Enhance D3D11 backend support with full shader, buffer, and pipeline …
FuryBaM Jul 24, 2026
f2b6dbc
feat(d3d11): add support for textures and samplers, enhance sprite ex…
FuryBaM Jul 24, 2026
4d045ee
Add D3D12 backend support for Desktop.Gpu
FuryBaM Jul 24, 2026
e23ebca
Enhance D3D12 backend support with full mesh RHI functionality
FuryBaM Jul 24, 2026
c53c62d
feat(docs): update README and scripts for native Windows desktop setu…
WesternIm Jul 25, 2026
6c2297a
Add D3D12 support for sprite rendering and texture management
FuryBaM Jul 25, 2026
c1d0518
Enhance GPU backend descriptions and add Vulkan support
FuryBaM Jul 25, 2026
5d615b3
feat(shader): Introduce multi-target GPU IR support in absolute.shader
FuryBaM Jul 25, 2026
795253d
feat(std): add initial standard library structure and documentation
FuryBaM Jul 25, 2026
b73838c
Implement constructor overloads for classes and structs
FuryBaM Jul 25, 2026
cd48e28
Add compiler build and run workflows
FuryBaM Jul 26, 2026
50dfce3
Add library project support and improve CLI project workflows
FuryBaM Jul 26, 2026
c239a4b
Adopt RAII-managed desktop plugin resources
FuryBaM Jul 26, 2026
427ec5e
Add automatic toolchain discovery and signature help
FuryBaM Jul 26, 2026
e509373
Support nested grouped literals for flat arrays
FuryBaM Jul 26, 2026
df1dcd5
Add D3D11 compute shader and storage buffer support
FuryBaM Jul 26, 2026
07c6a06
Add compute shader DSL and D3D11 dispatch documentation
FuryBaM Jul 26, 2026
a49d918
Implement comprehensive application updates
FuryBaM Jul 26, 2026
8d278f9
Simplify project structure and remove obsolete code
FuryBaM Jul 26, 2026
be6c0f4
Preserve unsigned semantics during implicit conversions
FuryBaM Jul 26, 2026
d17ce1f
Add launch argument support across runtime, CLI, and VS Code
FuryBaM Jul 26, 2026
2488cfc
Add portable math plugin manifests and integration tests
FuryBaM Jul 26, 2026
fc04503
Add UTF-8 string support to runtime and WASM
FuryBaM Jul 26, 2026
bdd7b54
Add cross-platform filesystem path utilities and Path helper
FuryBaM Jul 26, 2026
fb0e211
Add deque, queue, and stack collections to std library
FuryBaM Jul 26, 2026
8b325dd
Add stable PriorityQueue collection and regression coverage
FuryBaM Jul 26, 2026
3401126
Add hash collections and callback ABI regression coverage
FuryBaM Jul 26, 2026
e548cb4
Add ownership-transfer capsules and channels
FuryBaM Jul 26, 2026
4856c06
Fix wasm
FuryBaM Jul 26, 2026
9e9ba2e
Fix parallel WASM marker test runner race
FuryBaM Jul 26, 2026
f131eff
Update struct ABI test for mangled constructor names
FuryBaM Jul 26, 2026
2877aa8
Add build-only and no-tests aliases
FuryBaM Jul 26, 2026
214b6ec
Fix compiler path resolution in VS Code extension
FuryBaM Jul 26, 2026
31eb56f
Test VS Code compiler path fallback
FuryBaM Jul 26, 2026
2f2ff8c
Bump Absolute extension to 0.3.4
FuryBaM Jul 26, 2026
b4e1074
Add WebAssembly target helpers for VS Code
FuryBaM Jul 26, 2026
2a66f04
Add generic Node WebAssembly runner
FuryBaM Jul 26, 2026
d234cd9
Bundle WASM host when packaging extension
FuryBaM Jul 26, 2026
6ac89e4
Add project-aware WebAssembly build and run support
FuryBaM Jul 26, 2026
f7d2e34
Test extension WebAssembly target helpers
FuryBaM Jul 26, 2026
d8d972e
Add WebAssembly run command and project target support to VS Code
FuryBaM Jul 26, 2026
a10d82c
Document standalone and project WebAssembly workflows
FuryBaM Jul 26, 2026
e1dad6c
Ignore generated VS Code WASM host bundle
FuryBaM Jul 26, 2026
271aea6
Honor project target in absolutec build entrypoint
FuryBaM Jul 26, 2026
b41d463
Route absolutec through project target aware entrypoint
FuryBaM Jul 26, 2026
965f222
Add Termux build launcher
FuryBaM Jul 26, 2026
64b41ea
Add Termux run launcher
FuryBaM Jul 26, 2026
5d1b764
Add Termux dependency bootstrap
FuryBaM Jul 26, 2026
814e5e5
Add Termux CMake build script
FuryBaM Jul 26, 2026
cf4ebb9
Add Termux runner entry point
FuryBaM Jul 26, 2026
4055661
Implement Termux native and WASM runner
FuryBaM Jul 26, 2026
c45c81d
Document the Termux workflow
FuryBaM Jul 26, 2026
776391e
Install Termux LLVM link dependencies
FuryBaM Jul 26, 2026
8569408
Document experimental Termux platform support
FuryBaM Jul 26, 2026
431c0a7
Enable C checks for LLVM configuration
FuryBaM Jul 26, 2026
acff4ad
Install Termux LLVM component archives
FuryBaM Jul 26, 2026
dff12d0
Diagnose missing Termux LLVM static package
FuryBaM Jul 26, 2026
b535ef3
Use platform-specific WASI bootstrap hint
FuryBaM Jul 26, 2026
cb6f4c4
Document Termux LLVM static package requirement
FuryBaM Jul 26, 2026
504f916
Install LLVM tools required by Termux CMake exports
FuryBaM Jul 26, 2026
1f2b248
Check Termux LLVM development tools before configure
FuryBaM Jul 26, 2026
929cc35
Document Termux llvm-tools requirement
FuryBaM Jul 26, 2026
2987a89
Install Termux Polly package for LLVM CMake exports
FuryBaM Jul 26, 2026
8b547ff
Check Termux Polly package before LLVM configure
FuryBaM Jul 26, 2026
9ce3578
Document Termux libpolly requirement
FuryBaM Jul 26, 2026
36b39e5
Support LLVM 21 capture attributes
FuryBaM Jul 26, 2026
a32878b
Use captures(none) with LLVM 21
FuryBaM Jul 26, 2026
59a4fc3
Add Android pthread affinity compatibility
FuryBaM Jul 26, 2026
8abba04
Use Android affinity compatibility in runtime
FuryBaM Jul 26, 2026
cd007e8
Add LLVM 21 target and pass callback compatibility
FuryBaM Jul 26, 2026
5ac06eb
Add real scheduler concurrency stress test
FuryBaM Jul 27, 2026
e265be4
Add snapshot iterator mutation stress coverage
FuryBaM Jul 27, 2026
c299bca
Add deterministic grammar and mutation compiler fuzzer
FuryBaM Jul 27, 2026
46908cf
Fix compiler fuzzer seed literal
FuryBaM Jul 27, 2026
50c40cc
Add generative collection property test builder
FuryBaM Jul 27, 2026
0ba4f45
Add ThreadSanitizer scheduler stress harness
FuryBaM Jul 27, 2026
f68bc8a
Add stress fuzz property and ThreadSanitizer CI
FuryBaM Jul 27, 2026
d692f16
Capture hardening diagnostics in CI artifacts
FuryBaM Jul 27, 2026
a79e173
Fix task completion notification lifetime race
FuryBaM Jul 27, 2026
3a24748
Import channel runtime declarations in concurrency stress
FuryBaM Jul 27, 2026
4f74cd8
Avoid compound index expression in snapshot stress
FuryBaM Jul 27, 2026
1eeecc1
Pass stress resources explicitly into async tasks
FuryBaM Jul 27, 2026
0fdaa4c
Keep TSan stress within hosted runner timeout
FuryBaM Jul 27, 2026
72dfeaa
Keep a blocking-task reserve in the scheduler pool
FuryBaM Jul 27, 2026
93813ea
Keep generated unary negation semantically valid
FuryBaM Jul 27, 2026
8993716
Decode malformed compiler diagnostics lossily during fuzzing
FuryBaM Jul 27, 2026
157a5a3
Persist compiler fuzz output in hardening diagnostics
FuryBaM Jul 27, 2026
37f3dd3
Merge pull request #8 from FuryBaM/agent/test-hardening
FuryBaM Jul 27, 2026
ced99c1
Add one-time TODO update workflow
FuryBaM Jul 27, 2026
593e687
Stage next roadmap for TODO.md
FuryBaM Jul 27, 2026
295e26e
Document next stabilization roadmap
github-actions[bot] Jul 27, 2026
f19dfdf
Remove one-time TODO update workflow
FuryBaM Jul 27, 2026
703ef84
Remove temporary TODO staging file
FuryBaM Jul 27, 2026
9fe9de8
Stage Termux compatibility patch
FuryBaM Jul 27, 2026
3410441
Apply and validate Termux test fixes
FuryBaM Jul 27, 2026
6a83849
Trigger Termux fix application
FuryBaM Jul 27, 2026
e7a03e9
Run Termux fix workflow for pull requests
FuryBaM Jul 27, 2026
9066f29
Add deterministic Termux fix applicator
FuryBaM Jul 27, 2026
4f3324e
Apply Termux fixes with deterministic script
FuryBaM Jul 27, 2026
d505ac0
Fix Termux runtime and sanitizer tests
github-actions[bot] Jul 27, 2026
7848233
Remove temporary Termux fix workflow
FuryBaM Jul 27, 2026
1e4b92a
Remove temporary Termux patch
FuryBaM Jul 27, 2026
c7ada32
Remove temporary Termux fix applicator
FuryBaM Jul 27, 2026
ddf16d3
Merge pull request #9 from FuryBaM/agent/fix-termux-tests-v4
FuryBaM Jul 27, 2026
afc6c08
Merge branch 'master' into agent/stabilize-foundation
FuryBaM Jul 27, 2026
69a5f4c
Stage LLVM 21 CodeGen scope fix
FuryBaM Jul 27, 2026
265e4e0
Fix staged LLVM 21 CodeGen patch script
FuryBaM Jul 27, 2026
10ce70c
Run LLVM 21 CodeGen scope fix
FuryBaM Jul 27, 2026
cf7e5fe
Fix LLVM 21 CodeGen implementation scope
FuryBaM Jul 27, 2026
db8fd92
Remove temporary CodeGen fix script
FuryBaM Jul 27, 2026
ed414d6
Remove temporary CodeGen fix workflow
FuryBaM Jul 27, 2026
7b51f8b
Add array pipeline repair helper
FuryBaM Jul 27, 2026
3020934
Validate and apply array pipeline repair
FuryBaM Jul 27, 2026
ef53d3c
Trigger array pipeline repair on the open PR
FuryBaM Jul 27, 2026
4c03c6c
Capture array pipeline repair build diagnostics
FuryBaM Jul 27, 2026
4a91c42
Support LLVM 18 and 21 in array optimization repair
FuryBaM Jul 27, 2026
9a89a16
Diagnose native array bounds failure
FuryBaM Jul 27, 2026
91724f9
Fix nested multidimensional array declarations
FuryBaM Jul 27, 2026
29e234b
Commit multidimensional array lowering repair
FuryBaM Jul 27, 2026
a2af010
Fix multidimensional array declaration lowering
github-actions[bot] Jul 27, 2026
77874b0
Rebase validated array fix before pushing
FuryBaM Jul 27, 2026
ddb9fc9
Remove temporary array repair workflow
FuryBaM Jul 27, 2026
af2d322
Remove temporary array repair helper
FuryBaM Jul 27, 2026
cdd8f11
Harden CI matrix diagnostics and toolchain bootstrap
FuryBaM Jul 28, 2026
675cbf1
Document supported compiler and runtime toolchains
FuryBaM Jul 28, 2026
9dd6872
Replace unstable parser scratch file with supported sample
FuryBaM Jul 28, 2026
1a52bed
Fix platform-specific CI execution paths
FuryBaM Jul 28, 2026
88f5c7d
Initialize native linker environments in platform CI
FuryBaM Jul 28, 2026
bc0ca88
Allow a dedicated native linker driver
FuryBaM Jul 28, 2026
2116c6c
Use matching LLVM linker driver on macOS
FuryBaM Jul 28, 2026
1115587
Merge pull request #11 from FuryBaM/agent/ci-p0-hardening
FuryBaM Jul 28, 2026
dbe1f1b
Fix WASI tool discovery and kit extraction
FuryBaM Jul 28, 2026
9db3c74
Harden CI with pinned runners and failure diagnostics
FuryBaM Jul 28, 2026
2621285
Add fiber-based cooperative task scheduling
FuryBaM Jul 28, 2026
954d1d4
Update project implementation and configuration
FuryBaM Jul 28, 2026
871bdb5
Require libucontext for Termux Scheduler v2 builds
FuryBaM Jul 28, 2026
41eb362
Link libucontext for Android compiler outputs
FuryBaM Jul 28, 2026
7d33bb6
Add Linux epoll reactor for asynchronous socket I/O
FuryBaM Jul 28, 2026
25598b4
Add Windows IOCP socket completion support
FuryBaM Jul 28, 2026
33bc76a
Add macOS kqueue socket reactor support
FuryBaM Jul 28, 2026
35e99ba
Add native socket timeouts and asynchronous TCP connect
FuryBaM Jul 28, 2026
3e21f9d
Add task groups and cancellation support
FuryBaM Jul 28, 2026
6f5911a
Add CLI version support and integration test
FuryBaM Jul 28, 2026
a47a141
Propagate task deadlines through runtime and network I/O
FuryBaM Jul 28, 2026
d029901
Add work stealing across scheduler worker queues
FuryBaM Jul 28, 2026
c4db0f7
Implement fair weighted task scheduling
FuryBaM Jul 28, 2026
2300acf
Add best-effort CPU affinity capabilities
FuryBaM Jul 28, 2026
0a31035
Add scheduler metrics across native and WASM runtimes
FuryBaM Jul 28, 2026
bed03a4
Add scheduler stress harness to native and TSan testing
FuryBaM Jul 28, 2026
6d4a29f
Add configurable optimization levels to code generation
FuryBaM Jul 28, 2026
b21c1dc
Add native-WASM differential CTest
FuryBaM Jul 28, 2026
5a47ff8
Add LLVM 18 through 21 compatibility CI contract
FuryBaM Jul 28, 2026
f2ff1ae
Add cross-platform ABI linker corpus tests
FuryBaM Jul 28, 2026
55427d0
Expand differential linker corpus coverage
FuryBaM Jul 28, 2026
372b9d2
Add clone-based deep copy support for aggregate values
FuryBaM Jul 28, 2026
9c47292
Add tuples and params
FuryBaM Jul 28, 2026
76adcfd
feat(std, lang): Add std.mime, std.form and out parameters support
FuryBaM Jul 28, 2026
615faed
feat(lang): Add forward(x) builtin for perfect forwarding in generics
FuryBaM Jul 28, 2026
3c11681
refactor(std.collections): Use forward(x) in Vector, Deque, PriorityQ…
FuryBaM Jul 28, 2026
8abc2e7
perf(std.collections): Eliminate redundant double-copy in toArray() a…
FuryBaM Jul 28, 2026
101a094
Document ownership correctness gaps
FuryBaM Jul 28, 2026
189b91a
Add temporary TODO append workflow
FuryBaM Jul 28, 2026
7083152
Trigger TODO append workflow
FuryBaM Jul 28, 2026
e72f96b
Remove temporary TODO append workflow
FuryBaM Jul 28, 2026
31d3261
Document value categories and forwarding
FuryBaM Jul 28, 2026
4e57431
Temporarily update ownership TODO
FuryBaM Jul 29, 2026
ec34e2b
Clarify ownership flow for raw weak and ref
github-actions[bot] Jul 29, 2026
ff4e736
Restore benchmark workflow
FuryBaM Jul 29, 2026
1875192
feat(memory): Implement Stage 8 ARC & memory ownership enhancements (…
FuryBaM Jul 29, 2026
629b13e
fix(ownership): Implement P0 memory ownership correctness (cycle dete…
FuryBaM Jul 29, 2026
50696ab
feat(ownership): Implement P1 Expression Categories, Places and Point…
FuryBaM Jul 29, 2026
61ac0a3
docs: Update TODO.md with completed P0 and P1 memory ownership tasks
FuryBaM Jul 29, 2026
766743e
refactor(language): Remove redundant forward builtin in favor of expl…
FuryBaM Jul 29, 2026
f7eaaf0
docs: Mark forward removal as completed in TODO.md
FuryBaM Jul 29, 2026
831a88a
test(ownership): Add execution test validating borrowing parameter se…
FuryBaM Jul 29, 2026
c914766
fix(ownership): Allow move(param) on parameters to transfer ownership…
FuryBaM Jul 29, 2026
3e512b7
feat(std): implement std.bytes.ByteBuffer and std.io Readers, Writers…
FuryBaM Jul 29, 2026
1cba3a7
docs: mark P0 data / I/O tasks as completed in TODO.md
FuryBaM Jul 29, 2026
71aad7c
Enforce nothrow semantics and replace shared ownership paths
FuryBaM Jul 29, 2026
37718b4
Refactor compiler parsing and add tuple and params support
FuryBaM Jul 29, 2026
f44377c
Add consume parameter ownership validation
FuryBaM Jul 29, 2026
d65c0f9
Add tuple types and variadic parameters
FuryBaM Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
40 changes: 40 additions & 0 deletions .github/upgrades/scenarios/cppbuildtoolsupgrade/assessment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Assessment — CppBuildToolsUpgrade

Дата: 2026-07-23

## Краткое резюме
В ходе полной перестройки (rebuild) решения найдено 2 ошибки и 0 предупреждений в 1 проекте. Ошибки относятся к сборке проекта Absolute-Compiler и связаны с неразрешёнными внешними ссылками (linker unresolved externals). Эти ошибки будут считаться "in-scope" для дальнейшего расследования, так как они появились после пересборки с обновлёнными средствами сборки и блокируют успешную компоновку исполняемого файла.

## Полный список проблем (из отчёта сборки)
- Solution: F:\Documents\Absolute\Absolute.sln

- Project: F:\Documents\Absolute\Absolute-Compiler\Absolute-Compiler.vcxproj
- Build order: 3
- Platform Toolset: v145
- Windows Target Platform Version: 10.0
- Error 1 (linker): LNK2019
- Сообщение: ссылка на неразрешенный внешний символ "public: static void __cdecl Absolute::PackageManager::SaveLockfile(struct Absolute::PackageLockfile const &,class std::filesystem::path const &)" (?SaveLockfile@PackageManager@Absolute@@SAXAEBUPackageLockfile@2@AEBVpath@filesystem@std@@@Z) в функции `anonymous namespace`::LoadCompilation
- Триггер (входной артефакт): F:\Documents\Absolute\x64\Debug\absolutec.exe (компоновка)
- Error 2 (linker): LNK1120
- Сообщение: неразрешенных внешних элементов: 4
- Триггер: F:\Documents\Absolute\x64\Debug\absolutec.exe

## Классификация
- In-scope (будем исправлять в рамках этого сценария):
- Все перечисленные выше ошибки LNK2019 / LNK1120 в проекте Absolute-Compiler (F:\Documents\Absolute\Absolute-Compiler\Absolute-Compiler.vcxproj). Они блокируют сборку и требуют анализа линковки/определений символов, настроек проектов и порядка сборки.

- Out-of-scope:
- На данном этапе нет явных предварительно существовавших проблем, подтверждённых историей сборок. Если при последующем расследовании обнаружится, что данные ошибки были до апгрейда toolset, мы пометим их как out-of-scope и скорректируем план.

## Предварительный анализ (что проверять в планировании)
- Проверить, где определён Absolute::PackageManager::SaveLockfile (файл/компонент) — возможно реализация в другом проекте/файле не линкуется.
- Проверить, что все требуемые библиотеки/объектные файлы (parser.lib, analyzer.lib и т.д.) действительно создаются и находятся в Linker's LIBPATH (F:\Documents\Absolute\x64\Debug).
- Проверить порядок сборки (build order) и зависимости между проектами в решении.
- Проверить изменения в настройках линковщика или платформенного toolset (v145) которые могли повлиять на видимость символов (C++ name mangling, inline, /WHOLEARCHIVE, статические члены и т.д.).

## Рекомендация по следующему шагу
Перейти к Stage 2: Planning — углублённое расследование каждой неразрешённой ссылки (точные определения файлов, где символы реализованы, и почему они не попадают в линковку). В этом этапе я подготовлю plan.md и набор задач (unload+edit .vcxproj при необходимости, правки кода или настроек линковщика, повторная сборка) и предложу варианты исправления.

---

Создано автоматически агентом. Следующий шаг: планирование и составление задач. В режиме Automatic я начну Planning автоматически — если вы хотите приостановить и проверить assessment прежде чем планировать, ответьте "pause".
38 changes: 38 additions & 0 deletions .github/upgrades/scenarios/cppbuildtoolsupgrade/plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Plan — CppBuildToolsUpgrade

Дата: 2026-07-23

## Цель
Устранить текущие ошибки линковки в проекте Absolute-Compiler после обновления средств сборки и подтвердить успешную сборку решения.

## Подход
1. Провести детальное расследование причин неразрешённых внешних ссылок (SaveLockfile и другие) — найти определения, проверить, входят ли соответствующие исходники в проект/библиотеки и корректно ли настроена линковка.
2. Исправить проектные настройки (.vcxproj) или добавить отсутствующие ссылки/файлы исходников, при необходимости отредактировать код для совместимости с новым toolset.
3. Выполнять инкрементальные сборки после каждого исправления; после успешного прохождения всех задач — выполнить финальную полную перестройку.

## Предложенные варианты (если потребуется)
- Быстрое исправление: добавить недостающие исходники или проектные зависимости в Absolute-Compiler (низкий риск, быстрый результат).
- Консервативное исправление: восстановить/обновить внешний компонент (analyzer/lib) и явно подключить его корректную сборку в решении (средний риск, требует больше времени).
- Переходной подход: временно обойти вызовы отсутствующих API (если допустимо) и запланировать восстановление API в отдельной задаче (высокий риск изменения логики).

## Задачи (в порядке выполнения)
1. Investigate: Нахождение определений символов и точек вызова
- Что сделать: найти реализации символов (например, SaveLockfile) и места их использования; собрать полный список файлов/проектов которые должны предоставлять эти символы.
- Артефакты: findings.md (в tasks/*/progress-details.md)
2. Inspect .vcxproj: Проверить Absolute-Compiler.vcxproj
- Что сделать: убедиться что package_manager.cpp и прочие необходимые файлы включены в проект; проверить ProjectReferences и Linker -> Additional Dependencies.
- Артефакты: project-inspection.md
3. Fix project configuration или код
- Что сделать: если файлы отсутствуют — добавить их; если требуется — исправить порядок ссылок или дополнительные зависимости; при необходимости внести минимальные правки кода для согласования сигнатур.
- Артефакты: изменения в .vcxproj и/или исходниках, commit-ready patch
4. Rebuild incremental: Запустить cppupgrade_build_and_get_issues и верифицировать исчезновение связанных ошибок
- Что сделать: инкрементальная сборка проекта/решения, анализ результата
5. Final rebuild: Выполнить cppupgrade_rebuild_and_get_issues и подтвердить отсутствие ошибок/предупреждений

## Риски и замечания
- Возможны зависимости на внешние/третьесторонние библиотеки — в таком случае потребуется обновление субмодулей или согласование с авторами библиотек.
- Если определение символов лежит в другом проекте, возможно потребуется отредактировать ProjectReference, а это затронет порядок сборки.

---

Далее мне нужно ваше подтверждение для перехода к Stage 3 (Execution). Ответьте `approve` чтобы я начал выполнять задачи по плану, или `change` чтобы внести правки в план.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# CppBuildToolsUpgrade

## Preferences
- **Flow Mode**: Automatic

## Source Control
- **Source Branch**: agent/stabilize-foundation
- **Working Branch**: agent/stabilize-foundation (use current branch as requested by user)
- **Commit Strategy**: After Each Task
- **Branch Sync**: Auto (Merge)

## Notes
- User requested to use the current branch for work.
- All changes will be made on the working branch as configured above unless otherwise instructed.
17 changes: 17 additions & 0 deletions .github/upgrades/scenarios/cppbuildtoolsupgrade/scenario.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"scenarioId": "CppBuildToolsUpgrade",
"operationId": "7cd9b339-41e8-44f5-a800-a58ae464fb78",
"description": "Upgrade MSVC (C\u002B\u002B) Build Tools to the latest version and/or resolve C/C\u002B\u002B build issues.",
"startTime": "2026-07-23T10:08:02.0429529Z",
"lastUpdateTime": "2026-07-23T11:39:11.706318Z",
"properties": {
"taskStates": {
"01-investigate": "Completed",
"02-inspect-vcxproj": "Completed",
"03-fix-project-configuration": "Completed",
"04-rebuild-incremental": "Completed",
"05-final-rebuild": "Completed"
}
},
"folderPath": ""
}
9 changes: 9 additions & 0 deletions .github/upgrades/scenarios/cppbuildtoolsupgrade/tasks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Tasks — CppBuildToolsUpgrade

1. Investigate (pending)
2. Inspect .vcxproj (pending)
3. Fix project configuration или код (pending)
4. Rebuild incremental (pending)
5. Final rebuild (pending)

Status: Not started
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Progress Details — 01-investigate

## Files Modified
- F:\Documents\Absolute\Absolute-Compiler\Absolute-Compiler.vcxproj — добавлен src\package_manager.cpp в список компилируемых исходников проекта.

## Build Result
- Инкрементальная сборка (cppupgrade_build_and_get_issues) выполнена успешно.
- Ошибки: 0
- Предупреждения: 0
- Сборка: решения прошла успешно

## Что сделано
- Исследована причина LNK2019 (PackageManager::SaveLockfile) — обнаружено, что реализация находится в src\package_manager.cpp, но файл не был включён в проект Absolute-Compiler.vcxproj.
- Добавил запись <ClCompile Include="src\\package_manager.cpp" /> в проектный файл и выполнил инкрементальную сборку.

## Замечания
- После правки и сборки исходные ошибки линковки исчезли. Следующий шаг — продолжить выполнение оставшихся задач плана (Inspect .vcxproj/Fix project configuration или код/Final rebuild) автоматически.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 01-investigate: Investigate: Нахождение определений символов и точек вызова

- Что сделать: найти реализации символов (например, SaveLockfile) и места их использования; собрать полный список файлов/проектов которые должны предоставлять эти символы.
- Артефакты: findings.md (в tasks/*/progress-details.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Progress Details — 02-inspect-vcxproj

## Исходные файлы и проекты
- Проект проверен: F:\Documents\Absolute\Absolute-Compiler\Absolute-Compiler.vcxproj
- Сопутствующие проекты: F:\Documents\Absolute\Absolute-Analyzer\Absolute-Analyzer.vcxproj, F:\Documents\Absolute\Absolute-Parser\Absolute-Parser.vcxproj

## Что проверено
- Наличие реализации и включение в проект: src\package_manager.cpp включён в Absolute-Compiler.vcxproj (см. ранее внесённое изменение).
- ProjectReferences: в Absolute-Compiler.vcxproj явных <ProjectReference> не найдено (проект линкуется на parser.lib и analyzer.lib через AdditionalDependencies).
- Linker -> AdditionalDependencies: в Absolute-Compiler.vcxproj указаны parser.lib;analyzer.lib;%(AdditionalDependencies) — корректно.
- AdditionalLibraryDirectories: используется $(SolutionDIr)$(Platform)\$(Configuration) (в других проектах аналогично). Замечание: в файлах встречается запись $(SolutionDIr) с заглавной буквой I — MSBuild имена свойств нечувствительны к регистру, поэтому это не должно быть проблемой.

## Поведение сборки библиотек
- Absolute-Parser и Absolute-Analyzer имеют <ConfigurationType>StaticLibrary и TargetName = parser / analyzer соответственно.
- Для конфигурации x64|Debug у них задан OutDir = $(SolutionDir)$(Platform)\$(Configuration) — это соответствует месту, откуда Absolute-Compiler ожидает найти parser.lib и analyzer.lib.

## Вывод
- Порядок сборки и места вывода библиотек соответствуют настройкам линковки Absolute-Compiler. Не требуется добавлять ProjectReference; текущая схема с генерацией .lib и использованием AdditionalLibraryDirectories корректна.
- После включения src\package_manager.cpp в Absolute-Compiler и инкрементальной сборки ошибки линковки устранились.

## Дальнейшие шаги
- Никаких дополнительных изменений в .vcxproj на данном этапе не требуется.
- Перейти к следующей задаче: Fix project configuration или код (если появятся новые проблемы) и затем Final rebuild.

---

Автоматически сгенерировано агентом.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 02-inspect-vcxproj: Inspect .vcxproj: Проверить Absolute-Compiler.vcxproj

- Что сделать: убедиться что package_manager.cpp и прочие необходимые файлы включены в проект; проверить ProjectReferences и Linker -> Additional Dependencies.
- Артефакты: project-inspection.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Progress Details — 03-fix-project-configuration

## Что сделано
- Проверена необходимость правок в проектной конфигурации для Absolute-Compiler.
- Нужные исходники (src\package_manager.cpp) уже добавлены в проект на предыдущем шаге.
- Явных дополнительных изменений в .vcxproj не потребовалось.

## Build Result
- Инкрементальная сборка выполнена успешно (см. итог ниже).
- Errors: 0
- Warnings: 0

## Вывод
- Конфигурация проекта корректна для текущего toolset v145.
- Готов перейти к шагу 04 — инкрементальная сборка/проверка и затем к финальной перестройке.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# 03-fix-project-configuration: Fix project configuration или код

- Что сделать: если файлы отсутствуют — добавить их; если требуется — исправить порядок ссылок или дополнительные зависимости; при необходимости внести минимальные правки кода для согласования сигнатур.
- Артефакты: изменения в .vcxproj и/или исходниках, commit-ready patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Progress Details — 04-rebuild-incremental

## Что сделано
- Выполнена инкрементальная сборка решения через cppupgrade_build_and_get_issues для проверки отсутствия регрессий после внесённых изменений.

## Build Result
- Errors: 0
- Warnings: 0
- Сборка: успешна

## Вывод
- Все предыдущие ошибки устранены, проект и зависимые библиотеки компилируются и линкуются корректно.
- Готов выполнить финальную полную перестройку (Stage 5).
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 04-rebuild-incremental: Rebuild incremental: Запустить cppupgrade_build_and_get_issues и верифицировать исчезновение связанных ошибок

- Что сделать: инкрементальная сборка проекта/решения, анализ результата
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Progress Details — 05-final-rebuild

## Что сделано
- Выполнена полная перестройка решения через cppupgrade_rebuild_and_get_issues для подтверждения отсутствия ошибок и предупреждений после внесённых изменений.

## Build Result
- Errors: 0
- Warnings: 0
- Сборка: успешна

## Вывод
- Все проблемы сборки, выявленные на этапе Assessment, устранены.
- Рекомендуется создать коммит с изменениям в проектных файлах и артефактах сценария (если стратегия коммитов — After Each Task).

Автоматически сгенерировано агентом.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# 05-final-rebuild: Final rebuild: Выполнить cppupgrade_rebuild_and_get_issues и подтвердить отсутствие ошибок/предупреждений

Execute task 05-final-rebuild.
Loading
Loading