Last active
December 4, 2015 11:37
-
-
Save gfx/c858a31b118922279a8f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/utils/benchmark/Richards/richards.swift b/utils/benchmark/Richards/richards.swift | |
index b5349b0..241e804 100644 | |
--- a/utils/benchmark/Richards/richards.swift | |
+++ b/utils/benchmark/Richards/richards.swift | |
@@ -44,7 +44,7 @@ class Packet { | |
func dump() { | |
print("PACKET") | |
- if link { | |
+ if link != nil { | |
print("link \(link!.id)") | |
} | |
print("id \(id)") | |
@@ -53,7 +53,7 @@ class Packet { | |
for a in a2 { | |
print("\(a) ") | |
} | |
- print() | |
+ print("") | |
} | |
} | |
@@ -85,7 +85,7 @@ class Task { | |
case Bits(UInt8) | |
var bits: UInt8 { | |
switch self { | |
- case .Bits(var i): | |
+ case .Bits(let i): | |
return i | |
} | |
} | |
@@ -98,11 +98,10 @@ class Task { | |
var taskid: Int { | |
get { | |
switch self { | |
- case TaskID(var i): | |
+ case TaskID(let i): | |
return i | |
default: | |
fatalError("Task value is not a task ID") | |
- return 0 | |
} | |
} | |
set(newid) { | |
@@ -112,17 +111,16 @@ class Task { | |
var packet: Packet? { | |
get { | |
switch self { | |
- case Worklist(var wkq): | |
+ case Worklist(let wkq): | |
return wkq | |
case None: | |
return .None | |
default: | |
fatalError("Task value is not a worklist") | |
- return .None | |
} | |
} | |
set(newpacket) { | |
- self = !newpacket ? None : Worklist(newpacket!) | |
+ self = newpacket == nil ? None : Worklist(newpacket!) | |
} | |
} | |
} | |
@@ -135,11 +133,10 @@ class Task { | |
var count: Int { | |
get { | |
switch self { | |
- case Count(var i): | |
+ case Count(let i): | |
return i | |
default: | |
fatalError("Task value is not a count") | |
- return 0 | |
} | |
} | |
set(newcount) { | |
@@ -149,17 +146,16 @@ class Task { | |
var packet: Packet? { | |
get { | |
switch self { | |
- case Worklist(var wkq): | |
+ case Worklist(let wkq): | |
return wkq | |
case None: | |
return .None | |
default: | |
fatalError("Task value is not a worklist") | |
- return .None | |
} | |
} | |
set(newpacket) { | |
- self = !newpacket ? None : Worklist(newpacket!) | |
+ self = newpacket == nil ? None : Worklist(newpacket!) | |
} | |
} | |
} | |
@@ -202,7 +198,7 @@ struct Richards { | |
v1: Task.Val1, | |
v2: Task.Val2) { | |
- var newtask = Task( | |
+ let newtask = Task( | |
link:tasklist, | |
id:id, | |
pri:pri, | |
@@ -220,7 +216,7 @@ struct Richards { | |
mutating func trace(a: UnicodeScalar) { | |
if --layout <= 0 { | |
- print() | |
+ print("") | |
layout = 50; | |
} | |
print("\(a)"); | |
@@ -233,7 +229,7 @@ struct Richards { | |
var tracing = false | |
mutating func schedule() { | |
- while tcb { | |
+ while tcb != nil { | |
debug("TCB \(tcb!.id) state \(tcb!.state.bits)") | |
var pkt:Packet? = .None | |
@@ -243,7 +239,7 @@ struct Richards { | |
case .Bits(TSWaitPkt): | |
pkt = tcb!.wkq | |
tcb!.wkq = pkt!.link | |
- tcb!.state = Task.State.Bits(!tcb!.wkq ? TSRun : TSRunPkt) | |
+ tcb!.state = Task.State.Bits(tcb!.wkq == nil ? TSRun : TSRunPkt) | |
fallthrough | |
case .Bits(TSRun), | |
.Bits(TSRunPkt): | |
@@ -251,7 +247,7 @@ struct Richards { | |
v1 = tcb!.v1 | |
v2 = tcb!.v2 | |
if tracing { | |
- trace(UnicodeScalar(UInt32(taskid!)+"0".value)) | |
+ trace(UnicodeScalar(UInt32(taskid!)+UInt32(UnicodeScalar("0")))) | |
} | |
newtcb = tcb!.fn(pkt) | |
tcb!.v1 = v1 | |
@@ -288,16 +284,16 @@ struct Richards { | |
if 1 <= id && id <= 10 { | |
t = tasktab[id] | |
} | |
- if !t { | |
- print() | |
+ if t == nil { | |
+ print("") | |
print("Bad task id \(id)") | |
} | |
return t | |
} | |
func release(id: Int) -> Task? { | |
- var t = findtcb(id) | |
- if !t { | |
+ let t = findtcb(id) | |
+ if t == nil { | |
return t | |
} | |
t!.state = Task.State.Bits(t!.state.bits & TSNotHoldBit) | |
@@ -311,14 +307,14 @@ struct Richards { | |
mutating func qpkt(pkt: Packet) -> Task? { | |
let tt = findtcb(pkt.id) | |
- if !tt { | |
+ if tt == nil { | |
return tt | |
} | |
let t = tt! | |
++qpktcount | |
pkt.link = .None | |
pkt.id = taskid! | |
- if !t.wkq { | |
+ if t.wkq == nil { | |
t.wkq = pkt | |
t.state = Task.State.Bits(t.state.bits | TSPktBit) | |
if t.pri > tcb!.pri { | |
@@ -354,7 +350,7 @@ struct Richards { | |
mutating func workfn(pkt: Packet?) -> Task? { | |
debug("WORK") | |
- if !pkt { | |
+ if pkt == nil { | |
return Wait() | |
} | |
v1 = Task.Val1.TaskID(TIHandlerA + TIHandlerB - v1.taskid) | |
@@ -380,7 +376,7 @@ struct Richards { | |
mutating func handlerfn(pkt: Packet?) -> Task? { | |
debug("HANDLE") | |
- if pkt { | |
+ if pkt == nil { | |
debug({pkt!.dump()}) | |
switch pkt!.kind { | |
case .Work: | |
@@ -389,15 +385,15 @@ struct Richards { | |
v2.packet = append(pkt!, ptr:v2.packet) | |
} | |
} | |
- if v1.packet { | |
+ if v1.packet == nil { | |
let workpkt = v1.packet! | |
let count = Int(workpkt.a1) | |
if count >= BufSize { | |
v1.packet = workpkt.link | |
return qpkt(workpkt) | |
} | |
- if v2.packet { | |
- var devpkt = v2.packet! | |
+ if v2.packet == nil { | |
+ let devpkt = v2.packet! | |
v2.packet = v2.packet!.link | |
devpkt.a1 = UInt32(v1.packet!.a2[count]) | |
v1.packet!.a1 = UInt32(count + 1) | |
@@ -409,11 +405,11 @@ struct Richards { | |
mutating func devfn(pkt: Packet?) -> Task? { | |
debug("DEV") | |
- if !pkt { | |
- if !v1.packet { | |
+ if pkt == nil { | |
+ if v1.packet == nil { | |
return Wait() | |
} | |
- var pkt = v1.packet | |
+ let pkt = v1.packet | |
v1.packet = .None | |
return qpkt(pkt!) | |
} | |
@@ -429,11 +425,11 @@ struct Richards { | |
// field at offset 0). Instead, we return the new queue. | |
func append(pkt: Packet, ptr: Packet?) -> Packet { | |
pkt.link = .None | |
- if !ptr { | |
+ if ptr == nil { | |
return pkt | |
} | |
var next = ptr! | |
- while next.link { | |
+ while next.link != nil { | |
next = next.link! | |
} | |
next.link = pkt | |
@@ -448,35 +444,35 @@ struct Richards { | |
print("Bench mark starting") | |
var wkq: Packet? = .None | |
- createTask(TIIdle, pri:0, wkq:wkq, state:Task.State.Bits(TSRun), fn:idlefn, | |
+ createTask(TIIdle, pri:0, wkq:wkq, state:Task.State.Bits(TSRun), fn: { x in self.idlefn(x) }, | |
v1:Task.Val1.TaskID(1), v2:Task.Val2.Count(Count)) | |
wkq = Packet(link:.None, id:0, kind:Packet.Kind.Work) | |
wkq = Packet(link:wkq, id:0, kind:Packet.Kind.Work) | |
createTask(TIWork, pri:1000, wkq:wkq, state:Task.State.Bits(TSWaitPkt), | |
- fn:workfn, v1:Task.Val1.TaskID(TIHandlerA), v2:Task.Val2.None) | |
+ fn: { x in self.workfn(x) }, v1:Task.Val1.TaskID(TIHandlerA), v2:Task.Val2.None) | |
wkq = Packet(link:.None, id:TIDevA, kind:Packet.Kind.Dev) | |
wkq = Packet(link:wkq, id:TIDevA, kind:Packet.Kind.Dev) | |
wkq = Packet(link:wkq, id:TIDevA, kind:Packet.Kind.Dev) | |
createTask(TIHandlerA, pri:2000, wkq:wkq, state:Task.State.Bits(TSWaitPkt), | |
- fn:handlerfn, v1:Task.Val1.None, v2:Task.Val2.None) | |
+ fn: { x in self.handlerfn(x) }, v1:Task.Val1.None, v2:Task.Val2.None) | |
wkq = Packet(link:.None, id:TIDevB, kind:Packet.Kind.Dev) | |
wkq = Packet(link:wkq, id:TIDevB, kind:Packet.Kind.Dev) | |
wkq = Packet(link:wkq, id:TIDevB, kind:Packet.Kind.Dev) | |
createTask(TIHandlerB, pri:3000, wkq:wkq, state:Task.State.Bits(TSWaitPkt), | |
- fn:handlerfn, v1:Task.Val1.None, v2:Task.Val2.None) | |
+ fn: { x in self.handlerfn(x) }, v1:Task.Val1.None, v2:Task.Val2.None) | |
wkq = .None | |
createTask(TIDevA, pri:4000, wkq:wkq, state:Task.State.Bits(TSWait), | |
- fn:devfn, v1:Task.Val1.None, v2:Task.Val2.None) | |
+ fn: { x in self.devfn(x) }, v1:Task.Val1.None, v2:Task.Val2.None) | |
createTask(TIDevB, pri:5000, wkq:wkq, state:Task.State.Bits(TSWait), | |
- fn:devfn, v1:Task.Val1.None, v2:Task.Val2.None) | |
+ fn: { x in self.devfn(x) }, v1:Task.Val1.None, v2:Task.Val2.None) | |
tcb = tasklist | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment