From Zero to Emonk
Code and notes for my Erlang Factory talk.
- This talk
- What is a NIF?
- Your first NIF a. Code sample b. Output
- Simple term manipulations a. Creating terms b. Testing terms c. Getting terms from argv
- Resource Objects a. What are they? b. How can we use them? c. Pointers! i. Code sample ii. Output d. State mutation! i. Code sample ii. Output
- Environments a. What are they? b. Why do we need them?
- Message Passing a. Sending terms i. Code sample ii. Output
- Threading a. Yes threads b. Thin wrapper around pthreads c. term_sending i. Code sample ii. Output d. queue i. Code sample ii. Output
- SpiderMonkey - Runtime, Context, Go
- Emonk - Architecture a. Big picture
- Emonk - NIF API Usage a. Creating a context i. Creating a vm_t ii. Thread initialization b. Submitting an eval job