Звіт у форматі JSON машиночитний
{
"data": {
"repo": {
"topics": [],
"is_fork": true,
"size_kb": 116459,
"has_wiki": true,
"homepage": null,
"languages": {
"C": 84515,
"C++": 18414406,
"Lua": 116183,
"Nix": 2107,
"Cuda": 176,
"GLSL": 49608,
"HLSL": 76023,
"CMake": 104176,
"Shell": 19276,
"Slang": 4808241,
"Python": 55663,
"Batchfile": 526,
"JavaScript": 4531,
"Objective-C++": 16778
},
"pushed_at": "2026-07-18T01:04:33Z",
"created_at": "2017-11-08T14:24:42Z",
"owner_type": "User",
"updated_at": "2025-09-14T05:56:46Z",
"description": "Making it easier to work with shaders",
"is_archived": false,
"is_disabled": false,
"license_spdx": null,
"default_branch": "master",
"license_spdx_raw": "NOASSERTION",
"primary_language": "C++",
"significant_languages": [
"C++",
"Slang"
]
},
"owner": {
"blog": "http://www.csyong.net",
"name": "Yong He",
"type": "User",
"login": "csyonghe",
"company": null,
"location": null,
"followers": 203,
"avatar_url": "https://avatars.githubusercontent.com/u/2652293?v=4",
"created_at": "2012-10-25T20:48:41Z",
"is_verified": null,
"public_repos": 25,
"account_age_days": 5021
},
"license": {
"state": "custom",
"spdx_id": null,
"raw_spdx": "NOASSERTION",
"file_present": true,
"scorecard_found": true,
"profile_has_license": false
},
"activity": {
"releases": [
{
"tag": "v0.test.11",
"kind": "other",
"published_at": "2024-07-10T23:55:07Z"
},
{
"tag": "v2024.1.11-test",
"kind": "prerelease",
"published_at": "2024-05-04T01:18:31Z"
},
{
"tag": "v0.01.2004",
"kind": "patch",
"published_at": "2022-09-28T22:14:01Z"
},
{
"tag": "v0.01.2003",
"kind": "patch",
"published_at": "2022-09-28T21:57:48Z"
},
{
"tag": "v0.01.2002",
"kind": "patch",
"published_at": "2022-09-28T19:58:12Z"
},
{
"tag": "v0.01.2001",
"kind": "patch",
"published_at": "2022-09-28T19:49:27Z"
},
{
"tag": "v0.01.2000",
"kind": "patch",
"published_at": "2022-09-28T19:14:41Z"
},
{
"tag": "v0.01.1239",
"kind": "patch",
"published_at": "2021-11-22T20:59:20Z"
},
{
"tag": "v0.0x093020216",
"kind": "other",
"published_at": "2021-10-01T01:29:40Z"
},
{
"tag": "v0.0x093020215",
"kind": "other",
"published_at": "2021-10-01T00:17:46Z"
},
{
"tag": "v0.0x093020214",
"kind": "other",
"published_at": "2021-09-30T23:19:46Z"
},
{
"tag": "v0.0x093020213",
"kind": "other",
"published_at": "2021-09-30T22:01:41Z"
},
{
"tag": "v0.0x093020212",
"kind": "other",
"published_at": "2021-09-30T20:48:46Z"
},
{
"tag": "v0.x093020210",
"kind": "other",
"published_at": "2021-09-30T19:17:05Z"
},
{
"tag": "build-test-093020212",
"kind": "other",
"published_at": "2021-09-30T19:06:43Z"
},
{
"tag": "v0.19.8",
"kind": "patch",
"published_at": "2021-09-13T07:35:06Z"
},
{
"tag": "v0.0017",
"kind": "other",
"published_at": "2020-12-03T22:39:20Z"
},
{
"tag": "v0.0016",
"kind": "other",
"published_at": "2020-12-03T22:23:58Z"
},
{
"tag": "v0.0015",
"kind": "other",
"published_at": "2020-12-03T22:05:42Z"
},
{
"tag": "v0.0014",
"kind": "other",
"published_at": "2020-12-03T21:46:54Z"
},
{
"tag": "v0.0013",
"kind": "other",
"published_at": "2020-12-03T21:43:50Z"
},
{
"tag": "v0.0011",
"kind": "other",
"published_at": "2020-12-03T21:23:08Z"
},
{
"tag": "v0.001",
"kind": "other",
"published_at": "2020-12-03T21:15:18Z"
},
{
"tag": "v0.01.7",
"kind": "patch",
"published_at": "2020-11-16T21:00:28Z"
},
{
"tag": "v0.01.6",
"kind": "patch",
"published_at": "2020-11-16T20:50:31Z"
},
{
"tag": "v0.01.5",
"kind": "patch",
"published_at": "2020-11-16T20:42:57Z"
},
{
"tag": "build-test-093020211",
"kind": "other",
"published_at": "2021-09-30T19:03:36Z"
}
],
"recent_commits": [
{
"oid": "8bcf6c443bbd24498e67ae54f06c2ad933421738",
"body": "…8428)\n\nThe `SpirvInstructionHelper::loadBlob()` method could segfault when\ncalling `m_headerWords.addRange()` if the SPIR-V blob contained\ninsufficient data for the required 5-word header.\n\nTo reproduce, run \n```\n./build/Debug/bin/slangc.exe tests/modules/environment.slang -o tests/modules/environm\n[…]\nblob has at least\n`SPV_INDEX_INSTRUCTION_START * sizeof(SpvWord)` bytes (20 bytes minimum)\nbefore attempting to process the header words.\n\nRelated to: https://github.com/shader-slang/slang/issues/7547",
"is_bot": false,
"headline": "Fix segfault in SPIR-V header processing in SpirvInstructionHelper (#…",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-10T23:25:31Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "f3e26754c4b63fee419407752b771ecf0bb8ed5a",
"body": "Add `findModifier` for `DeclReflection` so pattern like `extern struct\nfoo;` can be properly reflected.\n\nCloses #8009",
"is_bot": false,
"headline": "Add FindModifier for Declarations (#8308)",
"author_name": "Xuanda Yang",
"author_login": "TH3CHARLie",
"committed_at": "2025-09-10T22:55:00Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c5607e9d68e9082ada9441f1949937f6b16d5c7f",
"body": "…static const decl. (#8392)\n\nCloses #8184.\n\nWe fixed three issues with this regression test:\n1. After generating IR for a `SpecializeComponentType`, we should also\nstrip the frontend\ndecorations from the IR so there is no HighLevelDeclDecoration that will\ngo into the backend.\n2. When lowering a stat\n[…]\nuplicate\nExport/Import decorations with different mangle names, and confuses the\nlinker.\n3. Make sure internal exceptions does not leak through\n `IComponentType::getEntryPointCode`/`getTargetCode`.",
"is_bot": false,
"headline": "Fix crash when compiling specialized generic entrypoint containing a …",
"author_name": "Yong He",
"author_login": "csyonghe",
"committed_at": "2025-09-10T18:50:30Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ec42c4a20facbcae441cd172bfd607614e761907",
"body": "Closes #8409, but ended up being more about fixing another bug. While\nthe issue itself seems to only be a simple typo fix (see second commit\nin this PR), I found out during writing a test that pointers never got\ncorrect locations regardless of layout. Their locations were always\nassigned to zero due\n[…]\nn, so I went ahead and added\nthat too.\n\nI can split this up into two separate PRs if that's preferred; both\naspects just share a test right now and fix a similar-looking issue in\nthe resulting SPIR-V.",
"is_bot": false,
"headline": "Fix pointers and C-like layout in varying parameters (#8425)",
"author_name": "Julius Ikkala",
"author_login": "juliusikkala",
"committed_at": "2025-09-10T18:41:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b03cbb02c6486274d46865f3995953f2105cefc9",
"body": null,
"is_bot": false,
"headline": "Squash warnings on gcc 14 (#8377)",
"author_name": "Ellie Hermaszewska",
"author_login": "expipiplus1",
"committed_at": "2025-09-10T13:26:45Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3d0f5ee55788dca324641ae9268ee37dc4d7d9d5",
"body": "…… (#8380)\n\n…function-parameter.slang #8315\n\nRoot Cause:\nCUDA compilation crashed with `assert failure:\n!seenFinalUnsizedArrayField` because unsized arrays like\n`RWStructuredBuffer<uint> globalBuffer[]` were not the final field in\ngenerated parameter structs, violating the layout constraint in\nslang\n[…]\nest\nfile\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "CUDA: Fix compiler crash with unsized array field - nonuniformres-as-…",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-10T12:01:36Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2020a102e9e0ea2f39a0f2b2a75085c3607ce734",
"body": "…8326)\n\n## Problem\nWhen generic functions with debug variables were specialized with\nconcrete types containing non-debuggable fields (e.g.,\n`StructuredBuffer`), the IR cloning process would create invalid\n`DebugVar` instructions without checking if the substituted types\nremained debuggable.\n\n## Solu\n[…]\nthat removes\nthe debugVar created for the non-debuggable types.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Check if debugVar for is debuggable types in the legalization pass (#…",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-10T07:14:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "43dffcde78227113a0e62b02857eaf4ed6ea6e7e",
"body": "Fixes this regression:\n\n```slang\nstruct MyType\n{\n // Regression Condition 1: there must be more than one member in the lookup scope.\n float v;\n int getSum() { return 0; }\n}\n\nvoid m(MyType t)\n{\n // Regression condition 2: the completion must be in an init expression.\n // Regression con\n[…]\n Texture2D x = t.; // completion request after . here\n}\n```\n\nThe root cause is that we shouldn't be applying candidate filtering on\nthe candidate list when in completion checking mode.\n\nCloses #8417.",
"is_bot": false,
"headline": "Fix language server auto-complete regression in debug build. (#8416)",
"author_name": "Yong He",
"author_login": "csyonghe",
"committed_at": "2025-09-10T05:14:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7026dec790ab0c239c58ebf72b17633e9e8765c3",
"body": "This updates SPIRV submodules.\nUnfortunately we cannot use the latest because one of PRs in SPIRV-Tools\ncauses VVL errors on our slang-tests. The issue is tracked in\n- https://github.com/KhronosGroup/SPIRV-Tools/issues/6316\n- https://github.com/shader-slang/slang/issues/8414\n\nThis PR also updates/simplifies the document of updating SPIRV process.",
"is_bot": false,
"headline": "Update SPIRV-{Tools,Headers} (#8415)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-09-10T02:34:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e554e1b726814535565f0619a868b96b6f2fb525",
"body": null,
"is_bot": false,
"headline": "Send notification only on scheduled CTS runs (#8418)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-10T02:31:16Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8aa63073c1be2cdc0c34e71601cb28255e92a805",
"body": "- Enable ccache in slang bulid for CTS test\n- Allow manual CI dispatch",
"is_bot": false,
"headline": "Enable ccache in slang bulid for CTS test (#8413)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-10T00:08:18Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3745d75543ded3bc457ff5aba152141d382ba306",
"body": "This fixes an issue where non-raytracing kernels couldn't contain any\nRaytracingAccelerationStructure resources even when not used.",
"is_bot": false,
"headline": "Always define OptixTraversableHandle (#8411)",
"author_name": "Simon Kallweit",
"author_login": "skallweitNV",
"committed_at": "2025-09-09T15:55:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35b78082565b79125473c6fbd628541ecfa386eb",
"body": "macos 15.6 includes python 3.9.6 with Xcode, which doesn't understand\nmatch/case. Changing it to to the less spiffy if/elif.\n\nCo-authored-by: Yong He <yonghe@outlook.com>\nCo-authored-by: Sam Estep <sam@samestep.com>",
"is_bot": false,
"headline": "Enable slang_lldb.py on macos (#8327)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-09-09T14:35:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "63676c5e51d9d58d3cde7e296f82250b71538b85",
"body": "…408)\n\nThe test can be enabled",
"is_bot": false,
"headline": "Fix #8314 - Enable tests/compute/texture-subscript.slang for CUDA (#8…",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-09T11:16:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3aff764c2b5d613f766538d27e0b9f448e7ed5ca",
"body": "This PR modernizes the Windows-specific code by replacing ANSI Windows\nAPI functions with their Unicode (wide character) counterparts. This\nchange ensures proper handling of Unicode file paths and strings on\nWindows systems.\n\n### File Operations (`source/core/slang-io.cpp`)\n- `DeleteFileA` → `Delete\n[…]\nhub.com>\nCo-authored-by: Gangzheng Tong <gtong-nv@users.noreply.github.com>\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Use wide char version of Windows API (#8390)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-08T17:24:05Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "8b512c49d163af1df33e940acc3c4a230f0d00b7",
"body": "Fixes #8396 by not emitting the `ArrayStride` when it would've been\nzero. The problem is caused by #7848, more details in the issue\ndescription.\n\nI checked that with equivalent GLSL code, glslangValidator does not emit\nany `ArrayStride`. I assume that the addition of `storageClass ==\nSpvStorageClass\n[…]\nce to have GPUs from multiple vendors in the\nCI to avoid this kind of thing happening again. Or even just llvmpipe;\nthat doesn't even require a GPU and would add at least one more driver\nto test with.",
"is_bot": false,
"headline": "Don't emit ArrayStride 0 for RWStructuredBuffer pointers (#8397)",
"author_name": "Julius Ikkala",
"author_login": "juliusikkala",
"committed_at": "2025-09-08T17:07:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c0d7405d831faa6208b27fe56bf66fb0b138dcc5",
"body": "1. Adds retry logic - Implements 3-attempt retry mechanism for\nintermittent test failures\n2. Reduces parallelism for Linux - Changes server counts back to 1 for\nmore stable execution, given the test is short in Linux for now\n3. Adds detailed error logging - Enhanced diagnostic information for\ntest p\n[…]\nts consolidated CI status for simplified\nbranch protection rule\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Enhances CI reliability and debug logging (#8393)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-07T17:07:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "bc6b82666fa4deda932c36cea93ee2059e0992b2",
"body": "…387)\n\nThis change relaxes a previous restriction on link-time types and\nconstants, so that we now allow them to be used to define shader\nparameters.\n\nDoing so will result in a parameter layout that is incomplete prior to\nlinking. The PR added a test to call the reflection API on a fully\nlinked program and ensure that we can report correct binding info.",
"is_bot": false,
"headline": "Relax restriction on using link-time types for shader parameters. (#8…",
"author_name": "Yong He",
"author_login": "csyonghe",
"committed_at": "2025-09-06T05:37:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fe87a39e453b64e94446181a9ae5cbfc0f62bf0c",
"body": "- This PR removes \"wasm\" check from the test job, since there is no test\njob for \"wasm\" yet.\n- Also, move the check for slang-rhi and slangpy test to the job level\nto skip the setup etc. if no run is needed.\n- Update the macos compiler version in building.md to match the clang\ncompiler used in CI.\n-\n[…]\n\n- Run slangpy test with `-n auto --maxprocesses=4` to speed up\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Remove unnecessary check and adust server count etc. in CI (#8374)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-06T03:31:04Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4856da26e188c28bf691d0210ce8016264c00940",
"body": "The header execinfo.h and the related backtrace functionality is not\navailable on all linux platforms. In particular it's missing on musl\nlinux and on Android before API version 33. This causes compilation\nerrors on those platforms.\n\nWith this change, we first check if backtrace functionality is ava\n[…]\nre using glibc or a compatible Android version.\n\nTested on manylinux_2_28 with glibc 2.28 and musllinux_1_2 with musl\n1.2, has not been tested on Android.\n\nCo-authored-by: Yong He <yonghe@outlook.com>",
"is_bot": false,
"headline": "Add check for backtrace availability (#8329)",
"author_name": "Dario Mylonopoulos",
"author_login": "ramenguy99",
"committed_at": "2025-09-06T02:38:08Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ffd58977b4e64af5a83ebc5478555fd667f58e51",
"body": "WGSL requires Wave functions to be used only in uniform control flow.\n\nThe latest compiler, Tint, started to error out when Wave functions are\nused in a dynamic control flow.\n\nThis commit disables some of tests using Wave functions in dynamic\nbranches. If possible, they are altered to call Wave functions in\nuniform control flows.",
"is_bot": false,
"headline": "Disable a few WGSL testing using Wave functions in branches (#8386)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-09-06T01:51:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5055de0bb1cf3f9aac63a60217f2dbde5533c557",
"body": "The code int x4 = 0xFFFFFFFFFFFFFFFF previously did not produce a\nwarning due to the value being too large for the type. This patch now\nchecks for this and similar issues during parsing.",
"is_bot": false,
"headline": "Add warnings for overflows of integer types (#8281)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-09-05T23:03:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5500f11768d4d93eef4dfcecf0821fee747bf1a4",
"body": "If a given library cannot be found using LoadLibraryExA then try again\nusing LoadLibraryA. Return an error only if both of these failed.",
"is_bot": false,
"headline": "Try both LoadLibrary functions on Windows (#8368)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-09-05T04:35:34Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1e1ff8a1254c114f261271ffe5580183b8402e32",
"body": "Previously we are missing `ccache --set-config=cache_dir=\"$ccache_dir\"`\nand the build was using the default cache_dir.\nThis PR fixed that and the cache are hit in reruns.\n\n```\n📊 ccache statistics (post-build):\nCacheable calls: 1198 / 1198 (100.0%)\n Hits: 1195 / 1198 (99.75%)\n Dire\n[…]\n2 / 1195 ( 0.17%)\n Misses: 3 / 1198 ( 0.25%)\nLocal storage:\n Cache size (GiB): 0.6 / 5.0 (11.11%)\n Hits: 1195 / 1198 (99.75%)\n Misses: 3 / 1198 ( 0.25%)\n```",
"is_bot": false,
"headline": "Fix cache_dir path for ccache config (#8370)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-05T02:46:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "0fb62524bc8beda70694f6c58570ad8096bbe698",
"body": "The CI has been re-organized with the following:\n```\nci.yml (Main Orchestrator)\n├── filter job\n│ ├── Documentation Only? → Yes → Skip CI\n│ └── Documentation Only? → No → Continue CI\n│\n├── Build Jobs\n│ └── ci-slang-build.yml\n│ ├── common-setup action\n│ ├── Build & Package\n│ └─\n[…]\nig.\n\n\nCloses: https://github.com/shader-slang/slang/issues/6728\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Split CI to build and test jobs (#8359)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-04T20:08:53Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "20373ad01d09d46646d4de0a8cc7a78a4c8f6638",
"body": "Update intrinsics signature as per the nvapi header",
"is_bot": false,
"headline": "Fix#8128 LSS and sphere hit object intrinsics fail to compile (#8339)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-04T05:31:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "5ec41675d817f82a7ce3c4d79c68548db0bd4227",
"body": "Enable CUDA support for additional HLSL intrinsic tests by implementing\nmissing functionality and fixing compiler bugs affecting CUDA targets.\n\n- Fix critical bug in InterlockedCompareStore64 where division used /4\ninstead of /8 for 64-bit types, causing incorrect memory addressing for\nall signed in\n[…]\nAny/_slang_quadAll helper functions to CUDA prelude\n- Enable tests: quad-control-comp-functionality.slang,\nsubgroup-quad.slang\n\n---------\n\nCo-authored-by: szihs <675653+szihs@users.noreply.github.com>",
"is_bot": false,
"headline": "Enable CUDA support for additional HLSL intrinsic tests (#8293)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-04T05:28:02Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b45706b3f532f85525de5746f1f607ba2e57fc88",
"body": "Before this PR only the following was a valid line without any\nwhite-space character nor additional `/` character,\n```\n//TEST:\n```\n\nThis PR is to allow slang-test to handle the following variants of the\ntest command comments,\n```\n///TEST:\n// TEST:\n// TEST:\n////// TEST:\n```\n\nThis PR revealed a reg\n[…]\n tests/cpp-compiler/cpp-compile-shared-library.cpp (cpu)\n\nThey are disabled as a part of this PR.\nAnd there is a new github issue to track it later,\n- https://github.com/shader-slang/slang/issues/8362",
"is_bot": false,
"headline": "Handle slang-test command comments better (#8363)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-09-04T03:13:45Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a766d27447aa0fcf69334c0467d9b1124892e180",
"body": "closes https://github.com/shader-slang/slang/issues/3313",
"is_bot": false,
"headline": "Diagnose on structured buffers containing resources (#8222)",
"author_name": "Ellie Hermaszewska",
"author_login": "expipiplus1",
"committed_at": "2025-09-03T20:05:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "bf607e2f3fa183e9a2b18c7a98438a05247d6ed3",
"body": null,
"is_bot": false,
"headline": "Fix#8085: Batch-9: Enable cuda tests (#8269)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-03T16:06:43Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f5fae010863c0c836a5a80e659673bcd58010dba",
"body": "Add 29 intrinsics to the list by new test",
"is_bot": false,
"headline": "Add Optix Intrinsics Coverage (#8159) (#8310)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-03T05:16:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "639978008de3a74c00e03451cd9fc74452766fcd",
"body": null,
"is_bot": false,
"headline": "Fix#8086: Batch-10: Enable cuda tests (#8270)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-09-03T05:15:57Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "4886bf95fcf6e7f38f48a346f4112fe340a453c8",
"body": "This avoids uploading the ccache to github and take the cache storage.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "manually config ccache locally (#8351)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-03T06:26:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7d15d388d7e92547f1cc8ca47748b79589701051",
"body": "Related to https://github.com/shader-slang/slang/issues/6728\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Enable ccache for self-hosted runner (#8345)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-09-03T00:07:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f02b08490aa905f42a8d90381db84b1f8e409c0c",
"body": "Changes default for render-test to sm_6_5.\nSince sm_6_5 is the new default, remove the -use-dxil option, add\n-use-dxcb option\nRemove -use-dxil option from all test cases.\nAdd -use-dxcb to two tests that needed it.\n\nFixes #7611",
"is_bot": false,
"headline": "render-test: Change D3D12 default to sm_6_5 (#8320)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-09-02T23:43:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "21693abbd0579107e3c03d1e5090b2653722b5de",
"body": "This commit is to emit the debug-info for the entry point parameters.\n\nTwo things are implemented/fixed in this PR:\n- We were not emitting the `DebugVar` and `DebugValue` at the IR\nlowering level when the type of the entry point parameter is `ConstRef`.\nThis commit handles the `ConstRef` case in a s\n[…]\ng level.\n- Two types for Geometry shaders were incorrectly treated as not valid\ntypes for the DebugInfo. They are `InputPatch` and `OutputPatch`. This\ncommit handles them as valid types for DebugInfo.",
"is_bot": false,
"headline": "Emit DebugInfo for the legalized entry point parameters (#7703)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-09-02T19:51:12Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "b46f46c5e8603fdafca258028227adf25f95807f",
"body": "…ion (#8225)\n\nThe link-time specialization documentation contained an incorrect\nexample that used `[ForceUnroll]` with a link-time type method call,\nwhich would cause a compilation error. The issue was that\n`[ForceUnroll]` requires loop bounds to be known at compile time, but\n`sampler.getSampleCount\n[…]\nagent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: bmillsNV <163073245+bmillsNV@users.noreply.github.com>\nCo-authored-by: expipiplus1 <857308+expipiplus1@users.noreply.github.com>",
"is_bot": false,
"headline": "Remove ForceUnroll attribute from link-time specialization documentat…",
"author_name": "Copilot",
"author_login": "Copilot",
"committed_at": "2025-09-01T06:51:31Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "288a63dea8c441df6edc4f8fae10d340c20e1ba3",
"body": null,
"is_bot": false,
"headline": "Remove unused variable in slangc::main (#8325)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-30T01:59:27Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7758625d3fea67e55e98e7e4103d56c9918365be",
"body": "Resolves #7628\nResolves: #8197\n\nPrimary Goals:\n1. Add `Access` to pointer\n2. AddressSpace::GroupShared support for pointers (SPIR-V)\n3. Add `__getAddress()` to replace `&`\n* `&` is not updated to `require(cpu)` since slangpy uses `&`. This\nmeans we must: (1) merge PR; (2) replace `&` with `__getAddr\n[…]\n` of `Ptr` will now have to account for\nthe `Access` argument\n* we disallow various syntax paired with `Ptr` and `T*`\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "[CBP] Pointer frontend changes + groupshared pointer support (#7848)",
"author_name": "ArielG-NV",
"author_login": "ArielG-NV",
"committed_at": "2025-08-29T22:52:34Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "450ef7934c1adfdf4a3a3c72967de3c5798a020d",
"body": "This PR enables slang-rhi and slangpy tests in the slang CI for MacOS.\n\n* exclude the slang-rhi `sampler-array` test for mac; issue tracked in\nhttps://github.com/shader-slang/slang/issues/8246\n* update slang-rhi for fix of `nested-parameter-block-2`\n* for slangpy test, install the required python pa\n[…]\nun.\n\n\nCloses: https://github.com/shader-slang/slang/issues/7330\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Enable slangpy and slang-rhi tests for Mac (#8297)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-08-29T21:15:52Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "74c39eaa3dbd6ca55a383afca51ec18962838f08",
"body": "This cause the pthread not found issue on old glibc build. \nThis reverts commit 113327194d4cf750af6265a560615850a8e7e6fb.",
"is_bot": false,
"headline": "Revert \"Reduce the dependency to thread library (#8216)\" (#8319)",
"author_name": "kaizhangNV",
"author_login": "kaizhangNV",
"committed_at": "2025-08-28T22:36:36Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c19e2e92ae8e713225262a17f39a438cd511d416",
"body": "When `SIMPLE` type test is used with `-g[1-3]` option, the filecheck\npattern will most likely to match to the string itself on the embedded\nsource code rather than match to the emitted spirv-asm code.\n\nThis commit avoids the problem by removing the embedded source code.\n\nThis commit also provides an\n[…]\ntly\nfailing, and it will pass once DebugLocalVariable instruction missing\nfor parameter of the entry point function #7693 is resolved.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>",
"is_bot": false,
"headline": "Remove the embedded source to avoid self-matching in slang-test (#8305)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-28T17:45:07Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "3dc466487d489f09c835bdd872eb130cdc5784ea",
"body": "Update docs/shader-execution-reordering.md with additional intrinsics\nAdd correct capability `LoadLocalRootTableConstant`",
"is_bot": false,
"headline": "[Documentation] optix test coverage #463 (#8311)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-28T11:01:35Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80ddf40274fdca93f2ae95a247ff3af122aec6ac",
"body": "Emits the appropriate OpCapability for 8- and 16-bit type usage:\n- UniformAndStorageBuffer8BitAccess: for 16-bit types in\nSpvStorageClassUniform and SpvStorageClassStorageBuffer\n- UniformAndStorageBuffer16BitAccess: for 16-bit types in\nSpvStorageClassUniform and SpvStorageClassStorageBuffer\n- Storag\n[…]\n282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: James Helferty (NVIDIA) <jhelferty-nv@users.noreply.github.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Add SPIRV OpCapability for 8/16bit use in storage (#8194)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-08-28T03:08:54Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "1681bc67fbae57b54b66c5dcfcbf315d1efa831b",
"body": "fixes https://github.com/shader-slang/slang/issues/8271\n\nThis PR does the following,\n- Fail slang-test when there are VVL error messages.\n- VVL error for `gfx-unit-test-tool/` were not captured properly by the\ndebug callback.\n- Set an environment variable,\n`VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_valida\n[…]\nal` and\n`gfx-unit-test-tool/linkTimeTypeLayoutNested.internal`.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Fail slang-test when VVL printed errors (#8280)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-26T21:38:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "4e9ee1dc80ce353640c1e2134249a1f93da9229a",
"body": "…uint8_t (#8223)\n\nThe Metal backend was generating incorrect type names for 8-bit vector\ntypes, causing compilation failures when targeting Metal. According to\nthe Metal specification, 8-bit vector types should be named `charN` and\n`ucharN` (e.g., `char2`, `uchar3`) rather than `int8_tN` and `uint8_\n[…]\nt-coding-agent-tips) in the docs.\n\n---------\n\nCo-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>\nCo-authored-by: bmillsNV <163073245+bmillsNV@users.noreply.github.com>",
"is_bot": false,
"headline": "Fix Metal 8-bit vector type names: emit char/uchar instead of int8_t/…",
"author_name": "Copilot",
"author_login": "Copilot",
"committed_at": "2025-08-26T18:58:44Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "0b87355f946b9a0f8b7fa9225369dade3d5bf84a",
"body": "This PR marks the `slang-rhi` a required dependecy for `platform` and\n`gfx-unit-test`, and only build them when `SLANG_ENABLE_SLANG_RHI=ON`.\nThis should allow the slang still to be built without those tests\ncomponents when `SLANG_ENABLE_SLANG_RHI=OFF`.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Update slang-rhi deps for gfx-unit-test (#8237)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-08-26T18:01:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "b36659eca38be716bee43c01c6584bda5f91166a",
"body": "Fixes: #8018\n\nChanges:\n* Do not emit true for `shouldEmitSPIRVDirectly` with a GLSL target",
"is_bot": false,
"headline": "Fix `shouldEmitSPIRVDirectly` (#8019)",
"author_name": "ArielG-NV",
"author_login": "ArielG-NV",
"committed_at": "2025-08-26T17:48:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "70d70c1d315a91ed414892fb70974026082bcc99",
"body": "CMake 3.31 (released [last\nNovember](https://www.kitware.com/cmake-3-31-0-available-for-download/))\ndeprecated compatibility with CMake versions older than 3.10, causing\nwarnings when running commands like `cmake --preset default` in the\nSlang repo:\n\n```\nCMake Deprecation Warning at external/miniz/C\n[…]\nequired` calls in\nlz4/lz4#1601 and richgel999/miniz#344 respectively to fix those\nwarnings, so this PR bumps them both to include those changes.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Fix warnings from CMake version 3.31 (#8227)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-26T17:41:41Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5060042bb63cbf42063f5e81c58881e1e8323857",
"body": "close #8068.\n\nCurrently the AutoDiff aggressively scan every IR inst in searching the\ndifferentiable IR. This is not efficient and could have bug, details in\nhttps://github.com/shader-slang/slang/issues/8068#issuecomment-3214856668.\n\nThis PR change the behavior. It will do a initial filter to only g\n[…]\nonly when it's used in other generic function\n(it's only useful when dealing with dynamic dispatch).\n\nThen we will start searching reachable insts from this IR list by using\nthe same method as before.",
"is_bot": false,
"headline": "fix a autodiff crash (#8259)",
"author_name": "kaizhangNV",
"author_login": "kaizhangNV",
"committed_at": "2025-08-26T16:56:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "7b30ad489198ecedb16a0265f290c1e32772514c",
"body": "This is a first pass at adding WASM builds to releases. ~~I haven't\ntested the outputs yet but it appears to build successfully in my fork\nat least.~~\n\nEdit: Made a fake release in my fork for testing, seems to be working\nwell for my use case at least:\nhttps://github.com/davidar/slang/releases/tag/v2025.999\n\nFixes #8207",
"is_bot": false,
"headline": "Add WASM platform support to release workflow (#8264)",
"author_name": "David A Roberts",
"author_login": "davidar",
"committed_at": "2025-08-25T22:54:22Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "404a8635f4e5a1c7872b8c1cca322904f2ed1579",
"body": "This commit prints an additional information of GPU version while\nrunning CI.yml.\nThis can help us to debug when things don't work as expected.",
"is_bot": false,
"headline": "Print GPU driver version in CI.yml (#8275)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-25T16:08:50Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "1562f98c07954ae17f9e7ef186f6c8eb029740ab",
"body": null,
"is_bot": false,
"headline": "Fix#8084: Batch-8: Enable cuda tests (#8268)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-25T05:20:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7b4d02803344d52af8d979da1d0f42936d360f00",
"body": null,
"is_bot": false,
"headline": "Fix#8083: Batch-7: Enable cuda tests (#8267)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-25T05:19:56Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "53fa12e1b522a229006595001421caa62e22eba8",
"body": null,
"is_bot": false,
"headline": "Fix#8082: Batch-6: Enable cuda tests (#8266)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-25T05:19:37Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "67cf1403496ed80edd26c2e0368ddd851e09103a",
"body": null,
"is_bot": false,
"headline": "Fix#8081: Batch-5: Enable cuda tests (#8263)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-25T05:19:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "7ae655c2a17636718eea6182dcc918a3920c5660",
"body": null,
"is_bot": false,
"headline": "Fix#8080: Batch-4: Enable cuda tests (#8261)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-25T05:18:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cd9e1f67184c1361558e18993e5cb392dc1131f0",
"body": "…ccessor (#7929)\n\nFixes the Slang compiler internal error \"subscript had no getter\" when\nreading from mesh shader output index arrays (e.g., `triangles[0].x`).\n\n## Problem\nThe `OutputIndices` struct was missing a `ref` accessor in its\n`__subscript` implementation, causing the compiler to fail when t\n[…]\ngithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Fix mesh shader OutputIndices subscript error by adding missing ref a…",
"author_name": "Lujin Wang",
"author_login": "lujinwangnv",
"committed_at": "2025-08-22T20:48:20Z",
"body_truncated": true,
"is_coding_agent": true
},
{
"oid": "3ca2e47514e3fce133a6ac7d1aca88a3b679c551",
"body": "On Linux, `slang-platform.cpp` compiles with libstdc++ only because\n`unistd.h` is being transitively included. It fails to compile with\nstandard libraries that don't include `unistd.h` like libc++.\n\nThis is the how it's being transitively included with libstdc++:\n```\n/home/mcvm/dev/slang/source/core\n[…]\natomic_base.h\n/usr/lib64/gcc/x86_64-unknown-linux-gnu/15.1.0/../../../../include/c++/15.1.0/bits/atomic_wait.h\n/usr/include/unistd.h\n```\n\nTested building with `-stdlib=libc++` and `-stdlib=libstdc++`.",
"is_bot": false,
"headline": "Fix readlink missing include (#8260)",
"author_name": "TheGoldMonkey",
"author_login": "TheGoldMonkey",
"committed_at": "2025-08-22T17:57:19Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a5e6ddd006ecf72ad9a41961811e93e1e2f72e64",
"body": "Add record and replay support for the IComponentType2 struct and its\nfunctions getTargetCompileResult and getEntryPointCompileResult.",
"is_bot": false,
"headline": "Add record and replay support for IComponentType2 (#8215)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-08-21T18:42:49Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "44815ba48c1d149137a2210ca3fccfe3bda2626e",
"body": "This patch changes the order of searching slangc executable. This bug\naffects the following scenario: let's assume that user has a binary\nrelease of slang package and wants to use it via `find_package(slang\nCONFIG HINTS <path to binary release>)`, but there is also an\nenvironment variable that point\n[…]\n check environment variable first, and in the\nresult SLANGC_EXECUTABLE will point to slangc from Vulkan SDK and not\nfrom the downloaded package.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Fix SLANGC_EXECUTABLE search path in slangConfig.cmake (#8200)",
"author_name": "Sergei Kachkov",
"author_login": "kachkov98",
"committed_at": "2025-08-21T17:41:24Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "c45f02579076fcf559f92be501d8293d308db34e",
"body": "… (#8210)\n\n`emitReflectionVarLayoutJSON` will output the `userAttribs` section\ntwice as it gets output by `emitReflectionModifierInfoJSON` first before\nbeing output again by a direct call to `emitUserAttributes`.\n\nIt seems the answer here is to just remove the extra explicit call to\n`emitUserAttributes` and rely on the call in\n`emitReflectionModifierInfoJSON`?",
"is_bot": false,
"headline": "Fix reflection JSON writing userAttribs section twice for some cases.…",
"author_name": "MindSpunk",
"author_login": "nathanvoglsam",
"committed_at": "2025-08-21T17:00:32Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "35f8e092f2aa3ed5e3cf03387e712f798ff4850e",
"body": "Closes #8112. ~~The issue asks for a \"C layout\", but in this PR I use\nthe term \"CPU layout\" because this naming was pre-existing in the\ncodebase as `kCPULayoutRulesImpl_`. The primary purpose of this layout\nis to match CPU-side struct definitions with the shader side. I'm open\nto better naming sugge\n[…]\nut rules of existing CPU layout\nrules, but they're incompatible with actual shaders. So a new\n`kCLayoutRulesImpl_` was needed anyway.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Introduce CDataLayout & -fvk-use-c-layout (#8136)",
"author_name": "Julius Ikkala",
"author_login": "juliusikkala",
"committed_at": "2025-08-21T05:47:18Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "05f0f5603561daed2c134e13bc64649362759968",
"body": "-Adds semantic SV_VulkanSamplePosition that emits corresponding\ngl_SamplePosition and SpvBuiltinSamplePosition\n-Adds gl_SamplePosition property to glsl.meta.slang\n-Adds SPIRV and GLSL tests for the semantic and property\n-Plan is to later implement SV_SamplePosition that follows HLSL range of\n-0.5 to\n[…]\nerTargetSamplePosition(SV_SampleIndex) which needs more\ncomplicated IR manipulation for HLSL and Metal\n\nFixes #7906\n\n---------\n\nCo-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>",
"is_bot": false,
"headline": "Implement SV_VulkanSamplePosition (#8236)",
"author_name": "davli-nv",
"author_login": "davli-nv",
"committed_at": "2025-08-21T00:30:44Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "cbd73dde3dd2da790bb663385a229ce22965c43c",
"body": "Fixes #8185. The previous implementation is incorrect and basically only\nworks in the `x = 0` case. `delta` was the smallest possible positive\nvalue representable as a float, but that's below the rounding error of\naddition with almost all reasonably sized floats.\n\nThis fixed implementation is based on bit twiddling instead. I've\nchecked the float case against the C++ `nextafterf` with both a -inf ->\ninf and inf -> -inf sweep, in addition to the test included in this PR.",
"is_bot": false,
"headline": "Fix nextafter() (#8195)",
"author_name": "Julius Ikkala",
"author_login": "juliusikkala",
"committed_at": "2025-08-20T22:13:52Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "619de903b70e08a7ca8471419e8eb7e4dd43ca9d",
"body": "Allows opt-in for sourcing the following dependencies from the system,\ninstead of using the vendored ones:\n\n- miniz\n- lz4\n- vulkan-headers\n- spirv-tools\n- glslang\n\n(some of these already had options that weren't working, as either it\nexpected them to be static libraries or it was expecting to be emb\n[…]\nicts with new slang releases, it would be nice to see\nget\nthis upstream.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Sam Estep <sam@samestep.com>",
"is_bot": false,
"headline": "Add more system dependency options to CMake (#7987)",
"author_name": "Niklas Korz",
"author_login": "niklaskorz",
"committed_at": "2025-08-20T19:52:42Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "82e3fc9c1064f06780f6449154c7cf8f663fceac",
"body": "## Summary\n\n- Add Metal platform support for `WaveGetActiveMask()` and\n`WaveActiveCountBits()` wave intrinsics\n- Update capability requirements to include Metal platform for subgroup\nballot operations\n- Implement Metal-specific intrinsic assembly using `simd_ballot()` and\n`simd_vote` APIs\n\n ## Chan\n[…]\nfrom `cuda_glsl_hlsl_spirv` to\n`cuda_glsl_hlsl_metal_spirv` for wave ballot functions\n - **source/slang/slang-capabilities.capdef**:\n - Add `metal` to `subgroup_ballot_activemask` capability alias",
"is_bot": false,
"headline": "Add Metal support for WaveGetActiveMask and WaveActiveCountBits (#8218)",
"author_name": "Tianyu Li",
"author_login": "WeakKnight",
"committed_at": "2025-08-20T17:32:13Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "a26a11ff5c3f14401bbbbbc4b6e3731056618138",
"body": "There was a case where a PR passed CI test a long time ago, and when it\nis merged, it caused a regression. We like to run via-glsl test when it\ngets merged to prevent it.",
"is_bot": false,
"headline": "Enabling via-glsl test for \"merge\" event (#8133)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-20T16:34:41Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "113327194d4cf750af6265a560615850a8e7e6fb",
"body": "Slang compiler doesn't use thread and we should declare the dependency\nto the thread library when we don't need it.\n\nThe use of Thread is limited to the tools such as slang-test.",
"is_bot": false,
"headline": "Reduce the dependency to thread library (#8216)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-20T16:28:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e0c20a076f2ec84586b6508664df4f59273c6aaf",
"body": "Enable CUDA support for batch 3 tests\n - Enhanced wave operations with exclusive support\n - Added proper identity values for min/max operations\n - Fixed intrinsic name mapping issues\n - Updated test configurations\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Updated support to enable batch3 (#8219)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-20T09:11:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e4a7129b84692ddc3c586f0d0dde95e80e173ed8",
"body": "Commit bdda8a9 from PR #7862 had to disable some slangy tests in ci.yml",
"is_bot": false,
"headline": "Fix#8076 - Re-enable slangpy test (#8087)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-20T05:39:19Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "785548a49538a8dfc1ee5d7e650b27c5607e43c1",
"body": "Added a note section under the Installation section that warns users\nabout potential conflicts when multiple Slang installations are present\non the system. The note specifically addresses:\n* The scenario where Slang from Vulkan SDK might conflict with a\nstandalone installation\n* How LD_LIBRARY_PATH on Linux overrides the RUNPATH in the slangc\nexecutable\n\nCloses https://github.com/shader-slang/slang/issues/7405",
"is_bot": false,
"headline": "Add multiple slang installations note to doc (#8231)",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-08-19T22:52:14Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6321bf07f701692b82bb3a767071e68fc7e19bbf",
"body": "Don't include the VULKAN_HEADERS and SPIRV-Headers submodule if they are\nalready included.\nFix for the https://github.com/shader-slang/slang/issues/7898.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>\nCo-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>",
"is_bot": false,
"headline": "CMake: Guard inclusion of VULKAN_HEADERS and SPIRV-Headers (#8124)",
"author_name": "Sergei Popov",
"author_login": "sergeiepopov",
"committed_at": "2025-08-19T18:03:38Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "ae1a93b579ed276d2455e1b97ca65ad4727d56d0",
"body": "… (#8206)\n\nIn Metal, if `ParameterBlock` contains `DescriptorHandle` directly, it\nwould be emitted as DescriptorHandle literal, which is not valid Metal\ncode,\n\nThis fix adds a case for `kIROp_DescriptorHandleType` and directs it to\nthe Parent's `emitType` function to handle it.",
"is_bot": false,
"headline": "Emit descriptor handle correctly for ParameterBlock<DescriptorHandle>…",
"author_name": "Gangzheng Tong",
"author_login": "gtong-nv",
"committed_at": "2025-08-19T04:19:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "e9a309678f55a59bb012a931af2c1b734968a13d",
"body": "#7644 added a script that gets run in CI to display a human-readable\ndiff if `source/slang/slang-ir-insts-stable-names.lua` needs to be\nupdated. However, the `git diff` commands in that script are wrong,\ncausing it to instead just display the man page for the `git diff`\ncommand; [here's an\nexample](\n[…]\n\nhttps://github.com/shader-slang/slang/actions/runs/16578977233/job/46890240012\n- https://github.com/shader-slang/slang/actions/runs/16578977233\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Fix error in IR stable names Git diff CI script (#7954)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-18T16:02:37Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "d9851d4e45d2344e0e220ef6199ef4e117066f0f",
"body": "This is a followup on #7828 to fix bugs that were causing CodeLLDB to\ngive wrong values and hang (see vadimcn/codelldb#1302) because I didn't\nrealize that these data formatters can be passed _either_ a value of a\ngiven type _or_ a pointer to a value of that type, and need to handle\nboth cases. I als\n[…]\n..\n def GetVTable(self): ...\n```\n\nHowever, that makes the debugger run _significantly_ slower, so I'm\nchoosing not do do it here.\n\n---------\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Make LLDB IR data formatters more robust (#7927)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-18T15:29:57Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "09054bff3d0874a92958b514ae2a9ff2b32483e5",
"body": "The documentation added by #6844 included instructions to make sure that\nthe Fiddle `#include` in a file comes after all the other `#include`s,\nbut it's easy to accidentally violate this via `clang-format`, as\nhappened for `source/slang/slang-ast-modifier.h` in #7559. This PR\nguards against this sor\n[…]\nabout\nthis in `tools/slang-fiddle/README.md`.\n\nAs a bonus, I also enabled Markdown syntax highlighting for all the code\nblocks in that doc file.\n\nCo-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>",
"is_bot": false,
"headline": "Don't let clang-format reorder Fiddle `#include`s (#7887)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-18T15:10:27Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "2f68f98a3d7d41c1daac07afab622c34f5c1b8d4",
"body": "Close #8054.\nFor detailed root cause is at:\nhttps://github.com/shader-slang/slang/issues/8054#issuecomment-3189579508",
"is_bot": false,
"headline": "Fix issue of double lowering issue a differentiable function (#8182)",
"author_name": "kaizhangNV",
"author_login": "kaizhangNV",
"committed_at": "2025-08-18T16:30:10Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cc93e2c3523f558ee85281f7fe98e220f058f5ed",
"body": "…(#8109)\n\nClose #8090.\n\nWhen we do type coerce, we use a cache to store the conversion cost\nof different type. The key of the cache is defined by\nstruct BasicTypeKey\n{\n uint32_t baseType : 8;\n uint32_t dim1 : 4;\n uint32_t dim2 : 4;\n ...\n}\n\nwhere dim1 and dim2 is used for dimension of vec\n[…]\ny extending it to 8 bit.\n\nAlso to make the hash key still within 32 bits, we adjust baseType to 5 bits,\nand knownConstantBitCount to 6 bits.\n\n---------\n\nCo-authored-by: kaizhangNV <kazhang@nvidia.com>",
"is_bot": false,
"headline": "Fix constructor overload ambiguity with scalar and vector parameters …",
"author_name": "Copilot",
"author_login": "Copilot",
"committed_at": "2025-08-18T16:29:23Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "1a4ccba64a140bd404cbd22a9ae0a8e9e5f425d8",
"body": "Similar to #7887, this PR improves the Fiddle docs a bit by showing how\nthe `FIDDLE TEMPLATE` example would actually need to include `FIDDLE\nEND` at some point after `FIDDLE OUTPUT`.",
"is_bot": false,
"headline": "Show usage of `FIDDLE END` in Fiddle doc example (#7888)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-18T13:56:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "c3df36043c67a94ea51cd7b1ce10a84e52f8d744",
"body": null,
"is_bot": false,
"headline": "Enable CUDA Test Enablement - Batch 1: Autodiff Tests (1-16) (#8139)",
"author_name": "Harsh Aggarwal (NVIDIA)",
"author_login": "szihs",
"committed_at": "2025-08-18T05:16:47Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "8ba38bcd6e64bc922bc62843375eaa9ef01b6675",
"body": "This file is automatically overwritten by the build:\n\n\nhttps://github.com/shader-slang/slang/blob/b7df3c7aa27301f88e31ed0a7bbf230688adab6a/source/slang/CMakeLists.txt#L68-L78\n\nIt is currently out of date (running the build gives rise to unstaged\nchanges), so this PR updates it.",
"is_bot": false,
"headline": "Update capability atoms reference page (#8138)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-17T09:07:26Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3639e71dfcb7e5284949a98d1fefddda118338be",
"body": "Update cuda context creation to support both cuda 12 and cuda 13.",
"is_bot": false,
"headline": "Update cuda context creation to support cuda 13 (#8181)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-08-15T22:16:04Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "af27de01532904508e6a630c213249e93fdd1c66",
"body": "Add helper functions to create ISlangBlob and load module data from\nsource.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Add static functions to create blobs from data (#8179)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-08-15T20:16:09Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dcda42e7dcdb5e260013757763bf5dbf67d69568",
"body": "Metal's popcount prototype is `T popcount(T x)` but we want to use it to\nimplement `countbits` where the prototype always returns `uint`.\n\nUsing `popcount` directly would implicitly cast successfully to the\n32-bit return value in all cases except when the argument is a 64-bit\ntype. Thus, this change always explicitly casts the result to `$TR`,\nwhich should be one of the `uint[N]` types, and should always be able to\nhold the number of bits in the type.\n\nAddresses #6877",
"is_bot": false,
"headline": "Use 64bit int instead of emulation on metal (#8180)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-08-15T16:21:48Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "f75bf474ef87737c87ef6dcb431bd0b87faee0a8",
"body": "…ting logic (#8168)\n\nFixes: #8167\n\nCurrent emitting logic does not work, this has been corrected.\nThe provided test ensures our CUDA code is valid by compiling PTX from\nit.\n\n`m_writer->emit(\"OptixTraversableHandle\");` should be `out <<` since\n`out` adds to type-name-cache; otherwise using a type twice will produce\nbad type-names (since we filled type-name cache with \"\" instead of\n\"typeName\")",
"is_bot": false,
"headline": "[CUDA] Fix incorrect `kIROp_RaytracingAccelerationStructureType` emit…",
"author_name": "ArielG-NV",
"author_login": "ArielG-NV",
"committed_at": "2025-08-15T15:24:06Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "feb1569d972f294ce482ea8b1645da6cde4e982d",
"body": "Fixes #7011",
"is_bot": false,
"headline": "Prohibit use of buffer.GetDimensions on metal (#8156)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-08-15T13:02:01Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "cfd08da1036cf72b8e6c6f661260b968f79667e7",
"body": "…` debugging (#8192)\n\nfixes: #8188\n\nChanges:\n* Fix Indentation\n* Add a visualizer for `NodeBase` based on changes to `slang-fiddle`\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Clean up `natvis` and use fiddle to generate info needed for `.natvis…",
"author_name": "ArielG-NV",
"author_login": "ArielG-NV",
"committed_at": "2025-08-14T21:43:42Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "dd06524f523cdac9c753801ce9c3992f66ae5576",
"body": "…gate if AST-parent has target+set the AST-child does not (#8175)\n\nFixes: #8174\n\nChanges:\n* To determine if we propagate capabilities, we need to ensure that a\n`join` will do nothing (optimization since `join` is expensive + caching\ndata for the `join` adds up to be expensive). This logic was change\n[…]\nd have\n`glsl`. In this case, we will not remove `metal` from the parent since\n`{metal+glsl}.implies({glsl})` is true.\n\n---------\n\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "[Capability System] Fix bug where capabilities do not correctly prope…",
"author_name": "ArielG-NV",
"author_login": "ArielG-NV",
"committed_at": "2025-08-14T19:27:55Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "ceb2e8d04885d55dd9685a38977a55c4f53f202f",
"body": null,
"is_bot": false,
"headline": "Fix typo in \"compilation ceased\" error identifier (#8189)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-14T18:29:51Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "90a9515fcbc7e362c05341c2ca65fbe78bc1106a",
"body": "Fixes #6785",
"is_bot": false,
"headline": "Handle SV_Barycentrics on metal (#8163)",
"author_name": "James Helferty (NVIDIA)",
"author_login": "jhelferty-nv",
"committed_at": "2025-08-13T20:45:44Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "80b46bd2124b3ead963ae977fef3d010049beb9a",
"body": "#1729 renamed `Val::_toStringOverride` to `Val::_toTextOverride` but did\nnot update the error message for when it is not overridden. This PR\nfixes that.",
"is_bot": false,
"headline": "Fix error for not defining `Val::_toTextOverride` (#8177)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-13T20:19:11Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "d7e2bac2df176af4cd3955e6df02e2ddcbc059d8",
"body": "When we legalize the entry point param, there are cases where we need to\nreconstruct a struct for the parameter and the original struct wouldn't\nbe used. But if the user tries to use the origianl struct as a type for\na function parameter, we will end up using both the original struct and\nthe synthes\n[…]\nixes https://github.com/shader-slang/slang/issues/8141\nRelated to https://github.com/shader-slang/slang/issues/7693\n\n---------\n\nCo-authored-by: ArielG-NV <159081215+ArielG-NV@users.noreply.github.com>",
"is_bot": false,
"headline": "Remove the semantic decoration from the original entry struct (#8146)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-13T15:37:22Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "047b8af4881e1fc90aa1004d17e32bdffd53bdcf",
"body": "Currently the issue template makes the subtitle \"bold\". It is a little\nhard to navigate between the subtitle because the bold is not very\nobvious.\n\nThis commit makes them to use a bigger font.\n\nBefore the change,\n<img width=\"839\" height=\"488\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/08abec42-8389-4404-89a1-5a70670000cd\"\n/>\n\nAfter the change,\n<img width=\"840\" height=\"544\" alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/e2ffdac1-f8dc-40fa-a317-8dda965f3377\"\n/>",
"is_bot": false,
"headline": "Make the issue headings bigger (#8143)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-12T19:39:07Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "3618f7a4c35de32405e6ebe458bae835869e2876",
"body": "Enable CUDA for the tests listed in issue #8078\nThis requires a minor CUDA prelude change, adding some math functions.",
"is_bot": false,
"headline": "Enable CUDA testing for batch 2 (#8147)",
"author_name": "jarcherNV",
"author_login": "jarcherNV",
"committed_at": "2025-08-12T18:19:15Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "719ecf3bf6ce50a8f1d02c6f96ae65e6f492321a",
"body": "This PR puts the [Khronos official Vulkan\nLoader](https://github.com/NixOS/nixpkgs/blob/6027c30c8e9810896b92429f0092f624f7b1aace/pkgs/by-name/vu/vulkan-loader/package.nix#L22-L27)\nin `LD_LIBRARY_PATH` for the `flake.nix` dev shell, allowing Vulkan\ntests to run.\n\nFor example, before this PR:\n\n```\n$ b\n[…]\ne/array-param.slang.2 (dx11)' \nignored test: 'tests/compute/array-param.slang.3 (dx12)' \npassed test: 'tests/compute/array-param.slang.4 (vk)' \n\n===\n100% of tests passed (2/2), 3 tests ignored\n===\n```",
"is_bot": false,
"headline": "Allow `flake.nix` users to run Vulkan tests (#8152)",
"author_name": "Sam Estep",
"author_login": "samestep",
"committed_at": "2025-08-12T15:50:15Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "5b64150cdf0dfd6e068cdf27c5ea857c2d967d15",
"body": "Related to #7969\n\nIn the slangc help text we have two categories, the option category\n`Target` and the values category `target`, where the names only differ\nby case. The help parser finds the category in the list by the\ncase-insensitive name, so `slangc -h Target` and `slangc -h target` will\nboth pr\n[…]\nill get the\nhelp text for `capability` as before as a fallback.\n\n---------\n\nCo-authored-by: slangbot <ellieh+slangbot@nvidia.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "Do case-sensitive search for category first in slangc -h (#8142)",
"author_name": "aidanfnv",
"author_login": "aidanfnv",
"committed_at": "2025-08-11T18:54:47Z",
"body_truncated": true,
"is_coding_agent": false
},
{
"oid": "dcdebc1a76a0a6ffbfd6a5805354f8f679c60202",
"body": "…pes from API (#8119)\n\nCloses #8110.\nCloses #8011.",
"is_bot": false,
"headline": "Allow specializing entrypoints with generic value args or variadic ty…",
"author_name": "Yong He",
"author_login": "csyonghe",
"committed_at": "2025-08-09T16:43:25Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "fc6aea37483446372425aca8471f0e8bf7c3a910",
"body": "Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>\nCo-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>",
"is_bot": false,
"headline": "[SPIR-V] Emit control flags for `branch/flatten` decorations (#8134)",
"author_name": "amidescent",
"author_login": null,
"committed_at": "2025-08-09T15:30:30Z",
"body_truncated": false,
"is_coding_agent": false
},
{
"oid": "6d54b66ca633e1890fd4db4c6d90dfe90b9aa4fb",
"body": "Fixes https://github.com/shader-slang/slang/issues/8098",
"is_bot": false,
"headline": "Be conservative for checking if PR is doc changes only (#8130)",
"author_name": "Jay Kwak",
"author_login": "jkwak-work",
"committed_at": "2025-08-09T15:26:07Z",
"body_truncated": false,
"is_coding_agent": false
}
],
"releases_count": 27,
"commits_last_year": 173,
"latest_release_at": "2024-07-10T23:55:07Z",
"latest_release_tag": "v0.test.11",
"releases_from_tags": false,
"days_since_last_push": 8,
"active_weeks_last_year": 7,
"days_since_latest_release": 745,
"mean_days_between_releases": 112.7
},
"community": {
"has_readme": false,
"has_license": false,
"has_description": false,
"has_contributing": false,
"health_percentage": null,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"ecosystem": {
"packages": []
},
"popularity": {
"forks": 0,
"stars": 1,
"watchers": 0,
"fork_history": {
"days": [],
"complete": true,
"collected": 0,
"total_forks": 0
},
"star_history": null,
"open_issues_and_prs": 0
},
"ai_readiness": {
"has_nix": true,
"example_dirs": [
"examples"
],
"has_llms_txt": false,
"has_dockerfile": false,
"has_mcp_signal": false,
"bootstrap_files": [],
"api_schema_files": [],
"has_devcontainer": false,
"typecheck_configs": [],
"toolchain_manifests": [],
"largest_source_bytes": 811328,
"source_files_sampled": 1413,
"oversized_source_files": 65,
"agent_instruction_files": [
".github/copilot-instructions.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 13636
},
"dependencies": {
"manifests": [],
"advisories": {
"error": "No resolved dependencies to assess",
"scope": "repository_graph",
"source": null,
"findings": [],
"collected": false,
"malicious": [],
"truncated": false,
"by_severity": {},
"advisory_count": 0,
"affected_count": 0,
"assessed_count": 0,
"malicious_count": 0,
"assessed_package": null,
"unassessed_count": 0,
"direct_affected_count": 0
},
"ecosystems": [],
"dependencies": [],
"all_dependencies": {
"error": null,
"source": "github-sbom",
"packages": [],
"collected": true,
"truncated": false,
"total_count": 0,
"direct_count": 0,
"indirect_count": 0
}
},
"maintainership": {
"issues": {
"open_prs": 0,
"merged_prs": 45,
"open_issues": 0,
"closed_ratio": null,
"closed_issues": 0,
"closed_unmerged_prs": 3
},
"bus_factor": 2,
"bot_contributors": 1,
"top_contributors": [
{
"type": "User",
"login": "csyonghe",
"commits": 1534,
"avatar_url": "https://avatars.githubusercontent.com/u/2652293?v=4"
},
{
"type": "User",
"login": "jsmall-zzz",
"commits": 821,
"avatar_url": "https://avatars.githubusercontent.com/u/14912361?v=4"
},
{
"type": "User",
"login": "tangent-vector",
"commits": 287,
"avatar_url": "https://avatars.githubusercontent.com/u/10618364?v=4"
},
{
"type": "User",
"login": "expipiplus1",
"commits": 277,
"avatar_url": "https://avatars.githubusercontent.com/u/857308?v=4"
},
{
"type": "User",
"login": "jkwak-work",
"commits": 244,
"avatar_url": "https://avatars.githubusercontent.com/u/82421531?v=4"
},
{
"type": "User",
"login": "saipraveenb25",
"commits": 175,
"avatar_url": "https://avatars.githubusercontent.com/u/31557731?v=4"
},
{
"type": "User",
"login": "kaizhangNV",
"commits": 133,
"avatar_url": "https://avatars.githubusercontent.com/u/149626564?v=4"
},
{
"type": "User",
"login": "ArielG-NV",
"commits": 113,
"avatar_url": "https://avatars.githubusercontent.com/u/159081215?v=4"
},
{
"type": "User",
"login": "aleino-nv",
"commits": 81,
"avatar_url": "https://avatars.githubusercontent.com/u/30037074?v=4"
},
{
"type": "User",
"login": "skallweitNV",
"commits": 80,
"avatar_url": "https://avatars.githubusercontent.com/u/64953474?v=4"
}
],
"contributors_sampled": 99,
"top_contributor_share": 0.347
},
"quality_signals": {
"has_ci": true,
"has_tests": true,
"ci_workflows": [
"add-issue-labels.yml",
"benchmark.yml",
"check-cmdline-ref.yml",
"check-formatting.yml",
"check-toc.yml",
"ci-slang-build.yml",
"ci-slang-test.yml",
"ci.yml",
"claude.yml",
"comment-ir-version-check.yml",
"compile-regression-test.yml",
"copilot-setup-steps.yml",
"ensure-pr-label.yml",
"falcor-compiler-perf-test.yml",
"falcor-test.yml",
"format.yml",
"push-benchmark-results.yml",
"regenerate-cmdline-ref.yml",
"regenerate-toc.yml",
"release-linux-glibc-2-27.yml",
"release.yml",
"slash-command-dispatch.yml",
"vk-gl-cts-nightly.yml"
],
"has_docs_dir": true,
"linter_configs": [],
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"security_signals": {
"lockfiles": [],
"scorecard": {
"checks": [
{
"name": "Binary-Artifacts",
"score": 10,
"reason": "no binaries found in the repo",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#binary-artifacts"
},
{
"name": "Branch-Protection",
"score": 0,
"reason": "branch protection not enabled on development/release branches",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#branch-protection"
},
{
"name": "CI-Tests",
"score": null,
"reason": "no pull request found",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#ci-tests"
},
{
"name": "CII-Best-Practices",
"score": 0,
"reason": "no effort to earn an OpenSSF best practices badge detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#cii-best-practices"
},
{
"name": "Code-Review",
"score": 0,
"reason": "Found 0/30 approved changesets -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#code-review"
},
{
"name": "Contributors",
"score": 10,
"reason": "project has 4 contributing companies or organizations",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#contributors"
},
{
"name": "Dangerous-Workflow",
"score": 10,
"reason": "no dangerous workflow patterns detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dangerous-workflow"
},
{
"name": "Dependency-Update-Tool",
"score": 0,
"reason": "no update tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#dependency-update-tool"
},
{
"name": "Fuzzing",
"score": 0,
"reason": "project is not fuzzed",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#fuzzing"
},
{
"name": "License",
"score": 9,
"reason": "license file detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#license"
},
{
"name": "Maintained",
"score": 0,
"reason": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#maintained"
},
{
"name": "Packaging",
"score": null,
"reason": "packaging workflow not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#packaging"
},
{
"name": "Pinned-Dependencies",
"score": 0,
"reason": "dependency not pinned by hash detected -- score normalized to 0",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#pinned-dependencies"
},
{
"name": "SAST",
"score": 0,
"reason": "no SAST tool detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#sast"
},
{
"name": "Security-Policy",
"score": 0,
"reason": "security policy file not detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#security-policy"
},
{
"name": "Signed-Releases",
"score": 0,
"reason": "Project has not signed or included provenance with any releases.",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#signed-releases"
},
{
"name": "Token-Permissions",
"score": 0,
"reason": "detected GitHub workflow tokens with excessive permissions",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#token-permissions"
},
{
"name": "Vulnerabilities",
"score": 10,
"reason": "0 existing vulnerabilities detected",
"documentation_url": "https://github.com/ossf/scorecard/blob/c395761df6afe1a69e476bc60a013a94bcbc153f/docs/checks.md#vulnerabilities"
}
],
"commit": "8bcf6c443bbd24498e67ae54f06c2ad933421738",
"ran_at": "2026-07-26T19:32:49Z",
"aggregate_score": 3.1,
"scorecard_version": "v5.5.0"
},
"has_codeql_workflow": false,
"has_security_policy": false,
"has_dependabot_config": false
},
"contribution_flow": {
"collected": true,
"ci_last_run_at": "2026-07-26T09:11:44Z",
"oldest_open_prs": [],
"last_merged_pr_at": "2026-02-27T23:26:23Z",
"ci_last_conclusion": null,
"oldest_open_issues": []
}
},
"config": {
"disabled_metrics": [],
"disabled_categories": [],
"disabled_components": {}
},
"source": {
"url": "https://github.com/csyonghe/slang",
"host": "github.com",
"name": "slang",
"owner": "csyonghe"
},
"metrics": {
"overall": {
"key": "overall",
"band": "at_risk",
"name": "Overall health",
"note": null,
"notes": [],
"value": 44,
"inputs": {
"security": 30,
"vitality": 50,
"community": 9,
"governance": 64,
"engineering": 55
},
"components": []
},
"categories": [
{
"key": "vitality",
"band": "moderate",
"name": "Vitality",
"value": 50,
"weight": 0.22,
"metrics": [
{
"key": "development_activity",
"band": "moderate",
"name": "Development activity",
"note": null,
"notes": [],
"value": 52,
"inputs": {
"commits_last_year": 173,
"human_commit_share": 1,
"days_since_last_push": 8,
"active_weeks_last_year": 7
},
"components": [
{
"key": "push_recency",
"name": "Push recency",
"detail": "last push 8 days ago",
"points": 28.8,
"status": "partial",
"details": [
{
"code": "push_recency",
"params": {
"days": 8
}
}
],
"max_points": 36
},
{
"key": "commit_cadence",
"name": "Commit cadence",
"detail": "7/52 weeks with commits",
"points": 4.8,
"status": "partial",
"details": [
{
"code": "commit_cadence_weeks",
"params": {
"weeks": 7
}
}
],
"max_points": 36
},
{
"key": "commit_volume",
"name": "Commit volume",
"detail": "173 commits in the last year",
"points": 18,
"status": "met",
"details": [
{
"code": "commits_last_year",
"params": {
"count": 173
}
}
],
"max_points": 18
},
{
"key": "openssf_scorecard_maintained",
"name": "OpenSSF Scorecard: Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "release_discipline",
"band": "at_risk",
"name": "Release discipline",
"note": null,
"notes": [],
"value": 47,
"inputs": {
"releases_count": 27,
"latest_release_tag": "v0.test.11",
"releases_from_tags": false,
"days_since_latest_release": 745,
"mean_days_between_releases": 112.7
},
"components": [
{
"key": "ships_releases",
"name": "Ships releases",
"detail": "27 releases published",
"points": 27,
"status": "met",
"details": [
{
"code": "releases_published",
"params": {
"count": 27
}
}
],
"max_points": 27
},
{
"key": "release_recency",
"name": "Release recency",
"detail": "latest release 745 days ago",
"points": 0,
"status": "missed",
"details": [
{
"code": "release_recency",
"params": {
"days": 745
}
}
],
"max_points": 36
},
{
"key": "release_cadence",
"name": "Release cadence",
"detail": "a release every ~112.7 days",
"points": 19.8,
"status": "partial",
"details": [
{
"code": "release_cadence",
"params": {
"gap": 112.7
}
}
],
"max_points": 27
},
{
"key": "openssf_scorecard_signed_releases",
"name": "OpenSSF Scorecard: Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "abandonment",
"band": "excellent",
"name": "Abandonment",
"note": null,
"notes": [],
"value": 100,
"inputs": {
"cap": null,
"state": "dormant",
"guards": [
"no_open_demand"
],
"signals": [
"release_stall",
"scorecard_unmaintained"
],
"red_flag": false,
"multiplier_pct": 100,
"declared_reason": null,
"unverified_reason": null,
"unanswered_open_prs": 0,
"unanswered_open_issues": 0,
"days_since_last_merged_pr": 148,
"days_since_last_human_commit": 318,
"days_since_last_human_commit_is_floor": false
},
"components": [
{
"key": "project_is_still_maintained",
"name": "Project is still maintained",
"detail": "no human commit for 318 days, with nothing left unanswered; held at dormant by nothing open to answer",
"points": 100,
"status": "met",
"details": [
{
"code": "abandonment_quiet",
"params": {
"days": 318
}
},
{
"code": "abandonment_guarded",
"params": {
"guards": "nothing open to answer"
}
}
],
"max_points": 100
}
]
}
],
"description": "Is the project alive — is code being written and are releases shipping?"
},
{
"key": "community",
"band": "critical",
"name": "Community & Adoption",
"value": 9,
"weight": 0.18,
"metrics": [
{
"key": "popularity",
"band": "critical",
"name": "Popularity & adoption",
"note": null,
"notes": [],
"value": 1,
"inputs": {
"forks": 0,
"stars": 1,
"watchers": 0,
"growth_state": "unverified",
"growth_factor_pct": 100,
"growth_unverified_reason": "no_history"
},
"components": [
{
"key": "stars",
"name": "Stars",
"detail": "1 stars",
"points": 0,
"status": "missed",
"details": [
{
"code": "stars",
"params": {
"count": 1
}
}
],
"max_points": 60
},
{
"key": "forks",
"name": "Forks",
"detail": "0 forks",
"points": 0,
"status": "missed",
"details": [
{
"code": "forks",
"params": {
"count": 0
}
}
],
"max_points": 25
},
{
"key": "watchers",
"name": "Watchers",
"detail": "0 watchers",
"points": 0,
"status": "missed",
"details": [
{
"code": "watchers",
"params": {
"count": 0
}
}
],
"max_points": 15
}
]
},
{
"key": "community_health",
"band": "critical",
"name": "Community health",
"note": null,
"notes": [],
"value": 19,
"inputs": {
"has_readme": false,
"has_license": false,
"has_contributing": false,
"has_issue_template": false,
"has_code_of_conduct": false,
"has_pull_request_template": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 22.5
},
{
"key": "license",
"name": "License",
"detail": "license file present, not a recognized license",
"points": 16.9,
"status": "partial",
"details": [
{
"code": "license_custom",
"params": {}
}
],
"max_points": 22.5
},
{
"key": "contributing_guide",
"name": "CONTRIBUTING guide",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "code_of_conduct",
"name": "Code of conduct",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 13.5
},
{
"key": "issue_template",
"name": "Issue template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.2
},
{
"key": "pr_template",
"name": "PR template",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 6.3
}
]
}
],
"description": "Does the project have users, downloads, attention, and a welcoming setup for contributors?"
},
{
"key": "governance",
"band": "moderate",
"name": "Sustainability & Governance",
"value": 64,
"weight": 0.24,
"metrics": [
{
"key": "maintainer_resilience",
"band": "moderate",
"name": "Maintainer resilience (bus factor)",
"note": null,
"notes": [],
"value": 63,
"inputs": {
"bus_factor": 2,
"contributors_sampled": 99,
"top_contributor_share": 0.347
},
"components": [
{
"key": "bus_factor",
"name": "Bus factor",
"detail": "2 contributor(s) cover half of all commits",
"points": 25.2,
"status": "partial",
"details": [
{
"code": "bus_factor",
"params": {
"count": 2
}
}
],
"max_points": 54
},
{
"key": "commit_distribution",
"name": "Commit distribution",
"detail": "top contributor authored 35% of commits",
"points": 14.7,
"status": "partial",
"details": [
{
"code": "top_contributor_share",
"params": {
"share": 35
}
}
],
"max_points": 22.5
},
{
"key": "contributor_breadth",
"name": "Contributor breadth",
"detail": "99 contributors",
"points": 13.5,
"status": "met",
"details": [
{
"code": "contributors_sampled",
"params": {
"count": 99
}
}
],
"max_points": 13.5
},
{
"key": "openssf_scorecard_contributors",
"name": "OpenSSF Scorecard: Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
},
{
"key": "responsiveness",
"band": "moderate",
"name": "Issue & PR responsiveness",
"note": "Excluded from scoring (no data or not applicable): Issue resolution. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"issue_resolution"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 67,
"inputs": {
"merged_prs": 45,
"open_issues": 0,
"closed_issues": 0,
"issue_closed_ratio": null,
"closed_unmerged_prs": 3
},
"components": [
{
"key": "issue_resolution",
"name": "Issue resolution",
"detail": "no issues or no data",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_issues_or_data",
"params": {}
}
],
"max_points": 46.75
},
{
"key": "pr_acceptance",
"name": "PR acceptance",
"detail": "45/48 decided PRs merged",
"points": 35.9,
"status": "partial",
"details": [
{
"code": "decided_prs_merged",
"params": {
"merged": 45,
"decided": 48
}
}
],
"max_points": 38.25
},
{
"key": "openssf_scorecard_code_review",
"name": "OpenSSF Scorecard: Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
}
]
},
{
"key": "stewardship",
"band": "moderate",
"name": "Ownership & stewardship",
"note": "Excluded from scoring (no data or not applicable): Verified domain. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"verified_domain"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 61,
"inputs": {
"followers": 203,
"owner_type": "User",
"is_verified": null,
"owner_login": "csyonghe",
"public_repos": 25,
"account_age_days": 5021
},
"components": [
{
"key": "ownership_backing",
"name": "Ownership backing",
"detail": "personal (user) account",
"points": 10,
"status": "partial",
"details": [
{
"code": "owner_personal",
"params": {}
}
],
"max_points": 30
},
{
"key": "verified_domain",
"name": "Verified domain",
"detail": "not applicable to user accounts",
"points": 0,
"status": "excluded",
"details": [
{
"code": "not_applicable_to_user_accounts",
"params": {}
}
],
"max_points": 20
},
{
"key": "owner_reach",
"name": "Owner reach",
"detail": "203 followers of csyonghe",
"points": 16.6,
"status": "partial",
"details": [
{
"code": "owner_followers",
"params": {
"count": 203,
"login": "csyonghe"
}
}
],
"max_points": 25
},
{
"key": "track_record",
"name": "Track record",
"detail": "25 public repos, account ~13 yr old",
"points": 22.3,
"status": "partial",
"details": [
{
"code": "public_repos",
"params": {
"count": 25
}
},
{
"code": "account_age_years",
"params": {
"years": 13
}
}
],
"max_points": 25
}
]
}
],
"description": "Will the project survive its people — bus factor, responsiveness, who backs it, and package upkeep?"
},
{
"key": "engineering",
"band": "moderate",
"name": "Engineering Quality",
"value": 55,
"weight": 0.2,
"metrics": [
{
"key": "engineering_practices",
"band": "moderate",
"name": "Engineering practices",
"note": "Excluded from scoring (no data or not applicable): OpenSSF Scorecard: CI-Tests. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"openssf_scorecard_ci_tests"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 68,
"inputs": {
"has_ci": true,
"has_tests": true,
"has_editorconfig": true,
"has_linter_config": false,
"has_precommit_config": false
},
"components": [
{
"key": "ci_workflows",
"name": "CI workflows",
"detail": "23 workflow(s)",
"points": 24,
"status": "met",
"details": [
{
"code": "ci_workflows",
"params": {
"count": 23
}
}
],
"max_points": 24
},
{
"key": "tests_present",
"name": "Tests present",
"detail": null,
"points": 24,
"status": "met",
"details": [],
"max_points": 24
},
{
"key": "linter_config",
"name": "Linter config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 16
},
{
"key": "pre_commit_hooks",
"name": "Pre-commit hooks",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 9.6
},
{
"key": "editorconfig",
"name": ".editorconfig",
"detail": null,
"points": 6.4,
"status": "met",
"details": [],
"max_points": 6.4
},
{
"key": "openssf_scorecard_ci_tests",
"name": "OpenSSF Scorecard: CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 20
}
]
},
{
"key": "documentation",
"band": "at_risk",
"name": "Documentation",
"note": null,
"notes": [],
"value": 35,
"inputs": {
"topics": [],
"has_wiki": true,
"homepage": null,
"has_readme": false,
"has_docs_dir": true,
"has_description": false
},
"components": [
{
"key": "readme",
"name": "README",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 30
},
{
"key": "documentation_directory",
"name": "Documentation directory",
"detail": null,
"points": 25,
"status": "met",
"details": [],
"max_points": 25
},
{
"key": "documentation_homepage_site",
"name": "Documentation / homepage site",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "repository_description",
"name": "Repository description",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "topics",
"name": "Topics",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
},
{
"key": "wiki",
"name": "Wiki",
"detail": null,
"points": 10,
"status": "met",
"details": [],
"max_points": 10
}
]
}
],
"description": "Are baseline engineering and documentation practices in place?"
},
{
"key": "security",
"band": "at_risk",
"name": "Security",
"value": 30,
"weight": 0.16,
"metrics": [
{
"key": "security_posture",
"band": "at_risk",
"name": "Security posture",
"note": "Excluded from scoring (no data or not applicable): CI-Tests, Packaging. Remaining weights renormalized.",
"notes": [
{
"code": "excluded_no_data",
"params": {
"components": [
"ci_tests",
"packaging"
]
}
},
{
"code": "weights_renormalized",
"params": {}
}
],
"value": 30,
"inputs": {
"source": "openssf_scorecard",
"checks_evaluated": 16,
"scorecard_version": "v5.5.0",
"checks_inconclusive": 2,
"scorecard_aggregate": 3.1
},
"components": [
{
"key": "binary_artifacts",
"name": "Binary-Artifacts",
"detail": "no binaries found in the repo",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
},
{
"key": "branch_protection",
"name": "Branch-Protection",
"detail": "branch protection not enabled on development/release branches",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "ci_tests",
"name": "CI-Tests",
"detail": "no pull request found",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 2.5
},
{
"key": "cii_best_practices",
"name": "CII-Best-Practices",
"detail": "no effort to earn an OpenSSF best practices badge detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 2.5
},
{
"key": "code_review",
"name": "Code-Review",
"detail": "Found 0/30 approved changesets -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "contributors",
"name": "Contributors",
"detail": "project has 4 contributing companies or organizations",
"points": 2.5,
"status": "met",
"details": [],
"max_points": 2.5
},
{
"key": "dangerous_workflow",
"name": "Dangerous-Workflow",
"detail": "no dangerous workflow patterns detected",
"points": 10,
"status": "met",
"details": [],
"max_points": 10
},
{
"key": "dependency_update_tool",
"name": "Dependency-Update-Tool",
"detail": "no update tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "fuzzing",
"name": "Fuzzing",
"detail": "project is not fuzzed",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "license",
"name": "License",
"detail": "license file detected",
"points": 2.2,
"status": "partial",
"details": [],
"max_points": 2.5
},
{
"key": "maintained",
"name": "Maintained",
"detail": "0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "packaging",
"name": "Packaging",
"detail": "packaging workflow not detected",
"points": 0,
"status": "excluded",
"details": [
{
"code": "no_data",
"params": {}
}
],
"max_points": 5
},
{
"key": "pinned_dependencies",
"name": "Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "sast",
"name": "SAST",
"detail": "no SAST tool detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "security_policy",
"name": "Security-Policy",
"detail": "security policy file not detected",
"points": 0,
"status": "missed",
"details": [],
"max_points": 5
},
{
"key": "signed_releases",
"name": "Signed-Releases",
"detail": "Project has not signed or included provenance with any releases.",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "token_permissions",
"name": "Token-Permissions",
"detail": "detected GitHub workflow tokens with excessive permissions",
"points": 0,
"status": "missed",
"details": [],
"max_points": 7.5
},
{
"key": "vulnerabilities",
"name": "Vulnerabilities",
"detail": "0 existing vulnerabilities detected",
"points": 7.5,
"status": "met",
"details": [],
"max_points": 7.5
}
]
},
{
"key": "high_risk_jurisdiction_exposure",
"band": "excellent",
"name": "High-Risk Jurisdiction Exposure",
"note": "Only high-confidence self-published location evidence affects this multiplier. Ambiguous matches are review-only; country evidence is not proof of nationality, citizenship, legal registration, malicious intent, or sanctions status.",
"notes": [
{
"code": "jurisdiction_evidence_limits",
"params": {}
}
],
"value": 100,
"inputs": {
"meaning": "self-published location evidence; not nationality or citizenship",
"red_flag": false,
"exposures": [],
"policy_countries": [
"Russia",
"Iran",
"North Korea"
],
"review_only_matches": 0,
"assessed_self_published_locations": 3
},
"components": [
{
"key": "policy_exposure_multiplier",
"name": "Policy exposure multiplier",
"detail": "no confirmed policy-scope location match",
"points": 100,
"status": "met",
"details": [
{
"code": "jurisdiction_no_match",
"params": {}
}
],
"max_points": 100
}
]
}
],
"description": "Are visible security and supply-chain practices strong, with no malicious dependency and no unresolved high-risk jurisdiction exposure?"
},
{
"key": "ai_readiness",
"band": "moderate",
"name": "AI Readiness",
"value": 67,
"weight": 0,
"metrics": [
{
"key": "ai_agent_context",
"band": "excellent",
"name": "Agent context & guidance",
"note": null,
"notes": [],
"value": 85,
"inputs": {
"has_llms_txt": false,
"legible_history_share": 0.99,
"agent_instruction_files": [
".github/copilot-instructions.md",
"CLAUDE.md"
],
"agent_instruction_max_bytes": 13636
},
"components": [
{
"key": "agent_instructions",
"name": "Agent instructions",
"detail": ".github/copilot-instructions.md, CLAUDE.md",
"points": 45,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": ".github/copilot-instructions.md, CLAUDE.md"
}
}
],
"max_points": 45
},
{
"key": "machine_readable_docs_llms_txt",
"name": "Machine-readable docs (llms.txt)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 15
},
{
"key": "legible_commit_history",
"name": "Legible commit history",
"detail": "99 of 100 human commits state their intent (structured subject or explanatory body)",
"points": 40,
"status": "met",
"details": [
{
"code": "legible_history",
"params": {
"legible": 99,
"sampled": 100
}
}
],
"max_points": 40
}
]
},
{
"key": "ai_verify_loop",
"band": "moderate",
"name": "Verify loop (build / test / typecheck)",
"note": null,
"notes": [],
"value": 51,
"inputs": {
"has_nix": true,
"has_tests": true,
"lockfiles": [],
"has_dockerfile": false,
"typed_language": true,
"bootstrap_files": [],
"has_devcontainer": false,
"has_linter_config": false,
"typecheck_configs": [],
"agent_commit_share": 0.04,
"toolchain_manifests": [],
"dependency_bot_commit_share": 0
},
"components": [
{
"key": "one_command_bootstrap",
"name": "One-command bootstrap",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 18
},
{
"key": "automated_tests",
"name": "Automated tests",
"detail": null,
"points": 22,
"status": "met",
"details": [],
"max_points": 22
},
{
"key": "lint_format_config",
"name": "Lint / format config",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 11
},
{
"key": "static_type_checking",
"name": "Static type checking",
"detail": "C++ (statically typed)",
"points": 11,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 11
},
{
"key": "reproducible_environment",
"name": "Reproducible environment",
"detail": "Nix",
"points": 10,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "Nix"
}
}
],
"max_points": 10
},
{
"key": "demonstrated_agent_practice",
"name": "Demonstrated agent practice",
"detail": "4 of the last 100 commits agent-authored or agent-credited",
"points": 8,
"status": "partial",
"details": [
{
"code": "agent_authored_commits",
"params": {
"count": 4,
"sampled": 100
}
}
],
"max_points": 10
},
{
"key": "automated_maintenance",
"name": "Automated maintenance",
"detail": "no automated dependency updates observed",
"points": 0,
"status": "missed",
"details": [
{
"code": "no_dependency_automation",
"params": {}
}
],
"max_points": 8
},
{
"key": "openssf_scorecard_pinned_dependencies",
"name": "OpenSSF Scorecard: Pinned-Dependencies",
"detail": "dependency not pinned by hash detected -- score normalized to 0",
"points": 0,
"status": "missed",
"details": [],
"max_points": 10
}
]
},
{
"key": "ai_code_legibility",
"band": "excellent",
"name": "Code legibility for models",
"note": null,
"notes": [],
"value": 98,
"inputs": {
"primary_language": "C++",
"largest_source_bytes": 811328,
"source_files_sampled": 1413,
"oversized_source_files": 65
},
"components": [
{
"key": "type_checkable_code",
"name": "Type-checkable code",
"detail": "C++ (statically typed)",
"points": 45,
"status": "met",
"details": [
{
"code": "statically_typed_language",
"params": {
"language": "C++"
}
}
],
"max_points": 45
},
{
"key": "manageable_file_sizes",
"name": "Manageable file sizes",
"detail": "65/1413 source files over 60KB",
"points": 52.5,
"status": "partial",
"details": [
{
"code": "oversized_source_files",
"params": {
"kb": 60,
"sampled": 1413,
"oversized": 65
}
}
],
"max_points": 55
}
]
},
{
"key": "ai_interfaces",
"band": "at_risk",
"name": "Machine-readable interfaces",
"note": null,
"notes": [],
"value": 40,
"inputs": {
"example_dirs": [
"examples"
],
"has_mcp_signal": false,
"api_schema_files": []
},
"components": [
{
"key": "api_schema_openapi_graphql_proto",
"name": "API schema (OpenAPI/GraphQL/proto)",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 40
},
{
"key": "mcp_server",
"name": "MCP server",
"detail": null,
"points": 0,
"status": "missed",
"details": [],
"max_points": 20
},
{
"key": "runnable_examples",
"name": "Runnable examples",
"detail": "examples",
"points": 40,
"status": "met",
"details": [
{
"code": "file_list",
"params": {
"files": "examples"
}
}
],
"max_points": 40
}
]
}
],
"description": "How well is the repo equipped to be developed and maintained with AI coding agents? An independent, experimental badge — weight 0.0, so it is surfaced on its own and does not affect the overall health score."
}
],
"metrics_version": "1.13.0"
},
"warnings": [
"Star history unavailable: GitHub GraphQL error: Resource not accessible by personal access token",
"Community profile unavailable"
],
"report_type": "repository",
"generated_at": "2026-07-26T19:33:09.282472Z",
"schema_version": "0.27.0",
"badge_url": "https://raw.githubusercontent.com/inspect-software/badges/main/v1/c/csyonghe/slang.svg",
"full_name": "csyonghe/slang",
"license_state": "custom",
"license_spdx": null
}