Skip to content

Instantly share code, notes, and snippets.

@gfx
Last active December 4, 2015 11:37
Show Gist options
  • Save gfx/c858a31b118922279a8f to your computer and use it in GitHub Desktop.
Save gfx/c858a31b118922279a8f to your computer and use it in GitHub Desktop.
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