Lua Go Swift - modrpc/info GitHub Wiki
- https://golang.org/
- https://github.com/golang
- Rob Pike: http://herpolhode.com/rob/
- Rob on WHYs of design decisions
- NewSqueak: precursor to Go https://swtch.com/~rsc/thread/newsqueak.pdf
- NewSqueak talk: https://www.youtube.com/watch?v=hB05UFqOtFA&list=WL&index=43
- Lectures on Concurrency: #1 #3 #5
-
Go interfaces
- Russ Cox' impl note: http://research.swtch.com/interfaces
- Goroutines
- CGO
-
Channels
- IPC mechanism based on CSP channels
- Processes communicate/synchronize through channels (not directly writing to them)
- this allows to encapsulate all sync/comm inside channel implementation?
- Behavior is similar to SV mailbox only with blocking try/put
- Go runtime
-
lua.org: http://www.lua.org
- documentation: http://www.lua.org/docs.html
- Lua workshops: http://www.lua.org/community.html
- Lua packages:
- LuaJIT (faster impl): http://luajit.org
- LuaJIT 2.0 bytecode instruction set: http://wiki.luajit.org/Bytecode-2.0
- LuaJIT + RPI: http://cellux.github.io/articles/introduction-to-luajit-part-1/
- elua (embedded Lua): http://www.eluaproject.net
- Lua is a dynamicall typed langauge -- variables do not have types, values have types
- All Lua values are first-class values.
- There are 8 basic types:
- nil
- boolean
- number
- string
- function
- userdata
- thread
- table
-
lua.h: portal to entire LUA "API" (lua_*)
- macros for value type tags, subtags for numbers, etc.
- state manipulation: lua_newstate, lua_close, lua_newthread
- stack manipulation: lua_gettop, lua_settop, lua_pushvalue, ...
- stack read functions (read stack value in C): lua_type(lua_State *L, int stkidx), lua_tonumberx, lua_toboolean, ...
- push functions (push C value to stack): lua_pushnumber, lua_pushstring, ...
- get functions (Lua -> stack): lua_getglobal, lua_gettable, lua_getfield, lua_geti, lua_rawgetp, ...
- set functions (stack -> Lua): lua_setglobal, lua_settable, lua_setfield, lua_seti, lua_rawsetp, ...
- load/call functions: lua_callk, lua_pcallk, lua_load, lua_dump
- coroutine functions: lua_yieldk, lua_resume, lua_status, lua_isyieldable
- garbage collection functions: lua_gc
- misc functions: lua_error, lua_next, ...
- functions to be called from debugger: lua_Hook