<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/core/slang-dictionary.h, 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-06-05T08:14:06+00:00</updated>
<entry>
<title>  Fix crash when loading modules with syntax errors (#6993) (#7288)</title>
<updated>2025-06-05T08:14:06+00:00</updated>
<author>
<name>Harsh Aggarwal (NVIDIA)</name>
<email>haaggarwal@nvidia.com</email>
</author>
<published>2025-06-05T08:14:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=624770a1e1ba7747cd7b2f5e0def1d677e931c8c'/>
<id>urn:sha1:624770a1e1ba7747cd7b2f5e0def1d677e931c8c</id>
<content type='text'>
* Fix#6993 - Emit Diagnostic Warning and Fix SIGSEGV

* Update external/slang-rhi submodule

* Add checks for valid stage names for paq in SemanticsVisitor check

* format code

---------

Co-authored-by: slangbot &lt;186143334+slangbot@users.noreply.github.com&gt;
Co-authored-by: Ellie Hermaszewska &lt;ellieh@nvidia.com&gt;</content>
</entry>
<entry>
<title>Fixed crash in slang-ir-autodiff-loop-analysis.cpp (#6831)</title>
<updated>2025-04-18T20:03:23+00:00</updated>
<author>
<name>Ronan</name>
<email>ro.cailleau@gmail.com</email>
</author>
<published>2025-04-18T20:03:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=a597a0358f2c2b8ec1b71b7959861658a2c06ecc'/>
<id>urn:sha1:a597a0358f2c2b8ec1b71b7959861658a2c06ecc</id>
<content type='text'>
* Added Dictionary::erase(iterator) and fixed crashing when filtering a dictionary in slang-ir-autodiff-loop-analysis.cpp

* Added Dictionary::removeIf(Predicate)

* Removed Dictionary::erase(it)

---------

Co-authored-by: Julius Ikkala &lt;julius.ikkala@gmail.com&gt;</content>
</entry>
<entry>
<title>Update build to allow setting external paths (#6528)</title>
<updated>2025-03-07T03:16:27+00:00</updated>
<author>
<name>jarcherNV</name>
<email>jarcher@nvidia.com</email>
</author>
<published>2025-03-07T03:16:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9d7d943db47dd7805a710431cf7eedc0bec8ecc7'/>
<id>urn:sha1:9d7d943db47dd7805a710431cf7eedc0bec8ecc7</id>
<content type='text'>
* Update build to allow setting external paths

Update the build to allow setting user-specific paths for the external modules.
This allows building Slang without also fetching the external modules, assuming
they are already present elsewhere locally.</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>Assorted auto-diff enhancements for increased performance &amp; more streamlined auto-diff results (#5394)</title>
<updated>2024-10-28T19:47:58+00:00</updated>
<author>
<name>Sai Praveen Bangaru</name>
<email>31557731+saipraveenb25@users.noreply.github.com</email>
</author>
<published>2024-10-28T19:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b61be5e6fb7fe1c4ec8228cdf73f49f11e5a0ac9'/>
<id>urn:sha1:b61be5e6fb7fe1c4ec8228cdf73f49f11e5a0ac9</id>
<content type='text'>
* Various AD enhancements

* Fix issue with pt-loop test

* Update pt-loop.slang

* More fixes for perf. Final minimal context test now passes.

* Fix issue with loop-elimination pass not running after dce

* Try fix wgpu test by removing select operator

* Disable wgpu

* Delete out.wgsl

* Remove comments

* Update slang-ir-util.cpp

* Fix header relative paths for slang-embed

* Disbale wgpu for a few other tests

* Better way of determining which params to ignore for side-effects

* Update slang-ir-dce.cpp

* Fix issue with circular reference from previous AD pass being left behind for the next AD pass

* Update slang-ir-dce.cpp</content>
</entry>
<entry>
<title>Allow building using external dependencies (#5076)</title>
<updated>2024-10-04T08:34:12+00:00</updated>
<author>
<name>Tobias Frisch</name>
<email>jacki@thejackimonster.de</email>
</author>
<published>2024-10-04T08:34:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=25c17b9fcbf7a21e9fa19c4a8f08b0406437be24'/>
<id>urn:sha1:25c17b9fcbf7a21e9fa19c4a8f08b0406437be24</id>
<content type='text'>
* Add options to prevent usage of own submodules

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Allow using external unordered dense headers

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Link system wide installed unordered dense

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Allow external header usage for lz4 and spirv

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Add more options to disable targets

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Add option to provide explizit path for spirv headers and remove earlier options that break the build process

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Rename options to use common prefix

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Fix indentation for the cmake changes

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Add advanced_option function for cmake

* Normalize includes between system and submodule dependencies

Fix any before-accidentally-working problems

* Add option for enabling/disabling slang-rhi

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;

* Pass correct include path for cpu tests

* Correct include path

---------

Signed-off-by: Jacki &lt;jacki@thejackimonster.de&gt;
Co-authored-by: Ellie Hermaszewska &lt;ellieh@nvidia.com&gt;</content>
</entry>
<entry>
<title>Fix for problem with OrderedHashSet causing crash (#3251)</title>
<updated>2023-09-29T23:10:22+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2023-09-29T23:10:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=6138de5f084cafdc98381237c2d8bed7c8804f1c'/>
<id>urn:sha1:6138de5f084cafdc98381237c2d8bed7c8804f1c</id>
<content type='text'>
* Fix for problem with OrderedHashSet causing crashes during running tests on on g++ 7.3

* Fix typo</content>
</entry>
<entry>
<title>Allow bitwise or expressions and numeric literals in spirv_asm blocks (#3157)</title>
<updated>2023-08-28T22:05:26+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-08-28T22:05:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=508dc3a95de50de4a4d07d0a72a18e40d55b0e2e'/>
<id>urn:sha1:508dc3a95de50de4a4d07d0a72a18e40d55b0e2e</id>
<content type='text'>
* Add -spirv-core-grammar option to load alternate spirv defs

Also embed a version to use by default

* Use perfect hash for spv op lookup

* Neaten perfect hash embedding

* Refactor spirv grammar lookup in preperation for more kinds of lookups

* Load spirv capability list from spec

* Add all SPIR-V enums to lookup table

* regenerate vs projects

* appease msvc

* Use string slices for spir-v core grammar lookups

* wiggle

* comment

* Add OpInfo for spv ops

* regenerate vs projects

* Embed op names

* Add min/max operand counts and enum categories to spirv info

* neaten

* Operand kinds for spirv ops

* Store and embed all information relating to spirv enums and qualifiers

* Use SPIR-V spec to position instructions in spirv_asm blocks

* Neaten spir-v info embedding

* Neaten perfect hash embedding

* Add assignment syntax to spirv_asm snippets

* Better errors for spirv_asm parser

* Add warning for too many operands in spirv asm

* squash warnings

* neaten

* test wiggle

* Lookup enums for spirv

* Put OpCapability and OpExtension in the correct place for spirv_asm blocks

* Tests for OpCapability and OpExtension

* ci wiggle

* Add expected failure

* Allow raising immediate values to constant ids where necessary in spirv_asm blocks

* Allow bitwise or expressions and numeric literals in spirv_asm blocks

* test numeric literals

* Fix memory issues.

* fix.

---------

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Use ankerl/unordered_dense as a hashmap implementation (#3036)</title>
<updated>2023-08-16T00:57:47+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2023-08-16T00:57:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=45d9961a6a86d184248ef84f6a07125b0c224f97'/>
<id>urn:sha1:45d9961a6a86d184248ef84f6a07125b0c224f97</id>
<content type='text'>
* Correct namespace for getClockFrequency

* missing const

* Add missing assignment operator

* Remove unused variables

* Return correct modified variable

* Use stable hash code for file system identity

* terse static_assert

* Structured binding for map iteration

* Make (==) and getHashCode const on many structs

* Add ConstIterator for LinkedList

* Replace uses of ItemProxy::getValue with Dictionary::at

* Extract list of loads from gradientsMap before updating it

* Const correctness in type layout

* Add unordered_dense hashmap submodule

* Use wyhash or getHashCode in slang-hash.h

* refactor slang-hash.h

* Use ankerl/unordered_dense as a hashmap implementation

Notable changes:
- The subscript operator returns a reference directly to the value,
  rather than a lazy ItemProxy (pair of dict pointer and key)

slang-profile time (95% over 10 runs):

- Before: 6.3913906 (±0.0746)
- After:  5.9276123 (±0.0964)

* 64 bit hash for strings

So they have the same hash as char buffers with the same contents

* Narrowing warnings for gcc to match msvc

* revert back to c++17

* Correct c++ version for msvc

* Use path to unordered_dense which keeps tests happy

* Do not assign to and read from map in same expression

* Remove redundant map operations in primal-hoist

* Split out stable hash functions into slang-stable-hash.h

* 64 bit hash by default

* regenerate vs projects

* Correct return type from HashSetBase::getCount()

* correct width for call to Dictionary::reserve

* Use stable hash for obfuscated module ids

* Signed int for reserve

* clearer variable naming

* Parameterize Dictionary on hash and equality functors

* Allow heterogenous lookup for Dictionary

* missing const

* Use set over operator[] in some places

* Remove unused function

* s/at/getValue</content>
</entry>
<entry>
<title>Simplify Lookup and improve compiler performance. (#2996)</title>
<updated>2023-07-18T15:08:11+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2023-07-18T15:08:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=4cb3eeb832b5fb29a61f2934b3daa5e42a3d6cde'/>
<id>urn:sha1:4cb3eeb832b5fb29a61f2934b3daa5e42a3d6cde</id>
<content type='text'>
* Simplify lookup.

* Various bug fixes.

* Report type dictionary size in perf benchmark.

* Remove type duplication.

* increase initial dict size.

* Bug fix.

* Fix bugs.

* Fixup.

* Revert type legalization looping.

* Fix specialization pass.

---------

Co-authored-by: Yong He &lt;yhe@nvidia.com&gt;</content>
</entry>
</feed>
