{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rust/issues/30095","labels_url":"https://api.github.com/repos/rust-lang/rust/issues/30095/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rust/issues/30095/comments","events_url":"https://api.github.com/repos/rust-lang/rust/issues/30095/events","html_url":"https://github.com/rust-lang/rust/pull/30095","id":119308655,"number":30095,"title":"Improve OwnedSlice and use it in HIR","user":{"login":"petrochenkov","id":5751617,"avatar_url":"https://avatars.githubusercontent.com/u/5751617?v=3","gravatar_id":"","url":"https://api.github.com/users/petrochenkov","html_url":"https://github.com/petrochenkov","followers_url":"https://api.github.com/users/petrochenkov/followers","following_url":"https://api.github.com/users/petrochenkov/following{/other_user}","gists_url":"https://api.github.com/users/petrochenkov/gists{/gist_id}","starred_url":"https://api.github.com/users/petrochenkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrochenkov/subscriptions","organizations_url":"https://api.github.com/users/petrochenkov/orgs","repos_url":"https://api.github.com/users/petrochenkov/repos","events_url":"https://api.github.com/users/petrochenkov/events{/privacy}","received_events_url":"https://api.github.com/users/petrochenkov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nrc","id":762626,"avatar_url":"https://avatars.githubusercontent.com/u/762626?v=3","gravatar_id":"","url":"https://api.github.com/users/nrc","html_url":"https://github.com/nrc","followers_url":"https://api.github.com/users/nrc/followers","following_url":"https://api.github.com/users/nrc/following{/other_user}","gists_url":"https://api.github.com/users/nrc/gists{/gist_id}","starred_url":"https://api.github.com/users/nrc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nrc/subscriptions","organizations_url":"https://api.github.com/users/nrc/orgs","repos_url":"https://api.github.com/users/nrc/repos","events_url":"https://api.github.com/users/nrc/events{/privacy}","received_events_url":"https://api.github.com/users/nrc/received_events","type":"User","site_admin":false},"milestone":null,"comments":13,"created_at":"2015-11-28T17:26:56Z","updated_at":"2015-12-07T01:40:18Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-lang/rust/pulls/30095","html_url":"https://github.com/rust-lang/rust/pull/30095","diff_url":"https://github.com/rust-lang/rust/pull/30095.diff","patch_url":"https://github.com/rust-lang/rust/pull/30095.patch"},"body":"Most of the changes are to support switching between vector-like containers in HIR and beefing up `OwnedSlice`'s interface.\r\nThe actual change from `Vec` to `OwnedSlice` is [one line](https://github.com/petrochenkov/rust/blob/365e34c30ba5fb6c04684bd48ad90315f5918464/src/librustc_front/hir.rs#L54), and it can be changed back if necessary.\r\n\r\nMemory consumption for librustc, libcore and libstd is below under the spoilers - the changes are small, but consistent.\r\nlibcore is the most noticeable, 5.7% less memory immediately after lowering to HIR, 4% less memory during type checking.\r\n\r\n<details> \r\n  <summary>Before:</summary>\r\n```\r\nrustc: x86_64-pc-windows-gnu/stage1/lib/rustlib/x86_64-pc-windows-gnu/lib/librustc\r\ntime: 0.149; rss: 61MB  parsing\r\ntime: 0.050; rss: 61MB  configuration 1\r\ntime: 0.000; rss: 61MB  recursion limit\r\ntime: 0.004; rss: 61MB  gated macro checking\r\ntime: 0.000; rss: 61MB  crate injection\r\ntime: 0.019; rss: 64MB  macro loading\r\ntime: 0.000; rss: 64MB  plugin loading\r\ntime: 0.000; rss: 64MB  plugin registration\r\ntime: 0.655; rss: 99MB  expansion\r\ntime: 0.026; rss: 99MB  complete gated feature checking 1\r\ntime: 0.111; rss: 99MB  configuration 2\r\ntime: 0.000; rss: 99MB  gated configuration checking\r\ntime: 0.059; rss: 100MB maybe building test harness\r\ntime: 0.054; rss: 100MB prelude injection\r\ntime: 0.013; rss: 100MB checking that all macro invocations are gone\r\ntime: 0.000; rss: 100MB checking for inline asm in case the target doesn't support it\r\ntime: 0.027; rss: 100MB complete gated feature checking 2\r\ntime: 0.058; rss: 100MB assigning node ids\r\ntime: 0.094; rss: 151MB lowering ast -> hir\r\ntime: 0.048; rss: 167MB indexing hir\r\ntime: 0.000; rss: 167MB attribute checking\r\ntime: 0.035; rss: 167MB early lint checks\r\ntime: 0.011; rss: 183MB external crate/lib resolution\r\ntime: 0.010; rss: 183MB language item collection\r\ntime: 0.219; rss: 233MB resolution\r\ntime: 0.019; rss: 233MB lifetime resolution\r\ntime: 0.000; rss: 233MB looking for entry point\r\ntime: 0.000; rss: 233MB looking for plugin registrar\r\ntime: 0.071; rss: 252MB region resolution\r\ntime: 0.010; rss: 252MB loop checking\r\ntime: 0.012; rss: 252MB static item recursion checking\r\ntime: 0.069; rss: 261MB type collecting\r\ntime: 0.002; rss: 261MB variance inference\r\ntime: 0.059; rss: 283MB coherence checking\r\ntime: 0.103; rss: 288MB wf checking (old)\r\ntime: 0.166; rss: 290MB item-types checking\r\ntime: 5.307; rss: 402MB item-bodies checking\r\ntime: 0.000; rss: 402MB drop-impl checking\r\ntime: 0.270; rss: 402MB wf checking (new)\r\ntime: 0.586; rss: 419MB const checking\r\ntime: 0.117; rss: 420MB privacy checking\r\ntime: 0.018; rss: 420MB stability index\r\ntime: 0.034; rss: 420MB intrinsic checking\r\ntime: 0.023; rss: 420MB effect checking\r\ntime: 0.093; rss: 420MB match checking\r\ntime: 0.430; rss: 486MB MIR dump\r\ntime: 0.068; rss: 487MB liveness checking\r\ntime: 0.613; rss: 488MB borrow checking\r\ntime: 0.327; rss: 489MB rvalue checking\r\ntime: 0.024; rss: 489MB reachability checking\r\ntime: 0.076; rss: 490MB death checking\r\ntime: 0.066; rss: 492MB stability checking\r\ntime: 0.000; rss: 492MB unused lib feature checking\r\ntime: 0.281; rss: 492MB lint checking\r\ntime: 0.001; rss: 492MB resolving dependency formats\r\ntime: 0.070; rss: 497MB erasing regions from MIR\r\ntime: 7.883; rss: 1028MB        translation\r\n  time: 1.817; rss: 549MB       llvm function passes [0]\r\n  time: 32.515; rss: 667MB      llvm module passes [0]\r\n  time: 10.598; rss: 685MB      codegen passes [0]\r\n  time: 0.004; rss: 166MB       codegen passes [0]\r\ntime: 45.969; rss: 161MB        LLVM passes\r\n  time: 0.612; rss: 161MB       running linker\r\ntime: 1.105; rss: 164MB linking\r\nrustc: x86_64-pc-windows-gnu/stage2/lib/rustlib/x86_64-pc-windows-gnu/lib/libcore\r\ntime: 0.089; rss: 41MB  parsing\r\ntime: 0.024; rss: 43MB  configuration 1\r\ntime: 0.000; rss: 43MB  recursion limit\r\ntime: 0.002; rss: 43MB  gated macro checking\r\ntime: 0.000; rss: 43MB  crate injection\r\ntime: 0.001; rss: 43MB  macro loading\r\ntime: 0.000; rss: 43MB  plugin loading\r\ntime: 0.000; rss: 43MB  plugin registration\r\ntime: 0.428; rss: 71MB  expansion\r\ntime: 0.012; rss: 71MB  complete gated feature checking 1\r\ntime: 0.090; rss: 71MB  configuration 2\r\ntime: 0.000; rss: 71MB  gated configuration checking\r\ntime: 0.047; rss: 71MB  maybe building test harness\r\ntime: 0.000; rss: 71MB  prelude injection\r\ntime: 0.005; rss: 71MB  checking that all macro invocations are gone\r\ntime: 0.000; rss: 71MB  checking for inline asm in case the target doesn't support it\r\ntime: 0.012; rss: 71MB  complete gated feature checking 2\r\ntime: 0.046; rss: 71MB  assigning node ids\r\ntime: 0.039; rss: 105MB lowering ast -> hir\r\ntime: 0.085; rss: 122MB indexing hir\r\ntime: 0.000; rss: 122MB attribute checking\r\ntime: 0.019; rss: 122MB early lint checks\r\ntime: 0.000; rss: 122MB external crate/lib resolution\r\ntime: 0.004; rss: 122MB language item collection\r\ntime: 0.076; rss: 139MB resolution\r\ntime: 0.011; rss: 139MB lifetime resolution\r\ntime: 0.000; rss: 139MB looking for entry point\r\ntime: 0.000; rss: 139MB looking for plugin registrar\r\ntime: 0.028; rss: 146MB region resolution\r\ntime: 0.003; rss: 146MB loop checking\r\ntime: 0.004; rss: 146MB static item recursion checking\r\ntime: 0.070; rss: 156MB type collecting\r\ntime: 0.001; rss: 156MB variance inference\r\ntime: 0.311; rss: 157MB coherence checking\r\ntime: 0.380; rss: 160MB wf checking (old)\r\ntime: 0.514; rss: 165MB item-types checking\r\ntime: 3.256; rss: 195MB item-bodies checking\r\ntime: 0.000; rss: 195MB drop-impl checking\r\ntime: 0.685; rss: 196MB wf checking (new)\r\ntime: 0.144; rss: 197MB const checking\r\ntime: 0.057; rss: 197MB privacy checking\r\ntime: 0.009; rss: 197MB stability index\r\ntime: 0.033; rss: 197MB intrinsic checking\r\ntime: 0.011; rss: 197MB effect checking\r\ntime: 0.052; rss: 197MB match checking\r\ntime: 0.178; rss: 218MB MIR dump\r\ntime: 0.024; rss: 219MB liveness checking\r\ntime: 0.285; rss: 219MB borrow checking\r\ntime: 0.146; rss: 219MB rvalue checking\r\ntime: 0.073; rss: 220MB reachability checking\r\ntime: 0.035; rss: 220MB death checking\r\ntime: 0.032; rss: 221MB stability checking\r\ntime: 0.000; rss: 221MB unused lib feature checking\r\ntime: 0.434; rss: 221MB lint checking\r\ntime: 0.000; rss: 221MB resolving dependency formats\r\ntime: 0.022; rss: 222MB erasing regions from MIR\r\ntime: 1.182; rss: 292MB translation\r\n  time: 0.157; rss: 171MB       llvm function passes [0]\r\n  time: 1.464; rss: 180MB       llvm module passes [0]\r\n  time: 1.217; rss: 183MB       codegen passes [0]\r\n  time: 0.004; rss: 148MB       codegen passes [0]\r\ntime: 2.897; rss: 143MB LLVM passes\r\ntime: 0.051; rss: 143MB linking\r\nrustc: x86_64-pc-windows-gnu/stage2/lib/rustlib/x86_64-pc-windows-gnu/lib/libstd\r\ntime: 0.143; rss: 60MB  parsing\r\ntime: 0.041; rss: 62MB  configuration 1\r\ntime: 0.000; rss: 62MB  recursion limit\r\ntime: 0.002; rss: 62MB  gated macro checking\r\ntime: 0.000; rss: 62MB  crate injection\r\ntime: 0.006; rss: 63MB  macro loading\r\ntime: 0.000; rss: 63MB  plugin loading\r\ntime: 0.000; rss: 63MB  plugin registration\r\ntime: 0.165; rss: 64MB  expansion\r\ntime: 0.007; rss: 64MB  complete gated feature checking 1\r\ntime: 0.039; rss: 64MB  configuration 2\r\ntime: 0.000; rss: 64MB  gated configuration checking\r\ntime: 0.020; rss: 64MB  maybe building test harness\r\ntime: 0.019; rss: 64MB  prelude injection\r\ntime: 0.003; rss: 64MB  checking that all macro invocations are gone\r\ntime: 0.000; rss: 64MB  checking for inline asm in case the target doesn't support it\r\ntime: 0.007; rss: 64MB  complete gated feature checking 2\r\ntime: 0.020; rss: 64MB  assigning node ids\r\ntime: 0.021; rss: 72MB  lowering ast -> hir\r\ntime: 0.012; rss: 80MB  indexing hir\r\ntime: 0.000; rss: 80MB  attribute checking\r\ntime: 0.010; rss: 80MB  early lint checks\r\ntime: 0.003; rss: 80MB  external crate/lib resolution\r\ntime: 0.002; rss: 80MB  language item collection\r\ntime: 0.057; rss: 106MB resolution\r\ntime: 0.004; rss: 106MB lifetime resolution\r\ntime: 0.000; rss: 106MB looking for entry point\r\ntime: 0.000; rss: 106MB looking for plugin registrar\r\ntime: 0.014; rss: 111MB region resolution\r\ntime: 0.002; rss: 111MB loop checking\r\ntime: 0.002; rss: 111MB static item recursion checking\r\ntime: 0.025; rss: 112MB type collecting\r\ntime: 0.001; rss: 112MB variance inference\r\ntime: 0.035; rss: 122MB coherence checking\r\ntime: 0.043; rss: 123MB wf checking (old)\r\ntime: 0.065; rss: 126MB item-types checking\r\ntime: 1.068; rss: 153MB item-bodies checking\r\ntime: 0.000; rss: 153MB drop-impl checking\r\ntime: 0.111; rss: 153MB wf checking (new)\r\ntime: 0.109; rss: 154MB const checking\r\ntime: 0.026; rss: 155MB privacy checking\r\ntime: 0.004; rss: 155MB stability index\r\ntime: 0.010; rss: 155MB intrinsic checking\r\ntime: 0.005; rss: 155MB effect checking\r\ntime: 0.026; rss: 155MB match checking\r\ntime: 0.117; rss: 171MB MIR dump\r\ntime: 0.014; rss: 172MB liveness checking\r\ntime: 0.185; rss: 172MB borrow checking\r\ntime: 0.127; rss: 172MB rvalue checking\r\ntime: 0.009; rss: 172MB reachability checking\r\ntime: 0.016; rss: 172MB death checking\r\ntime: 0.016; rss: 173MB stability checking\r\ntime: 0.000; rss: 173MB unused lib feature checking\r\ntime: 0.096; rss: 173MB lint checking\r\ntime: 0.000; rss: 173MB resolving dependency formats\r\ntime: 0.015; rss: 175MB erasing regions from MIR\r\ntime: 0.987; rss: 267MB translation\r\n  time: 0.202; rss: 213MB       llvm function passes [0]\r\n  time: 3.011; rss: 228MB       llvm module passes [0]\r\n  time: 1.258; rss: 233MB       codegen passes [0]\r\n  time: 0.004; rss: 178MB       codegen passes [0]\r\ntime: 4.568; rss: 175MB LLVM passes\r\n  time: 0.003; rss: 175MB       altering collections-71b07a99.rlib\r\n  time: 0.001; rss: 175MB       altering alloc-71b07a99.rlib\r\n  time: 0.009; rss: 175MB       altering rustc_unicode-71b07a99.rlib\r\n  time: 0.003; rss: 175MB       altering alloc_jemalloc-71b07a99.rlib\r\n  time: 0.001; rss: 175MB       altering libc-71b07a99.rlib\r\n  time: 0.003; rss: 175MB       altering rand-71b07a99.rlib\r\n  time: 0.004; rss: 175MB       altering core-71b07a99.rlib\r\n  time: 0.249; rss: 176MB       running linker\r\ntime: 0.343; rss: 176MB linking\r\n```\r\n</details>\r\n<details> \r\n  <summary>After:</summary>\r\n```\r\nrustc: x86_64-pc-windows-gnu/stage1/lib/rustlib/x86_64-pc-windows-gnu/lib/librustc\r\ntime: 0.148; rss: 61MB  parsing\r\ntime: 0.050; rss: 61MB  configuration 1\r\ntime: 0.000; rss: 61MB  recursion limit\r\ntime: 0.005; rss: 62MB  gated macro checking\r\ntime: 0.000; rss: 62MB  crate injection\r\ntime: 0.018; rss: 64MB  macro loading\r\ntime: 0.000; rss: 64MB  plugin loading\r\ntime: 0.000; rss: 64MB  plugin registration\r\ntime: 0.668; rss: 100MB expansion\r\ntime: 0.026; rss: 100MB complete gated feature checking 1\r\ntime: 0.112; rss: 100MB configuration 2\r\ntime: 0.000; rss: 100MB gated configuration checking\r\ntime: 0.059; rss: 100MB maybe building test harness\r\ntime: 0.054; rss: 100MB prelude injection\r\ntime: 0.013; rss: 100MB checking that all macro invocations are gone\r\ntime: 0.000; rss: 100MB checking for inline asm in case the target doesn't support it\r\ntime: 0.028; rss: 100MB complete gated feature checking 2\r\ntime: 0.057; rss: 100MB assigning node ids\r\ntime: 0.080; rss: 148MB lowering ast -> hir\r\ntime: 0.045; rss: 164MB indexing hir\r\ntime: 0.000; rss: 164MB attribute checking\r\ntime: 0.035; rss: 164MB early lint checks\r\ntime: 0.011; rss: 180MB external crate/lib resolution\r\ntime: 0.010; rss: 180MB language item collection\r\ntime: 0.211; rss: 231MB resolution\r\ntime: 0.017; rss: 231MB lifetime resolution\r\ntime: 0.000; rss: 231MB looking for entry point\r\ntime: 0.000; rss: 231MB looking for plugin registrar\r\ntime: 0.066; rss: 249MB region resolution\r\ntime: 0.008; rss: 249MB loop checking\r\ntime: 0.009; rss: 249MB static item recursion checking\r\ntime: 0.066; rss: 257MB type collecting\r\ntime: 0.002; rss: 257MB variance inference\r\ntime: 0.058; rss: 281MB coherence checking\r\ntime: 0.100; rss: 286MB wf checking (old)\r\ntime: 0.164; rss: 288MB item-types checking\r\ntime: 5.349; rss: 399MB item-bodies checking\r\ntime: 0.000; rss: 399MB drop-impl checking\r\ntime: 0.274; rss: 400MB wf checking (new)\r\ntime: 0.387; rss: 417MB const checking\r\ntime: 0.115; rss: 417MB privacy checking\r\ntime: 0.016; rss: 417MB stability index\r\ntime: 0.036; rss: 417MB intrinsic checking\r\ntime: 0.026; rss: 417MB effect checking\r\ntime: 0.093; rss: 417MB match checking\r\ntime: 0.430; rss: 483MB MIR dump\r\ntime: 0.065; rss: 484MB liveness checking\r\ntime: 0.619; rss: 485MB borrow checking\r\ntime: 0.341; rss: 486MB rvalue checking\r\ntime: 0.023; rss: 486MB reachability checking\r\ntime: 0.075; rss: 487MB death checking\r\ntime: 0.068; rss: 489MB stability checking\r\ntime: 0.000; rss: 489MB unused lib feature checking\r\ntime: 0.282; rss: 489MB lint checking\r\ntime: 0.002; rss: 489MB resolving dependency formats\r\ntime: 0.071; rss: 493MB erasing regions from MIR\r\ntime: 7.926; rss: 1014MB        translation\r\n  time: 1.861; rss: 549MB       llvm function passes [0]\r\n  time: 32.975; rss: 665MB      llvm module passes [0]\r\n  time: 10.806; rss: 667MB      codegen passes [0]\r\n  time: 0.004; rss: 166MB       codegen passes [0]\r\ntime: 46.722; rss: 160MB        LLVM passes\r\n  time: 0.626; rss: 160MB       running linker\r\ntime: 1.142; rss: 163MB linking\r\nrustc: x86_64-pc-windows-gnu/stage2/lib/rustlib/x86_64-pc-windows-gnu/lib/libcore\r\ntime: 0.072; rss: 42MB  parsing\r\ntime: 0.026; rss: 43MB  configuration 1\r\ntime: 0.000; rss: 43MB  recursion limit\r\ntime: 0.002; rss: 43MB  gated macro checking\r\ntime: 0.000; rss: 43MB  crate injection\r\ntime: 0.001; rss: 43MB  macro loading\r\ntime: 0.000; rss: 43MB  plugin loading\r\ntime: 0.000; rss: 43MB  plugin registration\r\ntime: 0.435; rss: 71MB  expansion\r\ntime: 0.010; rss: 71MB  complete gated feature checking 1\r\ntime: 0.093; rss: 71MB  configuration 2\r\ntime: 0.000; rss: 71MB  gated configuration checking\r\ntime: 0.045; rss: 71MB  maybe building test harness\r\ntime: 0.000; rss: 71MB  prelude injection\r\ntime: 0.005; rss: 71MB  checking that all macro invocations are gone\r\ntime: 0.000; rss: 71MB  checking for inline asm in case the target doesn't support it\r\ntime: 0.013; rss: 71MB  complete gated feature checking 2\r\ntime: 0.046; rss: 71MB  assigning node ids\r\ntime: 0.036; rss: 99MB  lowering ast -> hir\r\ntime: 0.084; rss: 116MB indexing hir\r\ntime: 0.000; rss: 116MB attribute checking\r\ntime: 0.018; rss: 116MB early lint checks\r\ntime: 0.000; rss: 116MB external crate/lib resolution\r\ntime: 0.003; rss: 116MB language item collection\r\ntime: 0.076; rss: 131MB resolution\r\ntime: 0.010; rss: 131MB lifetime resolution\r\ntime: 0.000; rss: 131MB looking for entry point\r\ntime: 0.000; rss: 131MB looking for plugin registrar\r\ntime: 0.029; rss: 141MB region resolution\r\ntime: 0.003; rss: 141MB loop checking\r\ntime: 0.003; rss: 141MB static item recursion checking\r\ntime: 0.068; rss: 149MB type collecting\r\ntime: 0.001; rss: 150MB variance inference\r\ntime: 0.313; rss: 151MB coherence checking\r\ntime: 0.403; rss: 154MB wf checking (old)\r\ntime: 0.543; rss: 158MB item-types checking\r\ntime: 3.340; rss: 187MB item-bodies checking\r\ntime: 0.000; rss: 187MB drop-impl checking\r\ntime: 0.689; rss: 188MB wf checking (new)\r\ntime: 0.144; rss: 189MB const checking\r\ntime: 0.055; rss: 189MB privacy checking\r\ntime: 0.008; rss: 189MB stability index\r\ntime: 0.032; rss: 189MB intrinsic checking\r\ntime: 0.010; rss: 189MB effect checking\r\ntime: 0.051; rss: 189MB match checking\r\ntime: 0.178; rss: 212MB MIR dump\r\ntime: 0.024; rss: 213MB liveness checking\r\ntime: 0.284; rss: 213MB borrow checking\r\ntime: 0.147; rss: 213MB rvalue checking\r\ntime: 0.073; rss: 214MB reachability checking\r\ntime: 0.033; rss: 214MB death checking\r\ntime: 0.032; rss: 215MB stability checking\r\ntime: 0.000; rss: 215MB unused lib feature checking\r\ntime: 0.436; rss: 215MB lint checking\r\ntime: 0.000; rss: 215MB resolving dependency formats\r\ntime: 0.023; rss: 217MB erasing regions from MIR\r\ntime: 1.166; rss: 288MB translation\r\n  time: 0.148; rss: 176MB       llvm function passes [0]\r\n  time: 1.406; rss: 185MB       llvm module passes [0]\r\n  time: 1.199; rss: 187MB       codegen passes [0]\r\n  time: 0.005; rss: 151MB       codegen passes [0]\r\ntime: 2.814; rss: 147MB LLVM passes\r\ntime: 0.048; rss: 147MB linking\r\nrustc: x86_64-pc-windows-gnu/stage2/lib/rustlib/x86_64-pc-windows-gnu/lib/libstd\r\ntime: 0.152; rss: 60MB  parsing\r\ntime: 0.043; rss: 62MB  configuration 1\r\ntime: 0.000; rss: 62MB  recursion limit\r\ntime: 0.002; rss: 62MB  gated macro checking\r\ntime: 0.000; rss: 62MB  crate injection\r\ntime: 0.006; rss: 63MB  macro loading\r\ntime: 0.000; rss: 63MB  plugin loading\r\ntime: 0.000; rss: 63MB  plugin registration\r\ntime: 0.179; rss: 64MB  expansion\r\ntime: 0.007; rss: 64MB  complete gated feature checking 1\r\ntime: 0.039; rss: 64MB  configuration 2\r\ntime: 0.000; rss: 64MB  gated configuration checking\r\ntime: 0.020; rss: 64MB  maybe building test harness\r\ntime: 0.019; rss: 64MB  prelude injection\r\ntime: 0.003; rss: 64MB  checking that all macro invocations are gone\r\ntime: 0.000; rss: 64MB  checking for inline asm in case the target doesn't support it\r\ntime: 0.008; rss: 64MB  complete gated feature checking 2\r\ntime: 0.020; rss: 64MB  assigning node ids\r\ntime: 0.024; rss: 69MB  lowering ast -> hir\r\ntime: 0.012; rss: 76MB  indexing hir\r\ntime: 0.000; rss: 76MB  attribute checking\r\ntime: 0.012; rss: 76MB  early lint checks\r\ntime: 0.003; rss: 77MB  external crate/lib resolution\r\ntime: 0.002; rss: 77MB  language item collection\r\ntime: 0.057; rss: 103MB resolution\r\ntime: 0.004; rss: 103MB lifetime resolution\r\ntime: 0.000; rss: 103MB looking for entry point\r\ntime: 0.000; rss: 103MB looking for plugin registrar\r\ntime: 0.013; rss: 107MB region resolution\r\ntime: 0.002; rss: 107MB loop checking\r\ntime: 0.002; rss: 107MB static item recursion checking\r\ntime: 0.024; rss: 108MB type collecting\r\ntime: 0.001; rss: 108MB variance inference\r\ntime: 0.033; rss: 119MB coherence checking\r\ntime: 0.044; rss: 120MB wf checking (old)\r\ntime: 0.065; rss: 122MB item-types checking\r\ntime: 1.113; rss: 151MB item-bodies checking\r\ntime: 0.000; rss: 151MB drop-impl checking\r\ntime: 0.120; rss: 151MB wf checking (new)\r\ntime: 0.106; rss: 153MB const checking\r\ntime: 0.023; rss: 153MB privacy checking\r\ntime: 0.003; rss: 153MB stability index\r\ntime: 0.010; rss: 153MB intrinsic checking\r\ntime: 0.005; rss: 153MB effect checking\r\ntime: 0.025; rss: 153MB match checking\r\ntime: 0.122; rss: 169MB MIR dump\r\ntime: 0.013; rss: 170MB liveness checking\r\ntime: 0.211; rss: 170MB borrow checking\r\ntime: 0.127; rss: 170MB rvalue checking\r\ntime: 0.007; rss: 170MB reachability checking\r\ntime: 0.017; rss: 170MB death checking\r\ntime: 0.016; rss: 171MB stability checking\r\ntime: 0.000; rss: 171MB unused lib feature checking\r\ntime: 0.087; rss: 171MB lint checking\r\ntime: 0.000; rss: 171MB resolving dependency formats\r\ntime: 0.017; rss: 172MB erasing regions from MIR\r\ntime: 1.039; rss: 264MB translation\r\n  time: 0.212; rss: 214MB       llvm function passes [0]\r\n  time: 3.120; rss: 227MB       llvm module passes [0]\r\n  time: 1.344; rss: 233MB       codegen passes [0]\r\n  time: 0.003; rss: 178MB       codegen passes [0]\r\ntime: 4.772; rss: 175MB LLVM passes\r\n  time: 0.003; rss: 175MB       altering collections-71b07a99.rlib\r\n  time: 0.001; rss: 175MB       altering alloc-71b07a99.rlib\r\n  time: 0.006; rss: 175MB       altering rustc_unicode-71b07a99.rlib\r\n  time: 0.003; rss: 175MB       altering alloc_jemalloc-71b07a99.rlib\r\n  time: 0.001; rss: 175MB       altering libc-71b07a99.rlib\r\n  time: 0.002; rss: 175MB       altering rand-71b07a99.rlib\r\n  time: 0.003; rss: 175MB       altering core-71b07a99.rlib\r\n  time: 0.260; rss: 175MB       running linker\r\ntime: 0.346; rss: 175MB linking\r\n```\r\n</details>\r\n\r\nr? @nrc or @eddyb "},"comment":{"url":"https://api.github.com/repos/rust-lang/rust/issues/comments/162386633","html_url":"https://github.com/rust-lang/rust/pull/30095#issuecomment-162386633","issue_url":"https://api.github.com/repos/rust-lang/rust/issues/30095","id":162386633,"user":{"login":"petrochenkov","id":5751617,"avatar_url":"https://avatars.githubusercontent.com/u/5751617?v=3","gravatar_id":"","url":"https://api.github.com/users/petrochenkov","html_url":"https://github.com/petrochenkov","followers_url":"https://api.github.com/users/petrochenkov/followers","following_url":"https://api.github.com/users/petrochenkov/following{/other_user}","gists_url":"https://api.github.com/users/petrochenkov/gists{/gist_id}","starred_url":"https://api.github.com/users/petrochenkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrochenkov/subscriptions","organizations_url":"https://api.github.com/users/petrochenkov/orgs","repos_url":"https://api.github.com/users/petrochenkov/repos","events_url":"https://api.github.com/users/petrochenkov/events{/privacy}","received_events_url":"https://api.github.com/users/petrochenkov/received_events","type":"User","site_admin":false},"created_at":"2015-12-07T01:40:17Z","updated_at":"2015-12-07T01:40:17Z","body":">I think the end result would be less confusing if you don't use the name Vec for the HIR version - OwnedSlice or P<[T]> would be better - Vec is standard enough that when people see it they will assume the standard library version.\r\n\r\nThe idea was to 1) Keep the code changes small (so, the name `Vec` is kept) 2) Do not commit to a concrete storage type (so, a HIR specific type alias is introduced)\r\nIf some extra code churn is ok, then I'll mass-rename `hir::Vec` to `HirVec`.\r\n\r\n>Still failing a test and looks genuine\r\n\r\n```\r\ntest astencode::test_basic ... \u001B[32mok\u001B(B\u001B[0m\r\ntest astencode::test_more ... \u001B[32mok\u001B(B\u001B[0m\r\nSegmentation fault (core dumped)\r\nmake: *** [tmp/check-stage2-T-x86_64-unknown-linux-gnu-H-x86_64-unknown-linux-gnu-rustc_metadata.ok] Error 139\r\n```\r\nHmm, it certainly doesn't segfault on my machine, I'll try to rerun on something else.\r\n(The `error: macro undefined: 'z!'` thing visible in the partial Travis log is expected output from a `#[should_panic]` test)"}}