Skip to content
0:00 / 0:00

#clojure#core.async#macros

Core Async Go Macro Internals - Part I

Timothy Baldridge

729 subscribers • 2 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by Timothy Baldridge, Cognitect engineer
  • Linked in the descriptionclojure/core.asyncclojure/core.async

Advanced. Deep dive for people who know the field.

10K views13 years ago2 recommendations

Programming languagesSystems programmingLisp and ClojureCompilers and interpretersConcurrency and parallelism

Timothy Baldridge provides an in-depth walkthrough of the compiler and state machine internals behind Clojure's core.async go macro.

The first part of a in-depth look into the internals of the Core.Async go macro. There's a lot to cover here, so forgive me if I go off on a few bunny trails along the way. Core.Async : github.com/clojure/core.async Core.Async Macro Internals : github.com/clojure/core.async/blob/master/src/main/clojure/c… Cognitect: www.cognitect.com IRC: tbaldridge (#clojure) Email: timothy@cognitect.com

Why it's here

2 people recommend this

What people say. Recommended as a deep dive into the macro and state machine internals of Clojure's core.async.

Moments people linked to

u/lgsteinin r/Clojure • Recommends

Core Async Go Macro Internals - Part I by tbaldridge

SeanTAllenon Lobsters • Recommends

Core Async Go Macro Internals - Part I
8View on Lobsters

u/lobsang_luddin r/Clojure • Mentions

On “Help grokking core.async implementation of processing pipeline”

The videos would be these, and he shows some internals of a "parking" go-block here although you'll likely need a bit more of the video for context (he moves on to the execution strategy of core.async around here).
2View on Reddit

u/Venthornin r/Clojure • Mentions

On “New Clojurists: Ask Anything”

As others have mentioned, core.async is a good example and there are even a series of Youtube videos about how the macro works: link to this video It's actually a better example than many will admit to because not only does it show the strengths of macros, it also shows their limitations on how you can extend the language.

u/Gnaxein r/ProgrammingLanguages • Mentions

On “Compiling a functional language to Javascript”

They have an explicit loop/recur construct built in. Clojure's core.async is also compatible with ClojureScript. You might find the go macro internals relevant.

u/bslessin r/Clojure • Mentions

On “clojure.core.async: An unfulfilled promise”

No worries. This series will help improve your understanding of what goes on there, but won't do anything for tracing or debugging :) [video Really, the best thing I found for trace/debug of core async it to test a blocking version then change it to non-blocking