Rust Spec Team
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Write
        • Owners
        • Signed-in users
        • Everyone
        Owners Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Help
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Write
Owners
  • Owners
  • Signed-in users
  • Everyone
Owners Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    --- title: T-spec meeting 2024-02-29 tags: ["T-spec", "meeting", "minutes"] date: 2024-02-29 discussion: https://rust-lang.zulipchat.com/#narrow/stream/399173-t-spec/topic/Meeting.202024-02-29 url: https://hackmd.io/2nbylOlGTKmFKB0atr7Lrg --- Attendees: Joel Marcey, Eric Huss, Pietro, Lukas Wirth, Felix Klock, Mara Bos, TC, Connor Horman Potential Agenda: * License Discussion * Policy and Style * Pietro discussion around libraries * Testing * Discuss Connor's sample chapter * Choose more topics to write * Any other business ## License Discussion https://github.com/rust-lang/spec/pull/14 Eric: Any concerns with MIT/Apache? Connor: Only concern is whether we should be applying a software license here. Pietro: MIT/Apache allows for easier transitions between the Project code into the specification. Sharing between Project. Eric: MIT is not a software only license TC: MIT specifically includes documentation files. Joel: We will have software with the specification - tooling, testing Mara: We will be shipping this as one artificat, potentially with the compiler. Joel: Many open source projects use MIT or Apache that include documentation TC: MIT can provide additional guarantees that something like CC0 may not. **Agreed that MIT/Apache will be used** Pietro: Ferrocene license will be cleaned up so that its contents can be used within the specification ## Policy and Style Eric: I'd also like to get started on working through policy and style issues. I think there will be a few dozen questions that we should probably decide sooner rather than later. Some will be small, like formatting or spelling considerations, but others might be more significant like the review process we would like to use. I can prepare a list of questions to get started, but I would like to know what would be the best way to answer and track those questions? Should we file individual issues or PRs for each one? How do we make decisions on those? Felix: Conceding style questions to a smaller group of people within the team (Mara and Joel) Joel: GitHub issues could be used to track these Mara: Doesn't mind using GitHub issues Eric: Will put open items into the GitHub Project. Eric: Did Ferrocene have style guidelines or policies written down? Lukas: Took inspiration from the Ada spec. Tried to have minimal forward jumps. Legailty words - like "shall". Two people. Lukas provided bullet points for content. The other editor actually wrote the specification. TC: Thinking about how other parts of the project work, perhaps there should there be a contributing document or style guide in the repository. Maybe a small set of people would then provide PRs to it for the team to FCP or otherwise approve. Trying to delegate this to a subteam might raise challenging questions about how to define the scope of that delegation. Eric: It's a good queestion. The process could slow down if we have a lot of FCPs for small decisions. On the other hand, these style questions could easily bleed out into broader questions. Pietro: Could be easy to reverse decisions. Connor: This seems like this could use Second, No objection process other teams use. Joel: Would like to avoid adding unneeded process. All this work is going to be public anyway and anyone can provide feedback. Mara: This is a different way of doing work than the rest of the project as we writing something big from scratch instead of small changes. Pietro: We can let a small group here make decisions and if we don't like any of those decisions, we can of course raise concerns. TC: If we delegate a scope of authority to a small group, it may be unwise, on a human level, to plan to often second-guess those decisions. TC: For context, I raise this mostnly in the spirit of driving consistency between various teams in the project. But perhaps there's a reason to diverge here, and overall, I have no objections. **Small delegation model to make decisions but can be informally verified and feedback provided** Eric: Policy - what does the spec say about things like editions. Mara: Library team hits merge for small, trivial changes. ## Libraries Pietro: Better defining libcore is the next crucial item for Ferrocene. Still figuring out what that exactly looks like. ISO requirements. Question for spec team - what do we want? Ferrocene might be able to contribute time to actually work on this. Joel: Is this work going to happen regardless of the direction of the specification? Pietro: Yes. Ferrocene will have a deadline and the definition of libcore will need to be done by that deadline. But willing to upstream that work to the specification. Joel: Theoretically, with the way we are structuring the writing, the library definition could be a black box that could be added to the specification. But what about following our style and policy? Pietro: Agree. There needs to be alignment between what Ferrocene needs and what the specification needs. Connor: Are we specifying the standard library? Mara: Yes, but maybe not now. But if someone wants to work on it, then there is no need to wait. Mara: For libcore, aligning style and formatting may not be the most interesting thing. It is actually defining the scope. If we can align what the scope is and if so, then having Ferrocene work on this should be fine because aligning style and formatting can be done pretty quickly. Pietro: Those that would do the work would send PRs to the spec like everyone else. There is still a lot of planning on the Ferrocene side. But if there is tentative agreement that this is a good idea, then we can go off and define what the scope and requriements are. Then we can see if those are compatible. Joel: In tentative agreement with this plan because of the extra resources that will allow us to get more efficient work in the specification. Mara: Agree. We should try to make this collaboration. Eric: Still unclear what this libcore chapter would be for? Why is there not more than just a link to the standard library. Connor: If we have to do more normative work, then we do that within the specification or in the documentation and then link to the documentation. In either case, we need to specify library types that directly interact with the core language (in ways that regular rust code cannot) e.g. `Option`. Mara: The other option is not having a specification document for libcore. Joel: This is another good reason for the Ferrous proposal to come up with the requirements to see if we actually need to have libcore specified more than just links to the standard library. Mara: Question for Ferrous - What about the existing libcore documention is not sufficient? ## Testing Pietro: Are we going to have a test suite for each requirement in the specification. Connor: Would like one Mara: It would be nice to have ## Connor's Sample Chapter https://github.com/rust-lang/spec/pull/15 Mara: Will look at chapter tomorrow. Joel: Did you use extensions that Eric added for mdbook? Connor: Yes and no. If we have rule name in there, it should be hidden away when using something other than our extended mdbook. A common comment I got when getting feedback outside the team is that the unformatted syntax was hard to read. Eric: Leave it up to Mara and Joel to make decisions on what needs to be udpated. Mara: How are we going to handle editorial decisions? Joel: I can volunteer to do that. Mara: Will also probably do that too :) Connor: Editorial changes to fork by maintainers Mara: Can also push to main after the fact. Pietro: Recommend small policy - don't explictly put comments in PRs on just editorial changes. ## More topics ``` * Front Matter * Introduction * Specification Scope * Terms and Definitions * Source code and Rust syntax tree (graph?) - T-lang * Lexing/tokenization * Grammar, AST * Crates, modules, source files * Macro invocations * Macro expansion and conditional compilation * Name/Path resolution of (mod-level) items * Static semantics - mixed T-lang/T-types * type checking * associated item resolution * existential (impl Trait) resolution * borrow checking * unsafe checking * const eval - T-opsem? * type inference * Dynamic Semantics - T-opsem * high level expression form * pattern matching and binding * dyn traits and dynamic method dispatch * memory layout and value representation * low level (MIR-like) statement form * memory model (borrowing; atomics) * ABIs and FFI linkage * The Core library crate - T-libs-api * builtin types' traits and methods * core::* items * alloc ``` Connor: Dynamic Content Mara: Lexing/Tokenizing (actually do need to think about macros) Pietro: Libcore, potentially. Will get back to us Joel: Not libcore anymore :). Will choose something else. ## Any other Business

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully