| LEFT | RIGHT |
| 1 | 1 |
| 2 # Cluster definitions for a hypothetical split of the fmt package. | 2 # Cluster definitions for a hypothetical split of the "runtime" package. |
| 3 | 3 |
| 4 # The core cluster. Mostly data types from runtime2.go. | 4 # The core cluster. Mostly data types from runtime2.go. |
| 5 # NOTES: | 5 # NOTES: |
| 6 # - some common utils (add, hex) should be copy/pasted. | 6 # - some common utils (add, hex) should be copy/pasted. |
| 7 # - asminit needs to be broken up. | 7 # - asminit needs to be broken up. |
| 8 = core | 8 = runtime/internal/core |
| 9 g | 9 g |
| 10 m | 10 m |
| 11 fing | 11 fing |
| 12 g0 | 12 g0 |
| 13 m0 | 13 m0 |
| 14 mutex | 14 mutex |
| 15 note | 15 note |
| 16 setg | 16 setg |
| 17 needm | 17 needm |
| 18 itab | 18 itab |
| (...skipping 13 matching lines...) Loading... |
| 32 _PageShift | 32 _PageShift |
| 33 funcval | 33 funcval |
| 34 gcstats | 34 gcstats |
| 35 uintreg | 35 uintreg |
| 36 goos_windows | 36 goos_windows |
| 37 goos_plan9 | 37 goos_plan9 |
| 38 lastg | 38 lastg |
| 39 | 39 |
| 40 # NB: we must break the edges from lock/unlock to gothrow to | 40 # NB: we must break the edges from lock/unlock to gothrow to |
| 41 # avoid pulling in a mass of stuff! | 41 # avoid pulling in a mass of stuff! |
| 42 = lock | 42 = runtime/internal/lock |
| 43 lock | 43 lock |
| 44 unlock | 44 unlock |
| 45 | 45 |
| 46 # panic, traceback, but also: signals, memory allocation, parts of GC, scheduler | 46 # panic, traceback, but also: signals, memory allocation, parts of GC, scheduler |
| 47 # NB: we must split setsig -> sighandler edge to avoid a huge | 47 # NB: we must split setsig -> sighandler edge to avoid a huge |
| 48 # cycle from throw -> dopanic -> dopanic_m -> crash -> setsig -> | 48 # cycle from throw -> dopanic -> dopanic_m -> crash -> setsig -> |
| 49 # sighandler -> sigprof -> cpuproftick -> MASSES (startm, allocm, | 49 # sighandler -> sigprof -> cpuproftick -> MASSES (startm, allocm, |
| 50 # schedule) | 50 # schedule) |
| 51 = throw | 51 = runtime/internal/throw |
| 52 gothrow | 52 gothrow |
| 53 | 53 |
| 54 = scheduler | 54 = runtime/internal/sched |
| 55 sched | 55 sched |
| 56 schedt | 56 schedt |
| 57 gosched_m | 57 gosched_m |
| 58 block | 58 block |
| 59 addtimer | 59 addtimer |
| 60 | 60 |
| 61 = GC | 61 = runtime/internal/gc |
| 62 GC | 62 GC |
| 63 | 63 |
| 64 = profile | 64 = runtime/internal/prof |
| 65 MemProfileRecord | 65 MemProfileRecord |
| 66 SetBlockProfileRate | 66 SetBlockProfileRate |
| 67 SetCPUProfileRate | 67 SetCPUProfileRate |
| 68 MemProfile | 68 MemProfile |
| 69 BlockProfile | 69 BlockProfile |
| 70 ThreadCreateProfile | 70 ThreadCreateProfile |
| 71 ReadMemStats | 71 ReadMemStats |
| 72 func$363 # init func for sizeof_C_MStats | 72 func$mem.1 # init func for sizeof_C_MStats |
| 73 | 73 |
| 74 = channels | 74 = runtime/internal/channels |
| 75 newselect | 75 newselect |
| 76 selectrecv | 76 selectrecv |
| 77 selectrecv2 | 77 selectrecv2 |
| 78 selectrecvImpl | 78 selectrecvImpl |
| 79 chansend1 | 79 chansend1 |
| 80 selectnbsend | 80 selectnbsend |
| 81 selectnbrecv | 81 selectnbrecv |
| 82 selectnbrecv2 | 82 selectnbrecv2 |
| 83 reflect_chanrecv | 83 reflect_chanrecv |
| 84 chanrecv1 | 84 chanrecv1 |
| 85 chanrecv2 | 85 chanrecv2 |
| 86 selectgo | 86 selectgo |
| 87 selectDir | 87 selectDir |
| 88 | 88 |
| 89 = hash | 89 = runtime/internal/hash |
| 90 hash | 90 hash |
| 91 func$45 # init function for algarray; pulls in random | 91 func$alg.1 # init function for algarray; pulls in random |
| 92 int64Hash | 92 int64Hash |
| 93 stringHash | 93 stringHash |
| 94 efaceHash | 94 efaceHash |
| 95 int32Hash | 95 int32Hash |
| 96 bytesHash | 96 bytesHash |
| 97 ifaceHash | 97 ifaceHash |
| 98 | 98 |
| 99 = heap dump | 99 = runtime/internal/heapdump |
| 100 writeHeapDump | 100 writeHeapDump |
| 101 dumpfd | 101 dumpfd |
| 102 dumpotherroot | 102 dumpotherroot |
| 103 | 103 |
| 104 = maps | 104 = runtime/internal/maps |
| 105 hmap | 105 hmap |
| 106 bmap | 106 bmap |
| 107 hiter | 107 hiter |
| 108 mapaccess1_fast32 | 108 mapaccess1_fast32 |
| 109 mapaccess2_fast32 | 109 mapaccess2_fast32 |
| 110 mapaccess1_fast64 | 110 mapaccess1_fast64 |
| 111 mapaccess2_fast64 | 111 mapaccess2_fast64 |
| 112 mapaccess1_faststr | 112 mapaccess1_faststr |
| 113 mapaccess2_faststr | 113 mapaccess2_faststr |
| 114 mapaccess1 | 114 mapaccess1 |
| 115 mapaccess2 | 115 mapaccess2 |
| 116 mapaccessK | 116 mapaccessK |
| 117 mapiterinit | 117 mapiterinit |
| 118 reflect_mapiternext | 118 reflect_mapiternext |
| 119 makemap | 119 makemap |
| 120 mapassign1 | 120 mapassign1 |
| 121 mapdelete | 121 mapdelete |
| 122 | 122 |
| 123 = netpoll | 123 = runtime/internal/netpoll |
| 124 netpollarm | 124 netpollarm |
| 125 netpollblockcommit | 125 netpollblockcommit |
| 126 netpollblock | 126 netpollblock |
| 127 netpollcheckerr | 127 netpollcheckerr |
| 128 netpollclose | 128 netpollclose |
| 129 netpollClose | 129 netpollClose |
| 130 netpollDeadline | 130 netpollDeadline |
| 131 netpolldeadlineimpl | 131 netpolldeadlineimpl |
| 132 netpollinit | 132 netpollinit |
| 133 netpollopen | 133 netpollopen |
| 134 netpollOpen | 134 netpollOpen |
| 135 netpollReadDeadline | 135 netpollReadDeadline |
| 136 netpollReset | 136 netpollReset |
| 137 netpollServerInit | 137 netpollServerInit |
| 138 netpollSetDeadline | 138 netpollSetDeadline |
| 139 netpollUnblock | 139 netpollUnblock |
| 140 netpollWaitCanceled | 140 netpollWaitCanceled |
| 141 netpollWait | 141 netpollWait |
| 142 netpollWriteDeadline | 142 netpollWriteDeadline |
| 143 | 143 |
| 144 = ifacestuff | 144 = runtime/internal/ifacestuff |
| 145 convI2I | 145 convI2I |
| 146 convT2E | 146 convT2E |
| 147 convT2I | 147 convT2I |
| 148 convI2E | 148 convI2E |
| 149 assertI2T | 149 assertI2T |
| 150 assertI2T2 | 150 assertI2T2 |
| 151 assertI2TOK | 151 assertI2TOK |
| 152 assertE2T | 152 assertE2T |
| 153 assertE2T2 | 153 assertE2T2 |
| 154 assertE2TOK | 154 assertE2TOK |
| 155 assertI2E | 155 assertI2E |
| 156 assertI2E2 | 156 assertI2E2 |
| 157 assertI2I | 157 assertI2I |
| 158 assertI2I2 | 158 assertI2I2 |
| 159 assertE2I | 159 assertE2I |
| 160 assertE2I2 | 160 assertE2I2 |
| 161 assertE2E | 161 assertE2E |
| 162 assertE2E2 | 162 assertE2E2 |
| 163 | 163 |
| 164 = vdso | 164 = runtime/internal/vdso |
| 165 args | 165 args |
| 166 | 166 |
| 167 = printf | 167 = runtime/internal/printf |
| 168 printf | 168 printf |
| 169 snprintf | 169 snprintf |
| 170 | 170 |
| 171 = string | 171 = runtime/internal/strings |
| 172 concatstring2 | 172 concatstring2 |
| 173 concatstring3 | 173 concatstring3 |
| 174 concatstring4 | 174 concatstring4 |
| 175 concatstring5 | 175 concatstring5 |
| 176 gostring | 176 gostring |
| 177 | 177 |
| 178 = fp # (totally disconnected) | 178 = runtime/internal/fp # (totally disconnected) |
| 179 fsub64 | 179 fsub64 |
| 180 fadd64c | 180 fadd64c |
| 181 fneg64c | 181 fneg64c |
| 182 f32to64 | 182 f32to64 |
| 183 fintto64 | 183 fintto64 |
| 184 fdiv64 | 184 fdiv64 |
| 185 fmul64 | 185 fmul64 |
| 186 f64toint | 186 f64toint |
| 187 f64to32 | 187 f64to32 |
| 188 sqrt | 188 sqrt |
| 189 posinf | 189 posinf |
| 190 isnan | 190 isnan |
| 191 | 191 |
| 192 = schedinit # another tangle in its own right... | 192 = runtime/internal/schedinit # another tangle in its own right... |
| 193 schedinit | 193 schedinit |
| 194 | 194 |
| 195 = finalize | 195 = runtime/internal/finalize |
| 196 SetFinalizer | 196 SetFinalizer |
| 197 | 197 |
| 198 = cgo | 198 = runtime/internal/cgo |
| 199 cmalloc | 199 cmalloc |
| 200 cfree | 200 cfree |
| 201 cgocallbackg | 201 cgocallbackg |
| 202 weak_cgo_allocate | 202 weak_cgo_allocate |
| 203 | 203 |
| 204 = sync | 204 = runtime/internal/sync |
| 205 syncsemacquire | 205 syncsemacquire |
| 206 syncsemrelease | 206 syncsemrelease |
| 207 syncsemcheck | 207 syncsemcheck |
| 208 | 208 |
| 209 = check # runtime assertions | 209 = runtime/internal/check # runtime assertions |
| 210 check | 210 check |
| 211 | 211 |
| 212 = stackwb | 212 = runtime/internal/stackwb |
| 213 writebarrierptr | 213 writebarrierptr |
| 214 writebarrierptr_nostore | 214 writebarrierptr_nostore |
| 215 writebarrierstring | 215 writebarrierstring |
| 216 writebarrierslice | 216 writebarrierslice |
| 217 writebarrieriface | 217 writebarrieriface |
| 218 writebarrierfat | 218 writebarrierfat |
| 219 writebarriercopy | 219 writebarriercopy |
| 220 writebarrierfat01 | 220 writebarrierfat01 |
| 221 writebarrierfat10 | 221 writebarrierfat10 |
| 222 writebarrierfat11 | 222 writebarrierfat11 |
| (...skipping 13 matching lines...) Loading... |
| 236 writebarrierfat0111 | 236 writebarrierfat0111 |
| 237 writebarrierfat1000 | 237 writebarrierfat1000 |
| 238 writebarrierfat1001 | 238 writebarrierfat1001 |
| 239 writebarrierfat1010 | 239 writebarrierfat1010 |
| 240 writebarrierfat1011 | 240 writebarrierfat1011 |
| 241 writebarrierfat1100 | 241 writebarrierfat1100 |
| 242 writebarrierfat1101 | 242 writebarrierfat1101 |
| 243 writebarrierfat1110 | 243 writebarrierfat1110 |
| 244 writebarrierfat1111 | 244 writebarrierfat1111 |
| 245 | 245 |
| 246 = defer | 246 = runtime/internal/defers |
| 247 Goexit | 247 Goexit |
| 248 deferrreturn | 248 deferreturn |
| 249 gopanic | 249 gopanic |
| 250 func$664 # init of _defer | 250 func$panic.1 # init of _defer |
| 251 | 251 |
| 252 = strings # plus slice stuff | 252 = runtime/internal/seq # string and slice alloc stuff |
| 253 makeslice | 253 makeslice |
| 254 growslice | 254 growslice |
| 255 slicebytetostringtmp | 255 slicebytetostringtmp |
| 256 slicebytetostring | 256 slicebytetostring |
| 257 slicecopy | 257 slicecopy |
| 258 slicestringcopy | 258 slicestringcopy |
| 259 slicerunetostring | 259 slicerunetostring |
| 260 intstring | 260 intstring |
| 261 gostringw | 261 gostringw |
| 262 stringiter | 262 stringiter |
| 263 rawruneslice | 263 rawruneslice |
| 264 stringiter2 | 264 stringiter2 |
| LEFT | RIGHT |