Skip to content

Instantly share code, notes, and snippets.

View washort's full-sized avatar

Allen Short washort

View GitHub Profile
import "lib/codec/utf8" =~ [=> UTF8 :DeepFrozen]
import "lib/capn" =~ capn :DeepFrozen
import "tools/capnpc" =~ ["main" => capnpc :DeepFrozen]
exports (main)
def main(_argv, => currentProcess, => makeProcess, => makeFileResource) as DeepFrozen:
def [ (b`CAPNPC`) => CAPNPC ] | _ := currentProcess.getEnvironment()
def compile(schema):
def tmp := makeFileResource("/tmp/test.capnp").setContents(
UTF8.encode(schema, null))
# Doesn't use 'unittest' because of dependency on `makeProcess`.
import "lib/codec/utf8" =~ [=> UTF8 :DeepFrozen]
import "lib/streams" =~ [=> collectBytes :DeepFrozen]
exports (main)
def main(_argv, => makeProcess) as DeepFrozen:
def compile():
def pr := makeProcess(b`/nix/store/wm8va53fh5158ipi0ic9gir64hrvqv1z-coreutils-8.29/bin/ls`, [b`ls`, b`-lR`],
[].asMap(),
"stdout" => true)
object _ :null as DeepFrozen:
""
method dependencies() :List.get(Str):
""
_makeList.run("lib/capn")
method run(package :null) :Map.get(Str, DeepFrozen):
""
def via (_mapExtract.run("makeMessageReader")) [makeMessageReader :DeepFrozen, via (_mapExtract.run("makeMessageWriter")) [makeMessageWriter :DeepFrozen, via (_mapExtract.run("text")) [text :DeepFrozen, _ :null]]] exit null := package.import("lib/capn")
object reader :null as DeepFrozen:
these derivations will be built:
/nix/store/dac36cfcjb35z5vgzc2q5qyskxa1v11h-typhon.drv
/nix/store/44r96qqhxwy7jd0681sm1l44ipwfp7fg-monte.drv
/nix/store/mkj0lk1vdmb7dna7g5084n0i6lb88y1v-capnpc-monte.drv
/nix/store/awyikgz4vym0qmkc6gkcnd5ika6a9krv-monte.drv
building '/nix/store/dac36cfcjb35z5vgzc2q5qyskxa1v11h-typhon.drv'...
unpacking sources
unpacking source archive /nix/store/yidbvkyflvmmlihv0gl6f6xqyc2k0021-typhon
source root is typhon
patching sources
> {-# OPTIONS -fglasgow-exts -fallow-overlapping-instances #-}
-fglasgow-exts enables 'mdo', which is used for constructing vats, and existentially quantified type variables, which are used for references.
-fallow-overlapping-instances allows us to define different behaviors for String (i.e. [Char]) than [a].
> module E where
>
> import Data.IORef
> import Data.Typeable
@washort
washort / monad_example.mt
Created June 29, 2017 16:55
monad example in Monte using control blocks
exports (main)
def id(x) as DeepFrozen:
return x
object identity as DeepFrozen:
"The identity monad."
to unit(x):
return x
expr = LiteralExpr(constant value)
| NounExpr(string name)
| SlotExpr(string name) # this currently takes a Noun
| BindingExpr(string name) # same here
| MetaContextExpr
| MetaStateExpr
| SeqExpr(expr* exprs)
| MethodCallExpr(expr receiver, string verb, expr* arglist, namedArg* namedArgs)
Taking initial turn in script...
TRACE: From vat pa
~ "Loader args: [\"test\", \"all-tests\"]"
completed/running/errors/total: 0/0/0/0 Last source: null Last test: nullTRACE: From vat pa
~ "audit/1: Missing methods: [[\"started\", 0], [\"stopped\", 1]].asSet()"
TRACE: From vat pa
~ "audit/1: Missing methods: [[\"started\", 0], [\"stopped\", 1]].asSet()"
TRACE: From vat pa
~ "audit/1: Missing methods: [[\"flowingFrom\", 1], [\"receive\", 1], [\"progress\", 1]].asSet()"
import "lib/iterators" =~ [=> zip :DeepFrozen]
import "lib/codec/utf8" =~ [=> UTF8 :DeepFrozen]
exports (main)
def filenames :List[Str] := [
"mast/all-tests.mast",
"mast/testRunner.mast",
"mast/fun/elements.mast",
"mast/lib/codec/percent.mast",
"mast/lib/codec/utf8.mast",
--- out.good 2017-05-18 03:55:53.833051850 +0000
+++ out.bad 2017-05-18 03:55:12.312086915 +0000
@@ -1,6 +1,4 @@
-[nix-shell:~/Projects/typhon]$ UV_THREADPOOL_SIZE=1 rr record ./mt-typhon -l mast loader test all-tests
-rr: Saving execution to trace directory `/home/washort/.local/share/rr/mt-typhon-10'.
-Taking initial turn in script...
+[nix-shell:~/Projects/typhon]$ UV_THREADPOOL_SIZE=1 ./mt-typhon -l mast loader test all-tests Taking initial turn in script...
TRACE: From vat pa
~ "Loader args: [\"test\", \"all-tests\"]"