Skip to content
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

Implement DST #12938

Closed
21 of 23 tasks
nrc opened this issue Mar 16, 2014 · 11 comments
Closed
21 of 23 tasks

Implement DST #12938

nrc opened this issue Mar 16, 2014 · 11 comments
Assignees
Labels
metabug Issues about issues themselves ("bugs about bugs")

Comments

@nrc
Copy link
Member

nrc commented Mar 16, 2014

Tracking bug for implementing DST (I'll file issues for the intermediate steps).

@nick29581 to implement, @nikomatsakis to write an RFC for the RFC repo.

Nominating 1.0 (I think its already been discussed and agree that this blocks 1.0, if someone could tag this, it would be great).

Sub-bugs:

Tasks which don't yet have issues

  • Add fat pointers to trans
  • Indexing into fat pointer types in trans
  • remove all the hackey support for old behaviour (where we treat &[T] differently from &([T]))
  • structs
  • recursive coercions (pointers in structs) - needs some design work (DST/custom coercions #18598, part of Implement revised coercion rules #18469)
  • strings (but can only be instantiated using transmute)
  • traits
  • use DST coercions for receiver when doing trait/method search (leaving this till post- NIko's cleanup of everything trait related, if we want to do it at all).
  • properly deal with type aliases which are traits (i.e., accept them everywhere a trait is accepted). I don't actually think there is anything legitimate to do here - type = Trait... works and can be used anywhere a trait type could be used. It would be wrong to use a type, even an alias to a trait type where a trait is expected
@flaper87
Copy link
Contributor

Update: Nominated. This should probably become a metabug as soon as the sub-bugs are created.

@edwardw
Copy link
Contributor

edwardw commented Mar 17, 2014

cc #6308.

@Aatch Aatch added the metabug label Mar 17, 2014
@pnkfelix
Copy link
Member

(we usually do not nominate metabugs for assignment to milestones, but DST is a special case so we are making an exception in this case.)

P-backcompat-lang, 1.0.

@pnkfelix pnkfelix added this to the 1.0 milestone Mar 20, 2014
aturon added a commit to aturon/rust that referenced this issue May 7, 2014
This is a stopgap until DST (rust-lang#12938) lands.

Until DST lands, we cannot decompose &str into & and str, so we cannot
usefully take ToCStr arguments by reference (without forcing an
additional & around &str). So we are instead temporarily adding an
instance for &Path and ~str, so that we can take ToCStr as owned. When
DST lands, the &Path instance should be removed, the string instances
should be revisted, and arguments bound by ToCStr should be passed by
reference.

FIXMEs have been added accordingly.
aturon added a commit to aturon/rust that referenced this issue May 9, 2014
This is a stopgap until DST (rust-lang#12938) lands.

Until DST lands, we cannot decompose &str into & and str, so we cannot
usefully take ToCStr arguments by reference (without forcing an
additional & around &str). So we are instead temporarily adding an
instance for &Path and ~str, so that we can take ToCStr as owned. When
DST lands, the &Path instance should be removed, the string instances
should be revisted, and arguments bound by ToCStr should be passed by
reference.

FIXMEs have been added accordingly.
nrc added a commit to nrc/rust that referenced this issue Jun 17, 2014
Use ty_rptr/ty_uniq(ty_trait) rather than TraitStore to represent trait types.
Also addresses (but doesn't close) rust-lang#12470.
Part of the work towards DST (rust-lang#12938).

[breaking-change] lifetime parameters in `&mut trait` are now invariant. They used to be contravariant.
bors added a commit that referenced this issue Jun 18, 2014
Use ty_rptr/ty_uniq(ty_trait) rather than TraitStore to represent trait types.
Also addresses (but doesn't close) #12470.
Part of the work towards DST (#12938).
@huonw huonw mentioned this issue Jul 5, 2014
@pnkfelix
Copy link
Member

Do note comment on #14397 (comment) : we may need a new item added to the task list above.

@pcwalton
Copy link
Contributor

pcwalton commented Sep 9, 2014

Nominating for removal from P-backcompat-lang, as I suspect the breaking changes have landed now.

@pnkfelix
Copy link
Member

(waiting for fresh ticket with specific P-backcompat-lang issue to be opened; removing I-nominated for now and leaving everything otherwise unchanged.)

@nrc
Copy link
Member Author

nrc commented Sep 18, 2014

No longer 1.0 - everything done except #17178 (and an RFC for trait object impls)

@pnkfelix
Copy link
Member

Removing P-backcompat-lang and 1.0 milestone designation, but leaving metabug open.

@pnkfelix pnkfelix removed this from the 1.0 milestone Sep 18, 2014
@bstrie
Copy link
Contributor

bstrie commented Nov 11, 2014

#17178 appears to be done now. Would we like to leave this open until we clear out the list of tasks without issues?

@aturon
Copy link
Member

aturon commented Nov 21, 2014

I just added #19187

@nrc
Copy link
Member Author

nrc commented Jan 20, 2015

The only outstanding issue here is coercions which have their own issue and are tracked as part of the coercions RFC. Closing.

@nrc nrc closed this as completed Jan 20, 2015
nivkner added a commit to nivkner/rust that referenced this issue Oct 7, 2017
update FIXME(rust-lang#6298) to point to open issue 15020
update FIXME(rust-lang#6268) to point to RFC 811
update FIXME(rust-lang#10520) to point to RFC 1751
remove FIXME for emscripten issue 4563 and include target in `test_estimate_scaling_factor`
remove FIXME(rust-lang#18207) since node_id isn't used for `ref` pattern analysis
remove FIXME(rust-lang#6308) since DST was implemented in rust-lang#12938
remove FIXME(rust-lang#2658) since it was decided to not reorganize module
remove FIXME(rust-lang#20590) since it was decided to stay conservative with projection types
remove FIXME(rust-lang#20297) since it was decided that solving the issue is unnecessary
remove FIXME(rust-lang#27086) since closures do correspond to structs now
remove FIXME(rust-lang#13846) and enable `function_sections` for windows
remove mention of rust-lang#22079 in FIXME(rust-lang#22079) since this is a general FIXME
remove FIXME(rust-lang#5074) since the restriction on borrow were lifted
flip1995 pushed a commit to flip1995/rust that referenced this issue Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
metabug Issues about issues themselves ("bugs about bugs")
Projects
None yet
Development

No branches or pull requests

8 participants