<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/docs/design, 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-08-05T00:34:13+00:00</updated>
<entry>
<title>Clarify downstream and direct compilation paths in design overview doc (#8021)</title>
<updated>2025-08-05T00:34:13+00:00</updated>
<author>
<name>aidanfnv</name>
<email>aidanf@nvidia.com</email>
</author>
<published>2025-08-05T00:34:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ce53e9c6703708bc85b0b1a0872620a7725c5a45'/>
<id>urn:sha1:ce53e9c6703708bc85b0b1a0872620a7725c5a45</id>
<content type='text'>
* Clarify downstream and direct compilation paths in design overview doc

* Fix typo, add more examples</content>
</entry>
<entry>
<title>Update document to include lua build step (#7886)</title>
<updated>2025-07-23T21:40:12+00:00</updated>
<author>
<name>Jay Kwak</name>
<email>82421531+jkwak-work@users.noreply.github.com</email>
</author>
<published>2025-07-23T21:40:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f9f23cbd92f13da4e8247c5131dbd0d812786d0c'/>
<id>urn:sha1:f9f23cbd92f13da4e8247c5131dbd0d812786d0c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>slang: Update ir-instruction-definition.md to reflect changes to operand specification (#7804)</title>
<updated>2025-07-17T21:56:07+00:00</updated>
<author>
<name>Sruthik P</name>
<email>spatibandlla@nvidia.com</email>
</author>
<published>2025-07-17T21:56:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ed1a0b8b53c7556fbf0ccab4f3496078eea4c8a2'/>
<id>urn:sha1:ed1a0b8b53c7556fbf0ccab4f3496078eea4c8a2</id>
<content type='text'>
This change updates ir-instruction-definition.md to reflect changes
to operand specification implemented in PR#7725

Auxiliary change meant for Issue #7185</content>
</entry>
<entry>
<title>mention adding new stable names manually (#7802)</title>
<updated>2025-07-17T08:48:25+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-07-17T08:48:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c9ece34d940565cdce3df56c5df1743252d807ca'/>
<id>urn:sha1:c9ece34d940565cdce3df56c5df1743252d807ca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Document IR changes (#7781)</title>
<updated>2025-07-17T04:27:18+00:00</updated>
<author>
<name>Ellie Hermaszewska</name>
<email>ellieh@nvidia.com</email>
</author>
<published>2025-07-17T04:27:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=f081b8639caeb10607b92abced1fc286a977e1e5'/>
<id>urn:sha1:f081b8639caeb10607b92abced1fc286a977e1e5</id>
<content type='text'>
* Document IR changes

* Remove duplication</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>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>Add a memory-mappable binary serialization format (#7222)</title>
<updated>2025-05-30T17:00:38+00:00</updated>
<author>
<name>Theresa Foley</name>
<email>10618364+tangent-vector@users.noreply.github.com</email>
</author>
<published>2025-05-30T17:00:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ec7ab914f79978b8980c7797e20d3399604b1f86'/>
<id>urn:sha1:ec7ab914f79978b8980c7797e20d3399604b1f86</id>
<content type='text'>
The files `slang-fossil.{h,cpp}` define a new serialization format that is designed to support data being memory-mapped in and then traversed as-is.
The `docs/design/serialization.md` document was updated with details on this new format.

The `slang-serialize-fossil.{h,cpp}` files define implementations of the recently introduced `ISerializerImpl` interface for reading/writing this new binary format.
The overall structure of these implementations is heavily based on the existing RIFF implementation from `slang-serialize-riff.{h,cpp}`.

Switching the AST serialization over to use this format required almost no changes to `slang-serialize-ast.cpp`.
The new format is more space-efficient than the RIFF-based format in memory (by factor of over 2x), but is actually *worse* than the RIFF-based format in terms of how it affects the size of `slang.dll`, because the new format is seemingly less amenable to LZ4 compression.

A few pieces of utility code were added or moved as part of this work:

* The `core/slang-internally-linked-list.*` implementation is just a type that was used as part of `core/slang-riff.*`, but that wasn't really RIFF-specific.

* The `core/slang-blob-builder.*` files implement a low-level utility for building a binary format in memory out of "chunks". The overall structure of this type is based on the RIFF-specific builder implementation, but has been generalized so that it should apply to other kinds of binary serialization.

* The `core/slang-relative-ptr.h` file implements a simple relative pointer type, which is currently only used by the `slang-fossil.h` format.

If there are concerns about adopting the new format immediately for the AST, this change could be modified to introduce all the new code, but leave the AST serialization using the previous RIFF-based format.</content>
</entry>
<entry>
<title>Generalize serialization system used for AST (#7126)</title>
<updated>2025-05-21T04:55:39+00:00</updated>
<author>
<name>Theresa Foley</name>
<email>10618364+tangent-vector@users.noreply.github.com</email>
</author>
<published>2025-05-21T04:55:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9059093bc764e901a9c4aaeb12471bf32028874f'/>
<id>urn:sha1:9059093bc764e901a9c4aaeb12471bf32028874f</id>
<content type='text'>
This change takes the new approach to serialization that was used for the AST and generalizes it in a few ways:

* The new approach is no longer tangled up with the RIFF format.
  The serialization system supports multiple different implementations of the underlying format.
  The existing RIFF format is now supported as one back-end, but support for others will follow in subsequent changes.

* The new approach is no longer deeply specialized to AST serialization.
  The old code had things like serialization for `List`s and `Dictionary`s, but it was embedded inside the `AST{Encoding|Decoding}Context`, and thus couldn't be leveraged for other serialization tasks.
  This change factors out a completely AST-independent `Serializer` implementation, with an `ASTSerializer` layered on top of it to provide the additional context needed.

* There is less duplication of code between reading and writing of serialized data.
  The old code had both the `ASTEncodingContext` and `ASTDecodingContext`, with serialization logic for most types being implemented in both, but with the constraint that those implementations needed to be kept in sync to avoid serialization-related runtime failures.
  A key property of the revamped approach is that a single `serialize()` method for a type implements both the reading and writing directions of serialization.</content>
</entry>
<entry>
<title>Improve performance when compiling small shaders. (#6396)</title>
<updated>2025-02-23T18:31:05+00:00</updated>
<author>
<name>Yong He</name>
<email>yonghe@outlook.com</email>
</author>
<published>2025-02-23T18:31:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=51ad07d1fbffd41c758eba172aa77ebba3204924'/>
<id>urn:sha1:51ad07d1fbffd41c758eba172aa77ebba3204924</id>
<content type='text'>
Improve performance when compiling small shaders.

Avoid copying witness table entries that are not getting used during linking.
Avoid copying auto-diff related decorations and derivative functions during linking, if the user modules doesn't use autodiff.
Cache operator overload resolution results on global session, so each new Session doesn't need to repetitively run through overload resolution from scratch.</content>
</entry>
</feed>
