-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Closed
Labels
A-codegenArea: Code generationArea: Code generationA-frontendArea: Compiler frontend (errors, parsing and HIR)Area: Compiler frontend (errors, parsing and HIR)A-grammarArea: The grammar of RustArea: The grammar of RustA-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsA-type-systemArea: Type systemArea: Type systemC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.E-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.
Milestone
Description
Reform how we handle vectors by introducing a new unboxed dynamically sized vector type and replacing uses of current vectors with boxed dynamically sized vectors.
Syntax still needs to be chosen and we need to determine exactly what restrictions we are going to place on dynamically sized types.
Metadata
Metadata
Assignees
Labels
A-codegenArea: Code generationArea: Code generationA-frontendArea: Compiler frontend (errors, parsing and HIR)Area: Compiler frontend (errors, parsing and HIR)A-grammarArea: The grammar of RustArea: The grammar of RustA-runtimeArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsArea: std's runtime and "pre-main" init for handling backtraces, unwinds, stack overflowsA-type-systemArea: Type systemArea: Type systemC-enhancementCategory: An issue proposing an enhancement or a PR with one.Category: An issue proposing an enhancement or a PR with one.E-hardCall for participation: Hard difficulty. Experience needed to fix: A lot.Call for participation: Hard difficulty. Experience needed to fix: A lot.
Type
Projects
Milestone
Relationships
Development
Select code repository
Activity
msullivan commentedon Jun 26, 2012
I've become disillusioned with the idea of having real dynamically sized types for vectors. I don't really see any major win. The big thing seems to be that we can make our evec syntax
~[]
and@[]
in a principled and compositional way.Even so, a lot of special casing will still be required, and we need to deal with adding a notion of dynamically sized types to the type system and figuring out what operations will be permitted on them. It seems to me that it will increase implementation complexity, not decrease it, and won't provide any real user facing benefit.
I think that what we want to do is leave the type system as is but make
~[]
and@[]
be special cased to be syntax for evecs.graydon commentedon Jun 26, 2012
Also need either a syntax for fixed size interior vectors, or the supertype-of-tuples thing niko suggested, at minimum.
Careful with all type-name substitutions, too.
graydon commentedon Jun 26, 2012
... And special cases for function environment-capture types.
msullivan commentedon Jul 14, 2012
I think all of the core parts of vector reform are done. I'm going to close the bug.
Auto merge of rust-lang#2653 - RalfJung:stderr, r=RalfJung