Commit Graph

4421 Commits

Author SHA1 Message Date
Jordan Rose
8c62851c66 [docs] Demote several proposals to archive/. 2015-11-05 08:52:52 -08:00
Jordan Rose
6cdeb226dc [docs] Make a new subfolder for rejected proposals. 2015-11-05 08:52:52 -08:00
Jordan Rose
9f9780c6e6 [docs] Delete several docs that don't even really have historical interest.
...and that do not describe or even actively contradict the way things are
today.

A few of these aren't quite so problematic, but simply have no owner or no
significant content. I'm happy to resurrect any that may still be useful.
2015-11-05 08:52:51 -08:00
Jordan Rose
de15f8a3b5 [docs] Move several historical-interest-only docs to an archive/ subfolder. 2015-11-05 08:52:51 -08:00
David Farler
2d1fdc8c6d Convert DocumentationComments doc to Markdown 2015-11-03 23:28:38 -08:00
Michael Gottesman
583d202795 Create the GitWorkflows document.
This document describes the current git workflow that is meant to be used when
developing for the swift project.

At some point in the future, we may discuss changing from this rebase based
workflow to a merge based workflow.
2015-11-03 17:01:12 -08:00
Jordan Rose
3ec168c26e [docs] Clean up (historical) Modules.rst a bit. 2015-11-02 17:49:18 -08:00
Jordan Rose
51e33581d0 [docs] Rewrite PersistentSerialization to describe the current situation.
We're leaning away from using the current serialization scheme as the
format for persistent interfaces, so just make this a reference for the
Serialization library.
2015-11-02 17:49:14 -08:00
Jordan Rose
d5c6d0d6cf [docs] Mark a bunch of older docs as out of date and not plan-of-record.
More doc changes to come.
2015-11-02 17:49:02 -08:00
David Farler
e2734bd92f Add missing docs/Testing.rst
rdar://problem/23359113
2015-11-02 13:54:34 -08:00
Joe Groff
8146a97519 Remove stale proposals
Swift SVN r32955
2015-10-28 23:47:44 +00:00
Erik Eckstein
ee988e21cb SIL: Add stack attributes to alloc_ref and dealloc_ref.
For details see docs/SIL.rst.
This is needed for the stack promotion optimization.



Swift SVN r32908
2015-10-27 15:29:20 +00:00
Joe Groff
2368ce774b Remove self types from mangling by default.
And include some supplementary mangling changes:

- Give the first generic param (depth=0, index=0) a single character mangling. Even after removing the self type from method declaration types, 'Self' still shows up very frequently in protocol requirement signatures.
- Fix the mangling of generic parameter counts to elide the count when there's only one parameter at the starting depth of the mangling.

Together these carve another 154KB out of a debug standard library. There's some awkwardness in demangled strings that I'll clean up in subsequent commits; since decl types now only mangle the number of generic params at their own depth, it's context-dependent what depths those represent, which we get wrong now. Currying markers are also wrong, but since free function currying is going away, we can mangle the partial application thunks in different ways.

Swift SVN r32896
2015-10-26 22:05:20 +00:00
Erik Eckstein
e5f6eb3671 Add a convenience function hasName in SILFunction to be used in the debugger.
This is a replacement for getName().equals("..."), which is no longer callable from the debugger with the latest llvm changes.



Swift SVN r32895
2015-10-26 21:52:37 +00:00
Joe Groff
7e119d0d53 Optimize the mangling of associated types in generic signatures.
Canonical dependent member types are always based from a generic parameter, so we can use a more optimal mangling that assumes this. We can also introduce substitutions for AssociatedTypeDecls, and when a generic parameter in a signature is constrained by a single protocol, we can leave that protocol qualification out of the unsubstituted associated type mangling. These optimizations together shrink the standard library by 117KB, and bring the length of the longest Swift symbol in the stdlib down from 578 to 334 characters, shorter than the longest C++ symbol in the stdlib.

Swift SVN r32786
2015-10-20 17:52:07 +00:00
Joe Groff
b77ea5e5ae Mangle the generic signature of a constrained extension after the containing module.
A microoptimization; since the module is likely to come up often in the subsequent mangling, we want to make it more likely to get the coveted S_ substitution.

Swift SVN r32784
2015-10-20 17:51:51 +00:00
Nadav Rotem
9cff4a3808 Add a note to the optimization guide about the trick to enable generic specialization.
Inserting a runtime typecheck can allow the generic specializer to operate across module boundary.

Swift SVN r32773
2015-10-20 15:07:19 +00:00
Arnold Schwaighofer
4e855add17 Add a motivation section to the Swift level attributes proposal and remove the
old low-level attributes proposal.

Swift SVN r32679
2015-10-14 13:54:11 +00:00
Slava Pestov
7cc59e01d7 SIL: Add DeallocPartialRefInst
This instruction destroys instance variables in a partially-initialized
object, then frees it.

Swift SVN r32661
2015-10-13 19:56:20 +00:00
Andrew Trick
39acb24c1d Effects doc, minor spelling typos.
Swift SVN r32647
2015-10-13 01:18:54 +00:00
Erik Eckstein
3d08ee0e67 OptimizerEffects proposal: Add some thoughts on pure value types.
Swift SVN r32632
2015-10-12 19:25:30 +00:00
Joe Groff
42c71b7972 Don't mangle directness into type metadata symbols.
Anywhere we can't directly address type metadata in Swift, we've found we need a function call. Directness isn't useful here.

Swift SVN r32626
2015-10-12 17:22:40 +00:00
Arnold Schwaighofer
a1f4abeb99 Add a Swift-level CoW attributes proposal
Swift SVN r32623
2015-10-12 00:59:45 +00:00
Slava Pestov
090d723763 SIL: Remove null_class instruction
Swift SVN r32605
2015-10-11 02:11:22 +00:00
Andrew Trick
c20370a664 Remove the last remnants of unchecked_ref_bit_cast
Swift SVN r32598
2015-10-10 05:42:57 +00:00
Andrew Trick
665e5169d5 Add unchecked_ref_cast_addr SIL instruction.
Swift SVN r32587
2015-10-10 03:39:32 +00:00
Andrew Trick
98069493aa OptimizerEffects. Add a little note.
Swift SVN r32586
2015-10-10 03:39:26 +00:00
John McCall
76e324a950 Refactors leading towards the use of protocol witness table access functions.
This re-applies r32541 with a few changes to the demangling logic and associated test fixes.

Swift SVN r32553
2015-10-09 05:49:18 +00:00
Erik Eckstein
19bb23a63f Revert r32541 "Refactors leading towards the use of protocol witness table access functions."
It broke the build: 2 demangle tests failed.




Swift SVN r32552
2015-10-09 04:42:19 +00:00
John McCall
9af9b9914d Refactors leading towards the use of protocol witness table
access functions.  NFC for now.

Swift SVN r32541
2015-10-09 01:06:06 +00:00
Andrew Trick
bd1b6ab729 Add a reference to eff-lang.
Swift SVN r32535
2015-10-08 20:55:40 +00:00
Andrew Trick
a60464a1df Add a reference to koka's effects
Swift SVN r32533
2015-10-08 20:40:30 +00:00
Andrew Trick
fff88496af FunctionEffects -> OptimizerEffects
Swift SVN r32532
2015-10-08 20:25:37 +00:00
Andrew Trick
9578d5d109 FunctionEffects notes
Swift SVN r32529
2015-10-08 19:15:33 +00:00
Andrew Trick
7abf2e8f14 Write a proper introduction for FunctionEffects.rst.
Swift SVN r32528
2015-10-08 19:15:33 +00:00
Andrew Trick
7dea5179f2 Finish formatting FunctionEffects for .80-col.
Swift SVN r32527
2015-10-08 19:15:32 +00:00
Arnold Schwaighofer
d5f1f060b5 Add the copy-on-write effects proposal to the function effects document.
Swift SVN r32522
2015-10-08 17:17:35 +00:00
Andrew Trick
46cb33d1d6 The beginning of a working document on function effects.
This is to capture ideas, issues an examples. I expect it to morph
into a real document over time.

Swift SVN r32521
2015-10-08 07:12:21 +00:00
Joe Groff
0cd5aa8c7c Change mangling for the Swift module from 'Ss' to 's'.
'Ss' appears in manglings tens of thousands of times in the standard library and is also incredibly frequent in other modules. This alone is enough to shrink the standard library by 59KB.

Swift SVN r32409
2015-10-02 22:39:44 +00:00
Joe Groff
14e16cdc2c Remove obsolete generics mangling from ABI.rst.
Swift SVN r32400
2015-10-02 04:07:14 +00:00
Michael Gottesman
5cd595b494 [docs] Note that RCIdentityAnalysis is a flow insensitive optimization in the ARCOptimization guide.
Swift SVN r32353
2015-09-30 23:14:08 +00:00
Michael Gottesman
8277473885 Add a section to ARCOptimization.rst describing RCIdentity.
Swift SVN r32286
2015-09-28 23:18:59 +00:00
Slava Pestov
b8c5f50926 Update 'Failable Initializers' proposal with feedback from Jordan Rose and Joe Groff
Basically, the Objective-C side of the equation was too simplistic
and had to be re-thought. We need to handle -release being sent to
a partially-initialized instance, so unfortunately in the general
case we have to add some state to the instance itself.

Swift SVN r32170
2015-09-23 00:52:39 +00:00
Slava Pestov
7ae77cd896 New proposal for designated initialized failure
Swift SVN r32155
2015-09-22 21:08:04 +00:00
Jordan Rose
1665d2f201 [docs] Write down what @transparent does and doesn't mean.
Swift SVN r32068
2015-09-18 04:03:42 +00:00
Erik Eckstein
a2eb979893 The doc builder doesn't like upper case Swift in code-block directive.
Swift SVN r32035
2015-09-17 15:23:11 +00:00
Nadav Rotem
8fdceeac7a Make it clear that this is a proposal and not a plan of record.
Swift SVN r32028
2015-09-17 04:40:12 +00:00
Nadav Rotem
f1ceaacf62 Add the Swift thread-safety proposal.
Swift SVN r32021
2015-09-16 23:52:05 +00:00
Slava Pestov
fc1e8482c1 Copyright year
Swift SVN r31966
2015-09-15 18:58:54 +00:00
Slava Pestov
0c71c3e5c3 Update @c proposal with some feedback from Jordan Rose before I forget and lose the e-mail thread
Swift SVN r31948
2015-09-15 00:08:36 +00:00