# go-internals

`go-internals` is a work-in-progress book about the internals of the Go (1.10+) programming language.

## Table of Contents

* [Chapter I: A Primer on Go Assembly](https://cmc.gitbook.io/go-internals/chapter-i-go-assembly)
* [Chapter II: Interfaces](https://cmc.gitbook.io/go-internals/chapter-ii-interfaces)
* [Chapter III (soon!): The Garbage Collector](https://cmc.gitbook.io/go-internals/chapter-iii-garbage-collector)

*Click* [*here*](https://cmc.gitbook.io/go-internals/) *for the GitBook version.*

## Goals

* **Concise**: The book aims to be as concise as possible, encouraging code and diagrams over lengthy prose.
* **Community-effort**: I myself am learning as I go through the writing of this book. I *will* make mistakes along the way. Hopefully the community can help in pointing out and correcting these mistakes.
* **Beyond the theory**: The book will not just cover the theory, but the actual implementation too. Assumptions will be proven or invalidated via experiments and measurements.
* **Up-to-Date**: The book will try to keep up-to-date with new Go versions being released.
* **Experienced audience**: The Go community has created *loads* of great introductory material for newcomers. Unfortunately we're still lacking good resources when it comes to the more advanced stuff. This books hopes to help solve this issue.

## Contributing

All kinds of contributions are very much welcome.

Don't hesitate to open an issue for e.g...:

* pointing out technical or english mistakes
* suggesting improvements and/or additions to existing chapters
* suggesting external links that might be of interest
* ..and pretty much anything else you can think of, really!

## Author

Clement Rey [\<cr.rey.clement@gmail.com](mailto:<cr.rey.clement@gmail.com)> ([@teh\_cmc](https://twitter.com/teh_cmc))

## License

Licensed under the [BY-NC-SA Creative Commons 4.0 International Public License](http://creativecommons.org/licenses/by-nc-sa/4.0/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cmc.gitbook.io/go-internals/undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
