https bazel build inputs usr bin cc action outputs parser
play

https://bazel.build/ Inputs /usr/bin/cc Action Outputs - PowerPoint PPT Presentation

https://bazel.build/ Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c Workspace


  1. https://bazel.build/

  2. Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c

  3. Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c Workspace ./lexer.h ./lexer.c ./parser.h ./parser.c

  4. Sandbox Mock hostname Real hostname Process Network clever-cc input.c -o output.o input.c /dev/random output.o On Linux: user namespaces – On macOS: sandbox-exec https://blog.bazel.build/2015/09/11/sandboxing.html, https://jmmv.dev/2019/11/macos-sandbox-exec.html

  5. Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c Workspace Workspace ./lexer.h Sandbox Directory ./lexer.h ./parser.h (ro?) ./lexer.c ./lexer.c ./parser.c (ro?) ./parser.h ./parser.h ./ (rw) ./parser.c ./parser.c ./parser.o

  6. Inputs /usr/bin/cc Action Outputs ./parser.h cc -I. -c parser.c -o parser.o ./parser.o ./parser.c Workspace Workspace ./lexer.h Sandbox Directory ./lexer.h ./parser.h (ro?) ./lexer.c ./lexer.c ./parser.c (ro?) ./parser.h ./parser.h ./ (rw) ./parser.c ./parser.c ./parser.o

  7. Bazel sandboxfs Mount Point CreateSandbox( action1 , { / → .../scratch/action1 (rw), /src/file1.h → .../src/file1.h (ro), /src/file1.c → .../src/file1.c (ro), }) https://github.com/bazelbuild/sandboxfs/

  8. Bazel sandboxfs Mount Point CreateSandbox( action1 , { / → .../scratch/action1 (rw), /src/file1.h → .../src/file1.h (ro), /src/file1.c → .../src/file1.c (ro), }) action1/ (rw) action1/src/file1.h (ro) action1/src/file1.c (ro) https://github.com/bazelbuild/sandboxfs/

  9. Bazel sandboxfs Mount Point CreateSandbox( action1 , { / → .../scratch/action1 (rw), /src/file1.h → .../src/file1.h (ro), /src/file1.c → .../src/file1.c (ro), }) action1/ (rw) action1/src/file1.h (ro) action1/src/file1.c (ro) Same idea as: mount --bind (Linux) mount -t null (BSD) https://github.com/bazelbuild/sandboxfs/

  10. Bazel sandboxfs Mount Point CreateSandbox( action1 , { / → .../scratch/action1 (rw), /src/file1.h → .../src/file1.h (ro), /src/file1.c → .../src/file1.c (ro), }) action1/ (rw) action1/src/file1.h (ro) action1/src/file1.c (ro) CreateSandbox( action2 , { / → .../scratch/action2 (rw), /gfx/libgfx.a → .../libgfx.a (ro), /main.a → .../main.a (ro), action1/ (rw) }) action1/src/file1.h (ro) action1/src/file1.c (ro) action2/ (rw) action2/gfx/libgfx.a (ro) action2/main.a (ro) https://github.com/bazelbuild/sandboxfs/

  11. Target Machine Local Bazel MacBook Pro 2017 581s Bazel Mac Pro 2013 247s iOS app Mac Pro 2013 1235s https://blog.bazel.build/2018/04/13/preliminary-sandboxfs-support.html

  12. Target Machine Local Symlinked sandbox Bazel MacBook Pro 2017 581s 621s (+6%) Bazel Mac Pro 2013 247s 265s (+7%) iOS app Mac Pro 2013 1235s 4572s (+270%) https://blog.bazel.build/2018/04/13/preliminary-sandboxfs-support.html

  13. Target Machine Local Symlinked sandbox sandboxfs sandbox Bazel MacBook Pro 2017 581s 621s (+6%) 612s (+5%) Bazel Mac Pro 2013 247s 265s (+7%) 250s (+1%) iOS app Mac Pro 2013 1235s 4572s (+270%) 1922s (+55%) https://blog.bazel.build/2018/04/13/preliminary-sandboxfs-support.html

  14. ● ● ● ● https://jmmv.dev/2018/07/rust-vs-go.html

  15. ● ● ● ● ● ● ● ● https://jmmv.dev/2018/07/rust-vs-go.html

  16. ● ● ● ● ● ● ● ● ● ● https://jmmv.dev/2018/07/rust-vs-go.html

  17. ● ○ ↔ ● ● ●

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend