https://github.com/apple/swift

sort by:
Revision Author Date Message Commit Date
3e71317 Convert DefaultIndex from enum to struct w/ internal enum 15 June 2018, 16:34:07 UTC
0d2f40d Implement distance(from:to:) for DefaultIndex'd collections This actually makes calculating the distance between any two non-endIndex indices an O(1) operation, oddly enough. 15 June 2018, 02:38:16 UTC
764c262 Add DefaultIndex<C> that only depends on makeIterator() 14 June 2018, 21:37:00 UTC
aea6f06 Merge pull request #17182 from aschwaighofer/irgen_dont_outline_opened_exist_enum 14 June 2018, 19:26:12 UTC
73ca2f4 Merge pull request #17207 from shajrawi/licm_hygiene 14 June 2018, 19:18:00 UTC
fc2f0a0 Merge pull request #17184 from dcci/existentialmetareco 14 June 2018, 19:05:47 UTC
19a6bb5 [LICM] Code Hygiene - rip out sinkCondFail Removing this optimization from SIL: It is not worth the extra code complexity and compilation time. More in-depth explanation for the reasoning behind my decision: 1) What is being done there is obviously not LICM (more below) - even if it is useful it should be its own separate optimization 2) The regression that caused us to add this code is no longer there in most cases - 10% in only one specific corner-case 3) Even if the regression was still there, this is an extremely specific code pattern that we are pattern-matching against. Said pattern would be hard to find in any real code. There is a small code snippet in rdar://17451529 that caused us to add this optimization. Looking at it now we see that the only difference is in loop1 example - The only difference in SIL level is in loop 1: %295 = tuple_extract %294 : $(Builtin.Int64, Builtin.Int1), 0 %296 = tuple_extract %294 : $(Builtin.Int64, Builtin.Int1), 1 cond_fail %296 : $Builtin.Int1 %298 = struct $Int (%295 : $Builtin.Int64) store %298 to %6 : $*Int %300 = builtin "cmp_eq_Int64"(%292 : $Builtin.Int64, %16 : $Builtin.Int64) : $Builtin.Int1 cond_br %300, bb1, bb12 The cond_fail instruction in said loop is moved below the store instruction / above the builtin. Looking at the resulting IR. And how LLVM optimizes it. It is almost the same. If we look at the assembly code being executed then, before removing this optimization, we have: LBB0_11: testq %rcx, %rcx je LBB0_2 decq %rcx incq %rax movq %rax, _$S4main4sum1Sivp(%rip) jno LBB0_11 After removing it we have: LBB0_11: incq %rax testq %rcx, %rcx je LBB0_2 decq %rcx movq %rax, %rdx incq %rdx jno LBB0_11 There is no extra load/movq which was mentioned the radar. 14 June 2018, 18:10:11 UTC
448b6b3 Fix test case 14 June 2018, 17:05:12 UTC
ec40a54 [TypeReconstruction] Fix reconstruction for existential metatypes. Without this, we wouldn't be able to show an array of `Any.Type` in the debugger. Fixes <rdar://problem/40940701>. 14 June 2018, 16:30:02 UTC
25af770 Merge pull request #17196 from slavapestov/more-hack-in-more-cases IRGen: Perform completely fragile layout for all classes, not just @objc ancestry 14 June 2018, 08:41:05 UTC
2be766d Merge pull request #17164 from xedin/rdar-39849926 [ClangImporter] Forward generic parameters while importing generic @c… 14 June 2018, 07:10:35 UTC
5bbd67c Merge pull request #17170 from mdiep/remove-redundant-simplification [Sema] Remove redundant simplification 14 June 2018, 07:10:15 UTC
d3868ad IRGen: Perform completely fragile layout for all classes, not just @objc ancestry Otherwise, Objective C categories don't work for classes with resilient fields, such as the value types defined in the Foundation overlay. Fixes <rdar://problem/40819319>, <https://bugs.swift.org/browse/SR-7882>. 14 June 2018, 06:26:02 UTC
cd5d738 Merge pull request #17043 from slavapestov/small-progress-on-killing-inout-type Remove some usages of InOutType 14 June 2018, 04:22:41 UTC
6c33cfa When loading Obj-C methods via a selector and the method is an accessor, import the property as well. (#17150) 14 June 2018, 03:19:14 UTC
823ed14 Merge pull request #16987 from AnthonyLatsis/warn-unconstructible-enum [Diagnostics][Sema] warn inconstructible enum 14 June 2018, 02:13:25 UTC
e1fef4d Merge pull request #17189 from jckarter/lazy-memberwise-init-batch-mode-ordering Sema: Make implicit elementwise struct init insensitive to lazy validation order. 14 June 2018, 02:11:58 UTC
ba4949b Merge pull request #17190 from CodaFi/revert-labels-are-so-reductive Revert "Reject bad string interpolations (#17074)" 14 June 2018, 00:24:44 UTC
dbc8d5e DebugInfo: Remove some code for InOutType that no longer makes sense 13 June 2018, 22:50:10 UTC
1955778 SIL: Remove type lowering support for InOutType There is still some unfortunate hackery around InOutType in SILGenProlog.cpp, but I don't want to clean it up yet. 13 June 2018, 22:38:52 UTC
296ce3f AST: Remove hack-around for getInterfaceType() on ParamDecl returning InOutType Most callers did not want the InOutType here, and checked the ParamDecl's flags instead. 13 June 2018, 22:38:52 UTC
02cf20b SILGen: Remove non-sensical RValue::isLValue() 13 June 2018, 22:38:52 UTC
e3e5ae1 SILGen: Clean up curry thunk emission a bit NFC for now, but by not looking at the FunctionType of the AST Decl, we no longer pass an InOutType to type lowering here, which won't be supported soon. 13 June 2018, 22:38:52 UTC
dfe42d2 Revert "Reject bad string interpolations (#17074)" This reverts commit fc23f3404d375ff77c04bbdf833848aee0841052. 13 June 2018, 22:06:33 UTC
da591ac Sema: Make implicit elementwise struct init insensitive to lazy validation order. With batch mode, other files may have forced lazy properties to get finalized before the implicit constructor is formed. Avoid the order dependency by making the behavior stable regardless of the type-checking phase of lazy declarations. Fixes rdar://problem/40903186. 13 June 2018, 22:01:36 UTC
1f3714f [ClangImporter] Forward generic parameters to renamed typealias While trying to import declaration which requires renaming forward generic parameters (if any) to newly created typealias. 13 June 2018, 21:59:47 UTC
094949a [ClangImporter] Forward generic parameters while importing generic @compatibility_alias When importing @compatibility_alias declarations check if underlying declaration is generic and if so, forward generic environment and generic parameters (if any) to newly created typealias declaration, otherwise there is going to be a mismatch between type associated with typealias and its declaration which leads to crashes. Resolves: rdar://problem/39849926 13 June 2018, 21:59:34 UTC
3b03111 Merge pull request #17185 from gottesmm/pr-7f4a9226a2eb05f3ee53b77268863aaeb05ab763 13 June 2018, 21:04:33 UTC
76d36f3 Remove FIXME that I already fixed in e02266d4fa0699f2e2701d3ac8e26284b13bc117. 13 June 2018, 20:14:15 UTC
a18dc11 Merge pull request #17176 from mdiep/no-subscript-members-error 13 June 2018, 20:09:24 UTC
a8fee28 IRGen: Don't outline enum value functions when they involve open existential types We don't support doing so. rdar://41009775 13 June 2018, 19:48:35 UTC
cb3d6e2 Merge pull request #17094 from mdiep/SR-7380 Add root type constraint between KeyPath expressions and applications 13 June 2018, 19:38:57 UTC
4b48f4d Merge pull request #17145 from benlangmuir/notification-test-non-determinism [sourcekit] Fix non-deterministic failure in CompileNotifications tests 13 June 2018, 19:34:17 UTC
8902562 [sourcekit] Fix a race in sourcekitdInProc's notification handling Setting the notification handler was racing with calling it; now both happen on the same queue. Only affected the in-process sourcekitd. 13 June 2018, 18:32:18 UTC
a88c73f [sourcekit] Fix non-deterministic failure in CompileNotifications tests This is a test-only change except for the introduction of a new request that is only used by tests. Our notifications are dispatched in the XPC event handler, which is not synchronized with replies to explicit XPC send_message_with_reply calls. This is fine for most users of sourcekitd, since the notifications are already enqueued on the client side, but for testing we need a way to guarantee that all notifications are passed to the client-side handler before we exit. This commit introduces a new request for testing that triggers a notification, allowing the client to wait on that notification to ensure all previously posted notifications have been handled. Note: the non-deterministic test failures can be triggered by adding a sleep of ~100 ms in the event handler before the notification is dispatched to the main queue. rdar://40311995 13 June 2018, 18:32:18 UTC
e418188 Merge pull request #17157 from CodaFi/inaccessible-decl-attribute-kardinals [CodeCompletion] Reject all UserInaccessible decl attributes 13 June 2018, 18:28:00 UTC
863d7d3 [Diagnostics]: Rewrite "no subscript members" error • Change name to match names of member diagnostics. • Explicitly call out that this is a "value of type". This matches the error from non-existent methods and properties. • Don't call them "subscript members". That term is never used in documentation and "member" doesn't add anything besides confusion. 13 June 2018, 17:35:24 UTC
92ecd5f Merge pull request #17151 from jckarter/jit-relative-references IRGen: More specifically curtail JIT use of relative references to the integrated REPL. 13 June 2018, 17:35:07 UTC
d816cba Merge pull request #17171 from gottesmm/pr-d94c2982da34985a94b6570ace6e343997ba84be 13 June 2018, 17:00:11 UTC
5887165 Merge pull request #15565 from tanner0101/get-field-c-callable [runtime] make `swift_getFieldAt` callable from C / Swift 13 June 2018, 16:39:32 UTC
456f69e Add root type constraint between KeyPath expressions and applications 13 June 2018, 16:38:46 UTC
5dcb806 Fix comment typo. 13 June 2018, 16:28:05 UTC
4d19d9f Remove redundant simplification The call to `solveRec`, below, immediately performs this same check. While that doesn't result in an early return from `solve`, the effect appears to be the same. 13 June 2018, 15:27:11 UTC
b52ef8b Merge pull request #16937 from adrian-prantl/38306256 Use depth and index to lookup type metadata artificial variables 13 June 2018, 01:56:57 UTC
5672c69 Merge pull request #17123 from CodaFi/unexpected-parentheticals Don't flatten input types in ObjC representation check 13 June 2018, 01:49:59 UTC
fc23f34 Reject bad string interpolations (#17074) * Reject bad string interpolations String interpolations with multiple comma-separate expressions or argument labels were being incorrectly accepted. * Tweak error name to match message * Diagnose empty interpolations more clearly * Don’t double-diagnose parse errors Fixes a test at Parse/recovery.swift:799 which the previous commit broke. * Fix incorrect test RUN: line A previous version of this test used FileCheck instead of -verify, and the run line wasn’t properly corrected to use -verify. * Update comment * Add more argument label tests Ensures that we don’t get different results from an initializer that doesn’t exist or doesn’t take a String. * Resolve the SR-7958 crasher test We now diagnose the error and remove the label before it has an opportunity to crash. 13 June 2018, 01:46:52 UTC
87e9b85 [test] Handle an Xcode path with spaces in it (#17161) 13 June 2018, 01:21:45 UTC
875a0d7 Merge pull request #17064 from compnerd/bridge 13 June 2018, 01:13:28 UTC
5adf937 Merge pull request #17129 from CodaFi/im-never-coming-back-to-a-long-wight-predicate-callback [NFC] Refactor intrinsic candidate search code 13 June 2018, 00:59:29 UTC
1d1e4f3 Merge pull request #17131 from davidungar/rdar-40167351-repl-non-specifics-w-zero-length-serialized-diagnostics [Batch Mode] rdar://40167351 Replace non-specific error with truncated serialized diagnostics files. 13 June 2018, 00:41:16 UTC
39cd2f9 Merge pull request #17127 from CodaFi/liliput 13 June 2018, 00:20:07 UTC
360d1d3 Merge pull request #17158 from aschwaighofer/cast_optimizer_change_doc 13 June 2018, 00:06:57 UTC
294ffc7 Merge pull request #17159 from DougGregor/abi-metadata-header [ABI] Move the ABI parts of Runtime/Metadata.h into the ABI library. 13 June 2018, 00:04:40 UTC
20d099d Remove now-unneeded argument from finishProcessing. 12 June 2018, 23:37:04 UTC
372f8ce Truncate serialized dia files instead of non-specific error. 12 June 2018, 23:26:50 UTC
bcc1ed2 [Serialization] Slightly improve cross-reference failure crash traces (#17148) Trade a tiny bit of speed in the happy path for a more sensible result, and make sure to preserve the information about what was being looked up when a cross-reference turns out to be ambiguous. No intended functionality change. 12 June 2018, 23:25:40 UTC
23d7ab1 Merge pull request #17156 from DougGregor/isnan 12 June 2018, 23:04:34 UTC
d6b13f9 Add documentation to the cast optimizer change 12 June 2018, 23:02:33 UTC
7148de5 [SILGen] Don't force thunks for Clang declarations to be serialized (#17146) They "may be serialized", not "must be serialized". Small compile-time win (and helps decrease the frequency of SIL bugs around mixing Swift versions). 12 June 2018, 22:31:16 UTC
a1ee6e9 [CodeCompletion] Reject all UserInaccessible decl attributes Generalize a fix that removes __consuming from Code Completion to all inaccessible decl attributes. 12 June 2018, 22:21:34 UTC
e15e293 Don't flatten input types in ObjC representation check Arguments of tuple type are not representable in Objective-C but the old check was looking specifically for them. 12 June 2018, 22:13:13 UTC
ca7bbe1 [Unit test] Qualify uses of std::isnan. C++ shouldn't be this hard. 12 June 2018, 22:10:51 UTC
7d26fe0 Merge pull request #17140 from compnerd/aligned 12 June 2018, 21:28:34 UTC
14fd26a IRGen: More specifically curtail JIT use of relative references to the integrated REPL. The other JIT modes all still build an entire local context into one LLVM module, so it's safe to form relative references, and necessary for reflection to work with private and local contexts. Only the integrated REPL needs this prohibition. Fixes rdar://problem/40607819. 12 June 2018, 21:11:36 UTC
a6ae2d7 Hack: Force UIEdgeInsets.zero to always come from the SDK (#17122) ...instead of relying on the one in the overlay in pre-4.2 versions of Swift. This caused crashes in deserialization, which (deliberately) doesn't respect availability. There are three changes here: - Remove UIEdgeInsets.zero and UIOffset.zero from the UIKit overlay. - Always use the 4.2 name for UIEdgeInsetsZero and UIOffsetZero from the underlying UIKit framework. (This is the nested name.) - Ignore the unavailability messages for those two constants in pre-4.2 Swift, since we're now relying on them being present. The latter two, the compiler changes, can go away once UIKit's API notes no longer specify different pre-4.2 behavior, but meanwhile we need to keep compatibility with the SDKs released in Xcode 10b1. https://bugs.swift.org/browse/SR-7879 12 June 2018, 20:40:23 UTC
25249e6 Merge pull request #16869 from davezarzycki/cache_bb_during_SILSuccessor_iteration [SIL] Perf: Cache basic block during SILSuccessor iteration 12 June 2018, 19:56:48 UTC
71e381e Merge pull request #17133 from slavapestov/without-actually-escaping-fix Sema: Propagate noescape bit into closure passed to withoutActuallyEscaping 12 June 2018, 19:56:16 UTC
1bf441b Merge pull request #17144 from slavapestov/do-not-serialize-unused-globals SIL: Only serialize sil_globals if they're [serialized] or referenced from inlinable bodies 12 June 2018, 19:56:02 UTC
bab3000 Use depth and index to lookup type metadata artificial variables instead of using name and decl context. The advantages of this approach are three-fold: - This is necessary to support inlined generic functions. - We can retire the debugger-specific type name manfgling mode for archetypes. - This saves 270kb of debug information in the x86_64 libSwiftCore.dylib alone. <rdar://problem/38306256> 12 June 2018, 19:48:15 UTC
197593b Merge pull request #17136 from rudkx/rdar40868990 [ConstraintSystem] Allow LValues for the bindings of an IUO @optional… 12 June 2018, 19:20:23 UTC
4de711e SIL: Only serialize sil_globals if they're [serialized] or referenced from inlinable bodies 12 June 2018, 19:07:50 UTC
b33a1e1 runtime: workaround GCC 4.8 libstdc++ C++11 conformance libstdc++ included with GCC 4.8 does not define `std::max_align_t` as required by the C++11 specification. As a workaround, explicitly create the definition locally. This was fixed in GCC 4.9 and later. 12 June 2018, 19:03:31 UTC
7567a15 [test] Add test for deserialization of generic protocol witnesses (#17141) This failed in Swift 4.1 because of a problem with Substitutions, but that whole model's been ripped out and redone in Swift 4.2. https://bugs.swift.org/browse/SR-7978 12 June 2018, 18:53:20 UTC
a6ba767 Merge pull request #16970 from davezarzycki/more_IRGen_extra_inhabitant_bugs [Testing] Add missing --check-prefix and mark as XFAIL 12 June 2018, 18:20:51 UTC
6e9d5f5 Merge pull request #17078 from xedin/rdar-40945329 [Sema] Diagnose misplaced InOutExpr in `preCheckExpression` 12 June 2018, 18:13:24 UTC
0f2de23 Merge pull request #15917 from DougGregor/evaluator Introduce a simple request evaluator. 12 June 2018, 17:41:08 UTC
bdebb77 [NFC] Refactor intrinsic candidate search code - De-templatize the intrinsic candidate search functions. - Allow callback predicates access to the candidate's function type so they can evalute its parameters/return value themselves. 12 June 2018, 17:03:19 UTC
d2a001a [ABI] Move the ABI parts of Runtime/Metadata.h into the ABI library. Runtime/Metadata.h collected a large number of metadata data structures that are actually part of the ABI. Move those data structures into a new header, ABI/Metadata.h, and keep the in-process, runtime-specific bits in Runtime/Metadata.h. 12 June 2018, 16:55:39 UTC
8409d29 stdlib: unify AnyObject downcast Now that bridging is enabled, unify the ObjC and non-ObjC paths. Expand the comment with how to efficiently grab the object reference and when it can be enabled. 12 June 2018, 16:50:54 UTC
f9db209 [Evaluator test] Pull in std::isnan. 12 June 2018, 16:42:10 UTC
2add64f Merge pull request #17126 from xedin/c++cstddef-portability [Runtime] NFC: Switch Portability to use C++ stddef header 12 June 2018, 08:11:14 UTC
803fbee [ConstraintSystem] Allow LValues for the bindings of an IUO @optional requirement. We were failing to bind the alternatives for an IUO @optional requirement because we forgot to set the appropriate type variable option. Fixes: rdar://problem/40868990 12 June 2018, 06:44:00 UTC
10b1755 Sema: Propagate noescape bit into closure passed to withoutActuallyEscaping Fixes <rdar://problem/40853562>, <https://bugs.swift.org/browse/SR-7886>. 12 June 2018, 05:36:08 UTC
07caabe Merge pull request #17084 from kitasuke/fix_duplicated_import_delc_for_sil-opt [SIL] Don't print duplicated import decls 12 June 2018, 04:43:27 UTC
51319ee Merge pull request #17106 from AnthonyLatsis/clean_subscript_fixits_logic [CSDiag] Remove nested type and use TC.isConvertible instead 12 June 2018, 04:43:00 UTC
dff379e Merge pull request #17130 from gottesmm/pr-f12385450cb6239cf447d83b62d75aee350f7d1c 12 June 2018, 04:18:26 UTC
e02266d [func-sig-opts][projection] All projection trees during the run on a function should share the same bump ptr allocator. Found while reading code. 12 June 2018, 03:51:26 UTC
26d2795 Excise simpler uses of getInput 12 June 2018, 00:29:29 UTC
ab2ac25 [Runtime] NFC: Switch Portability to use C++ stddef header 12 June 2018, 00:21:15 UTC
f65000a Merge pull request #16964 from millenomi/bundle-for-class 12 June 2018, 00:00:21 UTC
d275e7d Merge pull request #17120 from nkcsgexi/migrator-fix migrator: avoid inserting round-trip conversion functions. 11 June 2018, 23:37:43 UTC
a6a6ad8 Merge pull request #17099 from CodaFi/ast-toner Excise getInput() from printing 11 June 2018, 23:30:59 UTC
6433bc5 migrator: avoid migrating synthesized initializer calls. rdar://40860228 11 June 2018, 22:30:38 UTC
d6bf8e3 [Foundation] adjust inline of append and initialization functions (#17027) * [Foundation] adjust inline of append and initialization functions and use _copyContents(initialzing:) to avoid performance regressions while using generic collection/sequence APIs * Add the Array<UInt8> specialization back for append to Data 11 June 2018, 22:09:41 UTC
55495ec migrator: avoid inserting round-trip conversion functions. By postponing the insertion of conversion function calls, we can filter out the expressions that require more than one helper function wrapper. resolves: rdar://40979943 11 June 2018, 22:08:26 UTC
9617cef Update-checkout config with swift-4.2-branch-06-11-2018 branch 11 June 2018, 21:55:05 UTC
3b227e9 Merge pull request #17066 from jckarter/defer-let-inout-bug-2 DI: Consider capture of `let`s to be a read-only use. 11 June 2018, 21:24:26 UTC
ae5715e Merge pull request #17113 from aschwaighofer/fix_sil_combine_cast_opt_address_only_type CastOptimizer: A load store to the existential box is not valid on ad… 11 June 2018, 21:02:24 UTC
642bd68 Merge pull request #17115 from Jceciliani/patch-1 11 June 2018, 20:58:38 UTC
9ffda06 Merge pull request #17110 from aschwaighofer/closurelifetimefixup_delete_dead_store 11 June 2018, 18:45:40 UTC
back to top