<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slang.git/source/slang/slang-file-system.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>Zip FileSystem support (#1617)</title>
<updated>2020-12-02T16:29:38+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-12-02T16:29:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=ae222bf4fa131b8b86dd0662b32214eb161ace1a'/>
<id>urn:sha1:ae222bf4fa131b8b86dd0662b32214eb161ace1a</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* Add miniz

* Fix for separator in CacheFileSystem.
Add compression unit test for zip.

* Put zip compression into core.

* Remove delimiter stripping if simplifying a path - as stripping will fix delimiters.

* ZipFileSystem WIP.

* More ZipFileSystem working.

* Added isEmpty.
Fixed small bug is contains.

* First pass support for mutability on zip.

* Improvements to File::read/writeAllBytes

* Can access and save archive - but has memory leaks.

* Fix memory leak.

* Some ZIP compression tests.

* Fix memory leak on ScopedAllocation.
Fix off by one bug on UIntSet

* Bug fix in UIntSet

* Fix remaining ZipFileSystem issues.
Adde stand alone unit-test.

* Turn tabs to spaces in slang-io.h

* Renamed mode ReadWrite (instead of just Write)

* Make miniz it's own project.

* Fix windows warning on win32.

* Remove warnings needed when miniz was included as a header library.

* Set the C++ standard via 'flags' in premake.

* Add support for 'implicit' paths.

* Add testing for implicit directories.
Better handling of implicit directories.

* Improve comments in ZipFileSystem.

* Update comment around reader/writer transformation.</content>
</entry>
<entry>
<title>File system refactor (#1611)</title>
<updated>2020-11-19T09:14:48+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-11-19T09:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b59451020eee59cd52e4d8231360ebed4fc59adb'/>
<id>urn:sha1:b59451020eee59cd52e4d8231360ebed4fc59adb</id>
<content type='text'>
* #include an absolute path didn't work - because paths were taken to always be relative.

* WIP FileSystem refactor.

* Made loadFile load the file in binary mode.

* Fixed some comments.
Fixed typo in RelativePath - not used 'fixedPath'.</content>
</entry>
<entry>
<title>Emit spir-v using MemoryArena to stop memory leak (#1479)</title>
<updated>2020-08-06T21:15:55+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-08-06T21:15:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=20af567033dedea15abb22fb7d344d116d7b99c5'/>
<id>urn:sha1:20af567033dedea15abb22fb7d344d116d7b99c5</id>
<content type='text'>
* Use m_style for OSFindFilesResult

* Refactor of FindFilesResult.

* Fixes on linux for FindFiles.

* Simplify FindFilesState, and linux support for pattern matching.

* Small fixes to linux FindFilesState

* Fix typo on linux FindFiles

* Fix typo in linux FindFiles.

* Renamed some variables, and improved comments on FindFiles.

* Improve comments on FildFiles

* Small improvements around FindFiles.

* Refactor FindFiles again.. into a visitor and function in Path.

* Fix some problems on linux.

* Fix linux typo.

* Renamed os -&gt; find-file-util

* find-file-utl -&gt; directory-util

* Make delete of PathInfo explicit.

* Initialize alwaysCreateCollectedParam .

* WIP spir-v emit using MemoryArena

* Fix bug in spirv emit.

* Fix bug with handling null termination on strings in spirv emit.

* Small improvements in comments around emit spirv

* Remove the 'dst' from emitOperand - we can only emit to the current inst.

* Improve SpirV emit comments.

* Don't store the created instruction in the InstConstructScope - as it's always the m_currentInst.
Don't return the instruction after _beginInst.
Slight comment improvements.</content>
</entry>
<entry>
<title>Improvements around hashing (#1355)</title>
<updated>2020-05-26T17:53:10+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2020-05-26T17:53:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=b1369040c3d6d6a8704bdb17d9de99f36a108e07'/>
<id>urn:sha1:b1369040c3d6d6a8704bdb17d9de99f36a108e07</id>
<content type='text'>
* Fields from upper to lower case in slang-ast-decl.h

* Lower camel field names in slang-ast-stmt.h

* Fix fields in slang-ast-expr.h

* slang-ast-type.h make fields lowerCamel.

* slang-ast-base.h members functions lowerCamel.

* Method names in slang-ast-type.h to lowerCamel.

* GetCanonicalType -&gt; getCanonicalType

* Substitute -&gt; substitute

* Equals -&gt; equals
ToString -&gt; toString

* ParentDecl -&gt; parentDecl
Members -&gt; members

* * Make hash code types explicit
* Use HashCode as return type of GetHashCode
* Added conversion from double to int64_t
* Split Stable from other hash functions

* toHash32/64 to convert a HashCode to the other styles.
GetHashCode32/64 -&gt; getHashCode32/64
GetStableHashCode32/64 -&gt; getStableHashCode32/64

* Other Get/Stable/HashCode32/64 fixes

* GetHashCode -&gt; getHashCode

* Equals -&gt; equals

* CreateCanonicalType -&gt; createCanonicalType

* Catches of polymorphic types should be through references otherwise slicing can occur.

* Fixes for newer verison of gcc.
Fix hashing problem on gcc for Dictionary.

* Another fix for GetHashPos

* Fix signed issue around GetHashPos</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>Using repro as a file system (#1104)</title>
<updated>2019-11-01T19:57:51+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-11-01T19:57:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=608b7fba5411f9de2193ac604d38363463807410'/>
<id>urn:sha1:608b7fba5411f9de2193ac604d38363463807410</id>
<content type='text'>
* Added RiffReadHelper

* Move type to fourCC in Chunk simplifies some code.

* Make MemoryArena able to track external blocks.
Allow ownership of Data to vary.
Changed IR serialization to use moved allocations to avoid copies.

As it turns out all of the array writes could use unowned data, but doing so requires the IRData to stay in scope longer than IRSerialData, which it does at the moment - but perhaps needs better naming or a control for the feature.

* Write out slang-module container.

* WIP on -r option.
Loading modules - with -r.

* Making the serialized-module run (without using imported module).

* Split compiling module from the test.

* Separate module compilation with a function working.

* Remove serialization test as not used.

* Fix warning on gcc.

* Updated test to have types across module boundary.

* Allow entry point declaration.
A test that tries to build with just an entry point declaration and a module.

* Try to make link work with multiple modules.

* Multi module linking first pass working.

* Multi module test working with -module-name option

* Added feature to repro manifest of approximation of command line that was used.

* Use isDefinition - for determining to add decorations to entry point lowering.

* Added support for repo-file-system.h
More precise control of CacheFileSystem.
Allow RelativeFileSystem to strip paths optionally.
Use canonical paths in PathInfo cache.
Fix bug in -D options for command line output of StateSerailizeUtil

* Add missing slang-options.h

* Fix bug in bit slang-state-serialize.cpp with bit removal.

* Added documentation around -repro-file-system
Added spLoadReproAsFileSystem function.

* Fix warning.
</content>
</entry>
<entry>
<title>Expose more repro in API, support output params. (#1087)</title>
<updated>2019-10-23T13:28:58+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-10-23T13:28:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=9c2d1766ea33101b551ac521ddc39516b98b6641'/>
<id>urn:sha1:9c2d1766ea33101b551ac521ddc39516b98b6641</id>
<content type='text'>
* Added spEnableReproCapture to the API.

* Added MemoryStreamBase - which can be used to read from without copyin the data.
Added the missing Repro API functions - spEnableReproCapture and spExtractRepro.
Added support for serializing output filenames.

* Improved naming around Stream.
Brought Stream and sub types closer to code conventions.

* Renamed content -&gt; contents in Stream.
</content>
</entry>
<entry>
<title>`Repro` functionality (#1085)</title>
<updated>2019-10-21T19:32:13+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-10-21T19:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=5ca446888656da91165b7bf90b7b2195d1e1afac'/>
<id>urn:sha1:5ca446888656da91165b7bf90b7b2195d1e1afac</id>
<content type='text'>
* WIP on serialize/save state.

* Relative string encoding.

* Added RelativeContainer unit test.
Split out RelativeContainer into core.

* Fix bug in RelativeString encoding.

* More work around relative container.

* Fix checks.

* Use RelativeBase for safe access.
Use malloc/free/realloc instead of List.

* Add natvis support for relative types.

* Setting up of state (not includes) writing of repro state.

* Capture after spCompile.

* Writing SourceFile and file system files.
Added -dump-repo

* First pass at loading state.

* First pass at reading repro.

* Small optimization around Safe32Ptr

* Refactor how repro data is stored - to make saving off the files more simple, by having all all backed by 'files'.
Make file loading always set up PathInfo so we get uniqueIdentifier info.

* Generate unique file names.

* Added RelativeFileSystem
Added saveFile to ISlangFileSystemExt and implemented for interfaces
Added mechanism to save of files (and manifest)

* Added ability to replace files in repo with directory holding their contents.

* Add support for entry points.

* Fix problem compiling on linux.

* Added SIMPLE_EX option, where everything on command line must be specified.

* Fix typo in unit test for relative container.

* Fix another typo in unit test for RelativeContainer.

* Fix small bugs.

* Fix release unused variable issue in slang-state-serialize.cpp

* Fix checking for SIMPLE_EX in testing, else broke COMMAND_LINE_SIMPLE.

* Fix warnings on 32 bit debug build.

* Added import-subdir-search-path-repro.slang test. Although disabled for now as writes to root of slang project.

* Remove wrong version of import-subdir-search-path-repro.slang

* Added import-subdir-search-path-repro.slang
</content>
</entry>
<entry>
<title>A more convoluted #pragma once file identity test, using relative paths. (#1021)</title>
<updated>2019-08-15T22:38:59+00:00</updated>
<author>
<name>jsmall-nvidia</name>
<email>jsmall@nvidia.com</email>
</author>
<published>2019-08-15T22:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/slang.git/commit/?id=77fe3dd74446fb07dd0de31114f7033f111ef868'/>
<id>urn:sha1:77fe3dd74446fb07dd0de31114f7033f111ef868</id>
<content type='text'>
* A more convoluted #pragma once file identity test, using relative paths.

* Fix bug with passing - to slang as a command line option causes a crash.
Ability to set file-system to use on command line.
#pragma once tests try with 'normal' and 'read-file' only versions

* OSFileSystem -&gt; OSFileSystemExt
LoadFileOSFileSystem -&gt; OSFileSystem

Implemented OSFileSystem like OSFileSystemExt as as singleton.
Fixes to comments.
</content>
</entry>
</feed>
