AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Daslang 3단계 실행 계층을 갖춘 정적 타입 프로그래밍 언어
Daslang is a strong, statically-typed programming language with three execution tiers — interpreter, AOT to C++, JIT via LLVM. Embed it in your C++ engine, or build a standalone application end-to-end
개발 도구C · DaslangGitHub @GaijinEntertainment온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
daslang - high-performance statically strong typed scripting language
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Daslang (formerly daScript) is a high-performance, statically typed programming language built for games and real-time applications.
Getting Started * Website * Documentation * Blog * Try Online
Daslang was created at Gaijin Entertainment to solve a real problem: interop overhead between scripting languages and C++ was eating the frame budget in their ECS game engine. Lua (via LuaJIT) and Squirrel both hit the same wall - marshaling data back and forth was too expensive.README 전문 보기 ↗Daslang (formerly daScript) is a high-performance, statically typed programming language built for games and real-time applications.
Getting Started * Website * Documentation * Blog * Try Online
Daslang was created at Gaijin Entertainment to solve a real problem: interop overhead between scripting languages and C++ was eating the frame budget in their ECS game engine. Lua (via LuaJIT) and Squirrel both hit the same wall - marshaling data back and forth was too expensive.
Daslang's data layout matches C++. There is no marshaling, no boxing, no conversion - script<->C++ calls are near-zero cost.
Core principles:
options log shows exactly what the compiler producesdelete to reduce GC pressure, AOT to C++ for native speedThree execution tiers (all planned from day one): fast tree-based interpreter -> AOT compilation to C++ (required for consoles) -> JIT via LLVM. Hybrid mode uses semantic hashing: unchanged functions stay AOT, changed ones fall back to the interpreter - ship a hotfix without a full rebuild.
See the design philosophy for the full story.
git clone https://github.com/GaijinEntertainment/daScript.git daslang
cd daslang
git submodule update --init --recursive
cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
cmake --build build --target daslang --config Release
AOT compiles daslang scripts to C++ for native performance. Generate the C++ stub, then compile and link it with your host application:
./bin/daslang -aot main.das aot_main.cpp
clang++ host.cpp aot_main.cpp -Iinclude lib/liblibDaScript.a lib/liblibUriParser.a -o app
For a complete walkthrough, see the AOT tutorial and integration_cpp_13.cpp.
To use JIT, you need the LLVM 16.0.6 shared library at the path
lib/LLVM.dll, this name is fixed because of dynamic bindings.
Once you have LLVM.dll, all you need is:
./bin/daslang -jit main.das
For more details on how JIT works and what can be configured, see the JIT Readme.
To embed daslang into your CMake application, simply call find_package(DAS).
This will provide the targets libDaScript
and libDaScriptDyn. For an example of using daslang as an external project
(including usage for dynamic modules) see this demo.
A built-in package manager in utils/daspkg/ handles installing, updating, and building daslang packages - both pure-daslang and C++ native modules.
# Install a package from the index
./bin/daslang utils/daspkg/main.das -- install das-claude
# Install from a git URL
./bin/daslang utils/daspkg/main.das -- install github.com/user/repo
# Search the package index
./bin/daslang utils/daspkg/main.das -- search json
See utils/daspkg/README.md for the full command reference and package authoring guide.
.das filesAn MCP server in utils/mcp/ exposes 29 compiler-backed tools to AI coding assistants (Claude Code, etc.): compilation diagnostics, type inspection, go-to-definition, find-references, AST dump, AOT generation, expression evaluation, parse-aware grep, package management, and more.
No extra build dependencies (stdio transport). See utils/mcp/README.md for setup and configuration.
A tree-sitter grammar for the gen2 syntax of daslang lives in tree-sitter-daslang/. Every gen2 file that the compiler accepts parses without error, and CMake builds the grammar as a shared library.
Use it for:
queries/highlights.scm included, works in editors that support tree-sitter (Neovim, Helix, Zed)queries/tags.scm lists the definitions and references for tree-sitter tagssg 0.37.0 or later, before 0.50.0) for code search across .das files. A daslang pattern is literal code: metavariables such as $A do not matchutils/zed-daslang/ includes a Zed extensionBuild the grammar:
cmake --build build --target tree_sitter_daslang
daslang is licensed under the BSD 3-Clause License. Vendored
third-party components keep their own licenses; each installs with the SDK
beside the code that uses it (*.LICENSE files at the bundle root).