Skip to content

Wording tweaks - #205

Merged
k2d222 merged 8 commits into
mainfrom
wording-tweaks
Aug 19, 2026
Merged

Wording tweaks#205
k2d222 merged 8 commits into
mainfrom
wording-tweaks

Conversation

@k2d222

@k2d222 k2d222 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Per our Discord discussion I clarify the meaning of root module which was confused with package root directory and package:: module path. I also went ahead and tweaked the glossary.

  • renamed root module -> entry module.
  • removed wesl translator which was a bit redundant with wesl linker.
  • tweaked and moved other definitions.

Comment thread Visibility.md
@@ -292,9 +292,9 @@ fn fragment_main() -> @location(0) vec4f {

### Aggregating entry points

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

btw I still think this section should be moved from spec to docs, It is just informative.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or maybe a non-normative Note? Or do you have a spot in mind in the docs? (can be a separate PR if we don't have a plan yet)

@mighdoll mighdoll left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

heroic editing! Clarity will improve with these changes.

More edits requested to complete the de-root.
maybe main module rather than entry module?
couple of substantive changes mixed in (e.g. package visible pipeline-relevant items in the module-formerly-known-as-root are also pipeline-visible)

Comment thread GLOSSARY.md Outdated
Comment thread GLOSSARY.md Outdated

* **Module**: A unit of WESL or WGSL code with its own top-level scope, stored in a single module source.
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

alternate: do you like 'Main Module', like 'main()' in C?

entry is better than root and I'm fine with it, but today I'm kinda liking main.

my worry is that a module containing entry points needn't be the entry module, and talking about entry modules and entry points will require the reader to distinguish the two related but different senses of entry.

I lean main as I write this but I'm aok either way.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah i like main !

Comment thread GLOSSARY.md Outdated
Comment thread GLOSSARY.md Outdated
Comment thread GLOSSARY.md Outdated
Comment thread Imports.md Outdated
Comment thread Visibility.md Outdated
Comment thread VisibilityDesign.md Outdated
Comment thread VisibilityDesign.md Outdated
Comment thread ConditionalTranslation.md Outdated

@k2d222 k2d222 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ready for another round @mighdoll @stefnotch

Comment thread GLOSSARY.md Outdated
Comment thread GLOSSARY.md Outdated
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.
* **Declaration Path**: A `::`-separated path whose final segment names a declared item.
* **Canonical Path**: A fully qualified module/ declaration path (which does not contain any `super::`). There is exactly one canonical path per module or declaration within a package.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah I introduced canonical path which is not referenced in the spec. The idea is that we have not term for non-canonical paths since the current spec calls any path canonical, and that's confusing.

Comment thread GLOSSARY.md
Comment thread GLOSSARY.md Outdated
exposes it to the host (see [Visibility](Visibility.md)).
* **wesl.toml**: The optional configuration file for a package. See [WeslToml](WeslToml.md).
* **Module Path Resolution**: Mapping between module paths and module source within a package. Choice of mapping is implementation-specific.
* **Filesystem Resolution**: The default module path resolution. It maps module paths to file paths relative to a **Package Root Directory**. See [Filesystem Resolution][Imports.md#filesystem-resolution].

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cHnged to

The standard path resolution for a filesystem storage

Comment thread GLOSSARY.md Outdated
Comment thread GLOSSARY.md Outdated
* **wesl.toml**: The optional configuration file for a package. See [WeslToml](WeslToml.md).
* **Module Path Resolution**: Mapping between module paths and module source within a package. Choice of mapping is implementation-specific.
* **Filesystem Resolution**: The default module path resolution. It maps module paths to file paths relative to a **Package Root Directory**. See [Filesystem Resolution][Imports.md#filesystem-resolution].
* **Package Root Module Path**: The module path consisting only of `package`. Corresponds to `package.wesl` in the package root directory with the filesystem resolution.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reworded slightly.

Comment thread Imports.md Outdated
Comment thread GLOSSARY.md Outdated
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.
* **Declaration Path**: A `::`-separated path whose final segment names a declared item.
* **Canonical Path**: A fully qualified module/ declaration path (which does not contain any `super::`). There is exactly one canonical path per module or declaration within a package.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would you prefer:

  • remove canonical from glossary
  • a module path can be relative or canonical, and filesystem resolution first canonicalizes the path

Comment thread GLOSSARY.md Outdated
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.
* **Declaration Path**: A `::`-separated path whose final segment names a declared item.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment about canonical

Comment thread GLOSSARY.md Outdated
* **Module**: A unit of WESL or WGSL code with its own top-level scope, stored in a single module source.
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it only import paths that can have super? not inline paths?

@mighdoll

Copy link
Copy Markdown
Contributor

What would you prefer:

  • remove canonical from glossary
  • a module path can be relative or canonical, and filesystem resolution first canonicalizes the path

I think remove. I wouldn't tie module path terms to fs resolution.

I like canonical, might make things more clear. Reworking the text to use it and hopefully drop one or two of the other definitions seems worthy, but it'd be easier to review in a separate PR.

@mighdoll

Copy link
Copy Markdown
Contributor

is it only import paths that can have super? not inline paths?

they can too! the terminology just needs a way to distinguish the thing you might type in from the thing that's... canonical :-). currently a module path or and a declaration path are canonical, and there's no glossary term for inline path I think.

It would be nice to clean up the terms, I think you're onto something.

@k2d222 k2d222 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addressed comments.

Comment thread GLOSSARY.md Outdated
* **Module**: A unit of WESL or WGSL code with its own top-level scope, stored in a single module source.
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added back.

Comment thread GLOSSARY.md Outdated
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.
* **Declaration Path**: A `::`-separated path whose final segment names a declared item.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Comment thread GLOSSARY.md Outdated
* **Entry Module**: The WESL module from which translation starts. Its public declarations form the **shader-host interface** and are not mangled. A single application can have many entry modules.
* **Module Path**: A `::`-separated path naming a module; equivalently, a declaration path minus its final segment.
* **Declaration Path**: A `::`-separated path whose final segment names a declared item.
* **Canonical Path**: A fully qualified module/ declaration path (which does not contain any `super::`). There is exactly one canonical path per module or declaration within a package.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kept it and made module path / declaration path derive from it. There was too much complexity to pack in one definition.

Comment thread GLOSSARY.md Outdated

@mighdoll mighdoll left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lookin' good! a few minor fixes for you. pretty minor, a couple would be misleading. fix those and lgtm w/o further review.

Comment thread Imports.md Outdated
Comment thread Imports.md Outdated
Comment thread Imports.md Outdated
Comment thread Imports.md Outdated
Comment thread Imports.md Outdated
Comment thread GLOSSARY.md Outdated
* **Module**: A unit of WESL or WGSL code with its own top-level scope, stored in a single module source.
* **Module Source**: The stored text of a module, typically in a WESL or WGSL file.
* **Main module**: The WESL module from which translation starts. It defines the Pipeline-visible API. A single application can have many main modules.
* **Pipeline-visible API**, The set of items which are visible to the host (CPU-side). Pipeline-visible item names are not mangled.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/,/:/

Comment thread GLOSSARY.md
Comment thread VisibilityDesign.md Outdated
Comment thread GLOSSARY.md Outdated
@k2d222
k2d222 requested a review from stefnotch July 30, 2026 09:22
@k2d222
k2d222 merged commit 1611489 into main Aug 19, 2026
1 check passed
@k2d222
k2d222 deleted the wording-tweaks branch August 19, 2026 17:51
@github-project-automation github-project-automation Bot moved this from Todo to Done in specs and docs Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants