fun send(rcv, msg, args) { cls = rcv.isa if (cls.isa == STD_CLS) method = builtin_lookup(rcv, msg) else method = send(cls, "lookup", msg) method(rcv, args) }
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PC 1: Chromium Version 31.0.1650.63 Built on Debian 7.2, running on Debian 7.3 (238485) | |
PC 2: Chrome Version 33.0.1750.149, Mac OS X | |
PC 1 (manuel28): | |
Creating local peer: manuel28 bbrtc.js:51 | |
Creating RTCPeerConnection. bbrtc.js:33 | |
Listening for ICE candidates. bbrtc.js:33 | |
Listening for `negotiationneeded` bbrtc.js:33 | |
Listening for data channel bbrtc.js:33 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Causes stack overflow: | |
(def p 'p) | |
(def (spawn-thread) | |
(push-prompt p | |
(loop | |
(sleep)))) | |
(def (sleep) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Define a simple structure | |
(defstruct point | |
x | |
y) | |
(defun make-point (x y) | |
(make-instance 'point :x x :y y)) | |
;; Normal Lisp style function | |
(defun add-points (p1 p2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Keybase proof | |
I hereby claim: | |
* I am manuel on github. | |
* I am msimoni (https://keybase.io/msimoni) on keybase. | |
* I have a public key ASC3_N8cmaCDXyRmFG6rWilVZcJlAYJC1-aVvAjfMsvL4Qo | |
To claim this, I am signing this object: |
An idea for how to do transactions across heterogenous data stores (e.g. key-value (KV) stores and Git repositories) in an RPC system. Probably not novel.
There are primitive data stores, like KV stores and Git repositories.
There are facades, processes, that enforce some invariant on top of another, underlying data store. Example: a facade that only allows storing numbers as values in a KV store.
Let’s use the term storage process to refer to both primitive stores and facades.
OlderNewer