generated from rust-lang/project-group-template
-
Notifications
You must be signed in to change notification settings - Fork 12
Fill in initial details #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 1 commit
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,35 @@ | ||
# {{GROUP_NAME}} Charter | ||
<!-- | ||
Provide an introduction summarising the goals and motivation behind your | ||
project group. | ||
--> | ||
# Portable SIMD Charter | ||
|
||
Build and stabilize a portable SIMD API to the standard library under `core::simd` and `std::simd`. | ||
Draw elements from the existing portable SIMD implementations out in the ecosystem: | ||
|
||
- [`generic-simd`] | ||
- [`packed_simd`] | ||
- [`wide`] | ||
|
||
## Goals | ||
|
||
<!-- | ||
Explain what changes you'd like to see your group your group to focus on, and | ||
how you plan to approach these issues. Focus on explaining the highest possible | ||
level of your change. | ||
--> | ||
- Determine the shape of the portable SIMD API. | ||
- Get an unstable `std::simd` and `core::simd` API in the standard library. | ||
This may mean renaming `packed_simd` to `stdsimd` and working directly on it, or creating a new repository and pulling in chunks of code as needed. | ||
- Produce a stabilization plan to allow portions of the API to be stabilized when they're ready, and coordinate with other unstable features. | ||
- Respond to user feedback and review contributions to the API. | ||
- Update [RFC 2948] based on the final API and stabilization plan. | ||
- Stabilize! | ||
|
||
## Constraints And Considerations | ||
|
||
<!-- | ||
Explain the scope of your group, what you have chosen not to include in | ||
your goals, and your motivations behind making them non-goals. | ||
--> | ||
|
||
The initial implementation will be built on LLVM intrinsics directly rather than `core::arch`. | ||
This is so we don't have to block the portable API on filling in a lot of missing intrinsics in `core::arch` on non-x86 platforms. | ||
Migrating from LLVM intrinsics to `core::arch` is kept as a future possibility. | ||
|
||
## Membership | ||
|
||
<!-- | ||
Mention your initial membership and who has decided take the roles of | ||
shepherd(s) and liason. | ||
--> | ||
**Shepherds:** @hsivonen, @KodrAus, @Lokathor | ||
**Team Liason:** @KodrAus | ||
**Members:** @BurntSushi, @calebzulawski, @hsivonen, @KodrAus, @Lokathor, @workingjubilee | ||
|
||
**Shepherd:** | ||
**Team Liason:** | ||
**Members:** | ||
[`packed_simd`]: https://github.com/rust-lang/packed_simd | ||
[`wide`]: https://github.com/Lokathor/wide | ||
[`generic-simd`]: https://github.com/calebzulawski/generic-simd | ||
[RFC 2948]: https://github.com/rust-lang/rfcs/pull/2948 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,80 +1,37 @@ | ||
# {{GROUP_NAME}} {{GROUP_TYPE}} Group | ||
<!-- | ||
This is the template for creating project groups in rust-lang. Be sure to go | ||
through all sections marked with `**FIX ME**`, and make sure that the text is | ||
correct, and feel free to replace/remove any part that's not relevant to | ||
your group. | ||
# Portable SIMD Project Group | ||
|
||
All of the text across all of the initial files uses the same group of | ||
variables to allow for easy search and replace. They are listed below. | ||
|
||
Example sed command: `sed -i '' 's/{{GROUP_NAME}}/Inline ASM/g' ./**/*.md` | ||
*Note* the `-i ''` is important as it is required on some platforms e.g. macOS | ||
|
||
* {{GROUP_NAME}} -> The display name of your group e.g. "Inline ASM". | ||
* {{GROUP_SLUG}} -> The url slug name of your group used for | ||
`rust-lang/team` and repo name. e.g. "pg-inline-asm". | ||
* {{CHAT_PLATFORM}} -> The name of your chat app e.g. "Zulip". | ||
* {{CHAT_LINK}} -> The hyperlink to your discussions on the chat app | ||
e.g. "https://rust-lang.zulipchat.com/#narrow/stream/216763-project-inline-asm". | ||
--> | ||
|
||
<!-- | ||
Status badge advertising the project as being actively worked on. When the | ||
project has finished be sure to replace the active badge with a badge | ||
like: https://img.shields.io/badge/status-archived-grey.svg | ||
--> | ||
 | ||
[][gh-pages] | ||
|
||
|
||
**FIX ME** | ||
|
||
<!-- | ||
Provide a short introduction about your project group. Make sure to include any | ||
relevant links to information about your group. | ||
--> | ||
|
||
Welcome the repository for the {{GROUP_NAME}} Project Group! This is the | ||
Welcome the repository for the Portable SIMD Project Group! This is the | ||
repository we use to organise our work. Please refer to our [charter] as well | ||
as our [github pages website][gh-pages] for more information on our goals and | ||
current scope. | ||
|
||
[charter]: ./CHARTER.md | ||
[gh-pages]: https://rust-lang.github.io/{{GROUP_SLUG}} | ||
|
||
**/FIX ME** | ||
|
||
[gh-pages]: https://rust-lang.github.io/portable-simd | ||
|
||
## How Can I Get Involved? | ||
|
||
**FIX ME** | ||
|
||
<!-- | ||
List ways that people from outside your group can get involved and potentially | ||
become members, include what meetings your team has, and how a person could | ||
start participating and contributing. Make sure to mention the main platform | ||
your group hosts its discussions. Be sure to also include links to any | ||
other projects that your group maintains. | ||
--> | ||
|
||
[You can find a list of the current members available | ||
on `rust-lang/team`.][team-toml] | ||
|
||
If you'd like to participate be sure to check out any of our [open issues] on this | ||
repository. | ||
|
||
We also participate on [{{CHAT_PLATFORM}}][chat-link], feel free to introduce | ||
We also participate on [Zulip][chat-link], feel free to introduce | ||
yourself over there and ask us any questions you have. | ||
|
||
Group meetings happen every two weeks via [Zulip][chat-link]. | ||
You can find them on the [Libs team calendar][calendar]! | ||
|
||
[open issues]: /issues | ||
[chat-link]: {{CHAT_LINK}} | ||
[team-toml]: https://github.com/rust-lang/team/blob/master/teams/{{GROUP_TYPE}}-{{GROUP_SLUG}}.toml | ||
|
||
**/FIX ME** | ||
[chat-link]: https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd | ||
[team-toml]: https://github.com/rust-lang/team/blob/master/teams/project-portable-simd.toml | ||
[calendar]: https://calendar.google.com/calendar/u/0/[email protected] | ||
|
||
## Building Documentation | ||
|
||
This repository is also an mdbook project. You can view and build it using the | ||
following command. | ||
|
||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,10 @@ | ||
[book] | ||
authors = ["{{GROUP_NAME}} Members"] | ||
authors = ["Portable SIMD Members"] | ||
language = "en" | ||
multilingual = false | ||
src = "." | ||
title = "{{GROUP_NAME}} {{GROUP_TYPE}} Group" | ||
title = "Portable SIMD Project Group" | ||
|
||
[output.html] | ||
no-section-label=true | ||
git-repository-url="https://github.com/rust-lang/{{GROUP_SLUG}}" | ||
git-repository-url="https://github.com/rust-lang/portable-simd" |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this would also require some sort of detection of
#[target_feature]
, since LLVM intrinsics already interact with it correctly. Not sure if it's worth notingThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I'm aware, you tell LLVM what you want and you tell it the features available and it solves the problem as best it can. Which is what makes intrinsics so powerful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry--I meant that switching to
core::arch
would probably require a language change as well, to allow that same interaction.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, yes. Moving to a
core::arch
based implementation would be a Tall Task, to say the least.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess what I was trying to get at with this was consciously not painting ourselves into any corners that would make moving to
core::arch
totally infeasible instead of just lots of work. It probably goes without saying. Should I reword it or just cut it out?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree that we should make it clear it's not exclusively possible with LLVM intrinsics, but I think this is potentially misleading when the language feature is probably a bigger hurdle than expanding
core::arch
. Not sure the best way of phrasing that, though! For reference, rust-lang/rust#42515 seems to be the associated issue.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It sounds like we’ll want to capture this, but probably not in the charter 🙂 I’ll just remove this note 👍