Giter VIP home page Giter VIP logo

golang-internals-resources's Introduction

Golang Internals Resources

This is a curated collection of Articles and Videos about Golang internals. It is intended for advanced/intermediate programmers who are new to Golang and want to understand what happens under the hood. Feel free to add to it!

Data Structures and Data Types

Nil

Understanding Nil Talk by Francesc Campoy

Slices

Go Slices: usage and internals from The Go Blog

Structs

The empty struct by Dave Chevney

Maps

Macro View of Map Internals In Go by William Kennedy

Inside the Map Implementation Talk by Keith Randall

How the Go runtime implements maps efficiently (without generics) by Dave Cheney

Interfaces

Go Data Structures: Interfaces by Russ Cox

Golang concepts from an OOP point of view by Lucio Tato

Understanding Go Interfaces Talk by Francesc Campoy

Hacking the Golang Type System

Hacking Go's type system by Tiago Katcipis

Go 1.18 Generics

Go 1.18 Implementation of Generics via Dictionaries and Gcshape Stenciling

Concurrency Primitives

Goroutines

How Goroutines Work by Krishna Sundarram

Channels

Channels in Golang by @TapirLiu

Tools

"go test -race" Under the Hood Talk by Kavya Joshi

Scheduler

Scalable Go Scheduler Design Doc by Dmitry Vyukov from the Go 1.1 Design Docs

Go Preemptive Scheduler Design Doc by Dmitry Vyukov from the Go 1.3 Design Docs

How does the golang scheduler work? by Ian Lance Taylor

Go's work-stealing scheduler by Jaana B. Dogan

Timers

How Do They Do It: Timers in Go by Alexander Morozov

Memory

The Go Memory Model from the Go Documentation

Contiguous stacks in Go by Agis Anastasopoulos

Contiguous Stacks from the GO 1.3 Design Docs

Garbage Collection

Golang’s Real-time GC in Theory and Practice by Will Sewell

Request Oriented Collector (ROC) Algorithm by Rick Hudson and Austin Clements and discussion at golang-dev

Compilation

A Quick Guide to Go's Assembler from the Go Documentation

The Design of the Go Assembler talk by Rob Pike

Dropping Down Go Functions in Assembly (slides) talk by Michael Munday

Golang Internals Series of Blog Posts by Siarhei Matsiukevich

Go compiler internals: adding a new statement to Go two-part series of posts by Eli Bendersky

SSA compiler

SSA Backend for the Go Compiler by Keith Randall

SSA optimization rules description language by Iskander Sharipov

Algorithms used by SSA compiler

Simple and Efficient Construction of Static Single Assignment Form by Braun, Buchwald, Hack, Leißa, Mallon, and Zwinkau

A Linear Time Algorithm for Placing Φ-Nodes by Sreedhar & Gao

General

A lot of other information can be gathered from the Go Design Documents and from the (now defunct) Unofficial Go Internals wiki

golang-internals-resources's People

Contributors

emluque avatar lk4d4 avatar dadabird avatar dvrkps avatar jubnzv avatar glendc avatar ofonimefrancis avatar peterfeicht avatar object88 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.