This directory contains documentation for the Slang system. Some of the documentation is intended for users of the language and compiler, while other documentation is intended for developers contributing to the project.
The Slang User's Guide provides an introduction to the Slang language and its major features, as well as the compilation and reflection API.
There is also documentation specific to using the slangc command-line tool.
For the benefit of advanced users we provide detailed documentation on how Slang compiles code for specific platforms. The target compatibility guide gives an overview of feature compatibility for targets.
The CPU target guide gives information on compiling Slang or C++ source into shared libraries/executables or functions that can be directly executed. It also covers how to generate C++ code from Slang source.
The CUDA target guide provides information on compiling Slang/HLSL or CUDA source. Slang can compile to equivalent CUDA source, as well as to PTX via the nvrtc CUDA complier.
For contributors to the Slang project, the information under the design/
directory may help explain the rationale behind certain design decisions and help when ramping up in the codebase.
The Slang project is based on a long history of research work. While understanding this research is not necessary for working with Slang, it may be instructive for understanding the big-picture goals of the language, as well as why certain critical decisions were made.
A paper on the Slang system was accepted into SIGGRAPH 2018, and it provides an overview of the language and the compiler implementation. Yong He's dissertation provided more detailed discussion of the design of the Slang system.