<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-source-loc.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>2021-04-01T17:39:11+00:00</updated>
<entry>
<title>Added compiler-core project (#1775)</title>
<updated>2021-04-01T17:39:11+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-04-01T17:39:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=fa31d21ba92669a521a7768467246918e3947e02'/>
<id>urn:sha1:fa31d21ba92669a521a7768467246918e3947e02</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Split out compiler-core initially with just slang-source-loc.cpp

* More lexer, name, token to compiler-core.

* Split Lexer and Core diagnostics.

* Move slang-file-system to core.

* Add slang-file-system to core.

* More DownstreamCompiler into compiler-core

* Fix typo.

* Add compiler-core to bootstrap proj.

* Small fixes to premake

* For linux try with compiler-core

* Remove compiler-core from examples.

* Added NameConventionUtil to compiler-core

* Add global function to CharUtil to *hopefully* avoid linking issue.

* Hack to make linkage of CharUtil work on linux.</content>
</entry>
<entry>
<title>Support for __LINE__ and __FILE__ in preprocessor (#1772)</title>
<updated>2021-03-31T17:11:49+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-03-31T17:11:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5fde038b1a6b3c8b335cd5b380c3ee8d15403052'/>
<id>urn:sha1:5fde038b1a6b3c8b335cd5b380c3ee8d15403052</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* First pass support for __LINE__ and __FILE__.

* Test include handling with __FILE__
Fix diagnostic compare when input is empty.

* Fix some issues in preprocessor handling of special macros like __LINE__
Add a more complex test.

* Use CONCAT2 in tests, because preprocessor doesn't quite get parameter expansion correct.

* Make __FILE__ and __LINE__ behave more like Clang/Gcc.

* A test for preprocessor bug.

* Fix __LINE__ and __FILE__ in macro expansion, should be initiating location.

* Fix some comments.

* Small tidy up around builtin macros.

* Small improvements for macro type names.
Escape found paths.</content>
</entry>
<entry>
<title>Documentation markup extraction (#1724)</title>
<updated>2021-02-23T17:36:46+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-02-23T17:36:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=55a5ccc559b34b8d2eb9c7b7a2d9efbae40619c2'/>
<id>urn:sha1:55a5ccc559b34b8d2eb9c7b7a2d9efbae40619c2</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP extracting source documentation.

* WIP doc extraction.

* More stuff around doc markup extraction.

* More WIP around doc extraction.

* Fix some indexing issues.

* Initial doc extraction working.

* Renaming of types in markup extraction process.

* Extracting markup content.
Removing indenting.
Other fixes and improvements around document tools.

* WIP support for documentation system.

* Remove some commented out sections.

* Remove some comments that no longer apply.

* Improvements around SourceFile - such that more granularity around line ops.
Made some functionality explicitly work without source.
Improved Doc types nameing.</content>
</entry>
<entry>
<title>More #line improvements (#1713)</title>
<updated>2021-02-18T00:04:48+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2021-02-18T00:04:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=360d4f7a17a066cc878cdb2c558464bfdeaa3418'/>
<id>urn:sha1:360d4f7a17a066cc878cdb2c558464bfdeaa3418</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP: First pass in supporting output of line error information.

* Add support for lexing to better be able to indicate SourceLocation information.

* Fix lexer usage in DiagnosticSink in C++ extractor.

* Update diagnostics tests to have line location info.

* Fixed test expected output that now have source location information in them.

* Better handling of tab.

* Fix test expected results for tabbing change.

* DiagnosticLexer -&gt; DiagnosticSink::SourceLocationLexer
Added line continuation tests.

* Fix typo.

* Added String::appendRepeatedChar

* Change to rerun tests.

* Added source locations to IR dumping.

* Output column for IR dump source loc.

* Add support for closing brace location to AST.
Use closing brace location in lowering when adding return void.

* Set the source location through SourceLoc - simplifies identifying if current loc is valid.

* Copy terminator sloc.

* Test for improved #line handling.

* Made writer the last parameter for dumpIR.
Small improvements to comments.

* Disable sloc output on dump IR by default.

* Fix issue with #line and inlining.

* Fix for output with improved #line output.

* Small comment change - mainly to kick off TC build.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Include hierarchy output (#1595)</title>
<updated>2020-11-11T14:56:50+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-11-11T14:56:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=8f0895e0f8257da2fd10b6325931627a9a1792ba'/>
<id>urn:sha1:8f0895e0f8257da2fd10b6325931627a9a1792ba</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Improve diagnostic for token pasting.

* Token paste location test.

* Output include hierarchy.

* WIP on includes hierarchy.

* Improved include hierarchy output - to handle source files without tokens.
Improved test case.

* Small comment improvements.
Fixed a typo with not returning a reference.

* Slight simplification of the ViewInitiatingHierarchy, by adding GetOrAddValue to Dictionary.

* Remove the need for ViewInitiatingHierarchy type.

* Improve output of path in diagnostic for includes hierarchy.

* Remove comment in diagnostic for token-paste-location.slang

* Update command line docs to include `-output-includes`

Co-authored-by: Yong He &lt;yonghe@outlook.com&gt;</content>
</entry>
<entry>
<title>Support for float atomics on RWByteAddressBuffer (#1502)</title>
<updated>2020-08-18T17:42:46+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-08-18T17:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9abcb6ea24dbc7184c3a2ad9f4458f63f8901928'/>
<id>urn:sha1:9abcb6ea24dbc7184c3a2ad9f4458f63f8901928</id>
<content type='text'>
* Fix premake5.lua so it uses the new path needed for OpenCLDebugInfo100.h

* Keep including the includes directory.

* Added the spirv-tools-generated files.

* We don't need to include the spirv/unified1 path because the files needed are actually in the spirv-tools-generated folder.

* Put the build_info.h glslang generated files in external/glslang-generated. Alter premake5.lua to pick up that header.

* First pass at documenting how to build glslang and spirv-tools.

* Improved glsl/spir-v tools README.md

* Added revision.h

* Change how gResources is calculated.
Update about revision.h

* Update docs a little.

* Split out spirv-tools into a separate project for building glslang. This was not necessary on linux, but *is* necessary on windows, because there is a file disassemble.cpp in spirv-tools and in glslang, and this leads to VS choosing only one. With the separate library, the problem is resolved.

* Fix direct-spirv-emit output.

* Update to latest version of spirv headers and spirv-tools.

* Upgrade submodule version of glslang in external.

* Add fPIC to build options of slang-spirv-tools

* WIP adding support for InterlockedAddFp32

* Upgrade slang-binaries to have new glslang.

* Fix issues with Windows slang-glslang binaries, via update of slang-binaries used.

* WIP - atomicAdd. This solution can't work as we can't do (float*) in glsl.

* WIP on atomic float ops.

* Added checking for multiple decls that takes into account __target_intrinsic and __specialized_for_target.
First pass impl of atomic add on float for glsl.

* Split __atomicAdd so extensions are applied appropriately.

* Made Dxc/Fxc support includes.
Use HLSL prelude to pass the path to nvapi
Added -nv-api-path

* Refactor around IncludeHandler and impl of IncludeSystem

* slang-include-handler -&gt; slang-include-system
Have IncludeHandler/Impl defined in slang-preprocessor

* Small comment improvements.

* Document atomic float add addition in target-compatibility.md.

* CUDA float atomic support on RWByteAddressBuffer.

* Add atomic-float-byte-address-buffer-cross.slang

* Removed inappropriate-once.slang - the test is no longer valid when a file is loaded and has a unique identity by default. A test could be made, but would require an API call to create the file (so no unique id).
Improved handling of loadFile - uses uniqueId if has one.

* Work around for testing target overlaps - to avoid exceptions on adding targets.
Simplify PathInfo setup.
Modify single-target-intrinsic.slang - it no longer failed because there were no longer multiple definitions for the same target.

Co-authored-by: Tim Foley &lt;tfoleyNV@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>Enhanced C++ extractor (#1340)</title>
<updated>2020-05-07T19:00:33+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-05-07T19:00:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=c16abd4fe1bda5ebcd50dbb22f30c6be43bb885f'/>
<id>urn:sha1:c16abd4fe1bda5ebcd50dbb22f30c6be43bb885f</id>
<content type='text'>
* Extractor builds without any reference to syntax (as it will be helping to produce this!).

* Change macros to include the super class.

* Added indexOf(const UnownedSubString&amp; in) to UnownedSubString.
Refactored extractor
* Output a macro for each type with the extracted info - can be used during injection in class
* Simplify the header file - as can get super type and last from macro now
* Store the 'origin' of a definition

* Some small tidy ups to the extractor.

* Improve comments on the extractor options.

* Made CPPExtractor own SourceOrigins

* Small fixes around SourceOrigin.

* Small tidy up around macroOrign</content>
</entry>
<entry>
<title>Renamed UnownedStringSlice::size to getLength to make match String. (#1254)</title>
<updated>2020-03-03T00:14:18+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-03-03T00:14:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=cbba1f2ba451f31e910d59fb9efbadc5e370c095'/>
<id>urn:sha1:cbba1f2ba451f31e910d59fb9efbadc5e370c095</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make extractLine return a bool. (#991)</title>
<updated>2019-06-19T20:05:40+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-06-19T20:05:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=442f8c6d3d42b892e3f13128bcb6487ff7508f0d'/>
<id>urn:sha1:442f8c6d3d42b892e3f13128bcb6487ff7508f0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>StringUtil::extractLine (#989)</title>
<updated>2019-06-18T23:49:34+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-06-18T23:49:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=7c9298d8b10b5f4e69e24e3eb933e93e0d92fc37'/>
<id>urn:sha1:7c9298d8b10b5f4e69e24e3eb933e93e0d92fc37</id>
<content type='text'>
* Added extractLine line parsing to StringUtil. Use for matching lines instead of calcLines. calcLines uses extractLine to extract lines.
Fixed problems found in output of some tests- due to how a how final line is handled. Now a final line has a \r or \n\r combination, but nothing else after it, it is considered the last line (not the line after it).

* Use StringUtil::extractLine in slang-generate.

* Improved comment on extractLine

* Remove test code from StringUtil::extractLine

* Made StringUtil::extractLine act as if line terminators are 'separators'.
Added unit-test-string.cpp - to check behavior.

* Adding LineParser - not entirely necessary, but slightly easier to use.

* Improved LineParser::Iterator end testing.
Added improved tests for LineParser.

* Move line comparson after termination case - to fix problem with gcc release build.

* Make UnownedStringSlice handle comparison when begin is nullptr - as it uses memcmp and passing nullptr to memcmp is undefined, leading to optimizer being able to do some unfortunate optimizations on gcc.
</content>
</entry>
</feed>
