mu/arc/.traces/channel-handoff-routine

322 lines
18 KiB
Plaintext

c{0: 0 (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) -- nil
c{0: 1 (((1 channel-address)) <- ((init-channel)) ((3 literal))) -- nil
c{0: 2 (((fork)) ((producer fn)) ((default-space space-address) (globals)) ((nil literal) (limit))) -- nil
c{0: 3 (((1 tagged-value) (raw)) <- ((read)) ((1 channel-address))) -- nil
c{1: 0 ✓ (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
c{1: 1 ✓ (((1 channel-address)) <- ((init-channel)) ((3 literal)))
c{1: 2 ✓ (((fork)) ((producer fn)) ((default-space space-address) (globals)) ((nil literal) (limit)))
c{1: 3 ✓ (((1 tagged-value) (raw)) <- ((read)) ((1 channel-address)))
c{0: 0 (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) -- nil
c{0: 1 (((n integer)) <- ((copy)) ((24 literal))) -- nil
c{0: 2 (((x tagged-value)) <- ((save-type)) ((n integer))) -- nil
c{0: 3 (((1 channel-address) (space global) (deref)) <- ((write)) ((1 channel-address) (space global)) ((x tagged-value))) -- nil
c{1: 0 ✓ (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
c{1: 1 ✓ (((n integer)) <- ((copy)) ((24 literal)))
c{1: 2 ✓ (((x tagged-value)) <- ((save-type)) ((n integer)))
c{1: 3 ✓ (((1 channel-address) (space global) (deref)) <- ((write)) ((1 channel-address) (space global)) ((x tagged-value)))
cn0: convert-names in consumer
cn0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) nil nil
cn0: checking arg ((space literal))
cn0: checking arg ((30 literal))
cn0: checking oarg ((default-space space-address))
maybe-add: ((default-space space-address))
cn0: (((1 channel-address)) <- ((init-channel)) ((3 literal))) nil nil
cn0: checking arg ((3 literal))
cn0: checking oarg ((1 channel-address))
maybe-add: ((1 channel-address))
cn0: (((fork)) ((producer fn)) ((default-space space-address) (globals)) ((nil literal) (limit))) nil nil
cn0: checking arg ((producer fn))
cn0: checking arg ((default-space space-address) (globals))
maybe-add: ((default-space space-address) (globals))
cn0: checking arg ((nil literal) (limit))
cn0: (((1 tagged-value) (raw)) <- ((read)) ((1 channel-address))) nil nil
cn0: checking arg ((1 channel-address))
maybe-add: ((1 channel-address))
cn0: checking oarg ((1 tagged-value) (raw))
maybe-add: ((1 tagged-value) (raw))
cn0: convert-names in producer
cn0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) nil nil
cn0: checking arg ((space literal))
cn0: checking arg ((30 literal))
cn0: checking oarg ((default-space space-address))
maybe-add: ((default-space space-address))
cn0: (((n integer)) <- ((copy)) ((24 literal))) nil nil
cn0: checking arg ((24 literal))
cn0: checking oarg ((n integer))
maybe-add: ((n integer))
cn0: location for oarg ((n integer)): 1
cn0: (((x tagged-value)) <- ((save-type)) ((n integer))) ((n 1)) nil
cn0: checking arg ((n integer))
maybe-add: ((n integer))
cn0: checking oarg ((x tagged-value))
maybe-add: ((x tagged-value))
cn0: location for oarg ((x tagged-value)): 2
cn0: (((1 channel-address) (space global) (deref)) <- ((write)) ((1 channel-address) (space global)) ((x tagged-value))) ((n 1) (x 2)) nil
cn0: checking arg ((1 channel-address) (space global))
maybe-add: ((1 channel-address) (space global))
cn0: checking arg ((x tagged-value))
maybe-add: ((x tagged-value))
cn0: checking oarg ((1 channel-address) (space global) (deref))
maybe-add: ((1 channel-address) (space global) (deref))
cn1: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
cn1: (((1 channel-address)) <- ((init-channel)) ((3 literal)))
cn1: (((fork)) ((producer fn)) ((default-space space-address) (globals)) ((nil literal) (limit)))
cn1: (((1 tagged-value) (raw)) <- ((read)) ((1 channel-address)))
cn1: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
cn1: (((1 integer)) <- ((copy)) ((24 literal)))
cn1: (((2 tagged-value)) <- ((save-type)) ((1 integer)))
cn1: (((1 channel-address) (space global) (deref)) <- ((write)) ((1 channel-address) (space global)) ((2 tagged-value)))
schedule: consumer
run: consumer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: consumer 0: 1000 => ((default-space space-address))
run: consumer 1: (((1 channel-address)) <- ((init-channel)) ((3 literal)))
run: init-channel/consumer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: init-channel/consumer 0: 1031 => ((default-space space-address))
run: init-channel/consumer 1: (((1 channel-address)) <- ((new)) ((channel literal)))
run: init-channel/consumer 1: 1062 => ((1 channel-address))
mem: ((1 channel-address)): 1033 <= 1062
run: init-channel/consumer 2: (((2 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((0 offset)))
run: init-channel/consumer 2: 1062 => ((2 integer-address))
mem: ((2 integer-address)): 1034 <= 1062
run: init-channel/consumer 3: (((2 integer-address) (deref)) <- ((copy)) ((0 literal)))
run: init-channel/consumer 3: 0 => ((2 integer-address) (deref))
mem: ((2 integer-address) (deref)): 1062 <= 0
run: init-channel/consumer 4: (((3 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((1 offset)))
run: init-channel/consumer 4: 1063 => ((3 integer-address))
mem: ((3 integer-address)): 1035 <= 1063
run: init-channel/consumer 5: (((3 integer-address) (deref)) <- ((copy)) ((0 literal)))
run: init-channel/consumer 5: 0 => ((3 integer-address) (deref))
mem: ((3 integer-address) (deref)): 1063 <= 0
run: init-channel/consumer 6: (((4 integer)) <- ((next-input)))
arg: nil 0 (3)
run: init-channel/consumer 6: 3 => ((4 integer))
mem: ((4 integer)): 1036 <= 3
run: init-channel/consumer 7: (((4 integer)) <- ((add)) ((4 integer)) ((1 literal)))
mem: ((4 integer)) => 3
run: init-channel/consumer 7: 4 => ((4 integer))
mem: ((4 integer)): 1036 <= 4
run: init-channel/consumer 8: (((5 tagged-value-array-address-address)) <- ((get-address)) ((1 channel-address) (deref)) ((2 offset)))
run: init-channel/consumer 8: 1064 => ((5 tagged-value-array-address-address))
mem: ((5 tagged-value-array-address-address)): 1037 <= 1064
run: init-channel/consumer 9: (((5 tagged-value-array-address-address) (deref)) <- ((new)) ((tagged-value-array literal)) ((4 integer)))
mem: ((4 integer)) => 4
run: init-channel/consumer 9: 1065 => ((5 tagged-value-array-address-address) (deref))
mem: ((5 tagged-value-array-address-address) (deref)): 1064 <= 1065
run: init-channel/consumer 10: (((reply)) ((1 channel-address)))
mem: ((1 channel-address)) => 1062
run: consumer 1: 1062 => ((1 channel-address))
mem: ((1 channel-address)): 1002 <= 1062
run: consumer 2: (((fork)) ((producer fn)) ((default-space space-address) (globals)) ((nil literal) (limit)))
run: consumer 3: (((1 tagged-value) (raw)) <- ((read)) ((1 channel-address)))
mem: ((1 channel-address)) => 1062
run: read/consumer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: read/consumer 0: 1074 => ((default-space space-address))
run: read/consumer 1: (((1 channel-address)) <- ((next-input)))
arg: nil 0 (1062)
run: read/consumer 1: 1062 => ((1 channel-address))
mem: ((1 channel-address)): 1076 <= 1062
run: read/consumer 2: (((2 boolean)) <- ((empty?)) ((1 channel-address) (deref)))
mem: ((1 channel-address) (deref)) => #(tagged record (0 0 1065 . nil))
run: empty?/read/consumer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: empty?/read/consumer 0: 1105 => ((default-space space-address))
run: empty?/read/consumer 1: (((1 channel)) <- ((next-input)))
arg: nil 0 (#(tagged record (0 0 1065 . nil)))
run: empty?/read/consumer 1: #(tagged record (0 0 1065 . nil)) => ((1 channel))
mem: ((1 channel)): 1107 <= 0
mem: ((1 channel)): 1108 <= 0
mem: ((1 channel)): 1109 <= 1065
run: empty?/read/consumer 2: (((4 integer)) <- ((get)) ((1 channel)) ((0 offset)))
mem: ((1107 integer) (raw)) => 0
run: empty?/read/consumer 2: 0 => ((4 integer))
mem: ((4 integer)): 1110 <= 0
run: empty?/read/consumer 3: (((5 integer)) <- ((get)) ((1 channel)) ((1 offset)))
mem: ((1108 integer) (raw)) => 0
run: empty?/read/consumer 3: 0 => ((5 integer))
mem: ((5 integer)): 1111 <= 0
run: empty?/read/consumer 4: (((6 boolean)) <- ((equal)) ((4 integer)) ((5 integer)))
mem: ((4 integer)) => 0
mem: ((5 integer)) => 0
run: empty?/read/consumer 4: t => ((6 boolean))
mem: ((6 boolean)): 1112 <= t
run: empty?/read/consumer 5: (((reply)) ((6 boolean)))
mem: ((6 boolean)) => t
run: read/consumer 2: t => ((2 boolean))
mem: ((2 boolean)): 1077 <= t
run: read/consumer 3: (((jump-unless)) ((2 boolean)) ((2 offset)))
mem: ((2 boolean)) => t
run: read/consumer 4: (((3 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((1 offset)))
run: read/consumer 4: 1063 => ((3 integer-address))
mem: ((3 integer-address)): 1078 <= 1063
run: read/consumer 5: (((sleep)) ((until-location-changes literal)) ((3 integer-address) (deref)))
mem: ((3 integer-address) (deref)) => 0
schedule: pushing read/consumer to sleep queue
schedule: producer
run: producer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: producer 0: 101000 => ((default-space space-address))
run: producer 1: (((1 integer)) <- ((copy)) ((24 literal)))
run: producer 1: 24 => ((1 integer))
mem: ((1 integer)): 101002 <= 24
run: producer 2: (((2 tagged-value)) <- ((save-type)) ((1 integer)))
mem: ((1 integer)) => 24
run: producer 2: #(tagged record (integer 24)) => ((2 tagged-value))
mem: ((2 tagged-value)): 101003 <= integer
mem: ((2 tagged-value)): 101004 <= 24
run: producer 3: (((1 channel-address) (space global) (deref)) <- ((write)) ((1 channel-address) (space global)) ((2 tagged-value)))
mem: ((1 channel-address) (space global)) => 1062
mem: ((2 tagged-value)) => #(tagged record (integer 24 . nil))
run: write/producer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: write/producer 0: 101031 => ((default-space space-address))
run: write/producer 1: (((1 channel-address)) <- ((next-input)))
arg: nil 0 (1062 #(tagged record (integer 24 . nil)))
run: write/producer 1: 1062 => ((1 channel-address))
mem: ((1 channel-address)): 101033 <= 1062
run: write/producer 2: (((2 tagged-value)) <- ((next-input)))
arg: nil 1 (1062 #(tagged record (integer 24 . nil)))
run: write/producer 2: #(tagged record (integer 24 . nil)) => ((2 tagged-value))
mem: ((2 tagged-value)): 101034 <= integer
mem: ((2 tagged-value)): 101035 <= 24
run: write/producer 3: (((4 boolean)) <- ((full?)) ((1 channel-address) (deref)))
mem: ((1 channel-address) (deref)) => #(tagged record (0 0 1065 . nil))
run: full?/write/producer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: full?/write/producer 0: 101062 => ((default-space space-address))
run: full?/write/producer 1: (((1 channel)) <- ((next-input)))
arg: nil 0 (#(tagged record (0 0 1065 . nil)))
run: full?/write/producer 1: #(tagged record (0 0 1065 . nil)) => ((1 channel))
mem: ((1 channel)): 101064 <= 0
mem: ((1 channel)): 101065 <= 0
mem: ((1 channel)): 101066 <= 1065
run: full?/write/producer 2: (((4 integer)) <- ((get)) ((1 channel)) ((1 offset)))
mem: ((101065 integer) (raw)) => 0
run: full?/write/producer 2: 0 => ((4 integer))
mem: ((4 integer)): 101067 <= 0
run: full?/write/producer 3: (((4 integer)) <- ((add)) ((4 integer)) ((1 literal)))
mem: ((4 integer)) => 0
run: full?/write/producer 3: 1 => ((4 integer))
mem: ((4 integer)): 101067 <= 1
run: full?/write/producer 4: (((5 integer)) <- ((capacity)) ((1 channel)))
mem: ((1 channel)) => #(tagged record (0 0 1065 . nil))
run: capacity/full?/write/producer 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal)))
run: capacity/full?/write/producer 0: 101093 => ((default-space space-address))
run: capacity/full?/write/producer 1: (((1 channel)) <- ((next-input)))
arg: nil 0 (#(tagged record (0 0 1065 . nil)))
run: capacity/full?/write/producer 1: #(tagged record (0 0 1065 . nil)) => ((1 channel))
mem: ((1 channel)): 101095 <= 0
mem: ((1 channel)): 101096 <= 0
mem: ((1 channel)): 101097 <= 1065
run: capacity/full?/write/producer 2: (((4 tagged-value-array-address)) <- ((get)) ((1 channel)) ((2 offset)))
mem: ((101097 tagged-value-array-address) (raw)) => 1065
run: capacity/full?/write/producer 2: 1065 => ((4 tagged-value-array-address))
mem: ((4 tagged-value-array-address)): 101098 <= 1065
run: capacity/full?/write/producer 3: (((5 integer)) <- ((length)) ((4 tagged-value-array-address) (deref)))
array-len: ((4 tagged-value-array-address) (deref))
mem: ((1065 integer) (raw)) => 4
run: capacity/full?/write/producer 3: 4 => ((5 integer))
mem: ((5 integer)): 101099 <= 4
run: capacity/full?/write/producer 4: (((reply)) ((5 integer)))
mem: ((5 integer)) => 4
run: full?/write/producer 4: 4 => ((5 integer))
mem: ((5 integer)): 101068 <= 4
run: full?/write/producer 5: (((6 boolean)) <- ((less-than)) ((4 integer)) ((5 integer)))
mem: ((4 integer)) => 1
mem: ((5 integer)) => 4
run: full?/write/producer 5: t => ((6 boolean))
mem: ((6 boolean)): 101069 <= t
run: full?/write/producer 6: (((jump-if)) ((6 boolean)) ((1 offset)))
mem: ((6 boolean)) => t
run: full?/write/producer 8: (((7 integer)) <- ((get)) ((1 channel)) ((0 offset)))
mem: ((101064 integer) (raw)) => 0
run: full?/write/producer 8: 0 => ((7 integer))
mem: ((7 integer)): 101070 <= 0
run: full?/write/producer 9: (((8 boolean)) <- ((equal)) ((7 integer)) ((4 integer)))
mem: ((7 integer)) => 0
mem: ((4 integer)) => 1
run: full?/write/producer 9: nil => ((8 boolean))
mem: ((8 boolean)): 101071 <= nil
run: full?/write/producer 10: (((reply)) ((8 boolean)))
mem: ((8 boolean)) => nil
run: write/producer 3: nil => ((4 boolean))
mem: ((4 boolean)): 101036 <= nil
run: write/producer 4: (((jump-unless)) ((4 boolean)) ((2 offset)))
mem: ((4 boolean)) => nil
run: write/producer 7: (((6 tagged-value-array-address)) <- ((get)) ((1 channel-address) (deref)) ((2 offset)))
mem: ((1064 tagged-value-array-address) (raw)) => 1065
run: write/producer 7: 1065 => ((6 tagged-value-array-address))
mem: ((6 tagged-value-array-address)): 101038 <= 1065
run: write/producer 8: (((7 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((1 offset)))
run: write/producer 8: 1063 => ((7 integer-address))
mem: ((7 integer-address)): 101039 <= 1063
run: write/producer 9: (((8 tagged-value-address)) <- ((index-address)) ((6 tagged-value-array-address) (deref)) ((7 integer-address) (deref)))
mem: ((7 integer-address) (deref)) => 0
array-len: ((1065 tagged-value-array) (raw))
mem: ((1065 integer) (raw)) => 4
run: write/producer 9: 1066 => ((8 tagged-value-address))
mem: ((8 tagged-value-address)): 101040 <= 1066
run: write/producer 10: (((8 tagged-value-address) (deref)) <- ((copy)) ((2 tagged-value)))
mem: ((2 tagged-value)) => #(tagged record (integer 24 . nil))
run: write/producer 10: #(tagged record (integer 24 . nil)) => ((8 tagged-value-address) (deref))
mem: ((8 tagged-value-address) (deref)): 1066 <= integer
mem: ((8 tagged-value-address) (deref)): 1067 <= 24
run: write/producer 11: (((7 integer-address) (deref)) <- ((add)) ((7 integer-address) (deref)) ((1 literal)))
mem: ((7 integer-address) (deref)) => 0
run: write/producer 11: 1 => ((7 integer-address) (deref))
mem: ((7 integer-address) (deref)): 1063 <= 1
run: write/producer 12: (((9 integer)) <- ((length)) ((6 tagged-value-array-address) (deref)))
array-len: ((6 tagged-value-array-address) (deref))
mem: ((1065 integer) (raw)) => 4
run: write/producer 12: 4 => ((9 integer))
mem: ((9 integer)): 101041 <= 4
run: write/producer 13: (((10 boolean)) <- ((less-than)) ((7 integer-address) (deref)) ((9 integer)))
mem: ((7 integer-address) (deref)) => 1
mem: ((9 integer)) => 4
run: write/producer 13: t => ((10 boolean))
mem: ((10 boolean)): 101042 <= t
run: write/producer 14: (((jump-if)) ((10 boolean)) ((1 offset)))
mem: ((10 boolean)) => t
run: write/producer 16: (((reply)) ((1 channel-address) (deref) (same-as-arg 0)))
mem: ((1 channel-address) (deref) (same-as-arg 0)) => #(tagged record (0 1 1065 . nil))
run: producer 3: #(tagged record (0 1 1065 . nil)) => ((1 channel-address) (space global) (deref))
mem: ((1 channel-address) (space global) (deref)): 1062 <= 0
mem: ((1 channel-address) (space global) (deref)): 1063 <= 1
mem: ((1 channel-address) (space global) (deref)): 1064 <= 1065
schedule: done with routine nil
schedule: waking up read/consumer
schedule: read/consumer
run: read/consumer 6: (((4 integer-address)) <- ((get-address)) ((1 channel-address) (deref)) ((0 offset)))
run: read/consumer 6: 1062 => ((4 integer-address))
mem: ((4 integer-address)): 1079 <= 1062
run: read/consumer 7: (((5 tagged-value-array-address)) <- ((get)) ((1 channel-address) (deref)) ((2 offset)))
mem: ((1064 tagged-value-array-address) (raw)) => 1065
run: read/consumer 7: 1065 => ((5 tagged-value-array-address))
mem: ((5 tagged-value-array-address)): 1080 <= 1065
run: read/consumer 8: (((6 tagged-value)) <- ((index)) ((5 tagged-value-array-address) (deref)) ((4 integer-address) (deref)))
mem: ((4 integer-address) (deref)) => 0
array-len: ((1065 tagged-value-array) (raw))
mem: ((1065 integer) (raw)) => 4
mem: ((1066 tagged-value) (raw)) => #(tagged record (integer 24 . nil))
run: read/consumer 8: #(tagged record (integer 24 . nil)) => ((6 tagged-value))
mem: ((6 tagged-value)): 1081 <= integer
mem: ((6 tagged-value)): 1082 <= 24
run: read/consumer 9: (((4 integer-address) (deref)) <- ((add)) ((4 integer-address) (deref)) ((1 literal)))
mem: ((4 integer-address) (deref)) => 0
run: read/consumer 9: 1 => ((4 integer-address) (deref))
mem: ((4 integer-address) (deref)): 1062 <= 1
run: read/consumer 10: (((8 integer)) <- ((length)) ((5 tagged-value-array-address) (deref)))
array-len: ((5 tagged-value-array-address) (deref))
mem: ((1065 integer) (raw)) => 4
run: read/consumer 10: 4 => ((8 integer))
mem: ((8 integer)): 1083 <= 4
run: read/consumer 11: (((9 boolean)) <- ((less-than)) ((4 integer-address) (deref)) ((8 integer)))
mem: ((4 integer-address) (deref)) => 1
mem: ((8 integer)) => 4
run: read/consumer 11: t => ((9 boolean))
mem: ((9 boolean)): 1084 <= t
run: read/consumer 12: (((jump-if)) ((9 boolean)) ((1 offset)))
mem: ((9 boolean)) => t
run: read/consumer 14: (((reply)) ((6 tagged-value)) ((1 channel-address) (deref) (same-as-arg 0)))
mem: ((6 tagged-value)) => #(tagged record (integer 24 . nil))
mem: ((1 channel-address) (deref) (same-as-arg 0)) => #(tagged record (1 1 1065 . nil))
run: consumer 3: #(tagged record (integer 24 . nil)) => ((1 tagged-value) (raw))
mem: ((1 tagged-value) (raw)): 1 <= integer
mem: ((1 tagged-value) (raw)): 2 <= 24
schedule: done with routine nil