<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang.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-07-24T19:59:58+00:00</updated>
<entry>
<title>Organize code better by splitting some big files (#7890)</title>
<updated>2025-07-24T19:59:58+00:00</updated>
<author>
<name>Theresa Foley</name>
<email>10618364+tangent-vector@users.noreply.github.com</email>
</author>
<published>2025-07-24T19:59:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8ccd495d5eaa82cb831378c28dd190e657b6c999'/>
<id>urn:sha1:8ccd495d5eaa82cb831378c28dd190e657b6c999</id>
<content type='text'>
* Organize code better by splitting some big files

The basic change here is that the majority of the declarations in `slang-compiler.h` have been split out into a set of smaller and more focused files.
As a result, the implement of those declarations have been moved from `slang-compiler.cpp` and `slang.cpp` over to those new files when the proper home for code is obvious.

I have tried as much as possible to *not* make any edits to the code along the way, and just copy-paste declarations from one place to another as-is.
The exceptions I am aware of are:

* In some cases a function that used to be file-scope `static` was used by code that landed in two or more different `.cpp` files. In these cases, I changed the function to be non-`static` (removing the `_` prefix from its name, if it had one, per our naming conventions), and put a declaration for the function into the most appropriate header I could identify.

* I added a few comments in places where I saw ugly or unfortunate things in the code I was moving, and wanted to tag them with `TODO`s so we can hopefully get to them in the fullness of time.

* I added top-level comments to each of the new `.h` files that was introduced to try to explain the logic for what goes into that file.

* In cases where one of the new header files mostly existed to declare a single type, I sometimes added more detail to the doc comment on that type, to better explain the type and its role in the compiler (this is text that otherwise might have gone into the comment at the top leve lof the file, but I figured that the doc comment would have higher discoverability).

I expect that the most contentious choice here is that the `Session` class lands in `slang-global-session.h` while `slang-session.h` holds the `Linkage` class.
The names used in this change are consistent with how the relevant concepts in the public Slang API are named, and are consistent with how we *intend* to rename the classes themselves in time.

* format code

* fixup

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Fix findFunctionByNameInType to preserve functions with different signatures (#7827)</title>
<updated>2025-07-22T16:03:05+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-22T16:03:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=0d26dbaad90f5eac604e148971d14e552bf9d5b8'/>
<id>urn:sha1:0d26dbaad90f5eac604e148971d14e552bf9d5b8</id>
<content type='text'>
findFunctionByNameInType was only returning one function when multiple functions existed with the same name but different signatures. This broke reflection functionality for extension methods.

Fix the issue by changing findDeclFromStringInType by not calling maybeResolveOverloadedExpr if checkedTerm is overloaded functions. We still call maybeResolveOverloadedExpr when any candidates in the overloaded list is not DeclRefExpr referencing a function.</content>
</entry>
<entry>
<title>Add utility to trace creation of problematic IRInsts to assist LLM in debugging (#7820)</title>
<updated>2025-07-21T16:30:24+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-21T16:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=368ddbb7b99dfb939d20f53c35d05b2b4758bd64'/>
<id>urn:sha1:368ddbb7b99dfb939d20f53c35d05b2b4758bd64</id>
<content type='text'>
* Initial plan

* Add SLANG_DEBUG_IR_BREAK environment variable support

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Apply code formatting to SLANG_DEBUG_IR_BREAK implementation

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Improve stack trace debugging with -rdynamic flag and backtrace_symbols

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: use PlatformUtil::getEnvironmentVariable, remove -rdynamic flag, and delete fallback branch

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: simplify env var parsing, move backtrace to PlatformUtil, use #if for SLANG_LINUX_FAMILY

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Address PR feedback: remove unneeded include, make backtrace() more generic by removing uid parameter

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Fix and clone source tracking.

* Add python script to dump traces.

* Update instructions.

* Batch calls to addr2line

* Cleanup claude instructions.

* update claude action.

* Remove duplicated build instructions from claude.yml workflow

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* fix build error.

* Fix build errors

---------

Co-authored-by: copilot-swe-agent[bot] &lt;198982749+Copilot@users.noreply.github.com&gt;
Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;
Co-authored-by: Gangzheng Tong &lt;tonggangzheng@gmail.com&gt;</content>
</entry>
<entry>
<title>Merge NamePool and RootNamePool into a single type (#7797)</title>
<updated>2025-07-17T07:57:42+00:00</updated>
<author>
<name>Copilot</name>
<email>198982749+Copilot@users.noreply.github.com</email>
</author>
<published>2025-07-17T07:57:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=3485710e93d833a1c7b691af707cfd8962af7d17'/>
<id>urn:sha1:3485710e93d833a1c7b691af707cfd8962af7d17</id>
<content type='text'>
* Initial plan

* Merge NamePool and RootNamePool into single NamePool class

Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;

* Remove unnecessary comment from slang-fiddle-scrape.cpp

Co-authored-by: Theresa Foley &lt;tangent-vector@users.noreply.github.com&gt;

* Address review feedback: initialize namePool to nullptr and remove unnecessary comments

Co-authored-by: Theresa Foley &lt;tangent-vector@users.noreply.github.com&gt;

---------

Co-authored-by: copilot-swe-agent[bot] &lt;198982749+Copilot@users.noreply.github.com&gt;
Co-authored-by: csyonghe &lt;2652293+csyonghe@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Theresa Foley &lt;tangent-vector@users.noreply.github.com&gt;
Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Stable names and backwards compat for serialized IR modules (#7644)</title>
<updated>2025-07-09T06:41:19+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-07-09T06:41:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=00746bf09047cdf01c19dac513a532bcf3ed3ea3'/>
<id>urn:sha1:00746bf09047cdf01c19dac513a532bcf3ed3ea3</id>
<content type='text'>
* stable names

* tests, options and ci for stable names

* Add back compat design document

* fix warnings

* formatting

* comment

* neaten

* regenerate command line reference

* consolidate ci scripts

* faster ci

* remove libreadline

* Move new function to end of interface

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Use fossil for IR serialization (#7619)</title>
<updated>2025-07-08T02:36:52+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-07-08T02:36:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=69947dec841ea46e68ccdccae45a1080fcaea01c'/>
<id>urn:sha1:69947dec841ea46e68ccdccae45a1080fcaea01c</id>
<content type='text'>
* bottleneck ir module reading and writing

* compute/simple working

* more complex tests working

* neaten

* factor out SourceLoc serialization

* document changes

* Appease clang

* Correct name serialization

* remove unnecessary code

* neaten

* neaten</content>
</entry>
<entry>
<title>Catch abort exception from leaking from loadModule (#7627)</title>
<updated>2025-07-07T18:03:39+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-07-07T18:03:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7119d9cb487d866d1c25e55eafa03aca6e5e52e3'/>
<id>urn:sha1:7119d9cb487d866d1c25e55eafa03aca6e5e52e3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Language Server Enhancements (#7604)</title>
<updated>2025-07-03T22:20:23+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-07-03T22:20:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b4fc380af5e390ca11892f9e657e653f6869c21b'/>
<id>urn:sha1:b4fc380af5e390ca11892f9e657e653f6869c21b</id>
<content type='text'>
* Language Server: auto-select the best candidate in signature help.

* Fix constructor call highlighting + goto definition.

* Add test.

* format code

* Improve ctor signature help.

* Add tests.

* Fix decl path printing for extension children.

* Allow goto definition to show core module source.

* c++ compile fix.

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Replace SLANG_ALIGN_OF with C++11 alignof (#7523)</title>
<updated>2025-07-03T21:09:09+00:00</updated>
<author>
<name>Julius Ikkala</name>
<email>julius.ikkala@gmail.com</email>
</author>
<published>2025-07-03T21:09:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=551d0c365571a2e36505851f6a713464662c5fea'/>
<id>urn:sha1:551d0c365571a2e36505851f6a713464662c5fea</id>
<content type='text'>
* Replace SLANG_ALIGN_OF with C++11 alignof

* Fix formatting (again)</content>
</entry>
<entry>
<title>Fix diagnostics not appearing when semantic tokens are disabled (#7477) (#7532)</title>
<updated>2025-07-02T04:23:42+00:00</updated>
<author>
<name>Harsh Aggarwal (NVIDIA)</name>
<email>haaggarwal@nvidia.com</email>
</author>
<published>2025-07-02T04:23:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=35f00363d03afad74874b330f623bcd4caf115be'/>
<id>urn:sha1:35f00363d03afad74874b330f623bcd4caf115be</id>
<content type='text'>
* Fix diagnostics not appearing when semantic tokens are disabled (#7477)

Previously, the language server only triggered module loading and compilation
through semantic token requests. When semantic tokens were disabled,
didOpenTextDocument and didChangeTextDocument would only update the workspace
without compiling modules, meaning no diagnostics were generated.

This change:
- Adds module loading to didOpenTextDocument for .slang/.hlsl files
- Adds module loading to didChangeTextDocument for .slang/.hlsl files
- Triggers diagnostic updates via resetDiagnosticUpdateTime for Slang files
- Ensures diagnostics appear immediately when opening/editing files
- Maintains backward compatibility with existing LSP features

Additionally fixes JSON serialization to properly handle NullResponse types
by serializing them as JSON null instead of empty objects, improving LSP
protocol compliance.

Now diagnostics work correctly regardless of semantic token settings.

* Revert: Remove unrelated change - will pick up in seprate PR

* Fix module state corruption when checkAllTranslationUnits throws

Add try/catch in Linkage::loadParsedModule to properly clean up
module maps when checkAllTranslationUnits() fails with an exception. This
prevents incorrect state in WorkspaceVersion::getOrLoadModule where
failed modules remained in the loaded modules map, causing
subsequent calls to return stale/invalid module references.

* Update to address review comments

* update: remove explicit checking for .slang and .hlsl</content>
</entry>
</feed>
