Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Contribute Go

How to Contribute Go

Go Conference 2016 Spring

Shinji Tanaka

April 23, 2016

More Decks by Shinji Tanaka

Other Decks in Technology


  1. How to 
 Contribute Go Hatena Co., Ltd. Shinji Tanaka

  2. Shinji Tanaka @stanaka / id:stanaka Hatena Co., Ltd. CTO 2

  3. One day, a tool couldn’t start • only on Amazon

    Linux 2016.03 $ some-tool (linux/386 build) Trace/breakpoint trap $
  4. >> Trace/breakpoint trap <<

  5. modify_ldt • System call called at the boot process of

    Go 386 binary. • Disabled on Amazon Linux 2016.04 $ cat /boot/config-4.4.5-15.26.amzn1.x86_64 \ | grep MODIFY_LDT # CONFIG_MODIFY_LDT_SYSCALL is not set https://github.com/golang/go/issues/14795
  6. Die or Contribute • O.K. Let’s contribute.

  7. How to fix it (partial diff) https://github.com/golang/go/commit/ 0f86d1edfb87fddb2c7f50d177b67f48219151f3

  8. Go’s Assembler • It’s like a Plan-9 assembler TEXT runtime·profileloop(SB),NOSPLIT,$8

    MOVQ $runtime·profileloop1(SB), CX MOVQ CX, 0(SP) CALL runtime·externalthreadhandler(SB) RET
  9. Merged!!

  10. Go contribute Outline


  12. File an Issues on GitHub • https://github.com/golang/go/issues/14795

  13. git codereview • Subcommand of git for Go code review.

    git codereview change git codereview mail git codereview … [alias] change = codereview change gofmt = codereview gofmt mail = codereview mail pending = codereview pending submit = codereview submit sync = codereview sync
  14. git codereview change • Make a change on some branch

    • Same as git codereview change git checkout -b branch git branch --set-upstream-to origin/master git commit
  15. Detailed commit message runtime: use set_thread_area instead of modify_ldt on

    linux/386 linux/386 depends on modify_ldt system call, but recent Linux kernels can disable this system call. Any Go programs built as linux/386 crash with the message 'Trace/ breakpoint trap'. The kernel config CONFIG_MODIFY_LDT_SYSCALL, which control enable/disable modify_ldt, is disabled on Amazon Linux 2016.03. This fixes this problem by using set_thread_area instead of modify_ldt on linux/386. Fixes #14795.
  16. git codereview mail • Push to go-review • Same as

    git codereview mail git push origin HEAD:refs/for/master.
  17. Revise the commit • change & mail again

  18. Gerrit https://go-review.googlesource.com/

  19. Code reviewing #1

  20. Code reviewing #2

  21. Save as Draft & Reply

  22. Merged!! • ‘Code-Review +2’ is required. • +2 approved •

    +1 LGTM, but not approved • Maybe this fix released with Go 1.7?
  23. Let’s Contribute Go We’re hiring