<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-ir-constexpr.cpp, branch master</title>
<subtitle>Making it easier to work with shaders</subtitle>
<id>https://git.yummers.dev/slang.git/atom?h=master</id>
<link rel='self' href='https://git.yummers.dev/slang.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/'/>
<updated>2025-09-16T19:51:43+00:00</updated>
<entry>
<title>Diagnose error when the function args can't satisfy constexpr parameter requirements (#7269)</title>
<updated>2025-09-16T19:51:43+00:00</updated>
<author>
<name>Gangzheng Tong</name>
<email>tonggangzheng@gmail.com</email>
</author>
<published>2025-09-16T19:51:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=afb8146e10626887e3eb9f479480d4f8a1ad6128'/>
<id>urn:sha1:afb8146e10626887e3eb9f479480d4f8a1ad6128</id>
<content type='text'>
## Summary
This PR enhances constexpr validation by adding proper error checking
when function arguments cannot satisfy constexpr parameter requirements,
addressing issue #6370.

## Problem
Previously, when a function declared constexpr parameters, the compiler
would attempt to propagate constexpr-ness to the call site arguments,
but there was insufficient validation and error reporting when this
propagation failed. This could lead silent failures where constexpr
requirements weren't properly enforced

## Solution
This PR adds checks that:

1. **Validates constexpr arguments**: When a function parameter is
marked as `constexpr`, the compiler now explicitly checks that the
corresponding argument can be marked as `constexpr`

2. **Issues clear compilation errors**: added
`Diagnostics::argIsNotConstexpr`)

3. **Handles both call scenarios**: The validation works for both:
   - Direct function calls with IR-level function definitions
   - Calls to function from external modules

Fixes #6370

---------

Co-authored-by: slangbot &lt;ellieh+slangbot@nvidia.com&gt;
Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>extend fiddle to allow custom lua splices in more places (#7559)</title>
<updated>2025-07-01T19:03:41+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-07-01T19:03:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5120c1cd072548654c9ce79fa85426a5e48736c4'/>
<id>urn:sha1:5120c1cd072548654c9ce79fa85426a5e48736c4</id>
<content type='text'>
* Add fkYAML submodule

* Generate slang-ir-inst-defs.h from slang-ir-inst-defs.yaml

* generate ir-inst-defs.h

* neaten things

* neaten inst def parser

* add rapidyaml submodule

* remove fkyaml

* remove fkyaml submodule

* remove use of ir-inst-defs.h

* format and warnings

* fix wasm build

* tidy

* remove rapidyaml

* Extend fiddle to allow custom splices in more places

* Use lua to describe ir insts

* fix

* neaten

* neaten

* neaten

* spelling

* neaten

* comment comment out assert

* merge</content>
</entry>
<entry>
<title>Simplify implicit cast ctors for vector &amp; matrix. (#6408)</title>
<updated>2025-02-20T22:48:51+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-02-20T22:48:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=19867ffca6dca7995c799354081219c9e76f13d1'/>
<id>urn:sha1:19867ffca6dca7995c799354081219c9e76f13d1</id>
<content type='text'>
* Simplify implicit cast ctors for vector &amp; matrix.

* Fix formatting.

* Fix tests.

* Fix Falcor test.

* Mark __builtin_cast as internal.</content>
</entry>
<entry>
<title>Support cooperative vector (#6223)</title>
<updated>2025-01-30T08:59:49+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-01-30T08:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ba9b2785c69c1b8c6d2b4103267b5281815f9f23'/>
<id>urn:sha1:ba9b2785c69c1b8c6d2b4103267b5281815f9f23</id>
<content type='text'>
* Support cooperative vector without Vulkan-header update

Adding a Slang support for cooperative vector.
But this commit doesn't have Vulkan-header update.
</content>
</entry>
<entry>
<title>Move switch statement bodies to their own lines (#5493)</title>
<updated>2024-11-05T17:47:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-11-05T17:47:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b118451e301d734e3e783b3acdf871f3f6ea851c'/>
<id>urn:sha1:b118451e301d734e3e783b3acdf871f3f6ea851c</id>
<content type='text'>
* Move switch statement bodies to their own lines

* format

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>format</title>
<updated>2024-10-29T06:49:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2024-10-29T06:49:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21'/>
<id>urn:sha1:f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21</id>
<content type='text'>
* format

* Minor test fixes

* enable checking cpp format in ci</content>
</entry>
<entry>
<title>Keep const-ness in generic functions (#4028)</title>
<updated>2024-04-25T16:02:13+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2024-04-25T16:02:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ed0681164d78591148781d08934676bfec63f9da'/>
<id>urn:sha1:ed0681164d78591148781d08934676bfec63f9da</id>
<content type='text'>
* Keep const-ness in generic functions

Closes #3834

The issue was that "const" variables inside of generic functions became
non-const variables.  This issue prevented some of GLSL texture
functions from being called inside of generic functions.

When `propagateConstExpr()` iterates the global functions, the generic
functions had to be handled little differently. This commit allows the
iteration to happen for the generic functions.

* Adding an explantion of the test as a comment</content>
</entry>
<entry>
<title>Support pointers in SPIRV. (#3561)</title>
<updated>2024-02-09T02:29:32+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2024-02-09T02:29:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f44da6cc5c0f211c13bd1eb0743d79c7861ea64e'/>
<id>urn:sha1:f44da6cc5c0f211c13bd1eb0743d79c7861ea64e</id>
<content type='text'>
* Support pointers in SPIRV.

* Fix test.

* Enhance test.

* Fix test.

* Cleanup.</content>
</entry>
<entry>
<title> Cleanup builtin arithmetic interfaces. (#3317)</title>
<updated>2023-11-10T21:55:14+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-11-10T21:55:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=011d4281647e3a2a3cf0dbdda1fa65cc1b8ed881'/>
<id>urn:sha1:011d4281647e3a2a3cf0dbdda1fa65cc1b8ed881</id>
<content type='text'>
* wip: clean up IArithmetic

* wip.

* Cleanup builtin arithmetic interfaces.

* Fix.

* Fixes.

* Fix.

* Fix.

* Fix.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
<entry>
<title>Various slangpy fixes. (#3227)</title>
<updated>2023-09-21T21:00:48+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-09-21T21:00:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5b2eb06816521cc0fcfe03258452560bd200002d'/>
<id>urn:sha1:5b2eb06816521cc0fcfe03258452560bd200002d</id>
<content type='text'>
* Make dynamic cast transparent through `IRAttributedType`.

* Add [CUDAXxx] variant of attributes.

* Support marshaling of vector types.

* Wrap cuda kernels in `extern "C"` block.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
</feed>
