Skip to content

Commit 02acfbf

Browse files
committed
---
yaml --- r: 346079 b: refs/heads/master c: ae9b8f8 h: refs/heads/master i: 346077: 87559d0 346075: 1fdd26b 346071: 29da27d 346063: d42446b 346047: 5e38dee
1 parent 342b236 commit 02acfbf

File tree

6 files changed

+97
-1
lines changed

6 files changed

+97
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 0fa8ddc44476c6adf1aa127629fc4b92307bc1af
2+
refs/heads/master: ae9b8f8a942921909e4d343839cbafd5136cc81f
33
refs/heads/master-next: 203b3026584ecad859eb328b2e12490099409cd5
44
refs/tags/osx-passed: b6b74147ef8a386f532cf9357a1bde006e552c54
55
refs/tags/swift-2.2-SNAPSHOT-2015-12-01-a: 6bb18e013c2284f2b45f5f84f2df2887dc0f7dea

trunk/benchmark/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ set(SWIFT_BENCH_MODULES
9494
single-source/InsertCharacter
9595
single-source/Integrate
9696
single-source/IterateData
97+
single-source/JSON
9798
single-source/Join
9899
single-source/LazyFilter
99100
single-source/LinkedList
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
//===--- JSON.swift -------------------------------------------------------===//
2+
//
3+
// This source file is part of the Swift.org open source project
4+
//
5+
// Copyright (c) 2018 Apple Inc. and the Swift project authors
6+
// Licensed under Apache License v2.0 with Runtime Library Exception
7+
//
8+
// See https://swift.org/LICENSE.txt for license information
9+
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
10+
//
11+
//===----------------------------------------------------------------------===//
12+
13+
import TestsUtils
14+
import Foundation
15+
16+
public let JSON = [
17+
BenchmarkInfo(name: "JSONPerfEncode", runFunction: run_JSONPerfEncode, tags: [.validation, .bridging], setUpFunction: setup_coder),
18+
BenchmarkInfo(name: "JSONPerfDecode", runFunction: run_JSONPerfDecode, tags: [.validation, .bridging], setUpFunction: setup_coder),
19+
]
20+
21+
22+
struct Tove: Codable {
23+
var slithy: Bool = true
24+
var gyreInRadians: Double = 0.3
25+
}
26+
27+
struct Borogove : Codable {
28+
var mimsyness: Int = Int.max
29+
}
30+
31+
struct Wabe : Codable {
32+
var toves: [Tove]
33+
var borogoves: [Borogove]?
34+
static var canonical: Wabe {
35+
return Wabe(toves: [Tove(), Tove(), Tove(), Tove(),
36+
Tove(slithy: false, gyreInRadians: 1.8)],
37+
borogoves: [Borogove(mimsyness: 18), Borogove(mimsyness: 74),
38+
Borogove(), Borogove()])
39+
}
40+
}
41+
42+
struct Beast : Codable {
43+
var name: String
44+
}
45+
46+
47+
struct Jabberwocky : Codable {
48+
var time = "brillig"
49+
var wabe = Wabe.canonical
50+
var beware: [Beast] = [ Beast(name: "Jabberwock"), Beast(name: "Bandersnatch"), Beast(name: "Jubjub Bird")]
51+
var swordType = "vörpal"
52+
}
53+
54+
struct JSONPerfTester {
55+
var poems = Array(repeating: Jabberwocky(), count: 6)
56+
var encoder: JSONEncoder = JSONEncoder()
57+
var decoder: JSONDecoder = JSONDecoder()
58+
var data: Data! = nil
59+
60+
init() {
61+
data = try! encoder.encode(Array(poems.prefix(3)))
62+
//pre-warm everything to try to reduce variance
63+
let _ = try! encoder.encode(poems)
64+
let _ = try! decoder.decode(Array<Jabberwocky>.self,
65+
from: data)
66+
}
67+
}
68+
69+
var tester: JSONPerfTester! = nil
70+
71+
public func setup_coder() {
72+
tester = JSONPerfTester()
73+
}
74+
75+
@inline(never)
76+
public func run_JSONPerfEncode(_ N: Int) {
77+
for _ in 0 ..< N {
78+
let _ = try! tester.encoder.encode(tester.poems)
79+
}
80+
}
81+
82+
@inline(never)
83+
public func run_JSONPerfDecode(_ N: Int) {
84+
for _ in 0 ..< N {
85+
let _ = try! tester.decoder.decode(Array<Jabberwocky>.self,
86+
from: tester.data)
87+
}
88+
}

trunk/benchmark/utils/main.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import Histogram
8282
import InsertCharacter
8383
import Integrate
8484
import IterateData
85+
import JSON
8586
import Join
8687
import LazyFilter
8788
import LinkedList
@@ -254,6 +255,7 @@ registerBenchmark(Histogram)
254255
registerBenchmark(InsertCharacter)
255256
registerBenchmark(IntegrateTest)
256257
registerBenchmark(IterateData)
258+
registerBenchmark(JSON)
257259
registerBenchmark(Join)
258260
registerBenchmark(LazyFilter)
259261
registerBenchmark(LinkedList)

trunk/cmake/modules/AddSwift.cmake

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1619,6 +1619,7 @@ function(add_swift_target_library name)
16191619
SWIFT_MODULE_DEPENDS_OSX
16201620
SWIFT_MODULE_DEPENDS_TVOS
16211621
SWIFT_MODULE_DEPENDS_WATCHOS
1622+
SWIFT_MODULE_DEPENDS_WINDOWS
16221623
TARGET_SDKS)
16231624

16241625
cmake_parse_arguments(SWIFTLIB
@@ -1742,6 +1743,9 @@ function(add_swift_target_library name)
17421743
elseif(${sdk} STREQUAL HAIKU)
17431744
list(APPEND swiftlib_module_depends_flattened
17441745
${SWIFTLIB_SWIFT_MODULE_DEPENDS_HAIKU})
1746+
elseif(${sdk} STREQUAL WINDOWS)
1747+
list(APPEND swiftlib_module_depends_flattened
1748+
${SWIFTLIB_SWIFT_MODULE_DEPENDS_WINDOWS})
17451749
endif()
17461750

17471751
# Collect architecture agnostic SDK framework dependencies

trunk/stdlib/private/SwiftPrivateThreadExtras/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ add_swift_target_library(swiftSwiftPrivateThreadExtras ${SWIFT_STDLIB_LIBRARY_BU
1212
SWIFT_MODULE_DEPENDS_FREEBSD Glibc
1313
SWIFT_MODULE_DEPENDS_CYGWIN Glibc
1414
SWIFT_MODULE_DEPENDS_HAIKU Glibc
15+
SWIFT_MODULE_DEPENDS_WINDOWS MSVCRT
1516
SWIFT_COMPILE_FLAGS
1617
INSTALL_IN_COMPONENT stdlib-experimental)
1718

0 commit comments

Comments
 (0)