Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
681 commits
Select commit Hold shift + click to select a range
4a1a17d
Merge pull request #28737 from varungandhi-apple/vg-v3-clang-types-in…
varungandhi-apple Jan 6, 2020
040050a
Basic: out-of-line equality operator (NFCI)
compnerd Jan 6, 2020
d69e892
[AutoDiff upstream] forbid @derivative of protocol req
Jan 6, 2020
2e7e81e
Make utils/build-toolchain compatible with Xcode new build system. (#…
dan-zheng Jan 7, 2020
e805fe4
Revert "Clang function types v2: Electric Boogaloo (parsing + printing)"
compnerd Jan 7, 2020
96a0c79
[basic] Add a simple vector backed 2 stage multi map.
gottesmm Jan 6, 2020
596961c
Merge pull request #29033 from apple/revert-28737-vg-v3-clang-types-i…
shahmishal Jan 7, 2020
6b85e35
Merge pull request #28388 from nathawes/swift-ide-test-syntactic-walk…
Jan 7, 2020
29465f8
Add standalone test.
dan-zheng Jan 7, 2020
3d102b6
Merge pull request #29032 from compnerd/28737
compnerd Jan 7, 2020
19f0d52
Merge pull request #28995 from CodaFi/absolutely-path-ological
CodaFi Jan 7, 2020
509735e
IRGen: Work around RemoteMirror bug generating reflection info for em…
jckarter Jan 7, 2020
b6e0ffd
Merge pull request #29031 from marcrasi/forbid-protocol-req
swift-ci Jan 7, 2020
d903ca9
Merge pull request #29026 from DougGregor/generalize-solution-apply
DougGregor Jan 7, 2020
133e8a1
ModuleInterface: preserve AutolinkForceLoad option when generating .s…
nkcsgexi Dec 20, 2019
7a1ac6b
cmake: add SDK library search path for overlays unavailable in the so…
nkcsgexi Jan 6, 2020
14defc5
Merge pull request #29035 from gottesmm/pr-ebb0dcee0c191285561b19c13b…
gottesmm Jan 7, 2020
3fa5011
Merge pull request #28912 from nkcsgexi/auto-link-force-load
nkcsgexi Jan 7, 2020
659a37c
Rewrite AliasAnalysis may-release/may-decrement queries.
atrick Nov 11, 2019
d785691
change cmark repo to swift-5.1-branch
futurejones Jan 7, 2020
b5c02ee
build: simplify version tracking logic
compnerd Jan 3, 2020
e19ef09
[ConstraintSystem] Add a new locator element to denote branches of te…
xedin Jan 7, 2020
b770650
Merge pull request #28971 from atrick/escape-aliasanalysis
atrick Jan 7, 2020
8c2854f
Added more details to "Building Swift on Windows" (#28496)
yostane Jan 7, 2020
ab11bb6
docs: remove unused file
compnerd Jan 7, 2020
49b49f3
Merge pull request #25141 from Regno/feature/vlasov/SR-5741
Jan 7, 2020
6e7521a
Merge pull request #29037 from apple/zero-builtin-type-descriptor-wor…
jckarter Jan 7, 2020
0dca08f
[Basic] Disable body of broken `Located<T>::dump()` method
davezarzycki Jan 7, 2020
be3f949
[Diagnostics] Add support for new "ternary branch" element to context…
xedin Jan 7, 2020
95ef81a
Merge pull request #29041 from compnerd/you-are-unneeded
CodaFi Jan 7, 2020
85eb293
Merge pull request #29045 from davezarzycki/pr29045
swift-ci Jan 7, 2020
3d1739f
NFC: Fix -Wdeprecated-copy warnings
davezarzycki Jan 5, 2020
9a62701
[ConstraintSystem] Use new branch element and fix mismatch between te…
xedin Jan 7, 2020
f85dfbb
[TypeChecker.rst] NFC: Mark that if/ternary diagnostics have been ported
xedin Jan 7, 2020
667fc05
Merge pull request #29010 from dabrahams/patch-1
swift-ci Jan 7, 2020
43712bb
[Diagnostics] Diagnose general ambiguity failures in diagnoseAmbiguit…
hborla Jan 7, 2020
afc6ccd
Re-land parsing and printing for Clang function types.
varungandhi-apple Jan 7, 2020
f071cf1
Revert "[basic] Add a simple vector backed 2 stage multi map."
atrick Jan 8, 2020
8e3dc7e
Merge pull request #29059 from apple/revert-29035-pr-ebb0dcee0c191285…
atrick Jan 8, 2020
9a2b29b
Merge pull request #29056 from hborla/general-ambiguity-failures
hborla Jan 8, 2020
42c7333
[CSGen] Diagnose subscripting a nil literal in CSGen.
hborla Jan 6, 2020
834eee6
[Diagnostics] Implement MissingArgumentsFailure::diagnoseAsNote in order
hborla Jan 6, 2020
e26794a
[CSDiag] Remove diagnoseSubscriptErrors from CSDiag
hborla Jan 8, 2020
89c5c0e
Merge pull request #29013 from davezarzycki/pr29013
davezarzycki Jan 8, 2020
c9c51be
[AutoDiff] Attribute gardening. (#29050)
dan-zheng Jan 8, 2020
66fe1ec
Merge pull request #29053 from xedin/port-ternary-diags
xedin Jan 8, 2020
18f52dc
[CSDiag] Remove visitCoerceExpr from CSDiag
LucianoPAlmeida Jan 7, 2020
06201a6
[Sema] Diagnose wrong type coercion involving metatypes
LucianoPAlmeida Jan 7, 2020
0e1a03d
[CSSimplify] Handle optional wrong type conversion
LucianoPAlmeida Jan 7, 2020
fc49af2
[CSSimplify] Handle coercion to wrong type for function result locator
LucianoPAlmeida Jan 7, 2020
4d982f3
[CSSimplify] Do not record fix to coerce with existential restriction
LucianoPAlmeida Jan 8, 2020
0238a29
[tests] Fixing tests
LucianoPAlmeida Jan 8, 2020
4443966
[CSDiagnostics] Removing duplicated diagnose for InstanceType
LucianoPAlmeida Jan 8, 2020
9c4d0c0
Merge pull request #29040 from compnerd/version-control
compnerd Jan 8, 2020
d919bfa
Merge pull request #29049 from varungandhi-apple/vg-v4-clang-types-in…
varungandhi-apple Jan 8, 2020
7cfd3cb
Merge pull request #29064 from LucianoPAlmeida/handle-csdiag-coerce-d…
xedin Jan 8, 2020
222b9de
Merge pull request #28753 from mikeash/lazy-objc-class-names
mikeash Jan 8, 2020
7e7c799
[Frontend] Don't perform additional parsing for -verify
hamishknight Jan 8, 2020
6b87dce
Remove DelayedDeclLists from PersistentParserState
hamishknight Jan 8, 2020
024e346
[Frontend] Enable delayed body parsing for a non-primary main
hamishknight Jan 8, 2020
86cc73d
[Frontend] NFC: Remove an outdated comment
hamishknight Jan 8, 2020
9b9760e
[silgen] Change silgen destructor to access ref_element_addr through …
gottesmm Jan 7, 2020
7e05667
[CSGen] Abstract checking for a nil literal in visitSubscriptExpr into a
hborla Jan 8, 2020
7e829d7
NFC: Clean up an unnecessary switch
hamishknight Jan 2, 2020
c6b6e72
[CS] Tighten up assertions for getCalleeDeclAndArgs
hamishknight Jan 2, 2020
1a8477a
[CS] NFC: Inline getCalleeDeclAndArgs
hamishknight Jan 2, 2020
b4cf1af
[di] When emitting element addresses to destroy fields, use begin_acc…
gottesmm Jan 7, 2020
1aa9508
Remove DelayedDeclLists from PersistentParserState (#29071)
hamishknight Jan 8, 2020
1f1603c
Merge pull request #29072 from gottesmm/pr-4fc3226fa119351bf363a50e98…
gottesmm Jan 9, 2020
9ddb5ed
Merge pull request #29065 from hborla/subscript-error-diag
hborla Jan 9, 2020
98a5c04
Merge pull request #29081 from futurejones/fix-cmark-5.1-branch
shahmishal Jan 9, 2020
d48cdd9
[benchmark-dtrace] Set SWIFT_DETERMINISTIC_HASHING=1 before calling s…
gottesmm Jan 8, 2020
c7c2e6e
[benchmark-dtrace] Fix the amount of samples taken along side the num…
gottesmm Jan 8, 2020
6fff30c
[benchmark-dtrace] Enabling multiprocessing option to speed up gather…
gottesmm Jan 8, 2020
ac24491
[Constraint system] Generalize function builder application APIs.
DougGregor Jan 9, 2020
4c1e2c6
[Diagnostics] Add nullptr check for anchor while fixing function resu…
xedin Jan 9, 2020
a82855b
Merge pull request #29085 from xedin/add-null-check-for-repair-failures
shahmishal Jan 9, 2020
e388c4a
[CodeCompletion] Get associatedtype constraints from ProtocolDecl::ge…
rintaro Jan 9, 2020
1dd6fe5
[CodeCompletion] Stop suggesting opaque result type for generic function
rintaro Jan 9, 2020
5c2095e
Merge pull request #28919 from lorentey/fix-Data.count-setter
lorentey Jan 9, 2020
652f8ee
SIL: VTable thunks should use the 'override generic signature'
slavapestov Jan 7, 2020
2d670f4
AST: Update documentation comment in SubstitutionMap.h
slavapestov Jan 8, 2020
377d22e
SILGen: Use the correct generic environment in vtable thunks
slavapestov Jan 8, 2020
7d8b40b
IRGen: Fix warning about unused capture
slavapestov Jan 8, 2020
0eb2484
AST: Only build request dependency graph if frontend is run with -bui…
slavapestov Nov 1, 2019
1ed5453
AST: Look for cached request result before checking for a cycle
slavapestov Jan 9, 2020
8238fb7
Merge pull request #29076 from slavapestov/vtable-thunk-reabstract-re…
slavapestov Jan 9, 2020
518ab9f
[NFC] Unblock Lazy Member Loading For Import-As-Member
CodaFi Jan 7, 2020
b9f1e58
[CodeCompletion] Use GenericSignature methods to get associatedtype reqs
rintaro Jan 9, 2020
a6a1f86
Merge pull request #29080 from gottesmm/benchmark-dtrace-fixes
swift-ci Jan 9, 2020
90f7f34
[CodeCompletion] Suggest local variables in a multi-clause guard stat…
rintaro Jan 9, 2020
b05a622
Merge pull request #29090 from CodaFi/globe-up
CodaFi Jan 9, 2020
a4105b1
[NFC] Clean the ClangImporter a bit
CodaFi Jan 9, 2020
939034a
Merge pull request #29009 from davidungar/fine-grained-fixes-post-rb
Jan 9, 2020
4a9fc98
Merge pull request #29093 from CodaFi/proteomics
CodaFi Jan 9, 2020
724ccf0
Merge pull request #29088 from slavapestov/request-eval-perf-hack
slavapestov Jan 9, 2020
033ddff
[AutoDiff] NFC: gardening. (#28928)
dan-zheng Jan 9, 2020
ea3b6a0
stdlib: rewrite Array/ContiguousArray logic for reserving capacity an…
eeckstein Jan 8, 2020
88a9ebb
stdlib: Don't request additional capacity in Array/ContiguousArray's …
eeckstein Jan 8, 2020
bda8af0
stdlib: simplify Array/ContiguousArray's append(contentsOf:)
eeckstein Jan 8, 2020
60a0718
stdlib: simplify Array/ContiguousArray's withUnsafeMutableBufferPoint…
eeckstein Jan 8, 2020
27b01e3
[test] Adding validation test for generic function match
LucianoPAlmeida Jan 9, 2020
6f0f16e
[CS] Tighten up assertions for getCalleeDeclAndArgs (#29077)
hamishknight Jan 9, 2020
b980d0c
Merge pull request #29075 from gottesmm/pr-d55400f45418e4362a96349203…
gottesmm Jan 9, 2020
6a7f840
[AutoDiff upstream] Store `@differentiable` original declaration. (#2…
dan-zheng Jan 9, 2020
f65005c
Merge pull request #29092 from rintaro/ide-completion-guardstmt-rdar2…
rintaro Jan 9, 2020
8b7ce27
Merge pull request #29068 from eeckstein/array-improvements
eeckstein Jan 9, 2020
9eca615
[Update Checkout] Add master-rebranch scheme
shahmishal Jan 9, 2020
5c93035
Merge pull request #29100 from apple/shahmishal/update-checkout-maste…
shahmishal Jan 9, 2020
cdb4072
[build][gardening] obtain CMAKE_OSX_SYSROOT value once (#29098)
edymtt Jan 9, 2020
90d94c8
Merge pull request #29086 from rintaro/ide-completion-opaqueresult-rd…
rintaro Jan 9, 2020
5b32099
[Constraint solver] Use a constraint system to apply all function bui…
DougGregor Jan 9, 2020
a3b68e6
[silgen] When SILGenLValue accesses ref_elt_addr, emit unsafe access …
gottesmm Jan 7, 2020
8dda019
ModuleInterface: lock .swiftinterface while generating module cache
nkcsgexi Jan 9, 2020
142b3ad
[Constraint system] Minor fixes / test updates for function builders.
DougGregor Jan 10, 2020
fbfb67a
[AutoDiff upstream] Define `AutoDiffConfig`. (#29099)
dan-zheng Jan 10, 2020
9d019ed
[gardening] Corrected comment.
nate-chandler Nov 13, 2019
a9f16c7
[gardening] Fixed typo.
nate-chandler Dec 4, 2019
52cf749
[gardening] Corrected comment.
nate-chandler Dec 4, 2019
cdf3817
[gardening] Extracted common expression to value.
nate-chandler Dec 4, 2019
edab098
[runtime] Metadata can be flagged static.
nate-chandler Dec 4, 2019
525e256
[IRGen] Pass argument/table to builders.
nate-chandler Dec 4, 2019
e45b054
[IRGen] Added gate for metadata prespecialization.
nate-chandler Dec 4, 2019
89278f8
[metadata prespecialization] Target only >=5.2.
nate-chandler Jan 4, 2020
9ea71d1
[IRGen] Prepare to refer to prespecializations.
nate-chandler Dec 4, 2019
c2d5d60
[IRGen] Prepare to lazily emit prespecializations.
nate-chandler Dec 4, 2019
840ded4
[IRGen] Accessor returns prespecializations.
nate-chandler Dec 4, 2019
d9205fa
[IRGen] Prepare to emit prespecializations.
nate-chandler Dec 4, 2019
7068141
[IRGen] Emit prespecialized metadata records.
nate-chandler Dec 5, 2019
c4d13e4
[IRGen] Directly reference prespecializations.
nate-chandler Dec 4, 2019
9e2e090
[IRGen] Emit metadata accessors last.
nate-chandler Dec 6, 2019
686c49a
[IRGen] Don't add prespecialized metadata to ABI.
nate-chandler Dec 7, 2019
d78dc03
[metadata prespecialization] Specialize VWTs.
nate-chandler Dec 19, 2019
a8baeb3
Merge pull request #29101 from nkcsgexi/lock-interface-gen-module
nkcsgexi Jan 10, 2020
c584ebd
Merge pull request #29095 from LucianoPAlmeida/validation-test-match-…
slavapestov Jan 10, 2020
b483047
Revert "[Incremental] Dependency fixes in preparation for fine-graine…
compnerd Jan 10, 2020
8ad49ff
[master-rebranch] Change a check to be CHECK-DAG to avoid issues arou…
gottesmm Jan 10, 2020
f883fff
ClangImporter: Fix quadratic behavior with property overrides
slavapestov Jan 10, 2020
837e331
IRGen: handle ASAN better with importing on ELF
compnerd Jan 10, 2020
a2be4fe
Merge pull request #29108 from apple/revert-29009-fine-grained-fixes-…
shahmishal Jan 10, 2020
c769e49
Revert "ModuleInterface: lock .swiftinterface while generating module…
shahmishal Jan 10, 2020
5c04e0d
Merge pull request #29114 from apple/revert-29101-lock-interface-gen-…
shahmishal Jan 10, 2020
946eee9
Merge pull request #29102 from DougGregor/function-builder-via-constr…
DougGregor Jan 10, 2020
66852e2
tests: fix Array test
eeckstein Jan 10, 2020
68f0816
[stdlib] Add withContiguousStorageIfAvailable to SubString.UTF8View
Lukasa Jan 9, 2020
5da0a04
Merge pull request #29119 from eeckstein/fix-array-test
swift-ci Jan 10, 2020
64b8328
tests: fix and re-enable array_contentof_opt test for linux
eeckstein Jan 10, 2020
aba9c8b
Merge pull request #29120 from eeckstein/fix-test
swift-ci Jan 10, 2020
dfc5b06
stdlib: annotate Array's remove functions with semantic attributes.
eeckstein Jan 10, 2020
e606f52
[build] Check for unicode functions in libedit
smeenai Jan 10, 2020
7a3a0a9
Symbol graph support
bitjammer Sep 27, 2019
6209c97
Merge pull request #29094 from Lukasa/cb-substring-fast-access
milseman Jan 10, 2020
3f71bb8
Merge pull request #29121 from eeckstein/fix-array-remove
eeckstein Jan 10, 2020
e1f6e84
Re-apply "ModuleInterface: lock .swiftinterface while generating modu…
nkcsgexi Jan 10, 2020
de368fb
Merge pull request #29109 from slavapestov/fix-property-import-perf-r…
slavapestov Jan 10, 2020
a584202
Merge pull request #29110 from gottesmm/pr-0bc74fd61a702e29597758d97c…
gottesmm Jan 10, 2020
ac7ba74
[CodeCompletion] Stop printing underlined keyword in override completion
rintaro Jan 10, 2020
70e6db8
Revert "[stdlib] Add withContiguousStorageIfAvailable to SubString.UT…
milseman Jan 10, 2020
308ea8a
[TypeChecker] NFC: Add test-case for SR-4664
xedin Jan 10, 2020
0f96a5e
Merge pull request #29123 from nkcsgexi/reapply-file-lock
nkcsgexi Jan 10, 2020
f34c970
Merge pull request #28678 from bitjammer/acgarland/symbol-graph
bitjammer Jan 10, 2020
1430c04
Merge pull request #28610 from nate-chandler/generic-metadata-prespec…
nate-chandler Jan 10, 2020
b49a834
Merge pull request #29127 from rintaro/ide-completion-underlinedkw-rd…
rintaro Jan 10, 2020
e7a4e59
Merge pull request #29130 from xedin/sr-4664
xedin Jan 10, 2020
bbcff82
Merge pull request #29112 from compnerd/elf-autolink-sanitization
compnerd Jan 11, 2020
4194c16
Merge pull request #29128 from apple/revert-29094-cb-substring-fast-a…
milseman Jan 11, 2020
6952f76
Merge pull request #29106 from gottesmm/pr-65a234f04383513e6934cbcb05…
gottesmm Jan 11, 2020
8fe4c07
Merge pull request #28944 from rintaro/ide-completion-rdar58175106
rintaro Jan 11, 2020
a83bfab
[DebugInfo] Stop relying on asm gadgets to extend variable ranges (#2…
vedantk Jan 11, 2020
631b740
Merge pull request #29115 from smeenai/master
swift-ci Jan 11, 2020
1a275a4
[test] Accelerate: Don’t hide utility functions in an if #available b…
lorentey Jan 11, 2020
22bfebe
Merge pull request #29138 from lorentey/accelerate-fix-availability-o…
swift-ci Jan 11, 2020
a4c7cad
test: attempt to fix windows builder
compnerd Jan 11, 2020
b3f5d61
Merge pull request #29144 from compnerd/dash
swift-ci Jan 11, 2020
be7d3d2
Start adding wasm
zhuowei Apr 9, 2019
8c87347
Add wasm object emit support
zhuowei Apr 9, 2019
854b630
build-script: parse skip wasm command line args
zhuowei Apr 9, 2019
47dad58
Handle WASM sdk in cmake
zhuowei Apr 9, 2019
7a7f11a
Integrate Emscripten sdk path
zhuowei Apr 10, 2019
7d4bc9f
start adding Emscripten defines in stdlib
zhuowei Apr 10, 2019
744f3b0
actually pass the icu paths into CMake
zhuowei Apr 10, 2019
fa81b69
do not link WebAssembly shared libraries for now
zhuowei Apr 10, 2019
0e499c0
add script to launch build
zhuowei Apr 10, 2019
81ee2d6
start adding wasm32 to 32-bit checks in stdlib
zhuowei Apr 11, 2019
f821135
WebAssembly: more conditional compile defines
zhuowei Apr 11, 2019
c47380e
Hack: Remove returnaddress calls emitted by exclusivity checks
zhuowei Apr 11, 2019
bf2fbf0
WebAssembly: Hack: disable all atomic instructions
zhuowei Apr 11, 2019
f942606
change non-Emscripten specific ifdefs to check for __wasm__ instead
zhuowei Apr 13, 2019
9d5bea9
Switch to WASI
zhuowei Apr 13, 2019
5411508
fix WASI header includes
zhuowei Apr 13, 2019
146f91b
WebAssembly: Disable Comdat for reflection metadata
zhuowei Apr 14, 2019
1963a32
Disable generating PC-relative relocations in constant builder
zhuowei Apr 14, 2019
d697ef7
WebAssembly: remove even more PCRel relocations
zhuowei Apr 14, 2019
081d348
WebAssembly: remove more PCRel relocations
zhuowei Apr 15, 2019
f028cca
WebAssembly: disable relative pointers in the runtime
zhuowei Apr 15, 2019
a345d20
WebAssembly: HACK: disable generating lldb-optimized debug info
zhuowei Apr 15, 2019
cf04785
Start exporting WASI musl in Glibc modulemap
zhuowei Apr 16, 2019
3f8ccd0
WebAssembly: disable subprocesses
zhuowei Apr 16, 2019
8169976
WebAssembly: add EINVAL constant manually
zhuowei Apr 17, 2019
a308700
WebAssembly: add more wasm Glibc target dependencies to cmakefiles
zhuowei Apr 17, 2019
599e9e1
WebAssembly: hack: Disable tests for now
zhuowei Apr 17, 2019
9da659c
WebAssembly: add more ifdefs for WebAssembly
zhuowei Apr 17, 2019
4df104b
disable DWARF5 and atomics on WebAssembly
zhuowei Apr 18, 2019
685335d
remove the older dwarf5 and atomics patch
zhuowei Apr 18, 2019
57c47af
fix wasi sdk path
zhuowei Apr 19, 2019
d54affb
WebAssembly: HACK: use llvm-ar from the WASI sdk
zhuowei Apr 19, 2019
813a441
WebAssembly: remove file locking on stdin; WASI doesn't support file …
zhuowei Apr 20, 2019
79cb594
WebAssembly: compile ImageInspectionELF for WebAssembly for now
zhuowei Apr 20, 2019
fb0f306
update icu include path
zhuowei Apr 20, 2019
1deb168
WebAssembly: add a sample script for linking a wasm file
zhuowei Apr 20, 2019
7b068f7
WebAssembly: use getentropy on Wasi
zhuowei Apr 20, 2019
d7f643c
fix path to fakeld
zhuowei Apr 21, 2019
f03d51c
WebAssembly: add start/end objects for metadata
zhuowei Apr 22, 2019
e4cec6e
attempt to fix swift_once; doesn't work
zhuowei Apr 24, 2019
1117e19
whoops, missed a swift_once
zhuowei Apr 24, 2019
6c730f3
Add wasm branch scheme to update-checkout-config
MaxDesiatov Apr 29, 2019
e3f3640
WebAssembly: fix metadata table sizes
zhuowei Apr 30, 2019
8c46117
WebAssembly: add a ton of logging when looking up metadata
zhuowei Apr 30, 2019
1f7c6a1
WebAssembly: fix a typo accidentally introduced into CMake file
zhuowei Apr 30, 2019
0918ea1
WebAssembly: fix GOT-relative pointers without PCrel
zhuowei Apr 30, 2019
de91e3c
WebAssembly: add logging in swift_getAssociatedTypeWitness
zhuowei Apr 30, 2019
f556264
Revert "WebAssembly: add logging in swift_getAssociatedTypeWitness"
zhuowei May 2, 2019
bab29e3
Revert "WebAssembly: add a ton of logging when looking up metadata"
zhuowei May 2, 2019
fccc69b
WebAssembly: add replac2 section to start/end objects
zhuowei Jun 9, 2019
90b4dd0
Update default checkout scheme to "wasm".
kverrier Jun 15, 2019
3037fb7
Add --build-swift-static-stdlib to build script
MaxDesiatov Oct 22, 2019
7bba6af
[WASM] Set LIBC_INCLUDE_DIRECTORY for WASM to build SwiftGlibc proper…
kateinoigakukun Oct 27, 2019
0a1f4fc
Support building on macOS to develop this project (#8)
kateinoigakukun Nov 2, 2019
45080a4
Swift Runtime on WebAssembly (#11)
kateinoigakukun Nov 8, 2019
92ff3cf
Move CI build commands to separate scripts (#13)
MaxDesiatov Nov 12, 2019
72845a9
Install wget in ci-linux.sh, make path explicit in build-linux.sh
MaxDesiatov Nov 12, 2019
7867979
Update WASI SDK, create installable package on macOS (#14)
MaxDesiatov Nov 14, 2019
4faa5d4
Make SymbolLookup.swift compilable for wasm (#16)
MaxDesiatov Nov 15, 2019
0a6058d
Run packaging scripts and smoke test on CI (#15)
MaxDesiatov Nov 16, 2019
d9c832c
Upload SwiftWasm artifacts for later inspection (#17)
MaxDesiatov Nov 17, 2019
9e868c8
Move packaging scripts from swiftwasm-package-sdk (#18)
MaxDesiatov Nov 19, 2019
f995fb0
[WASM] Link start/stop symbol weakly (#21)
kateinoigakukun Dec 14, 2019
480f2c1
Emit thunk function for specific ABI on WebAssembly. (#6)
kateinoigakukun Dec 14, 2019
0a363e4
[WebAssembly] Remove conflicted default case
kateinoigakukun Dec 15, 2019
c38802f
[WASM] Replace Wasm with WASI to switch target OS
kateinoigakukun Dec 15, 2019
e70f759
[WebAssembly] Fix merge conflicts
kateinoigakukun Dec 15, 2019
300bd96
[WebAssembly] Fix target triple for CI
kateinoigakukun Dec 15, 2019
35c311c
Fix build comand script for macOS
kateinoigakukun Dec 15, 2019
84b7f90
Fix paths in packaging scripts (#23)
MaxDesiatov Dec 15, 2019
9803745
Bump macOS to 10.15 in GitHub Actions (#25)
MaxDesiatov Dec 18, 2019
63db283
Remove fakeld (#26)
karwa Dec 19, 2019
7b5516f
Re-enable tests (#24)
kateinoigakukun Dec 24, 2019
a2bb344
Eliminate fakepthread dependency (#27)
kateinoigakukun Dec 25, 2019
b335c43
Fix sil-func-extractor and driver (#28)
kateinoigakukun Dec 25, 2019
5ea67cc
Trigger CI
kateinoigakukun Jan 11, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
137 changes: 137 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: CI

on:
push:
branches:
- swiftwasm
pull_request:
branches:
- swiftwasm

jobs:
linux_build:
timeout-minutes: 0
runs-on: ubuntu-18.04

steps:
- uses: actions/checkout@v1
- name: Build Linux installable archive
run: ./utils/webassembly/ci-linux.sh
- name: Upload Linux installable archive
uses: actions/upload-artifact@v1
with:
name: linux-installable
path: ../swiftwasm-linux.tar.gz
- name: Pack test results
run: tar cJf swift-test-results.tar.gz ../build/*/swift-linux-x86_64/swift-test-results
- name: Upload test results
uses: actions/upload-artifact@v1
with:
name: linux-test-results
path: ./swift-test-results.tar.gz

macos_build:
timeout-minutes: 0
runs-on: macos-latest

steps:
- uses: actions/checkout@v1
- name: Build macOS installable archive
run: ./utils/webassembly/ci-mac.sh
- name: Upload macOS installable archive
uses: actions/upload-artifact@v1
with:
name: macos-installable
path: ../swiftwasm-macos.tar.gz
- name: Upload packaging scripts
uses: actions/upload-artifact@v1
with:
name: packaging-scripts
path: utils/webassembly
- name: Pack test results
run: tar cJf swift-test-results.tar.gz ../build/*/swift-macosx-x86_64/swift-test-results
- name: Upload test results
uses: actions/upload-artifact@v1
with:
name: macos-test-results
path: ./swift-test-results.tar.gz
package:
name: Build SwiftWasm packages
needs:
- linux_build
- macos_build
runs-on: ubuntu-18.04
steps:
- name: Download installable Linux archive
uses: actions/download-artifact@v1
with:
name: linux-installable
- name: Download installable macOS archive
uses: actions/download-artifact@v1
with:
name: macos-installable
- name: Download packaging scripts
uses: actions/download-artifact@v1
with:
name: packaging-scripts
- name: Build the packages
shell: bash
run: |
cd packaging-scripts
find . -name '*.sh' -exec chmod +x {} \;
chmod +x sdkroot/swiftwasm
./download-prebuilts.sh

cp ../linux-installable/swiftwasm-linux.tar.gz \
../macos-installable/swiftwasm-macos.tar.gz \
prebuilt
./build-packages.sh

cd output
tar xf swiftwasm-sdk-linux.tar.xz && echo "Successfully unpacked Linux SDK"

cd swiftwasm-sdk
./swiftwasm example/hello.swift hello.wasm && echo "Successfully linked hello.wasm"

- name: Upload macOS package
uses: actions/upload-artifact@v1
with:
name: macos-package
path: packaging-scripts/output/swiftwasm-sdk-macos.tar.xz

- name: Upload Linux package
uses: actions/upload-artifact@v1
with:
name: linux-package
path: packaging-scripts/output/swiftwasm-sdk-linux.tar.xz

- name: Upload hello.wasm compiled with Linux package
uses: actions/upload-artifact@v1
with:
name: linux-hello.wasm
path: packaging-scripts/output/swiftwasm-sdk/hello.wasm

macos_smoke_test:
name: Compile hello.swift on macOS
runs-on: macos-latest
needs: package
steps:
- name: Download SwiftWasm macOS package
uses: actions/download-artifact@v1
with:
name: macos-package

- name: Build hello.wasm
shell: bash
run: |
cd macos-package
tar xf swiftwasm-sdk-macos.tar.xz && echo "Successfully unpacked macOS SDK"

cd swiftwasm-sdk
./swiftwasm example/hello.swift hello.wasm && echo "Successfully linked hello.wasm"

- name: Upload hello.wasm compiled with macOS package
uses: actions/upload-artifact@v1
with:
name: macos-hello.wasm
path: macos-package/swiftwasm-sdk/hello.wasm
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ docs/_build
# Visual Studio metadata
.vs

# clangd
.clangd

#==============================================================================#
# Ignore CMake temporary files
#==============================================================================#
Expand Down
1 change: 1 addition & 0 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Amr Aboelela <amraboelela@gmail.com> <amraboelela@users.noreply.github.com>
Ankit Aggarwal <ankit_aggarwal@apple.com> <ankit.spd@gmail.com>
Argyrios Kyrtzidis <kyrtzidis@apple.com> <akyrtzi@gmail.com>
Arsen Gasparyan <to.arsen.gasparyan@gmail.com> <frootloops@users.noreply.github.com>
Ashley Garland <acgarland@apple.com> <dfarler@apple.com>
Ben Cohen <ben_cohen@apple.com>
Ben Cohen <ben_cohen@apple.com> <airspeedswift@users.noreply.github.com>
Ben Cohen <ben_cohen@apple.com> <ben@airspeedvelocity.net>
Expand Down
58 changes: 44 additions & 14 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -255,11 +255,11 @@ set(SWIFT_ANDROID_DEPLOY_DEVICE_PATH "" CACHE STRING
"Path on an Android device where build products will be pushed. These are used when running the test suite against the device")

#
# User-configurable ICU specific options for Android, FreeBSD, Linux and Haiku.
# User-configurable ICU specific options for Android, FreeBSD, Linux, Haiku, and WebAssembly.
#

foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU)
foreach(arch aarch64;armv6;armv7;i686;powerpc64;powerpc64le;s390x;x86_64)
foreach(sdk ANDROID;FREEBSD;LINUX;WINDOWS;HAIKU;WASI)
foreach(arch aarch64;armv6;armv7;i686;powerpc64;powerpc64le;s390x;wasm32;x86_64)
set(SWIFT_${sdk}_${arch}_ICU_UC "" CACHE STRING
"Path to a directory containing the icuuc library for ${sdk}")
set(SWIFT_${sdk}_${arch}_ICU_UC_INCLUDE "" CACHE STRING
Expand Down Expand Up @@ -633,6 +633,8 @@ else()
set(SWIFT_HOST_VARIANT_ARCH_default "powerpc64le")
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "s390x")
set(SWIFT_HOST_VARIANT_ARCH_default "s390x")
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "wasm32")
set(SWIFT_HOST_VARIANT_ARCH_default "wasm32")
# FIXME: Only matches v6l/v7l - by far the most common variants
elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "armv6l")
set(SWIFT_HOST_VARIANT_ARCH_default "armv6")
Expand Down Expand Up @@ -817,6 +819,18 @@ if(swift_build_windows AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows")
configure_sdk_windows("Windows" "msvc" "${SWIFT_SDK_WINDOWS_ARCHITECTURES}")
endif()

# Should we cross-compile the standard library for WebAssembly (WASI)?
is_sdk_requested(WASI swift_build_wasm)
if(swift_build_wasm AND NOT "${SWIFT_HOST_VARIANT_SDK}" STREQUAL "WASI")
if(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY OR SWIFT_BUILD_DYNAMIC_STDLIB)
message(FATAL_ERROR "Unable to build dynamic overlay/stdlib for WASI. WASM does not support dynamic linking.")
endif()
if("${SWIFT_SDK_WASI_ARCHITECTURES}" STREQUAL "")
set(SWIFT_SDK_WASI_ARCHITECTURES wasm32)
endif()
configure_sdk_unix("WASI" "${SWIFT_SDK_WASI_ARCHITECTURES}")
endif()

if("${SWIFT_SDKS}" STREQUAL "")
set(SWIFT_SDKS "${SWIFT_CONFIGURED_SDKS}")
endif()
Expand Down Expand Up @@ -924,14 +938,24 @@ else()
find_package(LibXml2)
endif()

# You need libedit linked in order to check if you have el_wgets.
cmake_push_check_state()
list(APPEND CMAKE_REQUIRED_LIBRARIES "edit")
check_symbol_exists(el_wgets "histedit.h" HAVE_EL_WGETS)
if(HAVE_EL_WGETS)
set(HAVE_UNICODE_LIBEDIT 1)
if(LLVM_ENABLE_LIBEDIT)
find_package(LibEdit REQUIRED)
else()
find_package(LibEdit)
endif()

if(LibEdit_FOUND)
cmake_push_check_state()
list(APPEND CMAKE_REQUIRED_INCLUDES ${LibEdit_INCLUDE_DIRS})
list(APPEND CMAKE_REQUIRED_LIBRARIES ${LibEdit_LIBRARIES})
check_symbol_exists(el_wgets "histedit.h" HAVE_EL_WGETS)
if(HAVE_EL_WGETS)
set(LibEdit_HAS_UNICODE YES)
else()
set(LibEdit_HAS_UNICODE NO)
endif()
cmake_pop_check_state()
endif()
cmake_pop_check_state()

check_symbol_exists(wait4 "sys/wait.h" HAVE_WAIT4)

Expand All @@ -953,10 +977,16 @@ if(SWIFT_BUILD_SYNTAXPARSERLIB OR SWIFT_BUILD_SOURCEKIT)
set(SWIFT_LIBDISPATCH_CXX_COMPILER ${CMAKE_CXX_COMPILER})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL ${CMAKE_HOST_SYSTEM_NAME})
if(CMAKE_SYSTEM_NAME STREQUAL Windows)
set(SWIFT_LIBDISPATCH_C_COMPILER
$<TARGET_FILE_DIR:clang>/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
set(SWIFT_LIBDISPATCH_CXX_COMPILER
$<TARGET_FILE_DIR:clang>/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
if(CMAKE_SYSTEM_PROCESSOR STREQUAL CMAKE_HOST_SYSTEM_PROCESSOR AND
TARGET clang)
set(SWIFT_LIBDISPATCH_C_COMPILER
$<TARGET_FILE_DIR:clang>/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
set(SWIFT_LIBDISPATCH_CXX_COMPILER
$<TARGET_FILE_DIR:clang>/clang-cl${CMAKE_EXECUTABLE_SUFFIX})
else()
set(SWIFT_LIBDISPATCH_C_COMPILER clang-cl${CMAKE_EXECUTABLE_SUFFIX})
set(SWIFT_LIBDISPATCH_CXX_COMPILER clang-cl${CMAKE_EXECUTABLE_SUFFIX})
endif()
else()
set(SWIFT_LIBDISPATCH_C_COMPILER $<TARGET_FILE_DIR:clang>/clang)
set(SWIFT_LIBDISPATCH_CXX_COMPILER $<TARGET_FILE_DIR:clang>/clang++)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ Please make sure you use Python 2.x. Python 3.x is not supported currently.

#### macOS

To build for macOS, you need [Xcode 11.2](https://developer.apple.com/xcode/downloads/).
To build for macOS, you need [Xcode 11.3](https://developer.apple.com/xcode/downloads/).
The required version of Xcode changes frequently, and is often a beta release.
Check this document or the host information on <https://ci.swift.org> for the
current required version.
Expand Down
11 changes: 7 additions & 4 deletions benchmark/scripts/Benchmark_DTrace.in
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class DTraceBenchmarkDriver(perf_test_driver.BenchmarkDriver):
def __init__(self, binary, xfail_list, csv_output):
perf_test_driver.BenchmarkDriver.__init__(
self, binary, xfail_list,
enable_parallel=False,
enable_parallel=True,
opt_levels=['O'])
self.csv_output = csv_output

Expand All @@ -86,11 +86,14 @@ class DTraceBenchmarkDriver(perf_test_driver.BenchmarkDriver):
sys.stdout.flush()

def get_results_with_iters(iters):
e = os.environ
e['SWIFT_DETERMINISTIC_HASHING'] = '1'
p = subprocess.Popen([
'sudo', 'dtrace', '-s', DTRACE_PATH,
'-c', '%s %s %s' % (data['path'], data['test_name'],
'--num-iters=%d' % iters)
], stdout=subprocess.PIPE, stderr=open('/dev/null', 'w'))
'-c', '%s %s %s %s' % (data['path'], data['test_name'],
'--num-iters=%d' % iters,
'--num-samples=2')
], stdout=subprocess.PIPE, stderr=open('/dev/null', 'w'), env=e)
results = [x for x in p.communicate()[0].split("\n") if len(x) > 0]
return [
x.split(',')[1] for x in
Expand Down
7 changes: 4 additions & 3 deletions benchmark/utils/DriverUtils.swift
Original file line number Diff line number Diff line change
Expand Up @@ -412,9 +412,10 @@ final class TestRunner {
private static func getExecutedInstructions() -> UInt64 {
if #available(OSX 10.9, iOS 7.0, *) {
var u = rusage_info_v4()
let p = UnsafeMutablePointer(&u)
p.withMemoryRebound(to: Optional<rusage_info_t>.self, capacity: 1) { up in
let _ = proc_pid_rusage(getpid(), RUSAGE_INFO_V4, up)
withUnsafeMutablePointer(to: &u) { p in
p.withMemoryRebound(to: Optional<rusage_info_t>.self, capacity: 1) { up in
let _ = proc_pid_rusage(getpid(), RUSAGE_INFO_V4, up)
}
}
return u.ri_instructions
} else {
Expand Down
26 changes: 25 additions & 1 deletion cmake/modules/AddSwift.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,8 @@ function(_add_variant_c_compile_flags)
list(APPEND result -isystem;${path})
endforeach()
list(APPEND result "-D__ANDROID_API__=${SWIFT_ANDROID_API_LEVEL}")
elseif("${CFLAGS_SDK}" STREQUAL "WASI")
list(APPEND result "-D_WASI_EMULATED_MMAN")
elseif(CFLAGS_SDK STREQUAL WINDOWS)
swift_windows_include_for_arch(${CFLAGS_ARCH} ${CFLAGS_ARCH}_INCLUDE)
foreach(path ${${CFLAGS_ARCH}_INCLUDE})
Expand Down Expand Up @@ -391,6 +393,8 @@ function(_add_variant_swift_compile_flags
foreach(path IN LISTS ${arch}_swift_include)
list(APPEND result "\"${CMAKE_INCLUDE_FLAG_C}${path}\"")
endforeach()
elseif("${sdk}" STREQUAL "WASI")
list(APPEND result "-Xcc" "-D_WASI_EMULATED_MMAN")
endif()

if(NOT BUILD_STANDALONE)
Expand Down Expand Up @@ -500,6 +504,8 @@ function(_add_variant_link_flags)
foreach(path IN LISTS ${LFLAGS_ARCH}_LIB)
list(APPEND library_search_directories ${path})
endforeach()
elseif("${LFLAGS_SDK}" STREQUAL "WASI")
list(APPEND result "-Wl,wasi-emulated-mman")
else()
# If lto is enabled, we need to add the object path flag so that the LTO code
# generator leaves the intermediate object file in a place where it will not
Expand Down Expand Up @@ -996,7 +1002,8 @@ function(_add_swift_library_single target name)
${INCORPORATED_OBJECT_LIBRARIES_EXPRESSIONS}
${SWIFTLIB_SINGLE_XCODE_WORKAROUND_SOURCES})
if(("${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "ELF" OR
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF") AND
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "COFF" OR
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_OBJECT_FORMAT}" STREQUAL "WASM") AND
SWIFTLIB_SINGLE_TARGET_LIBRARY)
if("${libkind}" STREQUAL "SHARED" AND NOT SWIFTLIB_SINGLE_NOSWIFTRT)
# TODO(compnerd) switch to the generator expression when cmake is upgraded
Expand Down Expand Up @@ -1315,6 +1322,12 @@ function(_add_swift_library_single target name)
list(APPEND c_compile_flags -D_WINDLL)
endif()
endif()
# Double-check that we're not trying to build a dynamic library for WASM.
if(SWIFTLIB_SINGLE_SDK MATCHES WASM)
if(libkind STREQUAL SHARED)
message(FATAL_ERROR "WASM does not support shared libraries.")
endif()
endif()
_add_variant_link_flags(
SDK "${SWIFTLIB_SINGLE_SDK}"
ARCH "${SWIFTLIB_SINGLE_ARCHITECTURE}"
Expand Down Expand Up @@ -1612,6 +1625,9 @@ endfunction()
# SWIFT_MODULE_DEPENDS_HAIKU
# Swift modules this library depends on when built for Haiku.
#
# SWIFT_MODULE_DEPENDS_WASI
# Swift modules this library depends on when built for WASI.
#
# FRAMEWORK_DEPENDS
# System frameworks this library depends on.
#
Expand Down Expand Up @@ -1720,7 +1736,9 @@ function(add_swift_target_library name)
SWIFT_MODULE_DEPENDS_OSX
SWIFT_MODULE_DEPENDS_TVOS
SWIFT_MODULE_DEPENDS_WATCHOS
SWIFT_MODULE_DEPENDS_WASI
SWIFT_MODULE_DEPENDS_WINDOWS
SWIFT_MODULE_DEPENDS_FROM_SDK
TARGET_SDKS)

cmake_parse_arguments(SWIFTLIB
Expand Down Expand Up @@ -1829,6 +1847,9 @@ function(add_swift_target_library name)
elseif(${sdk} STREQUAL HAIKU)
list(APPEND swiftlib_module_depends_flattened
${SWIFTLIB_SWIFT_MODULE_DEPENDS_HAIKU})
elseif(${sdk} STREQUAL WASI)
list(APPEND swiftlib_module_depends_flattened
${SWIFTLIB_SWIFT_MODULE_DEPENDS_WASI})
elseif(${sdk} STREQUAL WINDOWS)
list(APPEND swiftlib_module_depends_flattened
${SWIFTLIB_SWIFT_MODULE_DEPENDS_WINDOWS})
Expand Down Expand Up @@ -1960,6 +1981,9 @@ function(add_swift_target_library name)
set(swiftlib_c_compile_flags_all ${SWIFTLIB_C_COMPILE_FLAGS})
if(sdk IN_LIST SWIFT_APPLE_PLATFORMS AND SWIFTLIB_IS_SDK_OVERLAY)
set(swiftlib_swift_compile_private_frameworks_flag "-Fsystem" "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}/System/Library/PrivateFrameworks/")
foreach(tbd_lib ${SWIFTLIB_SWIFT_MODULE_DEPENDS_FROM_SDK})
list(APPEND swiftlib_link_flags_all "${SWIFT_SDK_${sdk}_ARCH_${arch}_PATH}/usr/lib/swift/libswift${tbd_lib}.tbd")
endforeach()
endif()

list(APPEND swiftlib_c_compile_flags_all "-DSWIFT_TARGET_LIBRARY_NAME=${name}")
Expand Down
Loading